/root/date +%F.sql--single-transaction..."/>
您好,登錄后才能下訂單哦!
1.mysqldump -uroot -p123456 --single-transaction --master-data=2 --all-databases > /root/date +%F
.sql
--single-transaction,想當于啟了鏡像,數(shù)據(jù)庫可正常寫入。
--master-data=2 記錄備份那一時刻的二進制日志的位置,并且注釋掉,1是不注釋的用于二進制日志恢復(fù)
--all-databases 備份全部數(shù)據(jù)庫,--databases cs1 只備份cs1數(shù)據(jù)庫,可以備份多個,空格隔開
如果有主從復(fù)制且是基于gtid的 要加--set-gtid-purged=off
head -30 2019-09-06.sql |grep MASTER_LOG_FILE ##查看二進制文件所在位置
2.使用二進制文件,生成恢復(fù)文件
二進制開啟方法,在/etc/my.cnf 里添加 log_bin=(這里是路徑名加名稱),現(xiàn)網(wǎng)建議用網(wǎng)絡(luò)盤,這個文件非常重要
先在剛才的備份過的數(shù)據(jù)里再寫點數(shù)據(jù)
這里我用mysql -uroot -p123456 -e 'show master status;' 查看了二進制文件位置已經(jīng)發(fā)生了變化,應(yīng)為我增添了數(shù)據(jù),我們在數(shù)據(jù)庫做的操作都會記錄在二進制日志文件當中,如果數(shù)據(jù)庫蹦了,我們用剛才備份記錄的位置對二進制文件進行恢復(fù),就能取得剛才備份過后到數(shù)據(jù)庫蹦的這一時間的數(shù)據(jù),在加上先前的備份就可以取得完整的數(shù)據(jù)
mysqlbinlog --start-position=245 /var/lib/mysql/log_bin.000008 >logbin.sql
#指定位置,二進制文件位置,恢復(fù)到那個目錄起什么名稱
3.恢復(fù)數(shù)據(jù)庫
2019-09-06.sql 是第一次完整備份的,先恢復(fù)這,再恢復(fù)后面二進制文件生成的備份數(shù)據(jù)。
這樣就完成數(shù)據(jù)完整備份恢復(fù)了,這種自帶的之適用于小型備份,1G以內(nèi)的
1.先安裝
yum install percona-xtrabackup.x86_64 -y
#軟件在epel源里,在部署好epel源
2.完整備份
innobackupex --defaults-file=/etc/my.cnf --user=root --password="" --backup /root
上圖是軟件正確執(zhí)行的返回結(jié)果,成功后root 目錄下會有個以日期命令的目錄,里面就是備份了
3.增量備份
innobackupex --user=root --password= --incremental /root/ --incremental-basedir=/root/2019-09-06_11-33-50
#--incremental /root/ 指定備份的路徑 --incremental-basedir= 這后面寫上次備份的目錄
4.對數(shù)據(jù)做同步,合并增量備份
innobackupex --apply-log --redo-only /root/2019-09-06_11-33-50/
#因為備份需要時間,備份的過程當中新的事物可能沒有同步到數(shù)據(jù)里,這個命令就是把當前的新事物同步到數(shù)據(jù)里,如果是最后一個備份,可做可不做,這邊后面還有一個增量備份,所用必須要做
innobackupex --incremental --apply-log --redo-only /root/2019-09-06_11-33-50/ --incremental-dir=/root/2019-09-06_11-40-39
#將后面增量備份的數(shù)據(jù)附加到完整數(shù)據(jù)里,這樣完整數(shù)據(jù)就包含了第二次備份的數(shù)據(jù)了,恢復(fù)時只恢復(fù)完整數(shù)據(jù)即可,命令第一個路徑是完整備份的路徑
5.恢復(fù)
innobackupex --defaults-file=/etc/my.cnf --copy-back /root/2019-09-06_11-33-50/
#直接恢復(fù)完整備份即可
ps 恢復(fù)的時候,mysql的根目錄不能有文件,需要刪了,恢復(fù)完了注意修改屬主,如果啟動不起來看看sulinux 是否關(guān)閉
1.先配置主節(jié)點配置文件
vim /etc/my.cnf
[mysqld]
skip_name_resolve=ON ##開啟跳過名稱解析
innodb_file_per_table=ON ##開啟獨立表空間
server_id=1 ##ID 唯一
log_bin=log-bin ##開啟二進制日志 必須的
rpl_semi_sync_master_enabled = ON #開機啟動半同步,如果模塊還沒安裝,先注釋掉
從節(jié)點
[mysqld]
skip_name_resolve=ON
innodb_file_per_table=ON
server_id=2
relay_log=relay-log ##開啟中繼日志,從節(jié)點必須開的
rpl_semi_sync_slave_enabled = ON ; #開機啟動半同步,如果模塊還沒安裝,先注釋掉
2.安裝半同步模塊
INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';
#安裝模塊
set global rpl_semi_sync_master_enabled = ON;
#設(shè)置半同步狀態(tài)為啟動 注意如果要讓它自動啟動,要把它寫到配置文件里
SHOW GLOBAL VARIABLES LIKE '%semi%';
#查看狀態(tài)
從節(jié)點
配置下主從
CHANGE MASTER TO MASTER_HOST='192.168.0.14', MASTER_USER='rep', MASTER_PASSWORD='123456', MASTER_LOG_FILE='log_bin.000002', MASTER_LOG_POS=245;
INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';
#安裝從節(jié)點模塊
set global rpl_semi_sync_slave_enabled = ON ;
#啟動模塊
SHOW GLOBAL VARIABLES LIKE '%semi%';
#看下啟動模塊啟動狀態(tài)
start slave;##啟動主從復(fù)制
show slave status\G; #查看主從復(fù)制狀態(tài)
3.查看狀態(tài)
SHOW GLOBAL STATUS LIKE '%semi%'
status 狀態(tài) 為 ON 說明 半同步配置成功
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。