本教程介绍如何在不停止系统的情况下,将数据库镜像系统中的伙伴服务器转换为只读向外扩展系统中的复制节点。
前提条件
本教程依赖于教程:创建数据库镜像系统中介绍的数据库镜像系统。
您必须具有 MANAGE ANY MIRROR SERVER 系统特权。
缺省情况下,要使用 ALTER DATABASE...SET PARTNER FAILOVER 语句,您必须具有 SERVER OPERATOR 系统特权。使用 -gd 数据库服务器选项可对所需的特权进行更改。
上下文和注释
在本教程中,所有数据库服务器都运行在同一台计算机上。但是在生产环境中,每个数据库服务器必须安装在单独的计算机上。
如果本教程用于运行在不同计算机上的数据库服务器,则连接字符串中 localhost 的引用必须改为实际计算机的名称。
连接到要转换的伙伴服务器并确保其拥有镜像角色。您只能转换拥有镜像角色的伙伴服务器。如果想要转换为复制节点的服务器是主服务器,则必须启动故障转移,以便主服务器和镜像服务器切换角色。例如,连接到 mirror_server2:
dbisql -c "UID=DBA;PWD=sql;SERVER=mirror_server2;HOST=localhost:6872" |
数据库服务器属性 MirrorRole 将返回服务器的当前角色。执行以下语句:
SELECT DB_PROPERTY( 'MirrorRole' ); |
如果返回 Primary,则执行以下语句以启动故障转移:
ALTER DATABASE SET PARTNER FAILOVER; |
当前主数据库停止,然后重新启动。
连接到主服务器:
dbisql -c "UID=DBA;PWD=sql;SERVER=mirror_demo_primary;HOST=localhost:6871,localhost:6872" |
更改定义:
更新类型 PRIMARY 的镜像服务器定义,以移除要转换的伙伴服务器的连接信息。
删除类型 MIRROR 的镜像服务器定义。
更改要转换为复制节点的服务器的伙伴服务器定义。
执行以下语句:
ALTER MIRROR SERVER mirror_demo_primary connection_string='SERVER=mirror_demo_primary;HOST=localhost:6871'; DROP MIRROR SERVER mirror_demo_mirror; ALTER MIRROR SERVER mirror_server2 AS COPY FROM SERVER PRIMARY; |
作为对这些配置进行更改的一部分,两个伙伴服务器上的数据库均会重新启动,但服务器本身继续运行。在数据库重新启动期间,到该数据库的连接将断开。
(可选)如果要拆除镜像系统,请删除仲裁服务器。执行以下语句:
DROP MIRROR SERVER demo_arbiter; |
查看 SYSMIRRORSERVER 系统视图中的内容,以验证 mirror_server2 是否已经转换为复制节点。运行以下命令:
dbisql -c "UID=DBA;PWD=sql;SERVER=mirror_demo_primary" "SELECT server_name, server_type FROM SYSMIRRORSERVER" |
![]() |
使用DocCommentXchange讨论此页。
|
版权 © 2013, SAP 股份公司或其关联公司. - SAP Sybase SQL Anywhere 16.0 |