oracle数据库链接及数据合并的问题?
来源:百度文库 编辑:神马文学网 时间:2024/06/13 00:57:53
oracle数据库链接及数据合并的问题?大 |中 |小
[2007/02/28 18:21 | byadmin ]
这两天弄电子学籍的数据库比较头疼,oracle方面不太熟悉只能一点点摸索了,要学的东西太多了。
目前学籍的数据库设计虽然是临时决定稍带拼凑之嫌,不过我觉得还是比较合理的。以市州为分类用4台oracle作为分支数据库,用一台oracle做省级合并的数据库,由于学籍的数据操作主要集中在市州层面,这样的分布式比集中式更能加快处理速度,将来如果有需要数据下放也比较好操作。
但是,面临的主要问题也是明显的,部分跨库操作和数据合并的有效性就是两个问题。
今天基本解决的跨库操作的问题,通过dblink。
首先保证所有的oracle能够识别其他的host,编辑/etc/hosts做命名和IP的对应;
编辑所有的tnsname.ora,保证所有的oracle均能够通过统一的命名访问其他的oracle,这里是oracle3、oracle4、oracle5、oracle6,一台oracle做为数据整合,命名为oracle1。
在所有的oracle上创建DATABASE LINK,为了方面所有的当前数据库操用户的用户名和密码保持一致。
引用
CREATE PUBLIC DATABASE LINK "ORACLE3" CONNECT TO "user001"
IDENTIFIED BY "xxxx"
USING ‘ORACLE3‘;
CREATE PUBLIC DATABASE LINK "ORACLE4" CONNECT TO "user001"
IDENTIFIED BY "xxxx"
USING ‘ORACLE4‘;
CREATE PUBLIC DATABASE LINK "ORACLE5" CONNECT TO "user001"
IDENTIFIED BY "xxxx"
USING ‘ORACLE5‘;
CREATE PUBLIC DATABASE LINK "ORACLE6" CONNECT TO "user001"
IDENTIFIED BY "xxxx"
USING ‘ORACLE6‘;
这样在某一台数据库上都能够操作其他的数据库,例如
引用
如果我们在oracle3上要查询oracle4上的一个表:
oracle3 sql> select id,name from table1@oracle4;
做insert或者uptate操作类似
但是做数据合并还是存在问题,开始想用快照方式来做,但是4个市州级oracle的数据修改如何合并到oracle1的一张表中?oracle了解太少了。。
一个不伦不类的临时解决方法就是,在4台市州的oracle数据库上做一个crontab,定期用
insert into table1@oracle1(id,name) select id,name from table1;
来从本地将数据插入oracle1的表中,在表中加一个识别字段,只选取新插入或者update的数据。
这样解决还是觉得相当麻烦,表结构要修改,前端脚本也要修改,唉,是个问题。。。
[2007/02/28 18:21 | byadmin ]
这两天弄电子学籍的数据库比较头疼,oracle方面不太熟悉只能一点点摸索了,要学的东西太多了。
目前学籍的数据库设计虽然是临时决定稍带拼凑之嫌,不过我觉得还是比较合理的。以市州为分类用4台oracle作为分支数据库,用一台oracle做省级合并的数据库,由于学籍的数据操作主要集中在市州层面,这样的分布式比集中式更能加快处理速度,将来如果有需要数据下放也比较好操作。
但是,面临的主要问题也是明显的,部分跨库操作和数据合并的有效性就是两个问题。
今天基本解决的跨库操作的问题,通过dblink。
首先保证所有的oracle能够识别其他的host,编辑/etc/hosts做命名和IP的对应;
编辑所有的tnsname.ora,保证所有的oracle均能够通过统一的命名访问其他的oracle,这里是oracle3、oracle4、oracle5、oracle6,一台oracle做为数据整合,命名为oracle1。
在所有的oracle上创建DATABASE LINK,为了方面所有的当前数据库操用户的用户名和密码保持一致。
引用
CREATE PUBLIC DATABASE LINK "ORACLE3" CONNECT TO "user001"
IDENTIFIED BY "xxxx"
USING ‘ORACLE3‘;
CREATE PUBLIC DATABASE LINK "ORACLE4" CONNECT TO "user001"
IDENTIFIED BY "xxxx"
USING ‘ORACLE4‘;
CREATE PUBLIC DATABASE LINK "ORACLE5" CONNECT TO "user001"
IDENTIFIED BY "xxxx"
USING ‘ORACLE5‘;
CREATE PUBLIC DATABASE LINK "ORACLE6" CONNECT TO "user001"
IDENTIFIED BY "xxxx"
USING ‘ORACLE6‘;
这样在某一台数据库上都能够操作其他的数据库,例如
引用
如果我们在oracle3上要查询oracle4上的一个表:
oracle3 sql> select id,name from table1@oracle4;
做insert或者uptate操作类似
但是做数据合并还是存在问题,开始想用快照方式来做,但是4个市州级oracle的数据修改如何合并到oracle1的一张表中?oracle了解太少了。。
一个不伦不类的临时解决方法就是,在4台市州的oracle数据库上做一个crontab,定期用
insert into table1@oracle1(id,name) select id,name from table1;
来从本地将数据插入oracle1的表中,在表中加一个识别字段,只选取新插入或者update的数据。
这样解决还是觉得相当麻烦,表结构要修改,前端脚本也要修改,唉,是个问题。。。
oracle数据库链接及数据合并的问题?
Oracle在数据转储时的字符集问题
数据库基础及数据连接
[精彩] oracle 数据库的维护
Oracle数据库的灾难恢复
动态链接库的数据及动态链接库重定向,译自MSDN
oracle的编码问题
通过命令来操作Oracle数据库的
Oracle数据库逻辑备份的实现
Oracle数据库中分区表的操作方法
Oracle 数据库的备份与恢复
oracle大型数据库系统在AIX/unix上的实战详解 讨论76 Oracle备份问题 - << Oracle大型数据库在AIX UNIX上的实战详解>> 交流园地 - CSDN博客
数据库安全知识:关于 Oracle数据库的备份与恢复
如何连接oracle数据库及故障解决办法-总结
多行的数据合并成一行
Oracle数据的异地自动备份
LoadRunner 链接QC问题及解决方法
Perl连接Oracle数据库
Oracle数据库常见问题答疑
杭州Oracle数据库课程
杭州Oracle数据库课程
Perl连接Oracle数据库
关于oracle数据库备份
oracle备份还原数据库