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

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - 数据库管理 » 维护数据库 » SQL Anywhere 高可用性 » 设置数据库镜像

 

配置在镜像服务器上运行的数据库的只读访问

使用数据库镜像时,可以使用只读连接访问在镜像服务器上运行的数据库。如果您要下放报告或需要此数据库的只读访问的其它操作,此功能很有用。

在镜像系统中,您不必知道哪个数据库担当主服务器和镜像服务器。如果您要能够连接到在镜像服务器上运行的数据库,需在启动数据库服务器时包括 -sm 服务器选项。这样,通过提供用于访问只读镜像数据库的服务器名,就能够建立找到镜像服务器的连接。只有在数据库服务器担当数据库的镜像服务器时,通过 -sm 选项指定的服务器名才处于活动状态。通常对这两个数据库服务器都指定 -sm 选项,因为您不知道哪个服务器担当主服务器或镜像服务器。例如,-sm 选项指示数据库服务器使用 mysamplemirror 作为连接到在镜像服务器上运行的数据库时的替代服务器名:

dbsrv11 -n myserver satest.db sample.db -sn mysampleprimary 
-sm mysamplemirror
-xp "partner=( ENG=server2;LINKS=TCPIP( PORT=2637;TIMEOUT=1 ) );auth=abc;
arbiter=( ENG=arbiter;LINKS=TCPIP;( PORT=2639;TIMEOUT=1 ) );mode=sync"

尝试更改数据库将导致错误,其行为与使用 -r 选项作为只读启动数据库时的行为相同。可以在临时表上执行操作,但在镜像数据库上不触发事件。事件触发只在发生从主服务器到镜像服务器的故障转移之后启动。如果已定义,此时触发 DatabaseStart 和 MirrorFailover 事件。有关详细信息,请参见了解系统事件

如果发生故障转移,镜像服务器变为主服务器,将维持与镜像服务器的连接。故障转移后,连接可对数据库进行更改。您可以查询 ReadOnly 数据库属性的值,以确定您所连接的数据库是否可以更新:

SELECT DB_PROPERTY( 'ReadOnly' );
另请参见

针对镜像数据库运行查询