Widgets

今天抽空將手上一個 bugzilla 系統所用的資料庫主機,從舊的資料庫主機轉移到另一個記憶體資源比較充裕的資料庫主機,紀錄一下 bugzilla 資料轉移時所遇到的問題作個筆記。主要參考文件是這一份「Bugzilla:Move Installation」。

1.
首先設定「http://your.bugzilla.installation/editparams.cgi」,「General」頁面中的「shutdownhtml」參數,如果這個參數有值,則會暫停所有人的連線。等系統維護完畢後,在清除這個值即可恢復開放狀態。

2.
第一次轉移時,從舊資料庫主機上 dump 資料下來,沒有問題,但花了點時間。這部份要看您的 bugzilla 系統關於附件檔案 (Attachment) 的設定,如果很多大的附件檔案都被塞在資料庫中,那得花上一些時間。關於 bugzilla 系統設定附件檔案的資訊,可以參考這裡。(特別是 bugzilla 參數「maxattachmentsize」和「maxlocalattachment」。)


3.
第一次轉移時,將已經 dump 下來的資料往新的資料庫主機丟的時候,遇到了一些錯誤訊息,例如:
  • [ERROR in query 12] Cannot add or update a child row: a foreign key constraint fails (`bugzilla`.`attach_data`, CONSTRAINT `fk_attach_data_id_attachments_attach_id` FOREIGN KEY (`id`) REFERENCES `attachments` (`attach_id`) ON DELETE CASCADE ON UPDATE CASCADE)
  • [ERROR in query 31] Can't create table 'bugzilla.attachments' (errno: 150)
  • etc...
一大堆看起來有前後關連性的問題。

4.
依照 bugzilla 移機文件所建議,如果資料轉移實有遇到任何錯誤,建議檢查一下資料庫主機的「max_allowed_packet」設定值。至少要比目前以存於資料中的單一附件檔案還要大。

經檢查後,將我手邊這台新的資料庫主機的「max_allowed_packet」設定值 開大一點之後,就沒問題地一路順利上傳資料檔案到新主機了。

5.
修改 bugzilla 檔案目錄中的「localconfig」檔案,將資料庫主機、資料庫名稱、帳號、密碼等資訊換成新主機的連線資訊。重跑一次「checksetup.pl」作確認。

6.
清除「http://your.bugzilla.installation/editparams.cgi」,「General」頁面中的「shutdownhtml」參數。讓機器回到線上。

Done.

0 Comments:

Post a Comment

 
Top