備份是最簡單的保護資料的方法,本節將介紹多種備份方法。為了得到乙個一致的備份,在相關的表上做乙個lock tables,你只需乙個讀鎖定,當你在資料庫目錄中做檔案的乙個拷貝時,這允許其他執行緒繼續查詢該錶;當你恢復資料時,需要乙個寫鎖定,以避免衝突。
ad:
備份是最簡單的保護資料的方法,本節將介紹多種備份方法。為了得到乙個一致的備份,在相關的表上做乙個lock tables,你只需乙個讀鎖定,當你在資料庫目錄中做檔案的乙個拷貝時,這允許其他執行緒繼續查詢該錶;當你恢復資料時,需要乙個寫鎖定,以避免衝突。
使用sql語句備份和恢復
你可以使用select into outfile語句備份資料,並用load data infile語句恢復資料。這種方法只能匯出資料的內容,不包括表的結構,如果表的結構檔案損壞,你必須要先恢復原來的表的結構。
語法:select * into 'file_name' from tbl_name
load data [low_priority] [local] infile 'file_name.txt' [replace | ignore]
into table tbl_name
select ... into outfile 'file_name'格式的select語句將選擇的行寫入乙個檔案。檔案在伺服器主機上被建立,並且不能是已經存在的(不管別的,這可阻止資料庫表和 檔案例如「/etc/passwd」被破壞)。select ... into outfile是load data infile逆操作。
為了安全原因,當讀取位於伺服器上的文字檔案時,檔案必須處於資料庫目錄或可被所有人讀取。另外,為了對伺服器上檔案使用load data infile,在伺服器主機上你必須有file的許可權。使用這種select into outfile語句,在伺服器主機上你必須有file許可權。
當在伺服器主機上尋找檔案時,伺服器使用下列規則:
◆如果給出乙個絕對路徑名,伺服器使用該路徑名。
◆如果給出乙個有乙個或多個前置部件的相對路徑名,伺服器相對伺服器的資料目錄搜尋檔案。
◆如果給出乙個沒有前置部件的乙個檔名,伺服器在當前資料庫的資料庫目錄尋找檔案。
假定表tbl_name具有乙個primary key或unique索引,備份乙個資料表的過程如下:
1、鎖定資料表,避免在備份過程中,表被更新
mysql>lock tables read tbl_name;
2、匯出資料
mysql>select * into outfile 『tbl_name.bak』 from tbl_name;
3、解鎖表
mysql>unlock tables;
相應的恢復備份的資料的過程如下:
1、為表增加乙個寫鎖定:
mysql>lock tables tbl_name write;
2、恢復資料
mysql>load data infile 『tbl_name.bak』
->replace into table tbl_name;
如果,你指定乙個low_priority關鍵字,就不必如上要對錶鎖定,因為資料的匯入將被推遲到沒有客戶讀表為止:
mysql>load data low_priority infile 『tbl_name』
->replace into table tbl_name;
3、解鎖表
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 bin log 恢復資料表
今天公司一同事使用典型的 update 不帶 where 語句 誤操作把資料庫中一張極重要資料表 player 給 做掉了 還算幸運的是該資料庫每3個月會完整備份一次,最近一次的備份點為6月30日,再加上 bin log 保留了30天的資料,可以根據這兩份資料還原資料表的內容。方法看上去非常簡單清晰...