mysql主节点数据恢复_Mysql 主从复制+数据恢复
1、主服務(wù)器Master配置:
#設(shè)置數(shù)據(jù)庫(kù)標(biāo)識(shí)
server_id=1
#任何一個(gè)事務(wù)提交之后就立即寫入到磁盤中的二進(jìn)制文件
sync_binlog=1
#保持?jǐn)?shù)據(jù)一致性,建議配置
innodb_flush_log_at_trx_commit=1
#開(kāi)啟服務(wù)器二進(jìn)制日志
log-bin=mysql-bin
#設(shè)置log格式
binlog_format=MIXED
#不記錄二進(jìn)制數(shù)據(jù)庫(kù)的數(shù)據(jù)
binlog-ignore-db=test
2、從服務(wù)器Slave配置
#設(shè)置數(shù)據(jù)庫(kù)標(biāo)識(shí)
server_id = 2
#設(shè)置不同步的數(shù)據(jù)庫(kù)
replicate-ignore-db=testDB
#設(shè)置不同步的數(shù)據(jù)表
replicate-ignore-table=testDB.testTable
給服務(wù)器設(shè)置授權(quán)賬戶
設(shè)置user賬戶能從10.10.0.1服務(wù)器登陸本機(jī),且擁有所有權(quán)限
Mysql>grant all on *.* to user@10.10.0.1?indentified by ‘password’
(密碼必須有引號(hào))
user賬戶只有備份權(quán)限
Mysql>grant replication slave on *.* to user@10.10.0.1 indentified by ‘password’
設(shè)置其他主機(jī)能使用root登陸數(shù)據(jù)庫(kù)
Mysql>GRANT ALL PRIVILEGES ON * . * TO 'root'@'%'IDENTIFIED BY ‘password’
使添加的賬號(hào)生效:FLUSH PRIVILEGES;
master服務(wù)器查看是否開(kāi)啟二進(jìn)制日志:show variables like '%bin';
master服務(wù)器查看二進(jìn)制日志狀態(tài):show mater status;
Flush logs; 增加一個(gè)最新的bin-log日志
Truncate? tables;?? 清空當(dāng)前表中的所有數(shù)據(jù)
Reset master;清空所有的bin-log日志
slave服務(wù)器停止同步,輸入:stop slave;
slave服務(wù)器顯示同步狀態(tài)及設(shè)置:show slave status\G
數(shù)據(jù)庫(kù)同步
注意數(shù)據(jù)庫(kù)同步前,需要在Master數(shù)據(jù)庫(kù)鎖定當(dāng)前數(shù)據(jù)庫(kù),可保持?jǐn)?shù)據(jù)一致性
鎖定:mysql>flushtables with read lock;
解鎖:mysql>unlocktables;
開(kāi)啟同步:
CHANGE MASTER TO MASTER_HOST='ServerIP/FQDN',MASTER_USER='ReplClient', MASTER_PASSWORD='ClientPassword',MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=120;
輸入show slave status\G
再輸入:start slave;重新輸入show slave status\G?? ,顯示如下參數(shù)
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
即同步設(shè)置成功 ?注意:部分服務(wù)器可能需要開(kāi)啟3306端口,或關(guān)閉防火墻設(shè)置才可生效。
進(jìn)入二進(jìn)制日志目錄,輸入下面語(yǔ)句可查看二進(jìn)制日志:
mysqlbinlog?--no-defaults? mysql-bin.000001 | more
若編譯安裝的Mysql,選擇mysql安裝目錄下執(zhí)行Mysql/bin/mysqlbinlog
數(shù)據(jù)恢復(fù)
Mysql/bin/mysqlbinlog?--no-defaults? mysql-bin.000001 |mysql –u –root –p(password) (可選database)
Linux mysql數(shù)據(jù)庫(kù)備份
Mysqldump –uroot –p database –l –F ‘/home/backup.sql’
-l 指鎖定數(shù)據(jù)庫(kù)表。只能讀,不能寫。
-F 指flushlogs , 可以重新生產(chǎn)新的日志文件。包括log-bin日志
數(shù)據(jù)導(dǎo)入:mysql –uroot –p (可選database) -v –f? < /home/backup.sql
-v查看導(dǎo)入的詳細(xì)信息
-f 當(dāng)中間遇到錯(cuò)誤,可以skip,繼續(xù)執(zhí)行下面語(yǔ)句
查看bin-log日志,可以根據(jù)Position或者根據(jù)時(shí)間段恢復(fù)
例如通過(guò)Bin-log日志恢復(fù)position段100到500 的數(shù)據(jù):
1、先查看position段中日志,確實(shí)是否需要恢復(fù)
mysqlbinlog –no-defaults mysql-bin.000002 --start-position=”100”--stop-position=”500” |more
注意position100可能不會(huì)恢復(fù)。因?yàn)閳?zhí)行語(yǔ)句在Position日志之上。
--start-position和--stop-position可選擇一個(gè)執(zhí)行。無(wú)需同時(shí)存在。
Btw:時(shí)間段恢復(fù)參數(shù)為:--stop-date= “2014-01-01 12:00:00” 、
--start-date = “2014-01-01 12:00:00”
總結(jié)
以上是生活随笔為你收集整理的mysql主节点数据恢复_Mysql 主从复制+数据恢复的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: word python 域 操作_pyt
- 下一篇: python套接字socket的作用_【