日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Mysql数据备份恢复及主从同步

發(fā)布時間:2025/3/20 数据库 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Mysql数据备份恢复及主从同步 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

目錄

  • Mysql備份及主從同步
    • Mysql備份
      • 1. mysqldump全量備份
      • 2.log_bin增量備份
    • Mysql主從同步配置
      • 1.1主從同步過程
      • 1.2 配置

Mysql備份及主從同步

Mysql備份

1. mysqldump全量備份

1.1 mysqldump備份原理

mysqldump備份數(shù)據(jù)的過程,實(shí)際上就是把數(shù)據(jù)庫從mysql庫里以sql語句的形式直接輸出并保存成文件的過程,備份的文件/* 到 */都是注釋,其余都是sql語句,故備份恢復(fù)就相當(dāng)于把所有sql語句執(zhí)行一遍

1.2 msyqldump命令詳解

語法:mysqldump -u username -p 數(shù)據(jù)庫名 [表名]... > 文件路徑
常用選項(xiàng):

  • -A 備份所有數(shù)據(jù)庫
  • -B DBNAME... #能接多個庫,并添加創(chuàng)建庫和切換庫的語句(使用-B備份的sql文件恢復(fù)時不需要指定庫,也不用手動創(chuàng)建庫)
  • -F 切割binlog
  • --master-data=1 #1表示執(zhí)行從庫從主庫某位置的binlog恢復(fù) ,2表示注釋執(zhí)行語句
  • -x #鎖表
  • -d DBNAME #只備份表結(jié)構(gòu)
  • --compact #輸出內(nèi)容減少,用于調(diào)試
  • --no-create-info|-t #只備份數(shù)據(jù)
  • --single-transaction # 適合innodb事務(wù)數(shù)據(jù)庫備份

1.2 mysqldump備份示例

1.備份所有庫并壓縮

mysqldump -u root -p -A > xx.sql

2.備份某個庫

mysqldump -u root -p -B DBNAME > xx.sql

3.備份多個庫

mysqldump -u root -p -B DBNAME1 DBNAME2 > xx.sql

1.3 備份恢復(fù)

mysql -uroot -p < xxx.sql

2.log_bin增量備份

2.1 開啟log_bin功能

修改my.cnf中的[mysqld]:

#添加該選項(xiàng) [mysqld] log_bin=mysqlbin

生成的日志文件存放的是該功能開啟后的mysql內(nèi)部增刪改等對數(shù)據(jù)庫有更新內(nèi)容的sql語句。

該功能開啟前的數(shù)據(jù)并不能通過這個恢復(fù)。所以通常先是使用mysqldump全量備份,之后的數(shù)據(jù)通過log_bin生成的日志文件來恢復(fù)

若在mysqldump備份時指定了--master-data=1,會將備份數(shù)據(jù)最后的位置記錄下來,則數(shù)據(jù)恢復(fù)時將大大方便log_bin從合理的位置恢復(fù)

2.2 利用mysqlbinlog命令導(dǎo)出sql文件

mysqlbinlog mysql-bin.00001 > 1.sql #-d DB #只導(dǎo)出指定庫sql語句,默認(rèn)binlog會保存所有庫的操作 mysqlbinlog -d test mysql-bin.00001 > 1.sql

基于指定位置導(dǎo)出sql語句:

mysqlbinlog mysqlbin.00001 --start-position=106 >1.sql #導(dǎo)出從位置106開始到文件結(jié)束的sql語句 mysqlbinlog mysqlbin.00001 --stop-position=500 >2.sql #導(dǎo)出從文件開始到位置為500處的sql語句 mysqlbinlog mysqlbin.00001 --start-position=106 --stop-position=500 >3.sql #導(dǎo)出從位置106到500的sql語句

基于指定時間導(dǎo)出:

mysqlbinlog --start-datetime="2019-02-22 16:52:06" mysqlbin.000001 > 1.sql mysqlbinlog --stop-datetime="2019-02-22 16:52:06" mysqlbin.000001 > 2.sql mysqlbinlog --start-datetime="2019-02-22 16:52:06" --stop-datetime="2019-02-22 17:52:06" mysqlbin.000001 > 3.sql

2.3 備份恢復(fù)

mysql -uroot -p < 1.sql #通常先將全量備份的數(shù)據(jù)恢復(fù),然后用msyqlbinlog導(dǎo)出的文件接著全量的恢復(fù)后面的數(shù)據(jù)

Mysql主從同步配置

1.1主從同步過程

  • 1.從庫IO線程連接上主庫,并請求從指定日志文件的指定位置之后的日志內(nèi)容
  • 2.主庫收到來自從庫的請求后,負(fù)責(zé)復(fù)制的IO線程根據(jù)請求信息讀取指定日志指定位置之后的日志內(nèi)容,并返回給從庫的IO線程
  • 3.從庫接收到信息后,將接收到的內(nèi)容依次寫到從庫的Relaylog文件的最末端,并讀取其中主庫的bin-log文件名和位置記錄到master-info文件中,以便下次讀取時能清楚的告訴主庫"我需要從bin-log文件的哪個位置開始往后的內(nèi)容"
  • 4.從庫的SQL線程檢測到Relaylog中新增的內(nèi)容后,會馬上解析該文件中的內(nèi)容,形成SQL語句并執(zhí)行,從而完成同步

1.2 配置

主庫配置

  • 1.主庫開啟log_bin 功能,并設(shè)置server_id
[mysqld] server_id=1111 log_bin=mysqlbin
  • 2.主庫創(chuàng)建主從同步的mysql賬號,并授予replication,slave權(quán)限
mysql -e "GRANT replication slave *.* to 'repl'@'192.168.139.0/255.255.255.0' identified by 'repl'" -uroot -p
  • 3.主庫整庫鎖表,然后備份已有數(shù)據(jù)生成sql文件,并拷貝至從庫服務(wù)器,完成后解鎖主庫
mysql -e " flush table with read lock " -uroot -p123456 mysqldump -uroot -p123456 -A --master-data=1 > repl.sql scp repl.sql root@192.168.139.106:~ mysql -e " unlock tables " -uroot -p123456

從庫配置

  • 1.設(shè)置server_id, 從庫一般不需要開啟log_bin功能,除非做級聯(lián),即同時還作為其他庫的主庫
[mysqld] server_id=2222 #需要跟主庫不一致
  • 2.先手動復(fù)制主庫的數(shù)據(jù)到從庫
mysql -uroot -p123456 < repl.sql
  • 3.如果主庫配置第三步中,備份數(shù)據(jù)時沒有指定--master-data=1 ,則需要在從庫中指定主庫信息
mysql -e "change master to \ master_host='192.168.139.105', \ master_log_file='mysqlbin.000004',\ master_user='repl',master_password='repl',\ master_log_pos=326 "
  • 4.從庫開啟同步開關(guān)
mysql -uroot -p123456 -e " start slave;"

轉(zhuǎn)載于:https://www.cnblogs.com/fllf/p/10417431.html

總結(jié)

以上是生活随笔為你收集整理的Mysql数据备份恢复及主从同步的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。