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

SAP Sybase SQL Anywhere 16.0 (中文) » SQL Remote » 教程:创建 SQL Remote 系统

 

第 5 课:抽取远程数据库

通过从统一数据库 (hq) 抽取远程数据库来为远程用户创建数据库。

前提条件

您必须具有 SYS_REPLICATION_ADMIN_ROLE 系统角色。

上下文和注释

必须对远程数据库进行配置,以发送和接收消息及参与 SQL Remote 系统。如同统一数据库 (hq) 一样,远程数据库也需要 CURRENT PUBLISHER 来标识外发消息的来源。它还需要将统一数据库 (hq) 标识为预订者。

运行 dbxtract 实用程序以创建远程数据库,其中包含:

  • 对统一数据库的预订

  • 发布

  • 数据的当前副本

 任务
  1. 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 目录中创建数据文件。

    • 启动对远程用户的预订。

  2. c:\tutorial 目录运行以下命令,创建远程数据库 (field):

    dbinit -dba DBA,sql field.db 
    小心

    在生产环境中,不要将两个复制数据库存储在同一个目录中。

  3. 将数据库信息装载到远程数据库 (field) 中。

    以具有 SYS_REPLICATION_ADMIN_ROL 系统角色的用户身份通过 Interactive SQL 连接到远程数据库 (field):

    dbisql -c "UID=DBA;PWD=sql;SERVER=server_field;DBF=c:\tutorial\field.db"
  4. 执行以下语句,读取 reload.sql 文件:

    READ C:\tutorial\reload.sql;

    reload.sql 脚本文件将执行以下操作:

    • 在远程数据库 (field) 中创建消息类型。

    • 将 PUBLISH 特权授予远程数据库 (field)。

    • 在远程数据库 (field) 中创建 SalesReps 和 Customers 表。这些表包含与统一数据库 (hq) 相同的数据。

    • 创建发布,标识要复制的数据。

    • 为统一数据库 (hq) 创建预订,并启动预订。

  5. 执行以下语句,确认这两个表已创建:

    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

结果

已为远程用户创建远程数据库。