oracle 10g 快照操作方法
一不小心聽說了oracle 數據庫快照,這個詞我當初一聽就楞了,不知道這個是什么玩意,然后花了點時間研究了下,以下是我通過網絡學習總結的
快照主要是用于分布式數據庫,我們有數據庫A,A中有個表a,我們在數據庫B中要使用數據庫A中a表的數據,這時候我們就可以在數據庫B中創(chuàng)建數據庫A的快照,這樣可以提高我們的效率。
我理解快照就是對表的復制,定時的將a表復制到b表(包括數據)
注意:用快照創(chuàng)建的表是只讀的
創(chuàng)建快照的方法:
1、先需要在A數據庫中建立表a的快照日志
只有先建立表a的快照日志,才能在快照中執(zhí)行快速刷新
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秒鐘執(zhí)行刷新,NEXT SYSDATE+1/24*60
表示以后每個1分鐘自動刷新一次
說明: REFRESH是刷新方法
刷新方式有:COMPLETE(完全刷新)和FAST(快速刷新)兩種,
而START WITH是說明開始執(zhí)行的時間。
Next是下次執(zhí)行的時間
而AS以后是構成快照的查詢方法。
刷新方法:
快照的刷新有兩種方式:快速刷新和完全刷新??焖偎⑿滦枰煺盏闹鞅硐扔锌煺杖罩敬嬖?完全刷新時oracle執(zhí)行快照查詢,將結果放入快照。快速刷新比完全刷新快,因為快速刷新將主數據庫的數據經網絡發(fā)送到快照的數據少,僅需傳送主表中修改過的數據,而完全刷新要傳送快照查詢的全部結果。
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、手動刷新快照在命令界面執(zhí)行:
EXEC DBMS_SNAPSHOT.REFRESH('t_a ','C');
第一個參數是要刷新的快照名
第二個參數是刷新的方式,F----FAST, C---COMPLETE
7、說明:
a) 建立快照日志時oracle數據庫為我們建立了一個基于a的觸發(fā)器(我沒有找到)
tlog$_a和快照日志表mlog$_a(這個已經找到);
網上朋友說在建立快照時建立了一些表,視圖之類的,但是我只找到了表,其他的沒有找到,希望得到大家的幫助。
總結的如果有什么問題請大家多多指出,共同進步。
相關文章
oracle中l(wèi)eft join和right join的區(qū)別淺談
oracle中l(wèi)eft join和right join的區(qū)別淺談,需要的朋友可以參考一下2013-02-02
查找oracle數據庫表中是否存在系統(tǒng)關鍵字的方法
遇到列說明無效的報錯情況,這是由于數據庫列名起的不好引起的,名字用到了數據庫的關鍵字2014-07-07
Oracle + mybatis實現對數據的簡單增刪改查實例代碼
這篇文章主要給大家介紹了關于利用Oracle + mybatis如何實現對數據的簡單增刪改查的相關資料,文中圖文介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2018-10-10
Oracle?19c的參數sec_case_sensitive_logon與ORA-01017錯誤問題分析
這篇文章主要介紹了Oracle?19c的參數sec_case_sensitive_logon與ORA-01017錯誤,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-04-04

