溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

MySQL備份與還原

發(fā)布時(shí)間:2020-07-08 12:35:05 來源:網(wǎng)絡(luò) 閱讀:489 作者:王非雨 欄目:MySQL數(shù)據(jù)庫

MySQL備份與還原

一、數(shù)據(jù)備份

1.備份方式

1)全量備份:對(duì)數(shù)據(jù)庫完整的備份

2)增量備份:從最后一次備份后改變的文件

3)差異備份:在最后一次完整后被修改的文件

建議:全量+增量=1月全量,1周增量

2.備份分類

1)物理備份

冷備份:關(guān)閉數(shù)據(jù)后

熱備份:數(shù)據(jù)運(yùn)行狀態(tài)時(shí)

2)邏輯備份

對(duì)邏輯對(duì)象(表、庫)備份

二、完整備份

1.特性

1)數(shù)據(jù)完整

2)數(shù)據(jù)較龐大

3)時(shí)間長(zhǎng),重復(fù)性數(shù)據(jù)

打包、cp、mysqldump

案例:

1.準(zhǔn)備數(shù)據(jù)

//新建hehe數(shù)據(jù)庫 mysql> create database hehe;
MySQL備份與還原

//向hehe數(shù)據(jù)庫添加a表和格式 mysql>create table hehe.a(user char(4),password char(8),primary key(user));
MySQL備份與還原

//插入表內(nèi)數(shù)據(jù) mysql> insert into hehe.a values('Zhangs','123');
MySQL備份與還原

//插入表內(nèi)數(shù)據(jù) mysql> insert into hehe.a values('Lisi','123');
MySQL備份與還原

2.備份

方式一:(冷備份)

//關(guān)閉數(shù)據(jù)庫 /etc/init.d/mysqld stop
MySQL備份與還原

//備份數(shù)據(jù)庫 tar -zcvf /root/mysql.bak /usr/local/mysql/data/
MySQL備份與還原

方式二:(熱備份)

mysqldump -u root -p --all-database >/root/mysql.sql //熱備份,數(shù)據(jù)庫不需停止,備份所有數(shù)據(jù)庫
MySQL備份與還原

方式三:(壓縮鎖表熱備份)

//使用壓縮方式來做數(shù)據(jù)庫熱備份
mysqldump -h localhost -uroot -p --opt --single-transaction 庫名 | gzip > 庫名.sql.gz

//導(dǎo)入數(shù)據(jù)庫
gzip -dc 庫名.sql.gz | mysql -uroot -p 數(shù)據(jù)庫密碼

注:以上熱備份方式三最為安全!

3.模擬故障

//誤刪除hehe數(shù)據(jù)庫 mysql> drop database hehe;
MySQL備份與還原

4.恢復(fù)

方式一:(冷恢復(fù))

//關(guān)閉數(shù)據(jù)庫 /etc/init.d/mysqld stop
MySQL備份與還原

//tar -zxvf /root/mysql.bak -C /
MySQL備份與還原

方式二:(熱恢復(fù))

//進(jìn)入數(shù)據(jù)執(zhí)行命令 mysql> source /root/mysql.sql
MySQL備份與還原

方式三:(熱恢復(fù))

//恢復(fù)數(shù)據(jù)mysql -u root -p < /root/mysql.sql
MySQL備份與還原

三、增量備份

1.Mysql不自帶增量備份方式,需通過Binary logs(記錄所有更改操作)實(shí)現(xiàn)增量

案例:

1)準(zhǔn)備數(shù)據(jù)(同上準(zhǔn)備數(shù)據(jù))
MySQL備份與還原

2)開啟二進(jìn)制日志

//編輯MySQL數(shù)據(jù)庫配置文件 vim /etc/my.cnf
MySQL備份與還原
MySQL備份與還原
MySQL備份與還原

//重啟MySQL服務(wù) /etc/init.d/mysqld restart
MySQL備份與還原

3.完整備份

方式一:(冷備份)

/etc/init.d/mysqld stop
MySQL備份與還原

//備份數(shù)據(jù)庫 tar -zcvf /root/mysql.bak /usr/local/mysql/data/
MySQL備份與還原

方式二:(熱備份)

mysqldump -u root -p --all-database >/root/mysql.sql //熱備份,數(shù)據(jù)庫不需停止,備份所有數(shù)據(jù)庫
MySQL備份與還原

4.數(shù)據(jù)增加

//查看二進(jìn)制文件 ls /usr/local/mysql/data/
MySQL備份與還原

//截取二進(jìn)制文件準(zhǔn)備增加數(shù)據(jù) mysqladmin -u root -p flush-logs
MySQL備份與還原

//查看二進(jìn)制文件 ls /usr/local/mysql/data/
MySQL備份與還原

//登錄數(shù)據(jù)庫添加數(shù)據(jù) mysql> insert into hehe.a values('wang','123');
MySQL備份與還原

//生成一個(gè)新的二進(jìn)制文件 mysql> flush log;
MySQL備份與還原

//退出數(shù)據(jù)庫查看 ls /usr/local/mysql/data/
MySQL備份與還原

5.增量備份(需要還原的數(shù)據(jù)都在mysql-bin.000032這里)

//拷貝增加的數(shù)據(jù) cp /usr/local/mysql/data/mysql-bin.000032 /root/
MySQL備份與還原

//查看/root/目錄 (如以下情況已經(jīng)成功備份新增加數(shù)據(jù))
MySQL備份與還原

6.數(shù)據(jù)刪除

//登陸數(shù)據(jù)庫誤刪除 mysql> delete hehe.a from haha.a where user='lisi';
MySQL備份與還原

7.增量還原

//還原刪除的新增數(shù)據(jù)mysqlbinlog mysql-bin.000018 | mysql -u root -p
MySQL備份與還原

//查看數(shù)據(jù)庫 select * from hehe.a;
MySQL備份與還原
注:增量還原成功

8.驗(yàn)證

//登錄數(shù)據(jù)庫查看數(shù)據(jù)是否還原 mysql> select * from hehe.a;
MySQL備份與還原
注:如果做增量數(shù)據(jù)備份一定在增量前截取二進(jìn)制數(shù)據(jù),在備份完成時(shí)應(yīng)再次截取二進(jìn)制數(shù)據(jù),切記一旦數(shù)據(jù)丟失所需要還原的增量數(shù)據(jù)為增量前截取的二進(jìn)制數(shù)據(jù)

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI