mysql完整備份與恢復

2022-05-26 01:06:13 字數 1852 閱讀 4889

1、備份單個資料庫

mysql資料庫自帶了乙個很好用的備份命令,就是mysqldump,他的基本使用如下:

語法:mysqldump -u 使用者名稱 -p 資料庫名 > 備份的檔名

備份一

1、備份:mysqldump -uroot -p'*****' test >/opt/test_bak.sql

2、檢視備份資料的內容 egrep -v "#|\*|--|^$" /opt/test_bak.sql

3、為了方便測試可以考慮將原來的表刪除:mysql -uroot -p'*****' -e "use test;dorp table test;"

4、恢復:mysql -uroot -p'*****' test /opt/test_bak.sql 加了-b之後作用,增加了建立資料庫和連線資料庫的命令,加了比較好,-b可以指定多個庫備份

2、恢復:mysql -uroot -p'*****' /opt/test_bak.sql.gz 壓縮備份

備份四1、備份:mysqldump -uroot -p'*****' -b test1 test2 |gzip >/opt/test_bak.sql 備份多個庫

分庫備份:

有時乙個企業的資料庫裡會有多個庫,但是出問題的時候很可能是某乙個庫,如果在備份時把所有的庫都備份成了乙個資料檔案的話,恢復某乙個庫的資料時就比較麻煩了,所有-b是備份到乙個資料檔案裡面的。

2、備份表

語法:mysqldump -u使用者名稱 -p密碼 資料庫名 表名1 表2>備份的檔名 後面可以加若干個表

分表備份:

每個表單獨備份,而不是所有統一備份

備份表結構:

mysqldump -u使用者名稱 -p密碼 -d 資料庫 表 >備份檔案

備份資料:

mysqldump -u使用者名稱 -p密碼 -t 資料庫 表 >備份檔案

備份整個資料庫,所有的東西

mysqldump -u使用者名稱 -p密碼 -a -b --events|gzip >檔案 -a是所有的東西

3、插曲

啟用bin-log時,需要在配置檔案裡面開啟

-f重新整理bin-log,切割bin-log,不恢復老資料,恢復新資料

--master-data=1 找到bin-log的位置,與-f的功能是一樣的 =2的時候會加上注釋

#鎖表-x 鎖表

-l 唯讀鎖表

--single-transaction 適合innodb事務資料庫備份,通常用它來保證備份的一致性,實際上它的工作原理是設定本次會話的隔離級別為:repeatable read,以確保本次會話dump時,不會看到其他會話已經提交了的資料

4、乙個完整的備份過程

myisam引擎:mysqldump -uroot -p123 -a -b --master-data=2 -f -x --events|gzip >/opt/test.sql.gz

innodb:mysqldump -uroot -p123 -a -b --master-data=2 -f --single-transaction --events|gzip >/opt/test.sql.gz

如果是混合引擎就以myisam為主

5、恢復

1、source 恢復

進入mysql

source /opt/13123.sql

2、標準的恢復命令mysql

mysql -uroot -p123 oldboy < /opt/13123.sql

壓縮了的需要先解壓

gzip -d mysql.sql.gz -d就是將檔案儲存為當前的名字,去掉gz

mysql完整備份策略

備份頻率 備份方式 儲存期限 每小時一次 日誌備份 30天每天一次 增量30天 每週一次 全量4周 每月一次 全量6月 每年一次 全量2年 儲存方式 本地 異地 bin bash etc profile week date a today date y m d month date d y m01 ...

mysql完整備份案例

vim etc my.cnf 修改配置檔案使其支援漢字 修改內容 systemctl restart mariadb 重啟服務 create database client default charset utf8 若配置檔案沒有生效則刪除已建立的庫,重新在建立庫時進行修改 drop databas...

MySQL完整備份和恢復資料庫

1 問題背景 使用mysqldump命令可以方便的對資料庫進行備份,如下 mysqldump uroot p test test.sql 上述命令表示將test資料庫備份到test.sql檔案中。備份完成後,我們開啟test.sql檔案,可以看到在這個sql檔案中包含了建立test資料庫中所有表及資...