数据库A和数据库B是建立在两台独立的数据库服务器上,那么采用dblink方式是一种可行的方式,存在两个数据同步过程:
一、数据库A正常运行的时候需要将数据同步到备用库即数据库B;
二、数据库A不正常的时候启用数据库B,在数据库A恢复正常之前的数据更新都发生在数据库B,那么需要将数据库B的数据同步给数据库A。
第一种方式:前提是数据库A和数据库B本地网是24小时互通的同时对数据同步实时性有比较高的要求,那么可以建立DBLINK,在两个库都建触发器,不管当前在哪个库发生数据更新的时候实时同步数据到目标数据库;
第二种方式:如果数据同步的实时性要求不高,则可以通过定制存储过程的方式(给两个库的数据表加时间戳或者更新标志,)定时同步数据;
第三种方式:通过给两个数据库的数据表加更新标志字段,以第一种方式为主以满足实时性的要求,以第二种方式为辅弥补可能存在的触发器执行更新未成功的情况。
以上的方案都是从数据层面所做的处理,对于数据实时同步还是会存在一定的风险,那么双机热备应该说是最好的选择了。vb+access做的一个管理系统可通过放置于局域网的服务器或某台机器的共享数据库实现数据共享。
1)首先把程序折分,分成一个前台VB程序,一个后台数据库。
VB程序可使用Ado数据对象或数据控件等灵活使用SQL结构化查询语句 *** 纵后台ACCESS数据库,通过各种表格控件显示信息。
利用ACCESS的数据库拆分向导可以很轻松的做到把数据库分为前台与后台两个部分,前台保留除表之外的所有对象,包括:查询、窗体、报表、宏或代码,并且自动链接了后台数据库的表;而后台只保留了表对象。
Ø 打开数据库-工具-数据库实用工具-折分数据库
Ø 在d出“数据库拆分器”后单击“拆分数据库”按钮,d现“创建后端数据库”对话框。
Ø 拆分后的前台保留原数据库名,而后台数据库名通常会在原数据库名后加_be,可以指定后台保存在一个特定的文件夹内。
2)共享后台数据库所在的文件夹。
Ø 打开资源管理器,选中文件夹,右键单击,选择“共享与安全”。
Ø 选中“在网络上共享这个文件夹”。
Ø 如果想让局域网内其他机上的可以更新数据,就在“允许网络用户更改我的文件”上勾中。
以上是以Windows XP为例,其他系统会有所不同。
3)映射网络驱动器。
Ø 在“网络邻居”上右键单击,或在“资源管理器”中选择工具菜单,选择“映射网络驱动器”。
Ø 指定一个驱动器(盘符),譬如:M。这个M盘为随意的,可以指定任意其他的盘符,但要在局域网内所有要同享数据库的机上映射统一的盘符至后台数据库所在的共享文件夹。
Ø 指定此盘符映射的文件夹,也就是后台数据库所在的那个共享文件夹。可以单击浏览按钮选择,也可以直接输入。
Ø 选中“登录时重新连接”
4)重新链接前台程序库的表链接。
5)上面做完后机器上的工作就完成了,接下来就是在局域网中的每台机上都映射那个共享文件夹至同样的驱动器(盘符)如:M。
6)最后一步,分发前台程序库,所有设置局域网内数据库共享的工作完成。以后程序库功能升级后,直接分发程序库就行了。
参考:>你的意思是两个数据库里面同一张表的数据要进行合并?
可以考虑进行数据的发布订阅,以一定的频率进行两张表的数据合并;
这样可以试想两店的会员信息能够进行共享。不过由于是定时数据合并,因此会存在一定的时间差。
不过考虑到应用是酒店会员,因此应该没有问题。
在实施过程中必须要注意选择发布订阅的类型。
具体的设置可以百度“数据对拷”、“发布订阅”。先在控制面板中的管理工具中的ODBC中建立一个ODBC链接。然后再打开ACCESS中的外部资料,链接上你刚建立的ODBC链接。过程中你得知道SQL SERVER的账号sa的密码,否则你无法执行。ACCESS把ODBC中所有的表链接上以后,此表保存于SQL数据库中,但ACCESS可以直接使用,如链接后表名字前有DBO的字样,造成你的窗体无法使用,则你可以把表名字的DBO直接删掉就可以使用了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)