方法一:通过物化视图来实现 1 创建dblink 2 创建物化视图 方法二:通过dataguard来实现 全库同步,并且备库不能进行 *** 作 方法三:通过godengate来实现 1 两个数据库同时安装godengate软件 2 配置参数
首先在ORACLE_B上做dblink连接ORACLE_A,然后做个存储过程,大致如下:找到table_db主键,select 主键 from table_db@dblink minus select table_db from table_db找到差异数据,然后插入到oracle_b,再写个job定时执行这个存储过程
一、第一套方案
1、用新的建库脚本创建一套新的数据库,结构和类型都是新的;
2、用数据导入工具,将原数据库的数据导入到新的数控里面;
二、第二套方案
1、用新的建库脚本创建一套新的数据库,结构和类型都是新的;
2、用数据库结构同步工具,将老的数据库结构更新同步到新建的数据库上面;
两套方案肯定都可行,主要在工作量和工作效率上面区别太大,导数据需要工具,可以用Sqlserver提供的DTS,有的结构变动大的需要对应字段关系,太麻烦;
所以我想到用数据库结构同步工具来进行,记得以前就用过这个功能,我们可以在网上轻松找到oracle数据库客户端 *** 作工具PLSQL Developer,这个工具除了对数据库进行日常的维护之外,还提供很多使用的功能,同步两个数据库的结构,就是其中一个, *** 作步骤如下:
1、打开PLSQL Developer进入新创建的数据库;
打开菜单如下图:
点击菜单--工具--比较用户对象,进入如下图:
会列出所以的表,你可选择单独的表或者多个表同时 *** 作,然后点击目标回话,会d出要同步的数据库连接对象窗口,输入用户名和密码等等,确定后点击右下角的比较按钮,这样会出现如下的比较窗口:
这时,会把不同之处用脚本列出来,只要点击右边的绿色对号,同步即可;
这样,结构一下就都改好了,很方便。
1 SQLSERVER服务器上面安装oracle客户端,配置服务命名(假设为 test)
2 在SQLSERVER服务器上面建立链接服务器,脚本如下
SQL code
SQL code-- Adding linked server:
exec sp_addlinkedserver @server = 'test' ,
@srvproduct = 'ORACLE',
@provider = 'MSDAORA',
@datasrc = 'test'
-- Adding linked server login:
exec sp_addlinkedsrvlogin @useself='false ', @rmtsrvname = 'test',
@rmtuser = 'user', --数据库用户
@rmtpassword = 'password' --密码
3 建立一个作业,通过作业调度存储过程,存储过程使用类似的语句将oracle的数据插入到sqlserver表中
SQL code
insert into sqlserver表 select from testoracle表名
4 如果要球ORACLE数据是实时增加的,并且ORACLE记录上有递增的字段,可以在SQLSERVER上面建立一个表记录上次插入的id,然后下次可以从上次的ID+1开始继续插入
SQL code
insert into sqlserver表 select from testoracle表名 where id>@id
5 防止sqlserver同步的时候oracle仍在不断的插入,每次要取一个结束ID
SQL code
select @endid=max(id) from testoracle表名
oracle同步完数据库后需要刷新。二台不同的数据库服务器从一台数据库服务器a的一个用户读取另一台数据库服务器b下某个用户的数据可以通过dblink来完成Oracle数据库数据同步。
以上就是关于如何对Oracle数据库做部分数据的镜像同步全部的内容,包括:如何对Oracle数据库做部分数据的镜像同步、两个oracle数据库之间的数据同步、如何同步oracle数据结构等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)