将数据添加到统一数据库和远程数据库,运行 SQL Remote 复制更改内容,然后确认数据在两个数据库中一致。
前提条件
您必须具有 SYS_REPLICATION_ADMIN_ROLE 系统角色。
如果目前尚未连接到统一数据库 (cons),则运行以下命令:
dbisql -c "SERVER=cons;DBN=cons;UID=DBA;PWD=sql" |
针对统一数据库 (cons) 执行以下语句,将附加示例数据添加到 employees 表:
INSERT INTO employees (first_name, last_name) VALUES ('Javier', 'Spoor'); COMMIT; |
针对远程数据库 (rem) 执行以下语句,将附加示例数据添加到 employees 表:
INSERT INTO employees (first_name, last_name) VALUES ('Nelson', 'Kreitzer'); COMMIT; |
在统一数据库 (cons) 上,运行消息代理:
dbremote -c "SERVER=cons;DBN=cons;UID=DBA;PWD=sql" -qc -v -o c:\tutorial\cons1.txt |
这将扫描统一数据库 (cons) 的事务日志,并使用 FILE 消息系统为远程数据库 (rem) 生成一条消息。由于在统一数据库中已为 FILE 消息系统设置调试消息系统参数,您可以查看 c:\tutorial\cons1.txt 文件,并验证是否看到调试消息,指示消息已写入 c:\tutorial\messages\rem 目录。例如:
I. 2011-03-25 11:03:31. Processing transactions from active transaction log I. 2011-03-25 11:03:31. Sending message to "rem" (0-0000000000-0000550994-0) I. 2011-03-25 11:03:31. sopen "c:\tutorial\messages\rem\cons.0" I. 2011-03-25 11:03:31. write " c:\tutorial\messages\rem\cons.0" I. 2011-03-25 11:03:31. close " c:\tutorial\messages\rem\cons.0" |
在远程数据库 (rem) 上,运行消息代理:
dbremote -c "SERVER=rem;DBN=rem;UID=DBA;PWD=sql" -qc -v -o c:\tutorial\rem.txt |
通过 HTTP 消息传递系统,此命令接收并应用由统一数据库刚刚生成的消息。然后,它将扫描事务日志,并通过添加到远程数据库中的新行将消息发送回统一数据库。由于在远程数据库中已为 HTTP 消息系统设置调试消息系统参数,您可以查看 c:\tutorial\rem.txt 文件,并验证是否看到调试消息,指示正在使用 HTTP 消息系统。例如:
I. 2011-03-25 11:10:02. Sending message to "cons" (0-0000000000-0000557411-0) I. 2011-03-25 11:10:02. HTTPWriteMessage "rem.0" I. 2011-03-25 11:10:02. HTTPWriteMessage: success -- filename "rem.0" I. 2011-03-25 11:10:02. HTTPDisconnect |
在统一数据库 (cons) 上,运行消息代理:
dbremote -c "SERVER=cons;DBN=cons;UID=DBA;PWD=sql" -qc -v -o c:\tutorial\cons2.txt |
通过基于 FILE 的消息系统,此命令接收并适用由远程数据库刚刚生成的消息。
要验证统一数据库包含所有四行数据,可执行以下语句查看 employees 表的内容:
SELECT * FROM employees; |
查询将返回 employees 表中的以下数据,不过 hire_date 列将包含插入行的时间,而非在以下表中所看到的值:
employee_id | first_name | last_name | hire_date |
---|---|---|---|
1 | Kelly | Meloy | 2011-03-25 08:27:56.310 |
2 | Melisa | Boysen | 2011-03-25 08:27:56.310 |
3 | Javier | Spoor | 2011-03-25 08:30:26.110 |
102000001 | Nelson | Kreitzer | 2011-03-25 08:31:51.970 |
通过执行以下语句查看 employees 表的内容,验证远程数据库 (rem) 是否包含所有四行数据:
SELECT * FROM employees; |
查询将返回 employees 表中的以下数据,不过 hire_date 列将包含插入行的时间,而非在以下表中所看到的值:
employee_id | first_name | last_name | hire_date |
---|---|---|---|
1 | Kelly | Meloy | 2011-03-25 08:27:56.310 |
2 | Melisa | Boysen | 2011-03-25 08:27:56.310 |
3 | Javier | Spoor | 2011-03-25 08:30:26.110 |
102000001 | Nelson | Kreitzer | 2011-03-25 08:31:51.970 |
与 Interactive SQL 断开连接。
![]() |
使用DocCommentXchange讨论此页。
|
版权 © 2013, SAP 股份公司或其关联公司. - SAP Sybase SQL Anywhere 16.0 |