创建镜像系统。
前提条件
本课假定您拥有在本教程开头的权限部分中列出的角色和特权: 教程:创建多个数据库共享一个仲裁服务器的数据库镜像系统。
创建以下目录:c:\server1、c:\server2 和 c:\arbiter。
创建名为 mirror_demo.db 的数据库,其中包含示例数据库中的数据并具有事务日志。无法在镜像模式下启动不具有事务日志的数据库。运行以下命令:
newdemo c:\server1\mirror_demo.db |
启动第一个数据库服务器。运行以下命令:
dbsrv16 -n mirror_server1 -x "tcpip(PORT=6871)" -su sql "c:\server1\mirror_demo.db" -xp on |
-n 对数据库服务器命名。
-su 指定实用程序数据库的口令。建议您加入 -su 选项以指定实用程序数据库的口令,这样您就可以在需要时连接到实用程序数据库以关闭数据库服务器。请参见停止镜像系统中的数据库服务器和疑难解答:主服务器无法重新启动。
-x 指定数据库服务器运行时使用的端口。
-xp on 指明数据库服务器可用于参与数据库镜像系统。
从 Interactive SQL 连接到数据库。运行以下命令:
dbisql -c "UID=DBA;PWD=sql;SERVER=mirror_server1" |
使用 CREATE MIRROR SERVER 语句定义数据库的伙伴服务器和仲裁服务器。
执行以下语句将 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'; |
执行以下语句以将
mirror_demo_primary 定义为 mirror_server1 的替代服务器名称。mirror_demo_primary 是客户端连接到用作主服务器的数据库服务器时所使用的名称。
mirror_demo_mirror 定义为 mirror_server2 的替代服务器名称。mirror_demo_mirror 是客户端连接到用作镜像服务器的数据库服务器时所使用的名称。
在系统中配置数据库服务器需要主服务器和镜像服务器角色:当客户端连接至数据库服务器时,您为这些服务器提供的名称用作替代服务器名。任一伙伴服务器均可担当主服务器或镜像服务器。
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'; |
执行以下 SQL 语句以定义数据库镜像系统的仲裁服务器:
CREATE MIRROR SERVER demo_arbiter AS ARBITER connection_string ='SERVER=demo_arbiter;HOST=localhost:6870'; |
设置数据库的验证字符串。执行以下语句:
SET MIRROR OPTION authentication_string='abc'; |
使用备份实用程序 (dbbackup) 将 c:\server1 中的数据库文件和事务日志复制到 c:\server2。运行以下命令:
dbbackup -c "UID=DBA;PWD=sql;SERVER=mirror_server1;DBN=mirror_demo" c:\server2 |
启动第二个伙伴服务器。运行以下命令:
dbsrv16 -n mirror_server2 -x "tcpip(PORT=6872;DOBROAD=no)" -su sql "c:\server2\mirror_demo.db" -xp on |
启动仲裁服务器。运行以下命令:
dbsrv16 -n demo_arbiter -su sql -x "tcpip(PORT=6870;DOBROAD=no)" -xf "c:\arbiter\arbiter.state" -xa "AUTH=abc;DBN=mirror_demo" |
-xf 指定 arbiter 的状态信息文件的位置。
-xa 指定正在镜像的数据库的名称,并为仲裁服务器指定验证字符串(本例中为 abc)。必须将此验证字符串用于数据库镜像系统中的所有服务器(仲裁服务器、主服务器和镜像服务器)。
使用主服务器的替代服务器名称启动 Interactive SQL 并连接到主服务器。运行以下命令:
dbisql -c "UID=DBA;PWD=sql;SERVER=mirror_demo_primary;HOST=localhost:6871,localhost:6872" |
向数据库添加数据。执行以下语句:
CREATE TABLE test (col1 INTEGER, col2 CHAR(32)); INSERT INTO test VALUES(1, 'Hello from server1'); COMMIT; |
(可选)要确定所连接数据库服务器的名称,需使用 ServerName 数据库服务器属性。执行以下语句:
SELECT PROPERTY( 'ServerName' ); |
关闭所有 Interactive SQL 窗口。
![]() |
使用DocCommentXchange讨论此页。
|
版权 © 2013, SAP 股份公司或其关联公司. - SAP Sybase SQL Anywhere 16.0 |