1樓:匿名使用者
用資料庫快照就能實現啊.
oracle快照原理及實現總結
oracle資料庫的快照是一個表,它包含有對一個本地或遠端資料庫上一個或多個表或檢視的查詢的結果。對於中大型資料庫,業務資料庫裡所有的資料同步到另外一個處理伺服器上最佳的選擇還是使用snapshot方式,即快照的方式。
由於工作需要,今天需要將業務資料庫裡所有的資料同步到另外一個處理伺服器上。在做方案的時候,想了很多方法,當然最快的辦法還是使用物理熱備的方式。
但是我個人認為如果對於中大型資料庫(我們的資料庫有300g左右)最佳的選擇還是使用snapshot方式,即快照的方式。
oracle資料庫的快照是一個表,它包含有對一個本地或遠端資料庫上一個或多個表或檢視的查詢的結果。也就是說快照根本的原理就是將本地或遠端資料庫上的一個查詢結果儲存在一個表中。
以下是我建立的snapshot,目的是從業務資料庫上將資料copy到處理資料庫上,是不同的兩個伺服器之間對資料copy。
第一步:在處理伺服器上的oracle終端,建立database link,業務資料庫伺服器sid為test
create database link test_dblink.us.oracle.com
connect to amicos identified by amicos
using 'test';
第二步:在業務資料庫上對應的表建立快照日誌
create snapshot log on a_table;
第三步:建立snapshot 快照名稱為:test_snapshot
create snapshot test_snapshot
refresh complete start with sysdate next sysdate+1/24
as select * from a_table@test_dblink
說明:refresh是重新整理方法
重新整理方式有:complete和fast兩種,而start with是說明開始執行的時間。
next是下次執行的時間
而as以後是構成快照的查詢方法。
相關的方法:
更改快照
alter snapshot test_snapshot
refresh complete start with sysdate next sysdate+1/2;
手動重新整理快照 在命令介面執行:
exec dbms_snapshot.refresh('test_snapshot ','c');
第一個引數是要重新整理的快照名
第二個引數是重新整理的方式,f----fast, c---complete
檢視快照最後重新整理的日期
select name,last_refresh
from all_snapshot_refresh_times;
最後非常的方案:
1:為需要做snapshot的表建立snapshot日誌
create snapshot log on t1 with rowid; 這裡使用rowid建立日記的引數
2:採用fast的方式建立快照,使用rowid做為參考引數
create snapshot fb_test_b refresh fast with rowid start with sysdate next sysdate+1/1440 as select * from fb_test_b@my_dblink;
最好能按照rowid來建立快照。要不然就必須要為表建立primary key。
2樓:磨振玉
在b庫中建一個database link 指向a庫就可以了.
create database link test connect to a使用者名稱 identified 密碼 using '指向a庫的網路服務名' ;
insert into b表 as select * from a表@test;
請問用什麼技術實現兩個資料庫之間的資料交換?
3樓:匿名使用者
問題問的有點廣泛,我分類回答吧
如果是異構的資料庫 比如一個是oracle,一個是sybase或者db2之類的
可以使用getway透明閘道器進行資料配置,可以進行資料交換也可以通過etl工具,etl工具非常的多,oracle自己也有相應的etl工具,可以進行資料匯入和匯出,也就實現了異構資料庫的資料交換
配合oracle的dbms_link,資料庫之間可以任意的換如果是其他的資料庫的話,最好是使用etl工具匯出匯入主要是問題提的太廣泛,不太好回答。
如何實現兩個oracle資料庫之間資料的互動
4樓:匿名使用者
兩個資料庫之間通訊一般使用dblink,應該可以實現你的需要,你看看相關知識就瞭解了。
怎麼實現兩個不同資料庫之間資料互動
5樓:匿名使用者
程式設計軟體,使用合適的資料控制元件或介面,用sql結構化查詢語句實現兩個不同資料庫表的資料互動。
請問oracle資料庫中兩張表分別在兩個資料庫中怎麼能建關聯
6樓:匿名使用者
無法進行關聯,oracle不能跨資料庫操作,只可以跨使用者操作。
sql:select a.name ,b.id from user1.table1 a,user2.table2 b where a.id =b.id;
解釋:當前登入的使用者必須有訪問user1表table1許可權和user2使用者的table2表許可權,之後就可以當做是「一個使用者」下的表完成跨使用者查詢。
7樓:匿名使用者
建立database link
通過觸發器,或者儲存過程,保證2個表的資料的關聯。
8樓:匿名使用者
兩個不同的例項 如果要關聯的話。。。 一般採用dblink來做。
如何實現兩個oracle資料庫的資料同步
為方便完成指定資料表的同步操作,可以採用dblink與merge結合的方法完成。62616964757a686964616fe4b893e5b19e31333337613762 操作環境 此資料庫伺服器ip為192.168.196.76,有center與branch兩個庫,一般需要將center的表...
oracle資料庫如何收費,Oracle資料庫如何收費
oracle資料庫在非商用時不收費。oracle資料庫在商用時有兩種收費方式。oracle的license許可購買有兩種 按照使用者數和cpu個數 即無線使用者版 特殊情況 當前oracle 11g的user license無限使用期的 為人民幣3千5左右。按照使用者個數 按50個user lice...
oracle資料庫如何刪除約束,資料庫中怎樣刪除約束
用system使用者登入後,使用drop語句就可以刪除 根據錯誤提示的約束名稱,然後disable掉試試。alter table table name disable constraint constraint name alter table 約束基於的表名 drop constraint 約束名...