做个数据库链接,A表插入数据以后就往B表插入,用触发器实现
在任何实时数据同步和复制中,需要考虑如下几个关键问题:
事务一致性:在复制目标端需要按照源端相同的事务环境进行提交,确保目标上数据一致性。
检查点机制:在抽取和负责时都需要记录检查点位置,确保网络故障或GG本身故障下仍然能够完整复制。
可靠数据传输:需要保证数据传输的完整性,请求和应答,同时提供数据加密和传输过程中的压缩。
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表名
在linux机器上写一个shell脚本:
功能如下:
1)远程连接内网的数据库导出到linux机器的目录里
2)远程连接外网的数据库把刚导出的文件导入外网数据库
3)成功导入后把文件删除
把scripts放在crontab 里定时执行
datagurd:
主要备库的方式,就是数据库对数据库的备份方式,主要是解决容灾的。
流复制:
主要是利用oracle的归档日志,进行增量备份来实现的,不仅可以配置只复制某些表,还可以配置仅复制某些表上的ddl或dml。可以复制到表,用户,数据库级别。
高级复制:
主要是基于触发器的原理来触发数据同步的,因此,高级复制无法实现用户,数据库级别的对象复制,只能做些表、索引和存储过程的复制。
将Oracle数据导入MySQL方法:
先把oracle表中的数据另存在excel表中,再把excel表中数据导入到mysql中。
这里要将oracle中表eventlogs的数据导入到mysql中。
步骤如下:
1、在PL/SQL中用select 搜索到eventlogs表的所有数据,然后右键点击"Copy to Excel";如下图所示:
2、将数据保存为excel表,并重名;如下图:
3、打开mysql的可视化工具,我这里是Navicat,选择表,点击导入向导;如下图所示:
4、选择上图中"导入类型"的"execel文件",然后点击"下一步";如下图所示:
5、接下来会让你选择文件,选择你已经保存的excel文件,并选择“SQL Result”,如下图所示:
6、然后一直点击下一步,最后一步点击开始。会出现一个“sql result”的表,重命名为你想要的表即可。如图所示:
能实现,
sqlserver 到oracle可以用触发器实现,前提是你需要先在sql server上创建到oracle的连接。
之后oracle 到外网你可用通过程序或别的方法实现。
以上就是关于关于 ORACLE 数据库 数据同步(实时同步和异步同步)全部的内容,包括:关于 ORACLE 数据库 数据同步(实时同步和异步同步)、如何把sql server一张表的数据实时同步到Oracle数据库、如何对内外网oracle数据库表同步等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)