36.1 資料庫最佳實務

36.1.1 重建內嵌式或外部 Sybase 資料庫

如果安裝了內嵌式或外部 Sybase 資料庫,應重建資料庫以便其能在最新版本的 Sybase 資料庫引擎上執行。

  1. 確定您已歸檔資料庫身分證明。

    若要歸檔外部 Sybase 資料庫的身分證明,請聯絡資料庫管理員。

    若要歸檔內嵌式或外部 OEM Sybase 資料庫的身分證明,請在資料庫伺服器上執行下列任務:

    1. 確認資料庫服務正在執行。

      在 Windows 上: 在 Windows 服務中,確定「Novell ZENworks Embedded Datastore」的狀態為「已啟動」

      在 Linux 上︰ 在主控台提示符下,輸入 /etc/init.d/sybase-asa status 以確認資料庫的狀態。如果資料庫並未執行,則輸入 /etc/init.d/./sybase-asa start

    2. 執行 zman dgc 指令以取得 Sybase 連接資訊。

    3. 在出現提示時提供 ZENworks 管理員的身分證明。

    4. 複製資料庫的使用者名稱與密碼,並將其儲存在文字檔中。

  2. 停止 Novell ZENworks Embedded Datastore 服務 (如果正在執行)。

    • 在 Windows 上: 請進行下列幾項操作:

      1. 在 Windows 桌面的「開始」功能表上,按一下「設定」>「控制台」

      2. 連按兩下「管理工具」>「服務」

      3. 「Novell ZENworks Embedded Datastore」服務上按一下滑鼠右鍵,然後按一下「停止」,或選取「Novell ZENworks Embedded Datastore」服務,然後按一下工具列上的 停止圖示

    • 在 Linux 上︰ 在主控台提示符下,輸入 /etc/init.d/sybase-asa stop

  3. 在主控台提示符中,轉至 Sybase 資料庫目錄。依預設,Windows 上為 %ZENWORKS_HOME%\database,Linux 上則為 /var/opt/novell/zenworks/database

  4. zenworks_zone_name.dbZenworks_zone_name.log 檔案執行安全備份。

  5. 啟動 Novell ZENworks Embedded Datastore 服務。

    • 在 Windows 上: 請進行下列幾項操作:

      1. 在 Windows 桌面的「開始」功能表上,按一下「設定」>「控制台」

      2. 連按兩下「管理工具」>「服務」

      3. 「Novell ZENworks Embedded Datastore」服務上按一下滑鼠右鍵,然後按一下「啟動」,或選取「Novell ZENworks Embedded Datastore」服務,然後按一下工具列上的 啟動圖示

    • 在 Linux 上︰ 在主控台提示下,輸入 /etc/init.d/./sybase-asa start

  6. (視情況而定) 如果資料庫安裝在 Linux 上,請執行以下程序檔案:

    source /opt/novell/zenworks/share/sybase/bin32/sa_config.sh

  7. (視情況而定) 如果有低於 SQL Anywhere 10.0.1 EBF 3960 的 Sybase SQL Anywhere EBF 版本,則啟動 DBISQL 公用程式,然後設定資料庫驗證。

    1. 啟動 DBISQL 公用程式。

      1. 在指令提示符中,轉至 Windows 上的 %ZENWORKS_HOME%\sybase\ASA\win32 目錄,或 Linux 上的 /opt/novell/zenworks/share/sybase/bin32s 目錄。

      2. 輸入 dbisql 指令。

      3. 「Identification」索引標籤中,指定資料庫的身分證明。

      4. 按一下「資料庫」索引標籤,然後指定目前正在執行之資料庫服務的名稱。

      5. 按一下「確定」

    2. 「SQL 陳述式」區段中,指定以下查詢:

      select setting
      from sysoptions 
         where "option" like 'database%' >># output_filename
      
    3. 按一下「執行 SQL 陳述式」

      查詢結果即會寫入到查詢中所指定的輸出檔案內。

    4. 從輸出檔案複製查詢結果,並貼至 %zenworks_home%\share\asa\scripts\saopts.sql 檔案的 database_authentication 屬性,做為其值。

      database_authentication 屬性位於 saopts.sql 檔案的以下項目中:

      if not exists( select * from SYS.SYSOPTION
       where ucase( "option" )  = ucase( 'database_authentication' ) ) then
          set option PUBLIC.database_authentication = <output_of_the_query_run_in_Step_7b>;
      end if
      go
      
  8. 停止 Novell ZENworks Embedded Datastore 服務。

    • 對於內嵌式資料庫: 停止包含 Novell ZENworks Embedded Datastore 服務在內的所有 ZENworks 服務:

      1. 在主控台提示符中,執行 novell-zenworks-configure -c Start 指令。

      2. 輸入停止所對應的選項號碼。

      3. 按兩次 Enter 鍵。

    • 對於外部資料庫: 透過停止 Windows 上的 Windows 服務管理員或在 Linux 上執行 /etc/init.d/sybase-asa stop 指令,停止 Novell ZENworks Embedded Datastore 服務。

  9. 在資料庫伺服器的主控台提示符中,執行以下指令以啟動資料庫服務:

    在 Windows 上: dbeng10 %ZENWORKS_HOME%\database\zenworks_ZONE_NAME.db -n rebuild

    在 Linux 上︰ dbeng10 /var/opt/novell/zenworks/database/zenworks_ZONE_NAME.db -n rebuild

  10. c:\dbreload\ (Windows) 或 /tmp/dbreload/ ( Linux) 中建立名為 unload 的暫存目錄。

  11. 執行卸載指令。

    在 Windows 上: dbunload -c "UID=zenadmin;PWD=資料庫密碼;ENG=rebuild" -an c:\dbreload\unload\zenworks_<管理區域名稱>.db

    在 Linux 上︰ dbunload -c "UID=zenadmin;PWD=資料庫密碼;ENG=rebuild" -an /tmp/dbreload/unload/zenworks_<管理區域名稱>.db

  12. 成功完成資料庫重建後,對新建的資料庫進行安全備份。

    如果在重建過程中遇到任何問題,請聯絡 Novell 支援

  13. 使用 dbeng10 指令停止 Novell ZENworks Embedded Datastore 服務:

    • 在 Windows 上: 在 Windows 工作列的「重建」圖示上按一下滑鼠右鍵,然後按一下「關閉」

    • 在 Linux 上︰ 在主控台提示符中,輸入 q

  14. unload 目錄 (zenworks 管理區域名稱.*) 中的新項目覆寫資料庫目錄中的資料庫與相應的記錄檔案。

    unload 目錄位於 c:\dbreload\ (Windows) 或 /tmp/dbreload/ (Linux) 中。

  15. 啟動 Novell ZENworks Embedded Datastore 服務。

    • 對於內嵌式資料庫: 啟動包含 Novell ZENworks Embedded Datastore 服務在內的所有 ZENworks 服務:

      1. 在主控台提示符中,執行 novell-zenworks-configure -c Start 指令。

      2. 輸入啟動所對應的選項號碼。

      3. 按兩次 Enter 鍵。

    • 對於外部資料庫: 透過 Windows 的「服務」視窗或在 Linux 上執行 /etc/init.d/sybase-asa start 指令,啟動 Novell ZENworks Embedded Datastore 服務。

  16. 定期備份新建的資料庫 (每天或每週)。