oracle 10g 快照操作方法

本文將詳細介紹oracle 10g 快照操作方法包括創建、刷新、修改等,需要了解的朋友可以參考下

一不小心聽說了oracle 數據庫快照,這個詞我當初一聽就楞了,不知道這個是什么玩意,然后花了點時間研究了下,以下是我通過網絡學習總結的

快照主要是用于分布式數據庫,我們有數據庫A,A中有個表a,我們在數據庫B中要使用數據庫A中a表的數據,這時候我們就可以在數據庫B中創建數據庫A的快照,這樣可以提高我們的效率。

我理解快照就是對表的復制,定時的將a表復制到b表(包括數據)

注意:用快照創建的表是只讀的

創建快照的方法

1、先需要在A數據庫中建立表a的快照日志

只有先建立表a的快照日志,才能在快照中執行快速刷新

Create snapshot log on a;

2、在數據庫B下建立到數據庫A用戶的數據庫鏈link

a)只有建立了到A數據庫(用戶)的數據庫鏈后才能從A數據庫(用戶)下的表a中獲取數據

Create database link link_test

Connect to A數據庫用戶名(username)identified by A數據庫密碼(password) using ‘數據庫名(database)’

此圖為用pl/sql建立link的視圖

3、在數據庫B下建立a表的快照

Create snapshot t_a——>將來在數據B中對于a表快照顯示的表名

REFRESH COMPLETE START WITH SYSDATE+1/24*60*60 NEXT SYSDATE+1/24*60

as select * from a@link_test

SYSDATE+1/24*60*60:表示設定oracle 自動在1秒鐘執行刷新,NEXT SYSDATE+1/24*60

表示以后每個1分鐘自動刷新一次

說明: REFRESH是刷新方法
刷新方式有:COMPLETE(完全刷新)和FAST(快速刷新)兩種,
而START WITH是說明開始執行的時間。
Next是下次執行的時間
而AS以后是構成快照的查詢方法。

刷新方法

快照的刷新有兩種方式:快速刷新和完全刷新。快速刷新需要快照的主表先有快照日志存在;完全刷新時oracle執行快照查詢,將結果放入快照。快速刷新比完全刷新快,因為快速刷新將主數據庫的數據經網絡發送到快照的數據少,僅需傳送主表中修改過的數據,而完全刷新要傳送快照查詢的全部結果。

4、修改快照

Alter snapshot t_a refresh fast
Start with sysdate+1/2880 next sysdate+1

此sql語句意思:設定oracle 自動在30秒(30/24*60*60)后進行第一次快速刷新,以后,每隔1天快速刷新一次

5、查看快照最后刷新的日期
SELECT NAME,LAST_REFRESH
FROM ALL_SNAPSHOT_REFRESH_TIMES

6、手動刷新快照在命令界面執行
EXEC DBMS_SNAPSHOT.REFRESH(‘t_a ‘,’C’);
第一個參數是要刷新的快照名
第二個參數是刷新的方式,F—-FAST, C—COMPLETE

7、說明

a) 建立快照日志時oracle數據庫為我們建立了一個基于a的觸發器(我沒有找到)

tlog$_a和快照日志表mlog$_a(這個已經找到);

網上朋友說在建立快照時建立了一些表,視圖之類的,但是我只找到了表,其他的沒有找到,希望得到大家的幫助。

總結的如果有什么問題請大家多多指出,共同進步。

? 版權聲明
THE END
喜歡就支持一下吧
點贊10 分享