35.1 备份外部 Sybase 数据库

使用 ZENworks 10 Configuration Management 安装媒体安装外部 Sybase 数据库(远程 OEM Sybase 或远程 Sybase SQL Anywhere)后,便可将其备份到本地计算机上的目录或备份到网络位置。

35.1.1 备份 Windows 或 Linux 服务器上的外部 Sybase 数据库

在安装并运行有外部 Sybase 数据库的 Windows 或 Linux 服务器上执行以下步骤:

  1. 起动 DBISQL 实用程序:

    1. 在命令提示符处,转到 %ZENWORKS_HOME%\sybase\ASA\win32 目录(Windows 上)或 /opt/novell/zenworks/share/sybase/bin32s 目录(Linux 上)。

    2. 输入 dbisql 命令。

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

    4. 单击数据库选项卡,然后指定当前运行的数据库服务的名称。

    5. 单击确定

  2. 决定是要立即备份外部 Sybase 数据库还是将备份安排在特定时间运行。要立即备份数据库,请继续步骤 2.a。要安排在特定时间运行备份,请跳到步骤 3

    1. 要将嵌入式 Sybase SQL Anywhere 数据库立即备份到数据库服务器上的目录,请在 SQL 语句部分中指定以下查询:

      BACKUP DATABASE DIRECTORY ‘数据库服务器上备份目录的完整路径’ TRANSACTION LOG TRUNCATE

      如果要将数据库备份到 Windows 上的目录,则在指定数据库备份目录路径时必须使用 \\ (双反斜杠) 作为分界符。

      示例:

      • 在 Windows 上: 要将数据库备份到 c:\dbbackup 目录,请执行以下查询:

        BACKUP DATABASE DIRECTORY ‘c:\\dbbackup’ TRANSACTION LOG TRUNCATE

      • 在 Linux 上: 要将数据库备份到 /root/dbBackup 目录,请执行以下查询:

        BACKUP DATABASE DIRECTORY ‘/root/dbBackup’ TRANSACTION LOG TRUNCATE

      您必须手动存档查询中指定的数据库备份位置的完整路径,因为日后若要更改数据库备份位置,需使用该路径加以指定。

    2. 单击执行 SQL 语句

  3. 安排于每日特定时间或每月特定日期运行备份:

    1. SQL 语句部分中进行指定以执行以下查询

      CREATE EVENT backup_schedule_name
      
      SCHEDULE
      
      START TIME specify_the_schedule
      
      HANDLER
      
      BEGIN
      
      BACKUP DATABASE DIRECTORY ‘complete_path_of_the_backup_directory_on_database_server
      TRANSACTION LOG TRUNCATE
      
      END;
      
    2. 单击执行 SQL 语句

      创建数据库备份事件时,请遵循以下准则:

      • 备份日程安排名称必须是唯一的。

      • 如果要将数据库备份到 Windows 上的目录,则在指定数据库备份目录路径时必须使用 \\ (双反斜杠) 作为分界符。例如,c:\\dbbackup

      • 您必须手动存档在查询中指定的备份日程安排,因为日后若要更改数据库日程安排,需使用该备份日程安排加以指定。

    示例:

    • 要在每日凌晨 1 点将数据库备份到 Linux 上的 /var/ 目录,请执行以下查询:

      CREATE EVENT ZENDBbackup
      
      SCHEDULE
      
      START TIME '1:00 AM' EVERY 24 HOURS   
      
      HANDLER
      
      BEGIN
      
      BACKUP DATABASE DIRECTORY ‘/var/’
      
      TRANSACTION LOG TRUNCATE
      
      END;
      
    • 要在每月一、二、三和四日凌晨 1 点将数据库备份到 Windows 上的 c:\dbbackup 目录,请执行以下查询:

      CREATE EVENT ZENDBbackup
      
      SCHEDULE
      
      START TIME '1:00 AM' EVERY 24 HOURS ON (1,2,3,4) 
      
      HANDLER
      
      BEGIN
      
      BACKUP DATABASE DIRECTORY ‘c:\\dbbackup’
      
      TRANSACTION LOG TRUNCATE
      
      END;
      
    • 要将数据库备份到 Linux 上的 /var/星期日期目录,请执行以下查询:

      CREATE EVENT ZENDBbackup
      
      SCHEDULE
      
      START TIME '1:00 AM' EVERY 24 HOURS   
      
      HANDLER
      
      BEGIN
      
      DECLARE backupDir varchar(256);
      
      DECLARE backup_stmt varchar(512);
      
      SET backupDir = DAYNAME(now());
      
      SET backup_stmt = 'BACKUP DATABASE DIRECTORY '|| '''/var//' || backupDir || ''''|| ' TRANSACTION LOG TRUNCATE';
      
      EXECUTE IMMEDIATE backup_stmt;
      
      END;
      

