[討論]不建議的 MySQL 資料備份方式

Webmasters Discussion
站長們到此分享架站甘苦、管理心得等;歡迎大家多多提出意見喔!
(請勿發表任何跟站長經驗分享不相干的文章,違者砍文)

版主: 版主管理群

chiouss
竹貓忠實會員
竹貓忠實會員
文章: 1741
註冊時間: 2002-11-29 18:19

[討論]不建議的 MySQL 資料備份方式

文章 chiouss »

包括我自己還有一些認識的人在內,很多人都知道 MySQL 的備份可以透過把 mysql\data\ 這個目錄複製起來 (UN*X 的話可能是 /var/db/mysql/ 之類的) 來達到目的,甚至有人曾經寫過用 rsync 來同步多台 mysql server database 的文章,然而這是個不被官方接受的備份方式...儘管我以前也是這樣幹的 :P

MySQL 從 3.23 變到 4.0 的變化之一就是讓預設的 db 格式變成 InnoDB (3.23 的後期版本要使用 mysql-max 才支援),這種格式的好處是可以支援更多的正式 SQL 指令,像是 foreign key (有接觸比較多資料庫的人應該會知道,MySQL 還有很多正式的 SQL 指令沒有支援到),根據我的經驗,使用這種格式的資料庫,如果你把其中一個 database (也就是你 mysql/data/ 裡面的一個目錄) 備份覆蓋回去的話,可能會在讀取或是寫入的時候出現錯誤。Manual 裡面是有提過 InnoDB 如果要做 "binary backup" 的話要怎麼做,但是 backup 章節裡面還是只有寫 mysqldump 這種正統的用法 -- 當然,你也要使用正確。

直接用 mysql/data/ 來備份還有一個問題,通常是發生在 major version upgrade 的時候 (ex. 3.23 -> 4.0),mysql 本身的資料欄位有更動或是新增,這時候直接使用這種備份有時候會遇到寫入資料的時候沒有 default value 的問題,我碰了好幾次。用 sql 備份的時候 default value 會在你 import sql 進去的時候自動加上,就不會有這個問題。

我只碰過以上兩種錯誤的 case,提出來和大家分享。雖然我也知道 4.1 以後的 charset 問題讓大家用起來很頭大,但是我覺得還是用 sql 備份比較妥當,當然你也可以兩個都做。 :)
chiouss
竹貓忠實會員
竹貓忠實會員
文章: 1741
註冊時間: 2002-11-29 18:19

文章 chiouss »

對了,InnoDB 只有在 mysql server 停止的時候才可以備份喔...
舊的 MyISAM 也是建議在 lock table 的情況下作備份...
進藤光
星球公民
星球公民
文章: 291
註冊時間: 2005-03-16 18:48
來自: BNW 時尚資訊網
聯繫:

文章 進藤光 »

嗯嗯~直接 copy 檔案的備份方式確實是不太好...
不過呢,mysqldump 只幫你備份出來,要自動 restore 那就....
而且還希望兩台 SQL Server 都能同步的話,就更 OOXX 了.... XD

底下是他們寫給我的最新一封回信,之前的就不用貼囉~很顯然,我果然又遇到 Bug 了~我老是遇到一堆 Bug... XD
看樣子得等到 MySQL Administrator 1.2.5 或是 1.3 版才能解決我的問題,這樣子直接用 MySQL Administrator 設定的自動備份應該就能使用了... 希望啦~
ID: 22318
Updated by: Vladimir Kolesnikov
Reported by: Brent Su
Category: MySQL Administrator
Severity: S2 (Serious)
-Status: In progress
+Status: Closed
Version: 1.2.3 RC
Operating System: Mac OS X Server 10.4.7
Tags: MySQL Administrator 1.2.3 RC
Assigned To: Vladimir Kolesnikov

[19 Oct 16:32] Vladimir Kolesnikov

Thank you for your bug report. This issue has been committed to our
source repository of that product and will be incorporated into the
next release.

If necessary, you can access the source repository and build the latest
available version, including the bug fix. More information about
accessing the source trees is available at

