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

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

版主: 版主管理群

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

文章 chiouss »

進藤光 寫:請問【直接升級】是什麼意思呢?下載新的 MySQL 版本,點選安裝? :roll:
把舊的 database 套在新的 server binary 上面 :mrgreen:
進藤光
星球公民
星球公民
文章: 291
註冊時間: 2005-03-16 18:48
來自: BNW 時尚資訊網
聯繫:

文章 進藤光 »

SoGa... 原來是這樣惡搞... 這樣是不行的喔~ :mrgreen:
Linux 與 Windows 我不知道,至少 Mac OS X 不行~ Orz
MySQL 根本沒有升級功能,下載新的版本只會幫你另外安裝一套全新的空白資料庫!萬一忘記給他備份這下就死了~ :evil: :evil: :evil:

Windows Server 我只有用 MS SQL 2000 跟 phpBB 來架站,沒用過 MySQL...
※架設伺服器主機: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/
白牙
星球公民
星球公民
文章: 33
註冊時間: 2004-10-17 03:51
聯繫:

文章 白牙 »

chiouss 寫:都說*不建議*你這樣做了,還是堅持要用的話請自己保重... :mrgreen:
可是這種 "不建議" 的方式卻是我這邊唯一正常的方式, 而且還原跟備份只需要不到一分鐘...

其他方法都時間過長, 漏很多筆資料 , 不然就是記憶體不夠 , 不然就是出現

Duplicate entry '1' for key 1 訊息然後匯入過程中斷
頭像
心靈捕手
默默耕耘的老師
默默耕耘的老師
文章: 8535
註冊時間: 2004-04-30 01:54
來自: Taiwan

文章 心靈捕手 »

白牙 寫:
chiouss 寫:都說*不建議*你這樣做了,還是堅持要用的話請自己保重... :mrgreen:
可是這種 "不建議" 的方式卻是我這邊唯一正常的方式, 而且還原跟備份只需要不到一分鐘...

其他方法都時間過長, 漏很多筆資料 , 不然就是記憶體不夠 , 不然就是出現

Duplicate entry '1' for key 1 訊息然後匯入過程中斷
其實, 解決這個問題 (爭議) 的重要關鍵, 在於您為何需要做備份?

一般而言, 會需要做 (資料庫) '備份', 不外乎是為了 '不時' 之需.

