為方便完成指定數(shù)據(jù)表的同步操作,可以采用dblink與merge結(jié)合的方法完成。
我們提供的服務(wù)有:成都網(wǎng)站設(shè)計、做網(wǎng)站、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、玄武ssl等。為上千多家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的玄武網(wǎng)站制作公司
操作環(huán)境: 此數(shù)據(jù)庫服務(wù)器ip為192.168.196.76,有center與branch兩個庫,一般需要將center的表數(shù)據(jù)同步到branch,center為源庫,branch為目標庫,具體步驟如下:
1.在源庫創(chuàng)建到目標庫的dblink
create database link branch???? --輸入所要創(chuàng)建dblink的名稱,自定義?
connect to dbuser identified by “password”? --設(shè)置連接遠程數(shù)據(jù)庫的用戶名和密碼?
using '192.168.196.76/branch';? --指定目標數(shù)據(jù)庫的連接方式,可用tns名稱
在創(chuàng)建dblink時,要注意,有時候可能會報用戶名和密碼錯誤,但實際上我們所輸入的賬戶信息是正確的,此時就注意將密碼的大小寫按服務(wù)器上所設(shè)置的輸入,并在賬號密碼前號加上雙引號(服務(wù)器版本不同造成的)。
2.成功后驗證dblink
select * from tb_bd_action@branch; --查詢創(chuàng)建好的brach庫
正常情況下,如果創(chuàng)建dblink成功,可采用該方式訪問到遠程數(shù)據(jù)庫的表.
3.通過merge語句完成表數(shù)據(jù)同步
此例中需要將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,同步的依據(jù)是兩個表的pk
when matched then? update set b.sqlscripe=c.sqlscripe,b.author=c.author? --如果pk值是相同則將指定表的值更新到目標表
when not matched then ? --如果pk值不一至,則將源表中的數(shù)據(jù)整條插入到目標表中
insert values (c.pk, c.fk, c.createtime, c.lastmodifytime,c.author,c.module,c.deleteflag, c.scripttype);
commit;?????????????? --記得merge后必須commit,否則更改未能提交
4.為方便每次需要同步時自動完成同步工作,可將該語句做成存儲過程或腳本來定時執(zhí)行或按要求手動執(zhí)行,簡單說一下創(chuàng)建腳本的方法:
a.創(chuàng)建merge文件夾
b.先將merge語句寫完整后,存到merge.sql文件中
c.新建merge.bat文件,編輯后寫入以下內(nèi)容
sqlplus user/password@serverip/database @"%cd%\merge.sql"
建議如下
1、你可以寫個存儲過程來同步數(shù)據(jù)。
數(shù)據(jù)庫直接的鏈接可以通過DBLink來實現(xiàn)。
2、在建一個job來跑,同步數(shù)據(jù)。
一、第一套方案
1、用新的建庫腳本創(chuàng)建一套新的數(shù)據(jù)庫,結(jié)構(gòu)和類型都是新的;
2、用數(shù)據(jù)導(dǎo)入工具,將原數(shù)據(jù)庫的數(shù)據(jù)導(dǎo)入到新的數(shù)控里面;
二、第二套方案
1、用新的建庫腳本創(chuàng)建一套新的數(shù)據(jù)庫,結(jié)構(gòu)和類型都是新的;
2、用數(shù)據(jù)庫結(jié)構(gòu)同步工具,將老的數(shù)據(jù)庫結(jié)構(gòu)更新同步到新建的數(shù)據(jù)庫上面;
兩套方案肯定都可行,主要在工作量和工作效率上面區(qū)別太大,導(dǎo)數(shù)據(jù)需要工具,可以用Sqlserver提供的DTS,有的結(jié)構(gòu)變動大的需要對應(yīng)字段關(guān)系,太麻煩;
所以我想到用數(shù)據(jù)庫結(jié)構(gòu)同步工具來進行,記得以前就用過這個功能,我們可以在網(wǎng)上輕松找到oracle數(shù)據(jù)庫客戶端操作工具PLSQL Developer,這個工具除了對數(shù)據(jù)庫進行日常的維護之外,還提供很多使用的功能,同步兩個數(shù)據(jù)庫的結(jié)構(gòu),就是其中一個,操作步驟如下:
1、打開PLSQL Developer進入新創(chuàng)建的數(shù)據(jù)庫;
打開菜單如下圖:
點擊菜單--工具--比較用戶對象,進入如下圖:
會列出所以的表,你可選擇單獨的表或者多個表同時操作,然后點擊目標回話,會彈出要同步的數(shù)據(jù)庫連接對象窗口,輸入用戶名和密碼等等,確定后點擊右下角的比較按鈕,這樣會出現(xiàn)如下的比較窗口:
這時,會把不同之處用腳本列出來,只要點擊右邊的綠色對號,同步即可;
這樣,結(jié)構(gòu)一下就都改好了,很方便。
分享名稱:oracle怎么同步字母 oracle 數(shù)據(jù)同步
當(dāng)前網(wǎng)址:http://aaarwkj.com/article40/hhppho.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、云服務(wù)器、網(wǎng)站設(shè)計、商城網(wǎng)站、、自適應(yīng)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)