以下步骤假定一个数据库服务器已经在运行您想要为其设置镜像系统的数据库。
在启动即将参与镜像系统的数据库服务器时,建议您加入 -su 选项以指定实用程序数据库的口令。这样,您可以使用实用程序数据库来关闭服务器,或者强制镜像服务器成为主服务器(在需要这样做的情况下)。请参见-su 服务器选项。
有关在数据库镜像系统中涉及的升级 SQL Anywhere 或重建数据库的信息,请参见在数据库镜像系统中升级 SQL Anywhere 软件和数据库。
制作数据库和当前事务日志的副本,将其保存在另外一个服务器上。
如果现有数据库服务器已停止,您可以复制文件;否则使用 BACKUP DATABASE 语句或备份实用程序 (dbbackup)。请参见BACKUP 语句和备份实用程序 (dbbackup)。
停止正在运行的数据库服务器,修改其命令行配置使其包括镜像选项,然后启动该服务器。
例如:
dbsrv11 -n server1 -x tcpip(PORT=2638) -xf c:\server1\server1state.txt -su sql c:\server1\mirrordemo.db -sn mirrordemo -xp "partner=(ENG=server2;LINKS=tcpip(PORT=2637;TIMEOUT=1));auth=abc; arbiter=(ENG=arbiter;LINKS=tcpip(PORT=2639;TIMEOUT=1));mode=page;autofailover=YES" |
启动另一个运行服务器。
例如:
dbsrv11 -n server2 -x tcpip(port=2637) -xf c:\server2\server1state.txt -su sql c:\server2\mirrordemo.db -sn mirrordemo -xp "partner=(ENG=server1;LINKS=tcpip(PORT=2638;TIMEOUT=1));auth=abc; arbiter=(ENG=arbiter;LINKS=tcpip(PORT=2639;TIMEOUT=1));mode=page;autofailover=YES" |
启动仲裁服务器。
例如:
dbsrv11 -x tcpip -n arbiter -xa "AUTH=abc;DBN=mirrordemo" -xf arbiterstate.txt -su sql |
客户端现在可以连接到镜像数据库。
连接到镜像数据库时,客户端必须使用在用于启动主服务器和镜像服务器的命令中由 -sn 选项指定的服务器名。使用上面的示例时(数据库服务器是使用 -sn mirrordemo 选项启动的),客户端可在各自的连接字符串中指定连接参数 ENG=mirrordemo:
...UID=user12;PWD=x92H4pY;ENG=mirrordemo;LINKS=tcpip... |
如果主服务器和镜像服务器在不同的子网中运行,还必须指定客户端连接到主服务器时应使用的 IP 地址范围。例如:
...UID=user12;PWD=x92H4pY;ENG=mirrordemo;LINKS=tcpip(HOST=ip1,ip2...)... |
您可能还需要指定 RetryConnectionTimeout 连接参数,以控制客户端可以在多长时间内重试与主服务器之间的连接尝试。请参见RetryConnectionTimeout 连接参数 [RetryConnTO]。
如果不能顺利找到客户端需要连接的服务器,请尝试执行以下操作:
指定运行主服务器和镜像服务器的计算机的主机名。例如,如果它们分别在名为 MirrorServ1 和 MirrorServ2 的计算机上运行,则可以在客户端连接字符串中使用 LINKS=tcpip(HOST=MirrorServ1,MirrorServ2)
。
使用 LDAP 注册服务器。请参见使用 LDAP 服务器进行连接。
使用 SQL Anywhere 广播转发器实用程序 (dbns11) 定位服务器。此实用程序用于监听一个子网上的广播和响应,然后在另一个子网上再次广播。请参见广播转发器实用程序 (dbns11)。
确定初始主服务器
指定首选数据库服务器
配置在镜像服务器上运行的数据库的只读访问
强制数据库服务器成为主服务器
启动主服务器上的故障转移
停止镜像系统中的数据库服务器
从主服务器故障恢复
数据库镜像和事务日志文件
数据库镜像系统事件
数据库镜像和性能
数据库镜像和备份
数据库镜像情形
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |