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 数据库目录。默认目录为 %ZENWORKS_HOME%\database(Windows 上)和 /var/opt/novell/zenworks/database(Linux 上)。

  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. 在命令提示符处,转到 %ZENWORKS_HOME%\sybase\ASA\win32 目录(Windows 上)或 /opt/novell/zenworks/share/sybase/bin32s 目录(Linux 上)。

      2. 输入 dbisql 命令。

      3. 标识选项卡中,指定数据库身份凭证。

      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. 在 Windows 上的 c:\dbreload\ 中或 Linux 上的 /tmp/dbreload/ 中创建一个名为 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 目录在 Windows 上位于 c:\dbreload\ 中,在 Linux 上位于 /tmp/dbreload/ 中。

  15. 启动 Novell ZENworks Embedded Datastore 服务。

    • 对于嵌入式数据库: 启动包括 Novell ZENworks Embedded Datastore 服务在内的所有 ZENworks 服务。

      1. 在控制台提示符处,运行 novell-zenworks-configure -c Start 命令。

      2. 输入“启动”对应的选项号码。

      3. 按 Enter 键两次。

    • 对于外部数据库: 在 Windows 的“服务”窗口中启动 Novell ZENworks Embedded Datastore 服务,或在 Linux 上运行 /etc/init.d/sybase-asa start 命令。

  16. 定期备份新建的数据库(每日或每周)。