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 服务器 - 数据库管理 » 高可用性和只读向外扩展系统 » SQL Anywhere 只读向外扩展

 

教程:向只读向外扩展系统添加镜像系统

本教程介绍如何向现有只读向外扩展系统添加镜像系统。只读向外扩展系统的根服务器同时变为镜像服务器。

前提条件

本教程假定您拥有教程:创建只读向外扩展系统中介绍的向外扩展系统,且该系统正在运行。

将只读向外扩展系统中的根节点配置为镜像系统中的主服务器,方法是定义镜像服务器、创建仲裁服务器,并将复制节点转换为镜像系统的镜像伙伴服务器。

您必须具有 MANAGE ANY MIRROR SERVER 系统特权。

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

上下文和注释

在本教程中,所有数据库服务器都运行在同一台计算机上。但是在生产环境中,每个数据库服务器必须安装在单独的计算机上。

如果本教程用于运行在不同计算机上的数据库服务器,则连接字符串中 localhost 的引用必须改为实际计算机的名称。

 任务
  1. 连接到只读向外扩展系统的根节点。运行以下命令:

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



    -- Alter existing primary to include both partners 
    ALTER MIRROR SERVER scaleout_primary_demo 
    connection_string='SERVER=scaleout_primary_demo;HOST=localhost:6871,localhost:6873';  
    
    -- Alter existing Partner to include state file 
    ALTER MIRROR SERVER scaleout_root_demo state_file='c:\\scaleoutdemo\\server1\\server1.state';
    
    -- Define mirror 
    CREATE MIRROR SERVER scaleout_mirror_demo AS MIRROR
    connection_string='SERVER=scaleout_mirror_demo;HOST=localhost:6871,localhost:6873';
    
    --Convert an existing copy node to the mirror server
    
    ALTER MIRROR SERVER scaleout_child_demo 
    connection_string='SERVER=scaleout_child_demo;HOST=localhost:6873' 
    state_file='c:\\scaleoutdemo\\copynode\\server3.state'; 
  3. 将现有复制节点转换为镜像服务器。执行以下语句:

    --Convert an existing copy node to the mirror server
    
    ALTER MIRROR SERVER scaleout_child_demo 
    connection_string='SERVER=scaleout_child_demo;HOST=localhost:6873' 
    state_file='c:\\scaleoutdemo\\copynode\\server3.state'; 
  4. 启动将成为镜像系统仲裁服务器的服务器。运行以下命令:

    mkdir c:\scaleoutdemo\arbiter
    dbsrv16 -n scaleout_arbiter_demo -su sql -x "TCPIP(PORT=6870)" -xf "c:\\scaleoutdemo\\arbiter\\arbiter.state" -xa "AUTH=abc;DBN=scaleoutdemo"
  5. 连接到根节点并添加仲裁服务器。执行以下语句。

    dbisql -c "UID=DBA;PWD=sql;SERVER=scaleout_primary_demo"
    CREATE MIRROR SERVER scaleout_arbiter_demo
    AS ARBITER 
    connection_string ='SERVER=scaleout_arbiter_demo;HOST=localhost:6870'; 
  6. 将现有复制节点转换为镜像服务器。执行以下语句:

    ALTER MIRROR SERVER scaleout_child_demo AS PARTNER state_file='c:\\scaleoutdemo\\copynode\\server3.state'
  7. 检查 SYSMIRRORSERVER 表的内容,以验证 scaleout_child_demo 是否为镜像服务器。运行以下命令:

    dbisql -c "UID=DBA;PWD=sql;SERVER=scaleout_primary_demo" "SELECT  server_name, server_type FROM SYSMIRRORSERVER"

    现在,scaleout_child_demo 服务器成为第二个伙伴服务器。

  8. 在客户端应用程序中更新连接字符串,以在 Host 连接参数中指定两个伙伴服务器的地址。例如:

    dbping -c "UID=DBA;PWD=sql;SERVER=scaleout_primary_demo;HOST=localhost:6871,localhost:6873" 
  9. (可选)添加其它复制节点。

    1. 制作主数据库的备份副本,将其放入 c:\scaleoutdemo\copynode2 目录。

    2. 执行以下语句:

      BACKUP DATABASE DIRECTORY 'c:\\scaleoutdemo\\copynode2';
    3. 启动数据库的备份副本,作为 scaleout_root_demo 数据库服务器的子节点(复制节点)。运行以下命令:

      dbsrv16 -n scaleout_child2_demo -su sql -x TCPIP(port=6874) "c:\scaleoutdemo\copynode2\scaleoutdemo.db" -xp on

结果

现在,只读向外扩展系统也成为镜像系统的一部分。

 另请参见