两个oracle数据库之间怎么插入表数据,已建立dblink。

两个oracle数据库之间怎么插入表数据,已建立dblink。,第1张

如果已有dblink,那么首先要给dblink登录的用户赋插入权限。

grant insert on 表名 to 用户名;

然后在dblink连接的地方执行:

比如表名为test,字段分别为id和name

那么直接执行:

insert into test@远程主机 values (1,'张三');

commit;

注意:commit一定要写,否则插入不成功。

创建2个数据是2个。但是oracle的端口指的是监听端口

也就是用户客户端连接过来的端口。

所以是可以在一个监听中监听2个数据库的。

当然如果你希望分开的话也可以修改$ORACLE_HOME/network/admin/listenerora文件来配置2个监听,具体要配置详细的ORACLE_BASE和ORALCE_SID

然后起2个不同的LISTENER名字,启动时候专门指定监听名。

例如:lsnrctl

start

如果两个数据库可以建立dblink,那么通过dblink就可以像在一个数据库一样去对比。

如果不能建立dblink,那么就只能导出两行表,通过spool导出就可以。然后通过系统级别的命令去比对。我记得linux是有比较两个文件不同行的功能的。

如果认为两个都导出比较麻烦,那就导出一个,在导入另外一个库(注意变换名字,否则表明重复就麻烦了),然后再对比。

现在主要的方法有以下三种:

oracle dataguard(数据库本身支持)

oracle goldengate(第三方)

oracle rac(共用存储情况下)

不用安装2个数据库,只需要安装1个数据库就行了,Oracle数据库支持多个实例,你只需要配置不同实例就行,或者你实在搞不懂实例这个玩意,你就装2台虚拟服务器,直接 *** 作2个不同服务器上的2个表就行了,数据库之间的数据同步问题不是程序员的工作,那是DBA的事情,你要分清楚事情,然后再 *** 作,不然你事情做了,别人还说的多事。

首先在ORACLE_B上做dblink连接ORACLE_A,然后做个存储过程,大致如下:找到table_db主键,select 主键 from table_db@dblink minus select table_db from table_db找到差异数据,然后插入到oracle_b,再写个job定时执行这个存储过程

以上就是关于两个oracle数据库之间怎么插入表数据,已建立dblink。全部的内容,包括:两个oracle数据库之间怎么插入表数据,已建立dblink。、为什么我用oracle创建了两个数据库 却只用一个端口1521、在oracle中 怎样对比两个数据库中相同表的数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9509765.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存