怎么实现同步问题?

Bluess 2003-03-18 11:25:55
我自己写一个分布式的数据库,在对资料作修改,删除,插入时怎么实现同步问题10
...全文
37 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
zzjjww 2003-03-19
  • 打赏
  • 举报
回复
可以利用快照啊
1.创建快照log,在远程机器的源数据库:
create snapshot log on 表名;(该表应该具有主键)
2.创建数据库连接,在需要源数据的数据库中:
3.授权create any snapshot给当前用户
4.创建快照:
create snapshot s_test as select * from 表名@数据库连接名 where ....
5.根据需要修改快照刷新的间隔时间:
alter snapshot s_test refresh fast start with sysdate+1/1440 next sysdate+1/144;
{此SQL语句的意思为:设定oracle自动在1分钟(1/24*60)后进行第一次快速刷新,以后每隔10分钟(10/24*60)快速刷新一次。}
Alter snapshot s_test refresh complete Start with sysdate+1/2880 next sysdate+1;
{此SQL语句的意思为:设定oracle自动在30钞(30/24*60*60)后进行第一次完全刷新,以后每隔1天完全刷新一次。}
快照的刷新有两种方式:快速刷新和完全刷新。快速刷新需要快照的主表先有快照日志存在(参考第一步);完全刷新时oracle执行快照查询,将结果放入快照。快速刷新比完全刷新快,因为快速刷新将主数据库的数据经网络发送到快照的数据少,仅需传送主表中修改过的数据,而完全刷新要传送快照查询的全部结果。

6.说明:
---- 1、因为快照刷新是服务器自动完成的,所以要保证oracle数据库启动了快照刷新进程。查看oracle数据库是否启动了快照刷新进程,可以以数据库sys身份查看视图V_$SYSTEM_PARAMETER中的参数snapshot_refresh_processes的值是否为1,如果不为1,则快照刷新进程未启动。
---- 2、启动快照刷新进程的方法为:修改oracle数据库的初始化文件initorcl.ora,将其中的snapshot_refresh_processes参数的值改由0改为1,然后重新启动oracle数据即可。
---- 3、需要说明的是:建立快照日志时oracle数据库为我们建立了一个基于yh_qfcx的触发器tlog$_yh_qfcx和快照日志表mlog$_yh_qfcx;建立快照时oracle数据库为我们建立了一个表、两个视图、一个索引,它们分别为:
一个表:snap$_s_yh_qfcx;
两个视图:mview$_s_yh_qfcx和s_yh_qfcx; 一个索引:I_snap$_s_yh_qfcx(
基于表snap$_s_yh_qfcx中的m_row$$字段。

Michaelyfj 2003-03-19
  • 打赏
  • 举报
回复
可以用复制技术啊,但我自己也不知道要如何做?

7,388

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 数据仓库
社区管理员
  • 数据仓库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