oracle 10g 快照操作方法
一不小心聽說了oracle 數(shù)據(jù)庫快照,這個詞我當(dāng)初一聽就楞了,不知道這個是什么玩意,然后花了點時間研究了下,以下是我通過網(wǎng)絡(luò)學(xué)習(xí)總結(jié)的
快照主要是用于分布式數(shù)據(jù)庫,我們有數(shù)據(jù)庫A,A中有個表a,我們在數(shù)據(jù)庫B中要使用數(shù)據(jù)庫A中a表的數(shù)據(jù),這時候我們就可以在數(shù)據(jù)庫B中創(chuàng)建數(shù)據(jù)庫A的快照,這樣可以提高我們的效率。
我理解快照就是對表的復(fù)制,定時的將a表復(fù)制到b表(包括數(shù)據(jù))
注意:用快照創(chuàng)建的表是只讀的
創(chuàng)建快照的方法:
1、先需要在A數(shù)據(jù)庫中建立表a的快照日志
只有先建立表a的快照日志,才能在快照中執(zhí)行快速刷新
Create snapshot log on a;
2、在數(shù)據(jù)庫B下建立到數(shù)據(jù)庫A用戶的數(shù)據(jù)庫鏈link
a)只有建立了到A數(shù)據(jù)庫(用戶)的數(shù)據(jù)庫鏈后才能從A數(shù)據(jù)庫(用戶)下的表a中獲取數(shù)據(jù)
Create database link link_test
Connect to A數(shù)據(jù)庫用戶名(username)identified by A數(shù)據(jù)庫密碼(password) using ‘?dāng)?shù)據(jù)庫名(database)'

此圖為用pl/sql建立link的視圖
3、在數(shù)據(jù)庫B下建立a表的快照
Create snapshot t_a——>將來在數(shù)據(jù)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:表示設(shè)定oracle 自動在1秒鐘執(zhí)行刷新,NEXT SYSDATE+1/24*60
表示以后每個1分鐘自動刷新一次
說明: REFRESH是刷新方法
刷新方式有:COMPLETE(完全刷新)和FAST(快速刷新)兩種,
而START WITH是說明開始執(zhí)行的時間。
Next是下次執(zhí)行的時間
而AS以后是構(gòu)成快照的查詢方法。
刷新方法:
快照的刷新有兩種方式:快速刷新和完全刷新??焖偎⑿滦枰煺盏闹鞅硐扔锌煺杖罩敬嬖?完全刷新時oracle執(zhí)行快照查詢,將結(jié)果放入快照??焖偎⑿卤韧耆⑿驴?,因為快速刷新將主數(shù)據(jù)庫的數(shù)據(jù)經(jīng)網(wǎng)絡(luò)發(fā)送到快照的數(shù)據(jù)少,僅需傳送主表中修改過的數(shù)據(jù),而完全刷新要傳送快照查詢的全部結(jié)果。
4、修改快照
Alter snapshot t_a refresh fast
Start with sysdate+1/2880 next sysdate+1
此sql語句意思:設(shè)定oracle 自動在30秒(30/24*60*60)后進(jìn)行第一次快速刷新,以后,每隔1天快速刷新一次
5、查看快照最后刷新的日期
SELECT NAME,LAST_REFRESH
FROM ALL_SNAPSHOT_REFRESH_TIMES
6、手動刷新快照在命令界面執(zhí)行:
EXEC DBMS_SNAPSHOT.REFRESH('t_a ','C');
第一個參數(shù)是要刷新的快照名
第二個參數(shù)是刷新的方式,F(xiàn)----FAST, C---COMPLETE
7、說明:
a) 建立快照日志時oracle數(shù)據(jù)庫為我們建立了一個基于a的觸發(fā)器(我沒有找到)
tlog$_a和快照日志表mlog$_a(這個已經(jīng)找到);
網(wǎng)上朋友說在建立快照時建立了一些表,視圖之類的,但是我只找到了表,其他的沒有找到,希望得到大家的幫助。
總結(jié)的如果有什么問題請大家多多指出,共同進(jìn)步。
相關(guān)文章
使用Oracle進(jìn)行數(shù)據(jù)庫備份與還原
這篇文章詳細(xì)介紹了使用Oracle進(jìn)行數(shù)據(jù)庫備份與還原,本文通過示例代碼講解的非常詳細(xì),有一定的參考價值,感興趣的同學(xué)可以參考閱讀2023-04-04
Oracle 數(shù)據(jù)庫 臨時數(shù)據(jù)的處理方法
在Oracle數(shù)據(jù)庫中進(jìn)行排序、分組匯總、索引等到作時,會產(chǎn)生很多的臨時數(shù)據(jù)。如有一張員工信息表,數(shù)據(jù)庫中是安裝記錄建立的時間來保存的。2009-06-06
oracle中l(wèi)eft join和right join的區(qū)別淺談
oracle中l(wèi)eft join和right join的區(qū)別淺談,需要的朋友可以參考一下2013-02-02
查找oracle數(shù)據(jù)庫表中是否存在系統(tǒng)關(guān)鍵字的方法
遇到列說明無效的報錯情況,這是由于數(shù)據(jù)庫列名起的不好引起的,名字用到了數(shù)據(jù)庫的關(guān)鍵字2014-07-07
Oracle + mybatis實現(xiàn)對數(shù)據(jù)的簡單增刪改查實例代碼
這篇文章主要給大家介紹了關(guān)于利用Oracle + mybatis如何實現(xiàn)對數(shù)據(jù)的簡單增刪改查的相關(guān)資料,文中圖文介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-10-10
Oracle?19c的參數(shù)sec_case_sensitive_logon與ORA-01017錯誤問題分析
這篇文章主要介紹了Oracle?19c的參數(shù)sec_case_sensitive_logon與ORA-01017錯誤,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-04-04