根据备份日程安排,系统将于数据库备份目录中创建 zenworks_区域名称.db 数据库文件和 zenworks_区域名称.log 事务日志文件。

如果要在日后更改数据库备份位置或备份日程安排,请参见部分 36.2.2, 首次备份后更改外部 Sybase 数据库的备份日程安排和位置

35.1.2 将 Windows 服务器上运行的外部 Sybase 数据库备份到远程 Windows 计算机上的网络位置

要将安装并运行在 Windows 服务器上的外部 Sybase 数据库备份到其他 Windows 计算机的网络位置,您需要一台本地计算机和一台远程计算机。本地计算机为安装了外部 Sybase 数据库的 Windows 服务器。而远程计算机则是一台 Windows 计算机,其网络位置是数据库备份到的目标位置。

  1. 在本地计算机上执行以下步骤:

    1. 创建管理员用户并指定口令。

      例如,您可以将管理员用户名和口令分别指定为 Administratornovell

    2. 在桌面上依次单击开始菜单、设置控制面板,然后依次双击管理工具服务

    3. 以右键单击 Novell ZENworks Datastore 服务,然后单击属性

    4. 单击登录选项卡。

    5. 选择此帐户,然后指定步骤 1.a 中创建的管理用户的名称和口令。

      例如,将用户和口令分别指定为 Administratornovell

    6. 单击确定

  2. 在远程计算机(其网络位置是保存备份的目标位置)上执行以下步骤:

    1. 创建一个帐户,其身份凭证要与步骤 1.a中创建的用户相同。

      例如,将用户和口令分别指定为 Administratornovell

    2. 向用户提供对网络位置的读/写许可权限。

  3. 在本地计算机上起动 DBISQL 实用程序:

    1. 在命令提示符处,转到 %ZENWORKS_HOME%\sybase\ASA\win32 目录(Windows 上)或 /opt/novell/zenworks/share/sybase/bin32s 目录(Linux 上)。

    2. 输入 dbisql 命令。

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

    4. 单击数据库选项卡,然后指定当前运行的数据库服务的名称。

    5. 单击确定

  4. 决定是要立即备份外部 Sybase 数据库还是将备份安排在特定时间运行。要立即备份数据库,请继续步骤 4.a。要安排在特定时间运行备份,请跳到步骤 5

    1. 要将嵌入式 Sybase SQL Anywhere 数据库立即备份到远程计算机上的网络位置,请在 SQL 语句部分中指定以下查询:

      BACKUP DATABASE DIRECTORY ‘\\\\远程计算机的 IP 地址\\备份目录\\自定义目录’ TRANSACTION LOG TRUNCATE

      在查询中,\\\\远程计算机的 IP 地址\\备份目录 \\ 是远程计算机上的共享网络位置,自定义目录名称是为新建并作为数据库文件备份目标的目录指定的名称。

      例如,执行以下查询以将数据库备份到 dbbackup 目录:

      BACKUP DATABASE DIRECTORY ‘\\\\远程计算机上的共享网络位置\\dbbackup’ TRANSACTION LOG TRUNCATE

      您必须手动存档查询中指定的数据库备份位置的完整路径,因为日后若要更改数据库备份位置,需使用该路径加以指定。

    2. 单击执行 SQL 语句

  5. 安排于每日特定时间或每月特定日期运行备份:

    1. SQL 语句部分中进行指定以执行以下查询:

      CREATE EVENT backup_schedule_name
      
      SCHEDULE
      
      START TIME specify_the_schedule
      
      HANDLER
      
      BEGIN
      
      BACKUP DATABASE DIRECTORY
      ‘\\\\IP_address_of_remote_machine\\backup_directory\\custom_directory
      TRANSACTION LOG TRUNCATE
      
      END;
      

      在查询中,\\\\远程计算机的 IP 地址\\备份目录 \\ 是远程计算机上的共享网络位置,自定义目录名称是为新建并作为数据库文件备份目标的目录指定的名称。

      创建数据库备份事件时,请遵循以下准则:

      • 备份日程安排名称必须是唯一的。

      • 您必须手动存档在查询中指定的备份日程安排,因为日后若要更改数据库日程安排,需使用该备份日程安排加以指定。

    2. 单击执行 SQL 语句

    示例:

    • 要在每日凌晨 1 点将数据库备份到 Windows 上的 dbbackup 目录,请执行以下查询:

      CREATE EVENT ZENDBbackup
      
      SCHEDULE
      
      START TIME '1:00 AM' EVERY 24 HOURS   
      
      HANDLER
      
      BEGIN
      
      BACKUP DATABASE DIRECTORY ‘\\\\shared_network_location_on_remote_machine\\dbbackup’
      
      TRANSACTION LOG TRUNCATE
      
      END;
      
    • 要在每月一、二、三和四日凌晨 1 点将数据库备份到 Windows 服务器上的 dbbackup 目录,请执行以下查询:

      CREATE EVENT ZENDBbackup
      
      SCHEDULE
      
      START TIME '1:00 AM' EVERY 24 HOURS ON (1,2,3,4)   
      
      HANDLER
      
      BEGIN
      
      BACKUP DATABASE DIRECTORY ‘\\\\shared_network_location_on_remote_machine\\dbbackup’
      
      TRANSACTION LOG TRUNCATE
      
      END;
      
    • 要将数据库备份到 Windows 服务器上的 \dbbackup\星期日期目录,请执行以下查询:

      CREATE EVENT ZENDBbackup
      
      SCHEDULE
      
      START TIME '1:00 AM' EVERY 24 HOURS   
      
      HANDLER
      
      BEGIN
      
      DECLARE backupDir varchar(256);
      
      DECLARE backup_stmt varchar(512);
      
      SET backupDir = DAYNAME(now());
      
      SET backup_stmt = 'BACKUP DATABASE DIRECTORY '|| '''\\\\shared_network_location_on_remote_machine\\dbbackup/' || backupDir || ''''|| 'TRANSACTION LOG TRUNCATE';
      
      EXECUTE IMMEDIATE backup_stmt;
      
      END;
      

