mysql四種備份 MYSQL四種備份方法概述

2021-10-18 03:24:48 字數 2847 閱讀 7544

mysql資料庫備份主要有4種方法:

1、mysqldump

2、直接拷貝(cp、tar,gzip,cpio)

3、sqlhotcopy

4、同步複製

1、mysqldump備份:

mysqldump生成能夠移植到其它機器的文字檔案,預設地,檔案內容包含建立正在傾倒的表的create語句和包含表中行資料的insert語句。也就是說,mysqldump產生的輸出可在以後用作mysql的輸入來重建資料庫。mysqldump比直接拷貝要慢些。

使用直接拷貝,如果正在備份的表正被讀寫就容易導致表損壞,而且不建議對isam表使用直接拷貝的方法來備份,因為isam表只能在相似的硬體結構的機器上拷貝。

使用方法:mysqldump [options] database [tables]

輸出檔案的開頭看起來象這樣:

# mysql dump 6.0

# host: localhost database: samp_db

# server version 3.23.2-alpha-log

# table structure for table 'absence'

create table absence(

student_id int(10) unsigned default '0' not null,

date date default '0000-00-00' not null,

primary key (student_id,date)

# dumping data for table 'absence'

insert into absence values (3,'1999-09-03');

insert into absence values (5,'1999-09-03');

insert into absence values (10,'1999-09-08');

檔案剩下的部分有更多的insert和create table語句組成。

例:%mysqldump samp_db >/opt/mysqldatabak/samp_db.2006-5-15

%mysqldump samp_db | gzip >/usr/archives/mysql/samp_db.1999-10-02.gz #產生壓縮備份

%mysqldump samp_db student score event absence >grapbook.sql #備份資料庫的某些表

%mysqladmin -h boa.snake.net create samp_db

%mysqldump samp_db | mysql -h boa.snake.net samp_db #直接恢復到另乙個伺服器上使用

--add-drop-table選項告訴伺服器將drop table if exists語句寫入備份檔案,

--這樣當我們以後用來恢復資料庫時,如果表已經存在,你不會得到乙個錯誤。

%mysqldump --add-drop-table samp_db | mysql -h boa.snake.net samp_db

mysqldump其它有用的選項包括:

如果你使用--flush-logs設定檢查點到備份時,有可能最好是傾倒整個資料庫。如果你傾倒單獨的檔案,較難將更新日誌檢查點與備份檔案同步。在恢復期間,你通常按資料庫為基礎提取更新日誌內容,對單個表沒有提取更新的選擇,所以你必須自己提取它們。

用--opt實施備份可能是最常用的方法,因為備份速度上的優勢。然而,要警告你,--opt選項確實有代價,--opt優化的是你的備份過程,不是其他客戶對資料庫的訪問。--opt選項通過一次鎖定所有表阻止任何人更新你正在傾倒的任何表。你可在一般資料庫訪問上很容易看到其效果。

乙個具有--opt的相反效果的選項是--dedayed。該選項使得mysqldump寫出insert delayed語句而不是insert語句。如果你將資料檔案裝入另乙個資料庫並且你想使這個操作對可能出現在該資料庫中的查詢的影響最小,--delayed對此很有幫助。

--compress選項在你拷貝資料庫到另一台機器上時很有幫助,因為它減少網路傳輸位元組的數量。下面有乙個例子,注意到--compress對與遠端主機上的伺服器通訊的程式才給出,而不是對與本地主機連線的程式:

%mysqldump --opt samp_db | mysql --compress -h boa.snake.net samp_db

mysqldump有很多其它選項,詳見《mysql參考手冊》。

2 使用直接拷貝資料庫備份

典型的如cp、tar或cpio實用程式。

當你使用直接備份方法時,必須保證表不在被使用。如果伺服器在你正在拷貝乙個表時改變它,拷貝就失去意義。

保證你的拷貝完整性的最好方法是關閉伺服器,拷貝檔案,然後重啟伺服器。如果你不想關閉伺服器,要在執行表檢查的同時鎖定伺服器。如果伺服器在執行,相同的制約也適用於拷貝檔案,而且你應該使用相同的鎖定協議讓伺服器「安靜下來」。

當你完成了備份時,需要重啟伺服器(如果關閉了它)或釋放加在表上的鎖定(如果你讓伺服器執行)。

要用直接拷貝檔案把乙個資料庫從一台機器拷貝到另一台機器上,只是將檔案拷貝到另一台伺服器主機的適當資料目錄下即可。要確保檔案是myiasm格式或兩台機器有相同的硬體結構,否則你的資料庫在另一台主機上有奇怪的內容。你也應該保證在另一台機器上的伺服器在你正在安裝資料庫表時不訪問它們。

3 mysqlhotcopymy

sqlhotcopy -u $dbuser -p $dbpasswd $dbname $dumpfile

mysqlhotcopy備份會自動鎖定正要備份的表

4複製資料庫(replicating database)

複製(replication)類似於拷貝資料庫到另一台伺服器上,但它的確切含義是實時地保證兩個資料庫的完全同步。3.23版之後支援該功能。

mysql四種備份 MYSQL四種備份方法概述

mysql資料庫備份主要有4種方法 1 mysqldump 2 直接拷貝 cp tar,gzip,cpio 3 sqlhotcopy 4 同步複製 1 mysqldump備份 mysqldump生成能夠移植到其它機器的文字檔案,預設地,檔案內容包含建立正在傾倒的表的create語句和包含表中行資料的...

mySql四種引擎

1 engine innodb innodb資料庫引擎是對外鍵,事務進行過優化。我們對建立所有的表都使用innodb引擎。這是錯誤的,應該對每乙個表的用途對應乙個不同的資料庫引擎。2 engine myisam myisam型別不支援事務處理等高階處理。myisam型別的表強調的是效能,其執行數度比...

Mysql四種模糊查詢

下面介紹mysql中模糊查詢的四種用法 1,表示任意0個或多個字元。可匹配任意型別和長度的字元,有些情況下若是中文,請使用兩個百分號 表示。比如 select from user where u name like 三 將會把u name為 張三 張貓三 三腳貓 唐三藏 等等有 三 的記錄全找出來。...