Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SAP Sybase SQL Anywhere 16.0 (中文) » SQL Anywhere 服务器 - 数据库管理 » 高可用性和只读向外扩展系统 » 数据库镜像 » 维护数据库镜像系统

 

将镜像数据库添加到正在运行的镜像系统

在不降低现有服务器的可用性的情况下,将镜像数据库添加到正在运行的镜像系统。

前提条件

主服务器和镜像服务器必须已使用 -su 数据库服务器选项启动,以便设置实用程序数据库的口令。您必须拥有实用程序数据库的口令。

此任务涉及到备份数据库副本。请根据所选的备份方法参见适用于该方法的特权。

您还必须具有 MANAGE MIRROR SERVER 特权。

现有镜像系统的仲裁服务器和其中一个伙伴服务器必须正在运行。

您将要添加的数据库必须具有事务日志。

上下文和注释

您有一个镜像系统正在运行,而且您想使用现有的伙伴服务器和仲裁服务器对另一个数据库进行镜像。

 任务
  1. 确保仲裁服务器已通过以下选项启动:

    • 带 DBN 参数的 -xa 数据库服务器选项。指定 DBN=*,以允许仲裁服务器接受任何镜像数据库的连接。否则,指定所有数据库都必须动态启动并使用此服务器作为其仲裁服务器。

    • -su 数据库服务器选项。您必须能够连接到仲裁服务器上的实用程序数据库。

    例如:

    dbsrv16 -n mirror_arbiter -su sql -x "TCPIP(PORT=6870;DOBROAD=no)" -xf "c:\arbiter\arbiter.state" -xa "AUTH=abc;DBN=*" -o c:\arbiter\arbiter.conslog
  2. 将想要进行镜像的数据库连同其事务日志一起复制到现有伙伴计算机之一。

  3. 连接到现有伙伴服务器上的实用程序数据库。例如:

    dbisql -c "UID=dba;PWD=sql;DBN=utility_db;SERVER=mirror_server1"
  4. 使用含有 MIRROR ON 和 AUTOSTOP OFF 子句的 START DATABASE 语句启动要添加的数据库。例如:

    START DATABASE 'c:\\server1\\second.db' 
    AUTOSTOP OFF 
    MIRROR ON;

    数据库将启动。

  5. 连接到数据库。例如:

    dbisql -c UID=DBA;PWD=sql;SERVER=mirror_server1;DBN=second

    创建镜像服务器定义(PRIMARY、MIRROR、ARBITER 和两个 PARTNER)以及含 SET MIRROR OPTION 的验证字符串。

    新镜像系统的验证字符串必须与通过仲裁服务器的 -xa 选项指定的验证字符串相匹配。主机名和端口必须与现有伙伴服务器和仲裁服务器的主机名和端口相匹配。PARTNER 镜像服务器名必须与伙伴服务器的 -n 服务器选项相匹配。PRIMARY 和 MIRROR 服务器名不得与系统当前正在使用的任何服务器名相匹配。

    例如:



    CREATE MIRROR SERVER second_primary
    AS PRIMARY
    connection_string='SERVER=second_primary;HOST=localhost:6871,localhost:6872';
    
    CREATE MIRROR SERVER second_mirror
    AS MIRROR
    connection_string='SERVER=second_mirror;HOST=localhost:6871,localhost:6872';
    
    CREATE MIRROR SERVER mirror_server1
    AS PARTNER
    connection_string='SERVER=mirror_server1;host=localhost:6871'
    state_file='c:\\server1\\server1.state';
    
    CREATE MIRROR SERVER mirror_server2
    AS PARTNER
    connection_string='SERVER=mirror_server2;host=localhost:6872'
    state_file='c:\\server2\\server2.state';
    
    CREATE MIRROR SERVER arbiter_server
    AS ARBITER
    connection_string='SERVER=mirror_arbiter;HOST=localhost:6870';
    
    SET MIRROR OPTION authentication_string='abc';
  6. 创建数据库备份并将备份复制到第二个伙伴服务器。例如,使用 dbbackup 实用程序。

    dbbackup -c "UID=DBA;PWD=sql;SERVER=mirror_server1;DBN=second" "c:\server2"
  7. 连接到第二个伙伴服务器上的实用程序数据库。例如:

    dbisql -c "UID=DBA;PWD=sql;SERVER=mirror_server2;DBN=utility_db" 
  8. 使用含有 AUTOSTOP OFF MIRROR ON 子句的 START DATABASE 语句启动第二个伙伴服务器上的数据库。

    START DATABASE 'c:\\server2\\second.db' 
    AUTOSTOP OFF 
    MIRROR ON;

结果

新添加的镜像数据库应在两个伙伴服务器上都运行。请确认其中一个伙伴服务器的角色为主服务器,另一个伙伴服务器的角色为镜像服务器(使用控制台日志或 DB_PROPERTY( 'MirrorRole' ))。

 另请参见