所謂 '不時', 通常會有下列幾種情況.
1. 作業系統需要重灌.
剛好您的資料庫 (架站系統) 又跟作業系統, 放在同一個磁碟區 (例如: C).
只好重灌作業系統與重新安裝架站系統後, 還原備份的資料庫.
2. 資料庫 (架站系統) 升級失敗, 需要重新安裝.
事實上, MySQL 反安裝時, 並不會移除 /mysql/data/*.* 裡頭的資料.
3. 安裝外掛時, 造成資料庫出錯.
除了手動, 將新增的資料表或欄位刪除之外, 最快的方式, 當然是還原備份的資料庫.

以上所說的情況, 其資料備份最簡單有效的方式, 就是備份整個資料夾 /mysql/data/*.* 裡頭的資料.
當然, 最好是將備份資料放在, 和作業系統或架站系統不同的磁碟區, 以策安全.

換個角度思考...

如果您是要將資料庫的資料 (data) 移轉到另一台主機,
而這一台主機使用不同的作業系統, 或是不同的 (資料庫) 架站系統的話,
那麼比較妥當的方法, 應該是將原來的資料匯出 (輸出) 成文字檔 (*.sql) 後,
再將其匯入 (輸入) 到新的資料庫裡頭.
也就是說, 不宜再用還原整個備分資料夾的方式處理.
施比受有福,祝福您好運! ^_^
歡迎光臨★★心靈捕手★★ :: 討論區
https://wang5555.dnsfor.me/phpBB3/
chiouss
竹貓忠實會員
竹貓忠實會員
文章: 1741
註冊時間: 2002-11-29 18:19

文章 chiouss »

白牙 寫:可是這種 "不建議" 的方式卻是我這邊唯一正常的方式, 而且還原跟備份只需要不到一分鐘...

其他方法都時間過長, 漏很多筆資料 , 不然就是記憶體不夠 , 不然就是出現

Duplicate entry '1' for key 1 訊息然後匯入過程中斷
你根本沒搞清楚你的問題出在哪裡 = =
白牙
星球公民
星球公民
文章: 33
註冊時間: 2004-10-17 03:51
聯繫:

文章 白牙 »

所以這個並不是 "爭辯" , 也不是鼓吹哪一種方式比較好.
我的確不知道為什麼使用 php 來 dump 跟 restore 會出現錯誤
只好用非正統的方式備份, 順便拋磚引玉一下看誰知道 Why

如果某種方式可以完整備份, 時間耗費又非常少
誰管他正統不正統呢?

至於做備份的原因, 當然是主機遠在國外而不在自己手上,
否則直接放在 Raid 上就不必備份這麼頻繁.
也就是我假定硬碟損毀或遭受駭客入侵, 資料的損失可以控制在一天內甚至6小時內
chiouss
竹貓忠實會員
竹貓忠實會員
文章: 1741
註冊時間: 2002-11-29 18:19

文章 chiouss »

白牙 寫:所以這個並不是 "爭辯" , 也不是鼓吹哪一種方式比較好.
我的確不知道為什麼使用 php 來 dump 跟 restore 會出現錯誤
只好用非正統的方式備份, 順便拋磚引玉一下看誰知道 Why
拋磚引玉不是在這種場合用的 Orz

會出現

代碼: 選擇全部

Duplicate entry '1' for key 1
是因為你匯入 sql 的時候沒有把原本會入失敗的資料刪除,造成資料重複。

至於大檔案的 sql 要怎麼用 phpMyAdmin 匯入請搜尋一下站內文章,我之前有寫過一篇,也有人拿大檔測試過確定可用。
白牙 寫:如果某種方式可以完整備份, 時間耗費又非常少
誰管他正統不正統呢?
我也懶得爭論這種問題,畢竟有時候官方的說法未必是最好的 (所以會有一堆 hacks tech.),但是我前面也說過這種偷步的方法可能會有什麼錯誤了,要用的請自己保重。我只希望寫教學文件的人至少搞清楚這點,不然到最後大家都抄小路然後一起中地雷。
最後由 chiouss 於 2006-11-30 12:51 編輯,總共編輯了 1 次。
進藤光
星球公民
星球公民
文章: 291
註冊時間: 2005-03-16 18:48
來自: BNW 時尚資訊網
聯繫:

文章 進藤光 »

我來 + 1

最好的備份還是用 MySQL Administrator 啦~ XD
只是裡面的 Schedule Backup 根本不能用,以前是不能定時,現在則是備出亂碼... Orz
※架設伺服器主機: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/
過山雲
竹貓忠實會員
竹貓忠實會員
文章: 390
註冊時間: 2002-09-05 20:11
來自: 東都.承天府.萬年縣治.拱辰門北
聯繫:

文章 過山雲 »

我是整個複製貼上作備份

這樣最快

異地(主機)備份
圖檔
computer315
竹貓忠實會員
竹貓忠實會員
文章: 432
註冊時間: 2005-08-22 04:56
來自: 台北市       學業: 高校生       就讀: 快樂青春學園
聯繫:

文章 computer315 »

我升級的時候就是用這種備份法...
不過還好沒失敗...真是僥倖XD
為了好讓大家一起幫你解決問題...
請依照發問格式發言,謝謝你的支持與配合。
[必看] phpBB 使用問答區發文規則與發問格式

搜尋 是最佳解決問題最後的方法...

謝絕使用[私人訊息]來接收題問
很久沒有玩phpbb了,所以盡量不要來請教我phpbb的技術問題
不過我倒是很歡迎大家一起聊聊私事

mkcbbs~
ADSL 2M/256K架的站,速度還是可以很快的
miniko
星球普通子民
星球普通子民
文章: 1
註冊時間: 2006-12-04 03:43

文章 miniko »

應該只有自架主機可以這樣備吧
租別人空間就沒辦法了
chiouss
竹貓忠實會員
竹貓忠實會員
文章: 1741
註冊時間: 2002-11-29 18:19

文章 chiouss »

前幾天突然發現有個 mysql-upgrade.exe 可以用 :mrgreen:

代碼: 選擇全部

MySQL utility to upgrade database to the current server version

  -?, --help          Display this help message and exit.
  -b, --basedir=name  Specifies the directory where MySQL is installed
  -d, --datadir=name  Specifies the data directory
  -#, --debug[=#]     This is a non-debug version. Catch this and exit
  -T, --debug-info    Print some debug info at exit.
  --default-character-set=name
                      Set the default character set.
  -f, --force         Force execution of mysqlcheck even if mysql_upgrade has
                      already been executed for the current version of MySQL.
  --character-sets-dir=name
                      Directory where character sets are.
  --compress          Use compression in server/client protocol.
  -h, --host=name     Connect to host.
  -p, --password[=name]
                      Password to use when connecting to server. If password is
                      not given it's solicited on the tty.
  -W, --pipe          Use named pipes to connect to server.
  -P, --port=name     Port number to use for connection.
  --protocol=name     The protocol of connection (tcp,socket,pipe,memory).
  --shared-memory-base-name=name
                      Base name of shared memory.
  -S, --socket=name   Socket file to use for connection.
  -u, --user=name     User for login if not current user.
  --ssl               Enable SSL for connection (automatically enabled with
                      other flags). Disable with --skip-ssl.
  --ssl-ca=name       CA file in PEM format (check OpenSSL docs, implies
                      --ssl).
  --ssl-capath=name   CA directory (check OpenSSL docs, implies --ssl).
  --ssl-cert=name     X509 cert in PEM format (implies --ssl).
  --ssl-cipher=name   SSL cipher to use (implies --ssl).
  --ssl-key=name      X509 key in PEM format (implies --ssl).
  --ssl-verify-server-cert
                      Verify server's "Common Name" in its cert against
                      hostname used when connecting. This option is disabled by
                      default.
  -v, --verbose       Display more output about the process
不知道是哪個版本開始有的,我用 5.1.16-beta
michaelchain
星球公民
星球公民
文章: 129
註冊時間: 2006-10-17 03:13

文章 michaelchain »

進藤光 寫:我來 + 1

最好的備份還是用 MySQL Administrator 啦~ XD
只是裡面的 Schedule Backup 根本不能用,以前是不能定時,現在則是備出亂碼... Orz
正解。我幫人轉站時也推薦他們使用mysql administrator,沒有比用這個東西備份更放心的了。

導入,如果不能用主機ssh,就用bigdump。

如果是自己的主機,或者有主機控制台可用,就用mysqldump來備份和恢復。
※伺服器主機:Intel Core2 酷睿™2 E6300, 升級到4GB RAM了
※主機作業系統:CentOS 4 Linux
※我的 phpBB 版本:phpBB3.0.?
※我的網址: 中文PHPBB
king214756
星球普通子民
星球普通子民
文章: 7
註冊時間: 2007-06-02 01:46

文章 king214756 »

備份還原不會失敗嗎??

為什麼我用phpmyadmin 備份成*.sql

然後換另一個版的較新和較舊的mysql 匯入怎麼會出現錯誤??
chiouss
竹貓忠實會員
竹貓忠實會員
文章: 1741
註冊時間: 2002-11-29 18:19

文章 chiouss »

king214756 寫:為什麼我用phpmyadmin 備份成*.sql
然後換另一個版的較新和較舊的mysql 匯入怎麼會出現錯誤??
你這種問法是拿來擲茭問神的吧? =.=
還有,phpMyAdmin 的討論區在樓下。
回覆文章

回到「站長交流」