oracle數(shù)據(jù)庫歸檔日志為什么老滿 什么是控制文件?
什么是控制文件?控制文件是OraclOralce歸檔日志開啟與關(guān)閉示例?該命令完成創(chuàng)建實(shí)例、安裝實(shí)例和打開數(shù)據(jù)庫這三個步驟。此時,數(shù)據(jù)庫將數(shù)據(jù)文件和重做日志文件聯(lián)機(jī),并且通常請求一個或多個回滾段。此時
什么是控制文件?
控制文件是Oracl
Oralce歸檔日志開啟與關(guān)閉示例?
該命令完成創(chuàng)建實(shí)例、安裝實(shí)例和打開數(shù)據(jù)庫這三個步驟。此時,數(shù)據(jù)庫將數(shù)據(jù)文件和重做日志文件聯(lián)機(jī),并且通常請求一個或多個回滾段。此時系統(tǒng)可以看到StartupMount模式下的所有提示,也給出一個。
orcal歸檔數(shù)據(jù)庫存了哪些內(nèi)容?
從orcal檔案庫數(shù)據(jù)清單下載的數(shù)據(jù)日志包括靜態(tài)和動態(tài)數(shù)據(jù)。要訪問這些數(shù)據(jù),必須手動訪問。
生產(chǎn)線歷史數(shù)據(jù)歸檔是數(shù)據(jù)庫運(yùn)維的一項(xiàng)日?;A(chǔ)工作。設(shè)計表格時,數(shù)據(jù)流水表(如日志、用戶登錄歷史、軟件下載記錄、用戶屬性變化歷史表等。)通常被設(shè)計成范圍分區(qū)表和區(qū)間分區(qū)表(11G)。當(dāng)數(shù)據(jù)超過業(yè)務(wù)需求的保留范圍時,基本上是靜態(tài)數(shù)據(jù),應(yīng)用程序不會再訪問,但由于一些特殊需求,可能需要手動查詢。在這種情況下,每個人都將其數(shù)據(jù)從生產(chǎn)庫歸檔到歷史庫,并對其進(jìn)行壓縮和保存。如果超出了特殊要求的范圍,就直接導(dǎo)出壓縮到磁帶。
在Oracle數(shù)據(jù)庫中,表數(shù)據(jù)的歸檔有很多種,如exp/imp、expdp/impdp、表空間傳輸?shù)鹊龋谌粘5臄?shù)據(jù)庫維護(hù)中可能會用到。這些工具的用法這里就不展開了。讓 讓我們進(jìn)入今天 的題目,用存儲過程歸檔生產(chǎn)線歷史表數(shù)據(jù),先做一個簡單的總結(jié):
1、簡單,不容易出錯;
2.對于它的源庫(這里是生產(chǎn)庫),它是一個select查詢語句,對性能影響不大;
3.數(shù)據(jù)不需要從源庫登陸到目標(biāo)庫,類似于dblink impdp遷移數(shù)據(jù)的方法,節(jié)省了導(dǎo)出數(shù)據(jù)(數(shù)百GB表)所需的空間和歸檔時間;
4.可以監(jiān)控歸檔進(jìn)度和歸檔記錄數(shù)量;
5.如果是跨機(jī)房傳輸,請監(jiān)控網(wǎng)絡(luò)帶寬流量。
6、 ......
操作流程:
1.在生產(chǎn)庫的維護(hù)用戶的模式下創(chuàng)建一個視圖,其中包含要?dú)w檔的表的分區(qū):
創(chuàng)建view log_table_p201209
如同
select * from user01.log_table分區(qū)(P201209)
注意:為什么要構(gòu)建視圖?因?yàn)槟憧梢浴?不要使用select * from table partition(partition _ name)這樣的語句.....通過dblink查詢時。
2.在將存檔數(shù)據(jù)放入歷史數(shù)據(jù)庫的用戶下創(chuàng)建數(shù)據(jù)存檔狀態(tài)表和序列創(chuàng)建表(歷史數(shù)據(jù)庫中的所有操作都在該用戶下執(zhí)行)。
創(chuàng)建表數(shù)據(jù)_存檔_狀態(tài)
(
身份證號,
線號,
table_name VARCHAR2(60),
同步編號,
州號,
開始時間日期,
同步時間日期,
備注VARCHAR2(2000年)
)
-向列添加注釋
對列data_archiv:啟動,1:打開并解析游標(biāo),2:提取數(shù)據(jù),3:完成一個表的同步,4:完成所有表,其他負(fù)數(shù):錯誤代碼#39。
-創(chuàng)建序列
創(chuàng)建序列序列號
最小值1
最大值9999999999999
從1開始
增加1
緩存20
3.在歷史庫中創(chuàng)建一個數(shù)據(jù)庫鏈接,該數(shù)據(jù)庫鏈接可以連接到具有只讀權(quán)限的生產(chǎn)庫,例如:。
-創(chuàng)建數(shù)據(jù)庫鏈接
創(chuàng)建數(shù)據(jù)庫鏈接XXDB。本地域
連接到只讀
由#34#34標(biāo)識
使用#39(描述
(LOAD_BALANCEno)
(地址列表
(地址
(協(xié)議)
(主機(jī)172.16.XX.XX)
(端口1521)
)
(地址
(協(xié)議)
(主機(jī)172.16.XX.XX)
(端口1521)
)
)
(連接_數(shù)據(jù)
(故障轉(zhuǎn)移模式
(類型選擇)
(方法基礎(chǔ))
(重試180次)
(延遲5)
)
(服務(wù)器專用)
(服務(wù)名稱XX服務(wù))
)
)#39
4.歷史庫應(yīng)創(chuàng)建一個與生產(chǎn)庫具有相同表結(jié)構(gòu)的表,建議更改表名以標(biāo)記存檔數(shù)據(jù)。
創(chuàng)建表格log_table_p201209(......)
5.為數(shù)據(jù)存檔創(chuàng)建存儲過程:
將過程p_log_table_p201209創(chuàng)建為
-索引表
類型u_type是按pls_integer索引的log_table_p201209%rowtype的表
v_list u_type
-定義一個數(shù)組來存儲要同步的視圖的名稱。
varchar _ arrary類型是由pls_integer索引的varchar2(60)的表
v _ remoteview _ list varchar _ arrary
-定義參考索引
cur_ref類型是引用游標(biāo)
當(dāng)前數(shù)據(jù)當(dāng)前引用
-局部變量,記錄SQL%ROWCOUNT。
v _計數(shù)器編號: 0
行id行id
:空值
v _ query str varchar(1000): null
:日期為空
日期:為空
:日期為空
日期:為空
開始
-初始化陣列(在步驟1中創(chuàng)建的視圖)
v _ r: # 39 Zhang hui . log _ tabl: # 39 select/* rowid(t)*/* from # 39 | | v _ r:系統(tǒng)日期
為v_querystr打開cur_data
:系統(tǒng)日期
更新數(shù)據(jù)存檔狀態(tài)
設(shè)置同步時間系統(tǒng)日期,
狀態(tài)2,
備注備注| | # 39[# 39 | | v _ r:pars: 0
:系統(tǒng)日期
-對于打開的游標(biāo),循環(huán)同步。
環(huán)
-使用批量綁定一次處理10000條記錄。
提取cur_data批量收集
入v_list限制10000
forall i in 1..五_
插入log_tabl:虛擬計數(shù)器sql%rowcount
更新數(shù)據(jù)存檔狀態(tài)測試
設(shè)置v_counter,sysdate
其中rowid v_rowid
通信它
未找到cur _ data %時退出
結(jié)束循環(huán)
:系統(tǒng)日期
-更新計劃,并在備注中記錄當(dāng)前分區(qū)的完成時間。
更新數(shù)據(jù)存檔狀態(tài)
設(shè)置狀態(tài)3,
同步時間系統(tǒng)日期,
備注備注|| #39fetch_elapsed#39 ||
round((v _ fetch _ elapsed _ e-v _ fetch _ elapsed _ s)* 24 * 60,
4)|| # 39分鐘,同步數(shù)# 39 | | v _計數(shù)器| |
#39,endtime #39 || to_char(sysdate,# 39 yyyymmdd hh 24 miss # 39)| | # 39]# 39
其中rowid v_rowid
犯罪
關(guān)閉cur_data
-更新時間表
更新數(shù)據(jù)存檔狀態(tài)測試集4
犯罪
結(jié)束循環(huán)
例外
當(dāng)其他人
:
更新數(shù)據(jù)存檔狀態(tài)
設(shè)置同步時間系統(tǒng)日期,狀態(tài)v_sqlcode
其中rowid v_rowid
犯罪
上升
結(jié)束
6.創(chuàng)建一個壓縮對象存儲過程。由于移動操作需要將近兩倍的存儲空間,請在壓縮前預(yù)先評估空間需求。
創(chuàng)建過程p _ compress _ object(VO object _ name varchar 2,-object。
var partition _ name varchar 2 default null,-分區(qū)名
VParallel int默認(rèn)值為0,-并行度
VPctfree int默認(rèn)值為0,-存儲參數(shù)Pctfree設(shè)置為0,不再考慮DML操作。
vtablespace varchar 2默認(rèn)為空,-表空間
V owner varchar2d:0、表1、索引2、分區(qū)表3、索引分區(qū)
)Authid當(dāng)前用戶是
vSql varchar2(4000)
vsqlerm varchar 2(256)
v_sqlstring varchar2(4000)
開始
v _ sqlstring : # 39更改會話集db _ file _ multi block _ read _ count 128 # 39
立即執(zhí)行v_sqlstring
如果vTyp: # 39 alter table # 39 | | v owner | | # 39。# 39 | | VO object _ name | | # 39 move # 39 | |當(dāng)vTablespace為null時的情況,然后為null else # 39表空間# 39 | | vTablespace end | | # 39 pct free # 39 | | vPctfree | | # 39 compr: # 39 alter index # 39 | |所有者|| #39。# 39 | | vObject _ name | |
#39 rebuild #39 ||當(dāng)vTablespace為null時的情況,然后為null else # 39表空間# 39 | | vTablespace end | | # 39 pct free # 39 | | vPctfree | | # 39 compr: # 39 alter table # 39 | | v owner | | # 39。# 39 | | vObject _ name | |
#39移動分區(qū)#39 || vPartition_name ||當(dāng)vTablespace為null時的情況,然后為null else #39表空間# 39 | | vTablespace end | | # 39 pct free # 39 | | vPctfree | | # 39 compr: # 39 alter index # 39 | |所有者|| #39。# 39 | | vObject _ name | |
#39重建分區(qū)#39 || vPartition_name ||當(dāng)vTablespace為null時的情況,然后為null else #39表空間# 39 | | vTablespace end | | # 39 pct free # 39 | | vPctfree | | # 39 compr: SQL errm
DBMS _ output . put _ line(vsqlerm | | # 39 | # 39 | | vSql)
結(jié)束
7.以上準(zhǔn)備工作完成后,確認(rèn)歷史數(shù)據(jù)庫的表空間,調(diào)用數(shù)據(jù)歸檔存儲過程p_log_table_p201209,處理后的數(shù)據(jù)進(jìn)行處理。壓縮,調(diào)用存儲過程p _ compress _ object(...);
8.確認(rèn)數(shù)據(jù)正確,刪除生產(chǎn)庫維護(hù)用戶對應(yīng)的視圖和業(yè)務(wù)表的分區(qū),釋放對象占用的空間(注意:檢查分區(qū)表的索引是否在本地,否則...).