http://dev.mysql.com/doc/en/installing-source.html
※架設伺服器主機:Mac mini G4-1.5GHz, 1GB RAM 三台
※架設主機作業系統:Mac OS X Server 10.4.2 Tiger
※我的上網方式:固定制 ADSL 4M/1M、3 IP
※安裝的伺服器:Apache 1.3.33 + php 4.3.11 + MySQL 5.0.19-max
※我的 phpBB2 版本:phpBB 2.0.21 UTF-8 版
※我的會議室網址: http://bbs.bnw.com.tw/conference/
chiouss
竹貓忠實會員
竹貓忠實會員
文章: 1741
註冊時間: 2002-11-29 18:19

文章 chiouss »

進藤光 寫:不過呢,mysqldump 只幫你備份出來,要自動 restore 那就....
restore 就...這樣阿 XD

代碼: 選擇全部

mysql --user=root --password='root_password' phpbb2 < phpbb2.sql
而且還希望兩台 SQL Server 都能同步的話,就更 OOXX 了.... XD
備分系統本來就很難做到 real time 的同步了,真的要同步備份那就用 RAID-1 吧! *茶*
進藤光
星球公民
星球公民
文章: 291
註冊時間: 2005-03-16 18:48
來自: BNW 時尚資訊網
聯繫:

文章 進藤光 »

chiouss 寫:
進藤光 寫:不過呢,mysqldump 只幫你備份出來,要自動 restore 那就....
restore 就...這樣阿 XD
啊~不是啦~~我是說 restore 最好不要天天自動 restore... 萬一被入侵 phpBB,這下不就全都掛? :mrgreen:
※架設伺服器主機:Mac mini G4-1.5GHz, 1GB RAM 三台
※架設主機作業系統:Mac OS X Server 10.4.2 Tiger
※我的上網方式:固定制 ADSL 4M/1M、3 IP
※安裝的伺服器:Apache 1.3.33 + php 4.3.11 + MySQL 5.0.19-max
※我的 phpBB2 版本:phpBB 2.0.21 UTF-8 版
※我的會議室網址: http://bbs.bnw.com.tw/conference/
chiouss
竹貓忠實會員
竹貓忠實會員
文章: 1741
註冊時間: 2002-11-29 18:19

文章 chiouss »

進藤光 寫:啊~不是啦~~我是說 restore 最好不要天天自動 restore... 萬一被入侵 phpBB,這下不就全都掛? :mrgreen:
哪有人天天把備份拿來 restore 的,又不是和自己的硬碟 I/O 過意不去? = =
白牙
星球公民
星球公民
文章: 33
註冊時間: 2004-10-17 03:51
聯繫:

文章 白牙 »

chiouss 寫:對了,InnoDB 只有在 mysql server 停止的時候才可以備份喔...
舊的 MyISAM 也是建議在 lock table 的情況下作備份...
也就是說, 如果我用的是 Windows 系統,
只要把 SQL Server 完全停止
使用土法煉鋼的備份 \mysql\data\* 仍然不會有 InnoDB 的問題嗎? :roll:
小竹子
竹貓星球大統領
竹貓星球大統領
文章: 4596
註冊時間: 2001-10-29 22:13
來自: 竹貓星球
聯繫:

文章 小竹子 »

restore 的時候用指令我常會遇到衝碼問題就會失敗ˊˋ
注意事項:
●phpBB 架設相關問題請到 + phpBB 3.0.x 討論區發表!
●都沒有你要的答案嗎??>>點這裡<<搜尋一下吧!
●請使用>>標準的發文格式<<發表問題!
●竹貓星球並非政治團體代言人,請不要在竹貓討論政治議題,也不要認為竹貓是偏向任何一方政治團體,竹貓愛的是台灣這片生長的土地,過於泛政治化文章請來信告知移除!
●關於 phpBB 使用問題請在版面發問,私人訊息提供其他不相干或是隱私的事情聯絡之用。
●所有市面上的免費空間皆非竹貓管轄,請勿來信詢問,請直接與該免費空間連絡。
chiouss
竹貓忠實會員
竹貓忠實會員
文章: 1741
註冊時間: 2002-11-29 18:19

文章 chiouss »

