Discuz! 為站長提供了非常強大的資料庫管理功能,可以一鍵完成諸如資料庫備份、恢復、升級、最佳化、校驗等操作。具有高階技術的站長朋友可以透過 「升級」 完成自己對資料庫需要完成的高階操作。下面將對如何使用此類功能,做一個詳細的講解。

操作路徑:【後臺】=> 【站長】=> 【資料庫】

../../_images/db_1.gif

一、備份

包括備份 Discuz! 資料和 UCenter 資料以及自定義備份。

1 、備份 Discuz! 和 UCenter 資料

上圖中出現的是資料庫備份介面,其中的單選選項預設選擇了 「Discuz! 和 UCenter 資料」,在這裡無需其他設定,直接點選提交即可完成站點所有資料的備份工作。

如果是高階使用者,一鍵備份的選擇不能滿足您,可以點選上圖中的 「更多選項」,以此來定製自己需要的備份方式。如下圖所示:

../../_images/db_2.gif

資料庫備份方式預設選擇為 「Discuz! 分卷備份 - 檔案長度限制 (kb)」,初始化為 2048kb(2MB)

使用擴充套件插入 (Extended Insert) 方式 - 使用增量備份的方式,預設為否

建表語句格式 - 使用預設格式,即 MySQL 自身的預設格式。如果是搬家,新伺服器 MySQL 版本和現在不同,可以選擇對應的 MySQL 版本。

強制字元集 - 可以不選,如果是需要論壇轉碼的時候備份用到的需要選擇對應的字元集。

十六進位制方式 - 預設選擇是。十六進位制方式可以保證備份資料的完整性,但是備份檔案會佔用更多的空間。

壓縮備份檔案 - 預設為不壓縮,提高備份的程式執行速度。

備份檔名 - 可以自定義要備份到檔名,字尾名為.sql 。

備份成功後將提示:

../../_images/db_3.gif

2 、自定義備份

可以選擇部分資料表進行備份,也可以選擇備份所有資料表。

3 、備份資料存放目錄

在 UCenter 後臺備份得到的備份資料存放目錄如下:

UCenter 備份資料存放目錄:以獨立主機為例,UCenter 安裝根目錄 /data/backup/backup_日期_隨機字母/ 目錄下

Discuz! 備份資料存放目錄:以獨立主機為例,Discuz! 安裝根目錄 /data/backup_日期_隨機字母/ 目錄下

4 、注意事項

1) 如果是站點搬家,注意新的虛擬主機要支援 PHP+MySQL 環境,否則遷移後站點無法正常執行;並確保新虛擬主機 MySQL 版本和字元集和原虛擬空間一致 (MySQL 版本以 4.0 和 4.1 為分割線),否則可能導致恢復後站點亂碼等現象。

2) 如果安裝過外掛,建議除了 config 目錄外,其餘目錄、檔案全部備份。

除了在論壇後臺備份外,如果是獨立主機的話,還可以直接打包資料庫目錄進行備份,也可以使用 phpMyAdmin 進行備份。

相關閱讀:`PHPMyAdmin 資料備份和恢復方法 <http://faq.comsenz.com/viewnews-385>`_.

二、恢復

在進行恢復操作之前請先關閉站點,恢復全部完成後可以將站點重新開放。

如何將備份好的資料恢復到站點,如下圖所示:

../../_images/db_4.gif

本功能在恢復備份資料的同時,將全部覆蓋原有資料。

恢復資料前請在 Discuz! X3 安裝檔案目錄下 utility 資料夾內找到 restore.php 檔案,然後將 restore.php 檔案上傳到程式資料夾 data 目錄下。為了您站點的安全,成功恢復資料後請務必及時刪除 restore.php 檔案,這樣的方式適合多個備份檔案恢復。

透過在瀏覽器中執行 http://www.discuz.net/data/restore.php 恢復資料 頁面會自動重新整理伺服器備份資料目錄中的備份檔案,也可以點選上圖中右側的高亮 「匯入」 即可進行資料恢復工作。資料恢復的時間根據站點備份的資料量大小和資料檔案的多少有關。

注意:

資料恢復功能只能恢復由當前版本 Discuz! 匯出的資料檔案,其他軟體匯出格式可能無法識別。

三、升級

站點預設狀態下是禁止 SQL 語句執行的,當您進入資料庫升級頁面發現此處功能不能使用的時候。請進入站點所在的伺服器根目錄 (FTP 檔案根目錄),找到 config/config_global.php 檔案,將 $_config[admincp][runquery] 設定修改為 1 之後,重新整理後臺的頁面,就能進入資料庫升級頁面了。

資料庫升級介面如下圖所示:

../../_images/db_5.gif

此資料庫升級頁面,有兩種方法供站長選擇,一種是打包好的升級語句 「常用 SQL 升級語句」,這種是最快速完成需要功能的選擇。如果需要擴充打包語句,可以修改 /source/admincp/admincp_quickquery.php 來新增常用 SQL 操作進行功能擴充。預設新增了 14 條常用 SQL 升級語句。

第二種是直接輸入資料庫升級語句,如升級語句:

[code]INSERT INTO pre_common_syscache (cname,ctype,dateline,data) VALUES (『test』, 『1』, 13312341234, 『test』)[/code] 「既是插入一條測試資料」

寫好語句,點選下面的提交,即可。修改結束後,推薦更新一下系統快取。

四、最佳化

如同電腦作業系統,Discuz! 也具備資料庫碎片整理功能,資料表最佳化可以去除資料檔案中的碎片,使記錄排列緊密,提高讀寫速度。

../../_images/db_6.gif

選中要最佳化的資料表只需要點選 「提交」 按鈕,即可讓程式最佳化資料庫中的資料碎片了。

五、校驗

本頁只有一個按鈕;

../../_images/db_7.gif

點選即可進行資料庫校驗。當有出現 Discuz! 預設的資料庫結構與現執行站點的結構不同時,這裡將會列出,並提供修復按鈕。如下圖所示:

../../_images/db_8.gif

可以在這裡直接修復被修改的欄位和缺少的論壇設定引數。

注意:

1 、資料庫校驗只針對 Discuz! 官方釋出的資料庫結構為基礎進行核對。

2 、此工具只對欄位的修改以及缺少進行簡單的檢查,不針對索引的缺少進行處理。

透過上面的說明,站長朋友已經可以熟練的進行資料庫的備份、恢復、最佳化、和校驗了。透過 sql 語句的學習,也會很快掌握高階的 「升級」 功能。