日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql备份与还原

發布時間:2025/6/17 数据库 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql备份与还原 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、備份常用操作基本命令

1、備份命令mysqldump格式

???格式:mysqldump?-h主機名??-P端口?-u用戶名?-p密碼?–database?數據庫名?>?文件名.sql?

2、備份MySQL數據庫為帶刪除表的格式

備份MySQL數據庫為帶刪除表的格式,能夠讓該備份覆蓋已有數據庫而不需要手動刪除原有數據庫。

mysqldump??--add-drop-table?-uusername?-ppassword?-database?databasename?>?backupfile.sql

3、直接將MySQL數據庫壓縮備份

mysqldump?-hhostname?-uusername?-ppassword?-database?databasename?|?gzip?>?backupfile.sql.gz

4、備份MySQL數據庫某個(些)表

mysqldump?-hhostname?-uusername?-ppassword?databasename?specific_table1?specific_table2?>?backupfile.sql

5、同時備份多個MySQL數據庫

mysqldump?-hhostname?-uusername?-ppassword?–databases?databasename1?databasename2?databasename3?>?multibackupfile.sql僅僅備6、僅備份份數據庫結構

mysqldump?–no-data?–databases?databasename1?databasename2?databasename3?>?structurebackupfile.sql

7、備份服務器上所有數據庫

mysqldump?–all-databases?>?allbackupfile.sql

8、還原MySQL數據庫的命令

mysql?-hhostname?-uusername?-ppassword?databasename?<?backupfile.sql

9、還原壓縮的MySQL數據庫

gunzip?<?backupfile.sql.gz?|?mysql?-uusername?-ppassword?databasename

10、將數據庫轉移到新服務器

mysqldump?-uusername?-ppassword?databasename?|?mysql?–host=*.*.*.*?-C?databasename

11、--master-data?和--single-transaction

???在mysqldump中使用--master-data=2,會記錄binlog文件和position的信息?。--single-transaction會將隔離級別設置成repeatable-commited

12、導入數據庫

常用source命令,用use進入到某個數據庫,mysql>source?d:\test.sql,后面的參數為腳本文件。

13、查看binlog日志

查看binlog日志可用用命令?mysqlbinlog??binlog日志名稱|more

?

14、general_log

General_log記錄數據庫的任何操作,查看general_log?的狀態和位置可以用命令show?variables?like?"general_log%"??,開啟general_log可以用命令set?global?general_log=on

二、增量備份

小量的數據庫可以每天進行完整備份,因為這也用不了多少時間,但當數據庫很大時,就不太可能每天進行一次完整備份了,這時候就可以使用增量備份。增量備份的原理就是使用了mysql的binlog志。

?

1、首先做一次完整備份:

mysqldump?-h10.6.208.183?-utest2?-p123??-P3310?--single-transaction??--master-data=2??test>test.sql這時候就會得到一個全備文件test.sql

在sql文件中我們會看到:
--?CHANGE?MASTER?TO?MASTER_LOG_FILE='bin-log.000002',?MASTER_LOG_POS=107;是指備份后所有的更改將會保存到bin-log.000002二進制文件中。
2、在test庫的t_student表中增加兩條記錄,然后執行flush?logs命令。這時將會產生一個新的二進制日志文件bin-log.000003,bin-log.000002則保存了全備過后的所有更改,既增加記錄的操作也保存在了bin-log.00002中。

3、再在test庫中的a表中增加兩條記錄,然后誤刪除t_student表和a表。a中增加記錄的操作和刪除表a和t_student的操作都記錄在bin-log.000003中。

?

三、恢復

1、首先導入全備數據

mysql?-h10.6.208.183?-utest2?-p123??-P3310?<?test.sql,也可以直接在mysql命令行下面用source導入

2、恢復bin-log.000002

???mysqlbinlog?bin-log.000002?|mysql?-h10.6.208.183?-utest2?-p123??-P3310??

3、恢復部分?bin-log.000003

???在general_log中找到誤刪除的時間點,然后更加對應的時間點到bin-log.000003中找到相應的position點,需要恢復到誤刪除的前面一個position點。

可以用如下參數來控制binlog的區間

--start-position?開始點?--stop-position?結束點

--start-date?開始時間??--stop-date??結束時間

找到恢復點后,既可以開始恢復。

??mysqlbinlog?mysql-bin.000003?--stop-position=208?|mysql?-h10.6.208.183?-utest2?-p123??-P3310?

轉載于:https://www.cnblogs.com/wangsongbai/p/10493693.html

總結

以上是生活随笔為你收集整理的mysql备份与还原的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。