Chinaunix首页 | 论坛 | 博客
  • 博客访问: 101420061
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: Sybase

2008-04-10 20:49:48

  来源:赛迪网    作者:Sybase

在本部分的屏幕录像中,我们仅使用了针对emp表的update_delete和download_cursor两个事件来指挥只有部门号为0001的数据能下载到远程数据库中,并且在远程数据库中做的删除动作能反映到中心数据库。在服务器启动的过程中去掉了-za+选项,让服务器不要自动生成脚本,去掉了-zu+的选项,通过dbmluser来添加用户,形成真实的用户验证。并且在同步dbmlsync触发同步的过程中,我们去掉了SendColumnNames=ON的扩展选项,因为我们在服务器端已经定义了同步脚本。

以下是屏幕录像中的全部脚本:

将在上一议题的Demo中备份的数据库文件拷贝过到新的文件夹下,在命令行中分别启动中心与远程数据库:

dbeng9 center.db

dbeng9 remote.db

dbisql

对于remote:

CREATE PUBLICATION Lab_02
(
TABLE emp
)


CREATE SYNCHRONIZATION USER "Sales02"

CREATE SYNCHRONIZATION SUBSCRIPTION TO Lab_02
FOR "Sales02"
TYPE 'TCPIP'
ADDRESS 'host=localhost;port=2439'
OPTION ScriptVersion='demo2'

对center:

CALL ml_add_table_script
('demo2', 'emp', 'upload_delete', 
'DELETE emp WHERE empno=?');

CALL ml_add_table_script('demo2', 'emp', '
download_cursor', 
'SELECT * FROM emp WHERE deptno=''0001''');

在控制台下:

dbmluser -c "dsn=center" 
-u Sales02 -p abcdefg

dbmlsrv9 -dl -v+ -x tcpip -c "dsn=center" 
-o mlserver.mls

dbmlsync -c "dsn=remote" -o dbmlsync.out 
-v -u Sales02 -mp abcdefg -e "sv=demo2"

其中,sv是ScriptVersion的简写。

阅读(362) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~