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

SQL Anywhere 12.0.1 » SQL Anywhere 服务器 - 数据库管理 » 数据库维护 » SQL Anywhere 高可用性 » 教程:使用数据库镜像

 

第 1 课:创建数据库镜像系统

 ♦ 设置数据库镜像系统
  1. 创建以下目录:c:\server1c:\server2c:\arbiter

  2. 运行以下命令创建名为 mirror_demo.db 的、包含来自示例数据库中数据的数据库:

    newdemo c:\server1\mirror_demo.db
  3. 运行以下命令启动第一个数据库服务器:

    dbsrv12 -n mirror_server1 -x "tcpip(PORT=6871;DOBROAD=no)" -su sql "c:\server1\mirror_demo.db" -xp on
    • -n   将数据库服务器命名为 mirror_server1。

    • -x   指定数据库服务器运行时使用的端口。

    • -su   指定实用程序数据库的口令。建议您加入 -su 选项来指定实用程序数据库的口令。这样,您可以连接到实用程序数据库来关闭数据库服务器,或者在必要时强制镜像服务器成为主服务器。请参见停止镜像系统中的数据库服务器强制数据库服务器成为主服务器

    • -xp on   指明数据库服务器可用于参与数据库镜像系统。

  4. 从 Interactive SQL 连接到数据库:

    dbisql -c "UID=DBA;PWD=sql;SERVER=mirror_server1"
  5. 执行以下语句定义主服务器和镜像服务器:

    CREATE MIRROR SERVER mirror_demo_primary
    AS PRIMARY
    connection_string='SERVER=mirror_demo_primary;HOST=localhost:6871,localhost:6872';
    
    CREATE MIRROR SERVER mirror_demo_mirror
    AS MIRROR
    connection_string='SERVER=mirror_demo_mirror;HOST=localhost:6871,localhost:6872';
  6. 执行以下语句将 mirror_server1 和 mirror_server2 定义为镜像系统中的伙伴服务器:

    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';
  7. 执行以下语句定义仲裁服务器:

    CREATE MIRROR SERVER demo_arbiter
    AS ARBITER
    connection_string ='SERVER=demo_arbiter;HOST=localhost:6870';
  8. 执行以下语句为数据库设置验证字符串:

    SET MIRROR OPTION authentication_string='abc';
  9. 与 Interactive SQL 断开连接。

  10. c:\server1 中的数据库文件和事务日志制作副本,然后运行以下命令将这些副本添加到 c:\server2

    dbbackup -c "UID=DBA;PWD=sql;SERVER=mirror_server1;DBN=mirror_demo" c:\server2
  11. 运行以下命令启动第二个数据库服务器:

    dbsrv12 -n mirror_server2 -x "tcpip(PORT=6872;DOBROAD=no)" -su sql "c:\server2\mirror_demo.db" -xp on

    此命令行指定以下 dbsrv12 选项:

    • -n   将数据库服务器命名为 mirror_server2。

    • -x   指定数据库服务器运行时使用的端口。

    • -su   指定实用程序数据库的口令。建议您加入 -su 选项来指定实用程序数据库的口令。这样,您可以连接到实用程序数据库来关闭数据库服务器,或者在必要时强制镜像服务器成为主服务器。请参见停止镜像系统中的数据库服务器强制数据库服务器成为主服务器

    • -xp on   指明数据库服务器可用于参与数据库镜像系统。

  12. 运行以下命令启动仲裁数据库服务器:

    dbsrv12 -n demo_arbiter -su sql -x "tcpip(PORT=6870;DOBROAD=no)" -xf "c:\arbiter\arbiter.state" -xa "AUTH=abc;DBN=mirror_demo"
    • -n   将数据库服务器命名为 demo_arbiter。

    • -su   指定实用程序数据库的口令。建议您加入 -su 选项来指定实用程序数据库的口令。这样,您可以连接到实用程序数据库来关闭数据库服务器,或者在必要时强制镜像服务器成为主服务器。请参见停止镜像系统中的数据库服务器强制数据库服务器成为主服务器

    • -x   指示数据库服务器使用 TCP/IP,通过端口 6870 进行通信。其它服务器也使用 TCP/IP,但通过不同的端口进行通信。

    • -xf   指定 arbiter 的状态信息文件的位置。

    • -xa   指定正在镜像的数据库的名称,并为仲裁服务器指定验证字符串(本例中为 abc)。必须将此验证字符串用于数据库镜像系统中的所有服务器(仲裁服务器、主服务器和镜像服务器)。

  13. 通过运行以下命令,使用主服务器的替代服务器名称启动 Interactive SQL 并连接到主服务器:

    dbisql -c "UID=DBA;PWD=sql;SERVER=mirror_demo_primary;HOST=localhost:6871,localhost:6872"
  14. 通过执行以下语句确定连接到的是哪个数据库服务器:

    SELECT PROPERTY( 'ServerName' );

    用作主服务器的服务器的名称随即出现。

    例如:mirror_server1

  15. 通过执行以下语句将数据添加到数据库:

    CREATE TABLE test (col1 INTEGER, col2 CHAR(32));
    INSERT INTO test VALUES(1, 'Hello from server1');
    COMMIT;
  16. 前进至第 2 课:在数据库镜像系统中启动故障转移

 另请参见