当前位置:文章首页 >> 数据库 >> Sybase >> 教你循序渐进的做一个MobiLink的Demo
教你循序渐进的做一个MobiLink的Demo
2007-09-28 00:02:27  作者:佚名  来源:互联网  文字大小:【】【】【

  SQL Anywhere Studio实际是由以下几个组建构成的:

  1.Adaptive Server Anywhere

  简称ASA。这是什么?大家都知道吧,是个数据库。这个数据库是一个标准的关系型数据库,和Sybase ASE、Oracle、SQL Server和DB2差不多,但是他占用的资源更少,查询效率更高(我测试的结果比SQL Server的好,有需要的我们一起讨论),基本不需要管理。一些功能诸如数据库自动优化、索引建议等在性能方面有很好的贡献。所以,我觉得他适合一个中型的企业应用,一般几百人并发连接没有问题。我做的测试是800个连接的。

  2.MobiLink

  大家可能还不知道这个。这个是一个数据同步的中间件。什么叫数据同步呢?实际上就是把数据从一个数据库拷贝/复制到另外一个数据库。干嘛需要这个呢?原因我想就不用解释了。但是,Sybase的SQL Anywhere Studio有移动数据库的称谓,所以,要解决移动设备上的数据和大数据库之间的数据交换问题,就有了MobiLink。当然,MobiLink用的很多的是在分布式数据存储的情况下。总的来说,MobiLink支持的是偶连接的同步,也就是说,不是实时同步,而是偶尔同步一下的。这当中会有很多问题咯,我就先卖个官子,大家一起讨论咯,这样大家都可以有书嘛,哈哈!另外呢,MobiLink是开放的系统,他可以同步其他数据库的(Oracle、Sybase ASE、SQL Server等)。一会儿我们就一起来做这个Demo。MobiLink也分为服务器端和客户端。

  3.UltraLite

  一个字——强!启动仅需要几十K内存的数据库!支持标准SQL,但是不支持触发器和存储过程等。适用于资源极端有限(手机、嵌入设备等)的地方。是ASA的子集(应该可以这么说吧)。

  4.SQL Remote

  以后不支持了,略。

  5、组件Qanywhere

  (大家原谅)这个我没有用过,不好意思发表意见.

  好,接下来我们就用两个ASA的库和MobiLink来做一个数据同步的DEMO。

  当然, 需要两个ASA的数据库咯。在命令行方式下,分别键入:

dbinit con1.db
dbinit rem1.db

  con1这个数据库代表中心数据库,rem1代表远程数据库,我们把中心数据库的数据通过MobiLink同步到rem1来。

  中心数据库里面需要数据:

  在dbisql下,连接con1数据库(连接方法不会发帖子问啊,或者下载文档看)

  输入命令:

  对con1建表:

CREATE TABLE dept
(
deptno CHAR(4) NOT NULL PRIMARY KEY,
deptname VARCHAR(10) NOT NULL
);
CREATE TABLE employee
(
empno CHAR(5) NOT NULL PRIMARY KEY,
empname VARCHAR(20) NOT NULL,
deptno CHAR(4) NOT NULL,
FOREIGN KEY (deptno) REFERENCES dept(deptno)
);

  对con1添加数据:

INSERT INTO dept VALUES('0001', 'admin');
INSERT INTO dept VALUES('0002', 'finance');
INSERT INTO dept VALUES('0003', 'sales');
INSERT INTO dept VALUES('0004', 'presales');
INSERT INTO dept VALUES('0005', 'marketing');
INSERT INTO dept VALUES('0006', 'CS&S');
INSERT INTO dept VALUES('0007', 'ADO');
COMMIT;

INSERT INTO employee VALUES('31274', 'Johnson Zhang', '0005');
COMMIT;

  OK。然后再连接上rem1数据库,也要建表,但是不要数据:

CREATE TABLE employee
(
empno CHAR(5) NOT NULL PRIMARY KEY,
empname VARCHAR(20) NOT NULL,
deptno CHAR(4) NOT NULL,
);

  如果同步成功之后,con1数据库的employee的数据会跑到rem1来。

  通过ODBC管理器,分别建立对两个数据库的ODBC连接,名为“cons”和“rem1”。

  在dbisql下,连接到rem1数据库,并建立发布:

CREATE PUBLICATION demo1
(
TABLE employee
);

  建立用户:

CREATE SYNCHRONIZATION USER "51";

  并建立订阅:

CREATE SYNCHRONIZATION SUBSCRIPTION
TO "demo1"
FOR "51"
TYPE 'TCPIP'
ADDRESS 'host=localhost;port=2439'
OPTION ScriptVersion='demo1';

  这些语句的意思也许大家不太明白,赶紧问哦,有书拿!

  至此,我们的系统就基本搭建完成了,我们就开始同步吧!

  首先,在命令行下,启动MobiLink服务器:

dbmlsrv9 -dl –v+ –zu+ -x tcpip -c
"DSN=cons" –ot ml.txt

  然后触发运行同步:

DBMLSync –c "dsn=rem1" –v –dl –o rem1.txt

  在运行前和运行后都到rem1的employee表里面扫一眼,就知道变化了。如果忘记了,也没有关系,把con1里面的数据更新一下再看也可以!


  •  ©  2006-2008 www.qq08.net 业务联系 广告刊登 QQ:517165800统计

  • 皖ICP备07000033号