oracle数据库链接及数据合并的问题?

这两天弄电子学籍的数据库比较头疼,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的数据。

这样解决还是觉得相当麻烦,表结构要修改,前端脚本也要修改,唉,是个问题。。。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