from:
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和force三種:
fast 快速重新整理,用snapshot log,只更新時間段變動部分
complete 完全重新整理,執行sql語句
force 自動判斷重新整理,介於fast和complete之間
而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建立日記的引數
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。
oracle 快照及 dblink使用 (兩台伺服器資料同步)
--名詞說明:源——被同步的資料庫
-- 目的——要同步到的資料庫
/*一、建立dblink:*/
--1、在目的資料庫上,建立dblin
drop database link dblink_anson;
create public
database link dblink_anson
connect to lg identified by lg using 'sdlgdb';
--源資料庫的使用者名稱、密碼、伺服器名k
/*二、建立快照:*/
--1、在源和目的資料庫上同時執行一下語句,建立要被同步的表
drop table tb_anson;
create table tb_anson(c1 varchar2(12));
alter table tb_anson add constraint pk_anson primary key (c1);
--2、在目的資料庫上,測試dblink
select * from tb_anson@dblink_anson;
select * from tb_anson;
--3、在源資料庫上,建立要同步表的快照日誌
create snapshot log on tb_anson;
--4、建立快照,快照(被同步(源)資料庫服務必須啟動)
create snapshot sn_anson as select * from tb_anson@dblink_anson;
--5、設定快照重新整理時間
alter snapshot anson refresh fast start with sysdate+1/24*60 next sysdate+10/24*60;
--oracle自動在1分鐘後進行第一次快速重新整理,以後每隔10分鐘快速重新整理一次
alter snapshot anson refresh complete start with sysdate+30/24*60*60 next sysdate+1;
--oracle自動在30鈔後進行第一次完全重新整理,以後每隔1天完全重新整理一次
--6、手動重新整理快照
begin
dbms_refresh.refresh('"cs"."sn_anson"');
end;
Oracle快照原理及實現總結
oracle資料庫的快照是乙個表,它包含有對乙個本地或遠端資料庫上乙個或多個表或檢視的查詢的結果。對於中大型資料庫,業務資料庫裡所有的資料同步到另外乙個處理伺服器上最佳的選擇還是使用snapshot方式,即快照的方式。由於工作需要,今天需要將業務資料庫裡所有的資料同步到另外乙個處理伺服器上。在做方案...
儲存快照實現原理
儲存快照有兩種實現方式 cow 寫時複製copy on write row 寫重定向redirect on write 兩種實現方法有區別,造成讀寫效能 應用場景有比較大的區別。cow 原理見下圖 從網上找的,沒自己畫 1 原卷資料是a g。此卷metedata像指標一樣指向這些資料。2 當做快照時...
Oracle快照實現 整理
名詞說明 源 被同步的資料庫 目的 要同步到的資料庫 一 建立dblink 1 在目的資料庫上,建立dblin drop database link dblink anson create public database link dblink anson connect to lg identif...