下面是備份乙個資料庫的例子:
1、備份前讀鎖定涉及的表
mysql>lock tables tbl1 read,tbl1 read,…
如果,你在mysqldump
實用程式中使用
--lock-tables
選項則不必使用如上
sql語句。
2、匯出資料庫中表的結構和資料
shell>mysqldump --opt db_name>db_name.sql
3、啟用新的更新日誌
shell>mysqladmin flush-logs
這樣可以記錄你備份後的資料改變為恢復資料準備。
4、解除表的讀鎖
mysql>unlock tables;
為了加速上述過程,你可以這樣做:
shell> mysqldump --lock-tables --opt db_name>db_name.sql; mysqladmin flush-logs
但是這樣可能會有點小問題。上命令在啟用新的更新日誌前就恢復表的讀鎖,
在更新繁忙的站點,可能有備份後的更新資料沒有記錄在新的日誌中。
現在恢復上面備份的資料庫
1、對涉及的表使用寫鎖
mysql>lock tables tbl1 write,tbl1 write,…
2、恢復備份的資料
shell>mysql db_name < db_name.sql
3、恢復更新日誌的內容
shell>mysql --one-database db_name < hostname.nnn
假設需要使用的日誌名字為hostname.nnn
4、啟用新的更新日誌
shell>mysqladmin flush-logs
5、解除表的寫鎖
mysql>unlock tables;
希望上面的例子能給你啟發,因為備份資料的手法多種多樣,你所使用的和上面所述可能大不一樣,但是對於備份和恢復中,表的鎖定、啟用新的更新日誌的時機應該是類似的,仔細考慮這個問題。
思考題請在完成這些思考題之前,啟用常規日誌和更新日誌,因為下面的思考題將涉及到這個問題。
1、使用帶有帶有
--all-databases
選項的mysqldump
實用程式,備份你現有的所有資料到乙個檔案
all.sql
中(如果你的資料不太多的話),檢視輸出的
sql語句。
2、使用帶有
--ab
選項的mysqldump
,把你的
test
資料庫中的表結構和資料分別備份到乙個目錄中。檢查一下生成的
sql語句與上題中備份檔案中的有什麼不同。
3、建立乙個新的資料庫
test1
,把上題的備份檔案恢復到該資料庫中。請簡述一下過程。
4、檢視你的更新日誌和常規日誌,看看上述操作是否都留下了記錄以及留下了什麼記錄。
5、先在
test
資料庫中的任意乙個表中
insert
乙個記錄,然後在刪除這個記錄。(目的是在更新日誌中留下記錄。)刪除資料庫
test1
,試試如何從更新日誌恢復
test1
資料庫。
MYSQL 備份恢復資料
mysql命令列匯出資料庫 1,進入mysql目錄下的bin資料夾 cd mysql中到bin資料夾的目錄 如我輸入的命令列 cd c program files mysql mysql server 4.1 bin 或者直接將windows的環境變數path中新增該目錄 2,匯出資料庫 mysql...
mysql的日誌和備份 恢復資料
查詢日誌 2.慢查詢日誌 3.二進位制日誌 vim etc my.cnf 開啟 log bin mysql bin binlog日誌,即binary log,是二進位制日誌檔案,有兩個作用,乙個是增量備份,另乙個是主從複製,即主節點維護乙個binlog日誌檔案,從節點從binlog中同步資料,也可以...
MySql 備份與恢復資料庫
以下內容與上篇文章有些許關聯,如有需要請閱讀上篇文章 mysql 增刪改查 crud 以及亂碼編碼解決 2 1.備份 如果當前在運算元據庫,那麼請先退出使用命令 quit 然後使用命令 mysqldump u root p mydb2 c mydb2.sql 該句 的意思就是把資料庫 mydb2 備...