oracle两个数据库
① 两个oracle数据库之间的数据同步
首先在ORACLE_B上做dblink连接ORACLE_A,然后做个
存储过程
,大致如下:找到table_db
主键
,select
主键
from
table_db@dblink
minus
select
table_db
from
table_db找到差异数据,然后插入到oracle_b,再写个job.定时执行这个存储过程
② 在oracle中 怎样对比两个数据库中相同表的数据
如果两个数据库可以建立dblink,那么通过dblink就可以像在一个数据库一样去对比。
如果不能建立dblink,那么就只能导出两行表,通过spool导出就可以。然后通过系统级别的命令去比对。我记得linux是有比较两个文件不同行的功能的。
如果认为两个都导出比较麻烦,那就导出一个,在导入另外一个库(注意变换名字,否则表明重复就麻烦了),然后再对比。
③ 如何实现两个oracle数据库连接
假设我们有两个数据库A,B
可以在数据库A创建访问数据库B的DB_LINK,那么数据库A就可以访问数据库B
④ 解决oracle两个的数据库之间数据迁移方法
1.exp/imp:可针对整个数据库对象、用户对象、指定表等进行。(需控制重复对象,数据表停用状态下进行)
2.sqlldr:对某个或几个表的特定资料导出为文本文件,再用sqlldr导入。(文本格式要正确,控制较复杂,效率低)
3.建立两个数据库间链接,直接用insert或语句迁移,也是针对少数表进行。(可在数据库使用状态下进行)
⑤ oracle怎么比较两个数据库
方法一、用PL/SQL DEVELOPER 来比较
1.登陆数据库A.
2.打开TOOLS菜单下的Compare User Objects
3.点Target Session,登陆数据库B
4.执行Compare
5.返回的是所有不同的对象以及更新语句[@more@]方法二、
1、对需要比较的表进行分析(可全表可抽样,自选),否则统计信息不准;
2、通过dba_tab_col_statistics表的column_name字段进行比较
select tz.table_name ,tz.column_name from dba_tab_col_statistics tz
WHERE tz.owner = 'BSS' AND TZ.TABLE_NAME LIKE 'BSS_%'
and (TZ.TABLE_NAME ,TZ.COLUMN_NAME) not in(
select TZT.TABLE_NAME ,TZT.COLUMN_NAME
from dba_tab_col_statistics@tz_bsstzt tzt
WHERE tzt.owner = 'BSS' AND TZT.TABLE_NAME LIKE 'BSS_%')
⑥ 怎么在一台机器上安装两个oracle数据库
你要明白oracle是一个客户端对应多个数据库的,也就是说,同一个计算机室可以安装多个数据库的。你在安装好客户端后,点击开始-所有程序-oracle客户端,在里面找到一个database开头的程序,貌似叫DatabaseManager,进去后,你就知道了。
⑦ 两个oracle数据库之间怎么插入表数据,已建立dblink。
如果已有dblink,那么首先要给dblink登录的用户赋插入权限。
grant insert on 表名 to 用户名;
然后在dblink连接的地方执行:
比如表名为test,字段分别为id和name
那么直接执行:
insert into test@远程主机 values (1,'张三');
commit;
注意:commit一定要写,否则插入不成功。
⑧ ORACLE 如何同时连接2个数据库
TNS文件里面把新的数据库加进去即可
TNS文件在你ORACLE目录下的NETWORK/ADMIN里面
加的方式可以参照你之前的ORCL,自己模仿着写一个
重点在SID,不要弄错了
⑨ oracle数据库中两张表分别在两个数据库中怎么能建关联
create public batabase link a_to_bx0dx0aconnect to (被操作表所在库的用户名) identified by (被操作表所在库的密码)x0dx0ausing ‘(被操作表所属实例名)’;x0dx0a然后在操作实例中进行测试:x0dx0aselect 1 from al@a_to_b;x0dx0a如果有正确结果 那么你就建立了一个dblink了。x0dx0a x0dx0a这个时候就可以 跨库查询了。
⑩ 如何实现两个Oracle数据库的数据同步
为方便完成指定数据表的同步操作,可以采用dblink与merge结合的方法完成。
操作环境: 此数据库服务器ip为192.168.196.76,有center与branch两个库,一般需要将center的表数据同步到branch,center为源库,branch为目标库,具体步骤如下:
1.在源库创建到目标库的dblink
create database link branch --输入所要创建dblink的名称,自定义
connect to dbuser identified by “password” --设置连接远程数据库的用户名和密码
using '192.168.196.76/branch'; --指定目标数据库的连接方式,可用tns名称
正常情况下,如果创建dblink成功,可采用该方式访问到远程数据库的表.
3.通过merge语句完成表数据同步
此例中需要将center库中的tb_sys_sqlscripe表同步到branch,简单的语法如下:
merge into tb_sys_sqlscripe@branch b using tb_sys_sqlscripe c on (b.pk=c.pk) --从center将表merge到branch,同步的依据是两个表的pk
when matched then update set b.sqlscripe=c.sqlscripe,b.author=c.author --如果pk值是相同则将指定表的值更新到目标表
when not matched then --如果pk值不一至,则将源表中的数据整条插入到目标表中
insert values (c.pk, c.fk, c.createtime, c.lastmodifytime,c.author,c.mole,c.deleteflag, c.scripttype);
commit; --记得merge后必须commit,否则更改未能提交
4.为方便每次需要同步时自动完成同步工作,可将该语句做成存储过程或脚本来定时执行或按要求手动执行,简单说一下创建脚本的方法:
a.创建merge文件夹
b.先将merge语句写完整后,存到merge.sql文件中
c.新建merge.bat文件,编辑后写入以下内容
sqlplus user/password@serverip/database @"%cd%merge.sql"