本文目錄一覽:
- 1、MySQL的備份與還原,非常規備份,全量備份,增量備份
- 2、怎麼備份和還原mysql數據庫
- 3、如何使用命令來備份和還原MySQL數據庫
- 4、備份和恢複數據庫的命令
- 5、如何使用mysql數據庫進行備份數據恢復
MySQL的備份與還原,非常規備份,全量備份,增量備份
1:官方百萬級別的測試數據庫:
官方測試數據庫github網址:
下載到目錄,解壓即可,運行命令:
2:自己創建簡單測試數據庫:
快速隨機生成測試語言的網站:
選擇sql和想生成的字段,點擊生成Generate!生成即可。
在MySQL輸入生成的語句即可。
3:測試備份還原時用到的命令
刪庫跑路測試(先備份好)
還原後查詢庫的表數據是否完整。
採用複製整個數據存放目錄
1:查看數據庫數據存放位置
有兩種方法:
1):在數據庫中用命令 show variables like ‘datadir’; 查看
2):在配置文件中查看,配置了 datadir 目錄的可查看。沒有配置的默認為 /var/lib/mysql/ 位置
Linux中查看配置文件
2:複製目錄或者目錄下某個數據庫名
3:還原時直接複製文件夾到數據庫目錄即可
mysqldump又可叫做全量備份。
參數 –databases 同 -B ,單獨一個庫,也可省略。
1、備份命令mysqldump格式
格式:mysqldump -h主機名 -P端口 -u用戶名 -p密碼 database 數據庫名 文件名.sql
備份testDatabase數據庫
2、備份MySQL數據庫為帶刪除表的格式
備份MySQL數據庫為帶刪除表的格式,能夠讓該備份覆蓋已有數據庫而不需要手動刪除原有數據庫。
3、直接將MySQL數據庫壓縮備份
備份並壓縮
4、備份MySQL數據庫某個(些)表
備份testDatabase中的myTable表,不需要用參數 –databases 或者 -B
5、同時備份多個MySQL數據庫
同時備份testDatabase和 employees兩個庫
6、備份服務器上所有數據庫
參數 –all-databases 同 -A
7、還原MySQL數據庫的命令
1) 不指定數據名還原,默認生成原數據庫名稱,還原所有數據庫。
2) 指定數據名還原,還原指定單個數據庫,需在數據庫種預先創建一個testDatabase名稱。
3) 還原壓縮的MySQL數據庫
4) 進入數據庫用source導入
增量備份是針對於數據庫的bin-log日誌進行備份的,增量備份是在全量的基礎上進行操作的。增量備份主要是靠mysql記錄的bin-log日誌。
1:查看是否開啟bin-log日誌
進入mysql輸入命令可查看。
顯示如下為開啟狀態,日誌文件在/var/lib/mysql/以binlog.00001的格式保存。
如未開啟,需要在配置文件種配置
2:查看目前使用的bin-log日誌文件
進入mysql查看命令。
顯示如下,目前使用的是binlog.000022文件,所有操作都記錄在此文件。
查看當前testDatabase的表myTable數據如下,
3:刷新日誌,使用新的日誌文件(備份)
在命令端執行命令
日誌文件從 binlog.000022 變為 binlog.000023
這時相當與已經備份成功,備份文件即為上次的binlog.000022日誌文件。
4:刪除數量,從日誌還原數據
1) 刪除ABC行
查詢以及沒有ABC行列。
2) 恢複數據ABC行
退出mysql,在命令端用mysqlbinlog命令恢復到binlog.000022日誌狀態。
進入數據庫再次查看數據,ABC已經恢復。
增量備份完成。
怎麼備份和還原mysql數據庫
備份數據庫
使用mysqldump命令備份數據庫
還原數據庫
1、使用mysql命令還原數據庫
將game_backup.sql 還原至 game 數據庫:
2、使用source命令還原數據庫
如果數據庫過大,建議可以使用source命令
如何使用命令來備份和還原MySQL數據庫
備份數據庫
使用mysqldump命令備份數據庫
複製代碼代碼如下:
# 如果要將game數據庫進行備份:
mysqldump -u root -p game game_backup.sql
# 如果希望備份所有的數據庫:
mysqldump -u root -p –all-databases all_backup.sql
還原數據庫
1、使用mysql命令還原數據庫
將game_backup.sql 還原至 game 數據庫:
複製代碼代碼如下:
mysql -u root -p game game_backup.sql
2、使用source命令還原數據庫
如果數據庫過大,建議可以使用source命令
複製代碼代碼如下:
mysql source game_backup.sql
備份和恢複數據庫的命令
MySQL 命令行備份
1,進入MySQL目錄下的bin文件夾:cd MySQL中到bin文件夾的目錄
(SHOW VARIABLES LIKE “%char%”; 查看數據庫安裝路徑)
Linux下命令:
[root@linuxsir01 root]# mysqldump -u root -p oa_int /home/oa_20160627.sql
Windows下命令:
C:\Users\Administratormysqldump -u 密碼 -p 數據庫名 d:/oa_int_20160708.sql
MySQL 命令行恢復:
Linux下命令:
[root@linuxsir01 root]# mysql -u root -p oa_int1 /home/oa_20160627.sql
Enter password:在這裡輸入數據庫的密碼
Windows下命令:
C:\Users\Administrator mysql -u root -p 數據庫名(要先創建好數據庫) d:/oa_int_20160708.sql
如何使用mysql數據庫進行備份數據恢復
恢復整個數據庫首先,如果要恢復的數據庫是含有授權表的mysql數據庫,將需要使用–skip-grant-tables選項運行服務器。否則,服務器將抱怨無法找到授權表。在恢復表之後,執行mysqladmin flush-privileges 來告訴服務器加載授權表,並用它們啟動。將原數據庫目錄的內容拷貝到其他的地方。例如,您可能會在稍後用它們進行崩潰表的事後分析檢查(post-mortem examination)。用最新的備份文件重新加載數據庫。如果您打算使用由mysqldump 加載的文件,則需要將它們作為mysql的輸入。如果打算使用從數據庫中直接拷貝的文件(如,用tar 或c p),則將它們直接拷貝回到該數據庫目錄中。但是,在這種情況下,應該在拷貝這些文件之前關閉服務器,然後再重新啟動它。用更新日誌重做在進行備份後又修改了數據庫表的查詢。對於所有可用的更新日誌,可使用它作為mysql的輸入。指定–one-database 選項,使mysql只對想要恢復的數據庫執行查詢。如果您知道需要使用所有的更新日誌文件,可在包含日誌的目錄中使用下列命令:% ls-t-r-l update.(0-9)* | xargs cat | mysql–one-database db_namels 命令產生更新日誌文件的單列列表,更新日誌文件根據服務器生成的順序進行排序(要知道,如果您修改了其中的任何文件,排序的順序都將改變,這將導致更新日誌按錯誤的順序使用)。您很可能必須使用某些更新日誌。例如,如果自備份以來所產生的日誌命名為update.392、pdate.393 等等,可以重新運行它們中的命令:% mysql–one-database db_name updata.392% mysql–one-database db_name updata.393…如果正在運行恢復並打算使用更新日誌恢復由於失策的DROP DATA BASE、DROPTABLE或DELETE 語句而丟失的信息,應確保先從更新日誌中刪除這些語句。恢復單個的表恢復單個表是很困難的。如果有通過mysqldump 生成的備份文件並且它恰好不包含您想要的表數據,則需要抽取相關的行並用它們作為mysql的輸入,這部分較容易。困難的是抽取應用於該表的更新日誌的片段。您會發現: mysql_find_rows 實用程序對這方面有幫助,它可以從更新日誌中抽取多行查詢。另一種可能性是用另一個服務器恢復整個數據庫,然後將所要的該表的文件拷貝到原始數據庫中。這實際很容易!在將文件拷貝回數據庫目錄時,應確保原始數據庫的服務器關閉。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/287401.html