通过从统一数据库 (hq) 抽取远程数据库来为远程用户创建数据库。
前提条件
您必须具有 SYS_REPLICATION_ADMIN_ROLE 系统角色。
上下文和注释
必须对远程数据库进行配置,以发送和接收消息及参与 SQL Remote 系统。如同统一数据库 (hq) 一样,远程数据库也需要 CURRENT PUBLISHER 来标识外发消息的来源。它还需要将统一数据库 (hq) 标识为预订者。
运行 dbxtract 实用程序以创建远程数据库,其中包含:
对统一数据库的预订
发布
数据的当前副本
从 c:\tutorial 目录运行以下命令,为用户 field_user 从统一数据库 (hq) 抽取远程数据库模式:
dbxtract -v -c "UID=DBA;PWD=sql;SERVER=server_hq;DBF=C:\tutorial\hq.db" c:\tutorial field_user |
此命令将执行以下操作:
在当前目录中创建名为 reload.sql 的 SQL 脚本文件。reload.sql 文件包含模式以及将其装载到新数据库的说明。
在 c:\tutorial 目录中创建数据文件。
启动对远程用户的预订。
从 c:\tutorial 目录运行以下命令,创建远程数据库 (field):
dbinit -dba DBA,sql field.db |
在生产环境中,不要将两个复制数据库存储在同一个目录中。
将数据库信息装载到远程数据库 (field) 中。
以具有 SYS_REPLICATION_ADMIN_ROL 系统角色的用户身份通过 Interactive SQL 连接到远程数据库 (field):
dbisql -c "UID=DBA;PWD=sql;SERVER=server_field;DBF=c:\tutorial\field.db" |
执行以下语句,读取 reload.sql 文件:
READ C:\tutorial\reload.sql; |
reload.sql 脚本文件将执行以下操作:
在远程数据库 (field) 中创建消息类型。
将 PUBLISH 特权授予远程数据库 (field)。
在远程数据库 (field) 中创建 SalesReps 和 Customers 表。这些表包含与统一数据库 (hq) 相同的数据。
创建发布,标识要复制的数据。
为统一数据库 (hq) 创建预订,并启动预订。
执行以下语句,确认这两个表已创建:
SELECT * FROM SalesReps; |
上述查询将返回 SalesReps 表的以下数据:
rep_key | name |
---|---|
rep1 | Field User |
rep2 | Another User |
SELECT * FROM Customers; |
上述查询将返回 Customers 表的以下数据:
cust_key | name | rep_key |
---|---|---|
cust1 | Ocean Sports | rep1 |
![]() |
使用DocCommentXchange讨论此页。
|
版权 © 2013, SAP 股份公司或其关联公司. - SAP Sybase SQL Anywhere 16.0 |