#mysqldump mydb ---備份mydb數(shù)據(jù)庫(kù)
#mysqldump mydb |less---查看數(shù)據(jù)庫(kù)內(nèi)容
#mysqldump mydb > /tmp/mydb-fullbackup-$(date +%F-%H-%M-%S)
#ls tmp
#mysql
create DATABASE TESTDB;
exit
#mysql< /TMP/mydb-fullbackup_200
#mysql testdb</tem/mydb-fullbackuo-2017-
#mysql
Use testdb;
Show tables;
SELECT * FROM students ;
Exit
(熟悉命令)
myisam存儲(chǔ)引擎;支持溫備岖寞,備份時(shí)要鎖定表抡四;
-x, --lock-all-tables;鎖定所有庫(kù)的所有表;
-l, --lock-tables:鎖定指定庫(kù)所有表仗谆;
InnaDB存儲(chǔ)引擎指巡;支持溫備或熱備;
--single-transaction;創(chuàng)建一個(gè)事物隶垮,基于此快照?qǐng)?zhí)行備份藻雪;
第二節(jié)點(diǎn);
創(chuàng)建數(shù)據(jù)庫(kù)狸吞;
Mysql;
#CRANT ALL ON *.* TO 'admin'@'172.16.0.%' IDENTIFIED BY 'admin';
#FLUSH PRIVILEGES;
#GRANT ALL ON *.* TO 'admin'@'%magedu.com' IDENTIFIED BY 'admin';
#FLUSH PRIVILEGES;
#EXIT
節(jié)點(diǎn)一勉耀;
Mysql -uadmin -172.16.0.68 -padmin < /tmp/mydb-testdb-mysql-fullbackup-2017-…..
節(jié)點(diǎn)二;
#mysql
SHOW DATABASES;
節(jié)點(diǎn)一蹋偏;
#mysql;
Use mydb;
SHOW TABLE STATUS\G ----查看存儲(chǔ)引擎命令便斥;
SHOW TABLE STATUS WHERE Engine='Innodb'\G---過(guò)濾出Innodb存儲(chǔ)引擎;
SHOW TABLE STATUS WHERE Engine!='Innodb'\G;----列出除Innodb引擎外的威始;
沒(méi)有除Innodb的引擎枢纠,就可以進(jìn)行熱備;
Mysqldump --single-transaction --databases mydb----適用于單一的事物黎棠;----備份完成后自動(dòng)關(guān)閉鎖提交事務(wù)晋渺;
熱備,不影響線上業(yè)務(wù)脓斩;
也可以使用溫備木西;
-x 鎖定所有庫(kù)的表;
-l 鎖定指定庫(kù)的所有表俭厚;
在線的熱備必須加選項(xiàng).
其它選項(xiàng)户魏;
-R,--routines; 備份指定庫(kù)的存儲(chǔ)過(guò)程和儲(chǔ)存函數(shù)挪挤;
--triggers 叼丑; 備份指定庫(kù)的觸發(fā)器;
-E,--events 扛门; 備份指定庫(kù)的事件調(diào)度器鸠信;
--master-data 此選項(xiàng)將備份的位置記錄并將回放時(shí)自動(dòng)從記錄的位置往后回放;
--flush-logs; 恢復(fù)完成后在mysql二進(jìn)制日志中自動(dòng)滾動(dòng)论寨,生成新的二進(jìn)制日志星立;
完整備份方式爽茴;
節(jié)點(diǎn)一;
1绰垂、連接mysql;
#mysql
FLUSH TABLE WITH READ LOCK; ----鎖定所有庫(kù)
FLUSH LOGS; ----滾動(dòng)一下二進(jìn)制日志數(shù)據(jù)庫(kù)
SHOW MASTER LOGS; -----查看二進(jìn)制日志有幾個(gè)室奏;
SHOW MASTER STATUS; ------現(xiàn)在處于那個(gè)文件的那個(gè)位置
Exit;
在命令行;
#mysqldump -x -R -E --triggers --all-databases --master-data=1||2 |less ----可以查看執(zhí)行后的內(nèi)容劲装;
1為創(chuàng)建數(shù)據(jù)庫(kù)
2為注釋掉胧沫;
#mysqldump -x -R -E --triggers --all-databases --master-data=2 --flush-logs > /tmp/alldatabases-fullbackup-$(date +%F-%H-%M-%S)
#less /tmp/alldatabases-fullbackup-$(date +%F-%H-%M-%S -----查看備份的文件內(nèi)容
連入數(shù)據(jù)庫(kù);
#mysql
Use mydb
CREATE TABLE teachers (tid INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,name VARCHAR(200));
INSERT INTO teachers (name) VALUES ('ouyang feng '),('song jiang');
HSOW MASTER STATUS
EXIT
#SYStemctl stop mariadb
#Cd /var/lib/mysql
#ll
#mysqlbinlog master-log.000005----讀一下二進(jìn)制文件占业;
在此前備份時(shí)以滾動(dòng)過(guò)一次绒怨,所以000005二進(jìn)制日志為新的二進(jìn)制文件,備份時(shí)只需將000005二進(jìn)制文件備份即可谦疾;
#mysqlbinlog master-log.000005> /tem/alldatabase-binlog
模擬服務(wù)器崩潰南蹂;
#Rm -rf /var/bin/mysql/*
#cd /var/bin/mysql
#ll
#systemctl start mariadb
連入mysql;
#mysql
SHOW DATABASES;
當(dāng)將備份文件寫入時(shí),不需要寫入操作的二進(jìn)制日志念恍,將二進(jìn)制日志關(guān)閉六剥;
Set @@session.sql_log_bin=OFF
\. /tmp/alldatabases-fullbackup-$(date +%F-%H-%M-%S ----將備份的文件導(dǎo)入;
再將另一個(gè)二進(jìn)制日志000005峰伙,導(dǎo)入到mysql中仗考;
Set @@session.sql_log_bin=OFF
\. /tmp/alldatabases-fullbackup-000005
Use mydb
SHOW TABLES;
SELECT * FROM teachers;
Exit;
命令行;
Vim /etc/my.cf.d/server.cnf
將二進(jìn)制文件啟用词爬;
二進(jìn)制日志文件秃嗜,可以再配置文件中修改啟停,也可以在mysql連接中使用顿膨;
Set @@session.sql_log_bin=ON||OFF
恢復(fù)完成锅锨;