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

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: Sybase

2008-04-10 20:47:51

  来源:赛迪网    作者:Sybase

当然,我们也需要在远程数据库上建立同步用户:

CREATE SYNCHRONIZATION USER "SIMPLE"

接下来,就建立一个SYNCHRONIZATION SUBSCRIPTION。这是为MobiLink用户定义预定发布。预定发布将告诉MobiLink客户端,在同步时,这个用户和其对应的发布将使用什么样的方式连接到MobiLink服务器,并使用MobiLink服务器端指定版本的同步脚本来进行同步。例如:

CREATE SYNCHRONIZATION SUBSCRIPTION TO Lab_all
FOR "SIMPLE"
TYPE 'TCPIP'
ADDRESS 'host=localhost;port=2439'
OPTION ScriptVersion='Lab01'

这就是说,SIMPLE这个用户,在MobiLink客户端将使用Lab_all这个发布把数据进行上/下载。他使用TCPIP协议,通过与 localhost 2439端口通信连接上MobiLink服务器,并且在同步过程中使用MobiLink服务器端版本号为Lab01的同步脚本。

然后,作为最简单的例子,我们启动同步服务器:

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

他将不进行用户验证(-zu+),也会自动生成同步脚本(-za)(因为在前面的步骤中我们没有建立同步脚本)。当然,MobiLink Server也将连接到中心数据库center。其他几个选项都是用于日志什么的。

启动同步服务器后,可以在同步客户端上触发同步:

dbmlsync -c "dsn=remote" -o dbmlsync.out -v 
-e "SendColumnNames=ON"

当MobiLink服务器端未建立同步脚本时,需要指定SendColumnNames=ON,以便让MobiLink客户端发送列名,以便MobiLink服务器端自动生成同步脚本。其他选项用于日志、连接远程数据库等。

在本部分的屏幕录像中,我们即展示了这种最简单的同步方式,没有用户验证,没有错误处理,没有冲突处理,服务器端自动生成同步脚本。如需要这些进一步的功能,请继续关注我们后续的内容。

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

脚本:

命令行:

dbinit center.db

dbinit remote.db

建立ODBC center & remote

dbisql下,对center创建数据库模式:

CREATE TABLE dept(
deptno CHAR(4) NOT NULL PRIMARY KEY,
deptname VARCHAR(20))

CREATE TABLE emp(
empno INTEGER IDENTITY NOT NULL PRIMARY KEY,
empname VARCHAR(20),
gender BIT,
deptno CHAR(4) NOT NULL,
FOREIGN KEY (deptno) REFERENCES dept (deptno))
阅读(445) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~