根据备份日程安排,系统将于远程计算机上的网络位置中创建 zenworks_区域名称.dbzenworks_区域名称.log。备份数据库储存在 zenworks_区域名称.db 中。数据库备份的结果则会记录在 zenworks_区域名称.log 中。

如果要在日后更改数据库备份位置或备份日程安排,请参见部分 36.2.2, 首次备份后更改外部 Sybase 数据库的备份日程安排和位置

35.1.3 将 Linux 服务器上运行的外部 Sybase 数据库备份到远程 Linux 计算机上的网络位置

要将安装并运行在 Linux 服务器上的外部 Sybase 数据库备份到 Linux 计算机上的网络位置,您需要一台本地计算机和一台远程计算机。本地计算机为安装了外部 Sybase 数据库的 Linux 服务器。而远程计算机则是一台 Linux 计算机,其网络位置是数据库备份到的目标位置。

您可以使用任何 Linux 共享(例如 Samba 共享或 NFS 共享)备份 Linux 计算机上的数据库。

使用 Samba 共享将在 Linux 服务器上安装并运行的外部 Sybase 数据库备份到 Linux 计算机的网络位置:

  1. 在远程计算机上创建 Samba 共享:

    1. 在命令提示符处输入 useradd 用户名命令创建用户。

    2. 使用步骤 1.a 中创建的用户名登录到远程计算机,并通过 passwd 指定口令命令设置口令。

    3. 创建保存数据库备份的目录。

      例如,创建名为 backup 的目录。

    4. 运行 yast2 samba-server 命令,打开 Samba 服务器设置。

    5. 单击共享选项卡,然后单击添加指定共享名称以及步骤 1.c 中创建的备份目录的路径。

      例如,指定共享名称为 dbbackup

    6. 选择 dbbackup 共享,单击编辑,然后添加以下属性:

      • create mask = 0640

      • force user = 步骤 1.a中创建的用户名

      • guest ok = yes

      • public = yes

      • wide links = no

      • writeable = yes

  2. 在本地计算机上创建目录。

    例如,在 /root 中创建名为 zenworks_dbbackup 的目录。

  3. 在命令提示符处输入以下命令,以在本地计算机上的 zenworks_dbbackup 目录中装入 SAMBA 共享。

    mount -t smbfs //远程计算机的 IP 地址/共享名 -o username= 第 1a 步中指定的用户名,password= 第 1b 步中指定的口令 第 2 步中创建的具有完整路径的本地目录名称

    例如:

    mount -t smbfs //远程计算机的 IP 地址/dbbackup -o username=第 1a 步中指定的用户名,password=第 1b 步中指定的口令 /root/zenworks_dbbackup

  4. 在本地计算机上起动 DBISQL 实用程序:

    1. 在命令提示符处,转到 %ZENWORKS_HOME%\sybase\ASA\win32 目录(Windows 上)或 /opt/novell/zenworks/share/sybase/bin32s 目录(Linux 上)。

    2. 输入 dbisql 命令。

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

    4. 单击数据库选项卡,然后指定当前运行的数据库服务的名称。

    5. 单击确定

  5. 决定是要立即备份外部 Sybase 数据库还是将备份安排在特定时间运行。要立即备份数据库,请继续此步骤。要安排在特定时间运行备份,请跳到步骤 5

    1. 要将外部 Sybase 数据库立即备份到远程计算机的网络位置,请在 SQL 语句部分中指定以下查询:

      BACKUP DATABASE DIRECTORY ‘数据库服务器上备份目录的完整路径’ TRANSACTION LOG TRUNCATE

      例如,执行以下查询以将数据库备份到 /root/zenworks_dbbackup 目录:

      BACKUP DATABASE DIRECTORY ‘/root/zenworks_dbbackup/’ TRANSACTION LOG TRUNCATE

      您必须手动存档查询中指定的数据库备份位置的完整路径,因为日后若要更改数据库备份位置,需使用该路径加以指定。

    2. 单击执行 SQL 语句

  6. 安排于每日特定时间或每月特定日期运行备份:

    1. SQL 语句部分中进行指定以执行以下查询:

      CREATE EVENT backup_schedule_name
      
      SCHEDULE
      
      START TIME specify_the_schedule
      
      HANDLER
      
      BEGIN
      
      BACKUP DATABASE DIRECTORY ‘complete_path_of_the_backup_directory_on_database_server
      TRANSACTION LOG TRUNCATE
      
      END;
      

      创建数据库备份事件时,请遵循以下准则:

      • 指定的备份日程安排名称必须是唯一的。

      • 您必须手动存档在查询中指定的备份日程安排,因为日后若要更改数据库日程安排,需使用该备份日程安排加以指定。

    2. 单击执行 SQL 语句

    示例:

    • 要在每日凌晨 1 点将数据库备份到 Linux 上的 /root/zenworks_dbbackup 目录,请执行以下查询:

      CREATE EVENT ZENDBbackup
      
      SCHEDULE
      
      START TIME '1:00 AM' EVERY 24 HOURS   
      
      HANDLER
      
      BEGIN
      
      BACKUP DATABASE DIRECTORY ‘/root/zenworks_dbbackup/’
      
      TRANSACTION LOG TRUNCATE
      
      END;
      
    • 要在每月一、二、三和四日凌晨 1 点将数据库备份到 Linux 上的 /root/zenworks_dbbackup 目录,请执行以下查询:

      CREATE EVENT ZENDBbackup
      
      SCHEDULE
      
      START TIME '1:00 AM' EVERY 24 HOURS ON (1,2,3,4)   
      
      HANDLER
      
      BEGIN
      
      BACKUP DATABASE DIRECTORY ‘/root/zenworks_dbbackup/’
      
      TRANSACTION LOG TRUNCATE
      
      END;
      
    • 要将数据库备份到 Linux 上的 /root/zenworks_dbbackup/星期日期目录,请执行以下查询:

      CREATE EVENT ZENDBbackup
      
      SCHEDULE
      
      START TIME '1:00 AM' EVERY 24 HOURS   
      
      HANDLER
      
      BEGIN
      
      DECLARE backupDir varchar(256);
      
      DECLARE backup_stmt varchar(512);
      
      SET backupDir = DAYNAME(now());
      
      SET backup_stmt = 'BACKUP DATABASE DIRECTORY '|| '''/root/zenworks_dbbackup//' || backupDir || ''''|| ' TRANSACTION LOG TRUNCATE';
      
      EXECUTE IMMEDIATE backup_stmt;
      
      END;
      

根据备份日程安排,系统将于远程计算机上的网络位置 (/root/zenworks_dbbackup) 中创建 zenworks_区域名称.dbzenworks_区域名称.log。备份数据库储存在 zenworks_区域名称.db 中。数据库备份的结果则会记录在 zenworks_区域名称.log 中。

如果要在日后更改数据库备份位置或备份日程安排,请参见部分 36.2.2, 首次备份后更改外部 Sybase 数据库的备份日程安排和位置