小竹子 寫:restore 的時候用指令我常會遇到衝碼問題就會失敗ˊˋ
因為你開了 magic_quote :Q
ckmarkhsu
星球公民
星球公民
文章: 139
註冊時間: 2005-03-21 09:38

文章 ckmarkhsu »

chiouss 寫:
進藤光 寫:啊~不是啦~~我是說 restore 最好不要天天自動 restore... 萬一被入侵 phpBB,這下不就全都掛? :mrgreen:
哪有人天天把備份拿來 restore 的,又不是和自己的硬碟 I/O 過意不去? = =
有xd 作 demo site 的時候就會用到:o
台灣深藍vBulletin技術論壇

vBulletin 論壇系統,內建

「0 修改新增插件」「完整附件功能」「無限深度子論壇」「進階權限管理」「前台 AJAX 即時管理」

歡迎研究:)
chiouss
竹貓忠實會員
竹貓忠實會員
文章: 1741
註冊時間: 2002-11-29 18:19

文章 chiouss »

ckmarkhsu 寫:有xd 作 demo site 的時候就會用到:o
demo site 也只會拿一開始的 database 來 restore 吧?
不過其實我玩 demo site 都是資料庫整個砍掉重練的 :mrgreen:
chiouss
竹貓忠實會員
竹貓忠實會員
文章: 1741
註冊時間: 2002-11-29 18:19

文章 chiouss »

白牙 寫:也就是說, 如果我用的是 Windows 系統,
只要把 SQL Server 完全停止
使用土法煉鋼的備份 \mysql\data\* 仍然不會有 InnoDB 的問題嗎? :roll:
都說*不建議*你這樣做了,還是堅持要用的話請自己保重... :mrgreen:
ckmarkhsu
星球公民
星球公民
文章: 139
註冊時間: 2005-03-21 09:38

文章 ckmarkhsu »

chiouss 寫:
ckmarkhsu 寫:有xd 作 demo site 的時候就會用到:o
demo site 也只會拿一開始的 database 來 restore 吧?
不過其實我玩 demo site 都是資料庫整個砍掉重練的 :mrgreen:
不是不是啦:$ 就是那種給別人試用的 DEMO SITE,每天早上凌晨四點 restore 一下

不過好像也只有 restore 不會 backup XD
台灣深藍vBulletin技術論壇

vBulletin 論壇系統,內建

「0 修改新增插件」「完整附件功能」「無限深度子論壇」「進階權限管理」「前台 AJAX 即時管理」

歡迎研究:)
chiouss
竹貓忠實會員
竹貓忠實會員
文章: 1741
註冊時間: 2002-11-29 18:19

文章 chiouss »

貼個直接升級會出現的 error 出來給大家看 :mrgreen:

代碼: 選擇全部

E:\MySQL\bin\mysqld-nt: Table 'mysql.plugin' doesn't exist
061128 22:43:04 [ERROR] Can't open the mysql.plugin table. Please run he mysql_upgrade script to create it.
061128 22:43:04 [ERROR] SCHEDULER: Table mysql.event is damaged. Can not open
061128 22:43:04 [Note] SCHEDULER: Purging queue. 0 events
061128 22:43:04 [ERROR] SCHEDULER: Error while loading from disk.
那個 mysql_upgrade 的 shell script 只給 UN*X 用的,Win32 版除非你裝 cygwin 之類的東西否則沒辦法跑 :-o
進藤光
星球公民
星球公民
文章: 291
註冊時間: 2005-03-16 18:48
來自: BNW 時尚資訊網
聯繫:

文章 進藤光 »

請問【直接升級】是什麼意思呢?下載新的 MySQL 版本,點選安裝? :roll:
※架設伺服器主機:Mac mini G4-1.5GHz, 1GB RAM 三台
※架設主機作業系統:Mac OS X Server 10.4.2 Tiger
※我的上網方式:固定制 ADSL 4M/1M、3 IP
※安裝的伺服器:Apache 1.3.33 + php 4.3.11 + MySQL 5.0.19-max
※我的 phpBB2 版本:phpBB 2.0.21 UTF-8 版
※我的會議室網址: http://bbs.bnw.com.tw/conference/
回覆文章

回到「站長交流」