時間:2015-06-28 00:00:00 來源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評論(0)
Oracle數(shù)據(jù)庫能運(yùn)行在2種模式下:歸檔模式(archivelog)和非歸檔模式(noarchivelog)。歸檔模式能提高Oracle數(shù)據(jù)庫的可恢復(fù)性,生產(chǎn)數(shù)據(jù)庫都應(yīng)該運(yùn)行在此模式下,歸檔模式應(yīng)該和相應(yīng)的備份策略相結(jié)合,只有歸檔模式?jīng)]有相應(yīng)的備份策略只會帶來麻煩。
檢查歸檔模式命令:
SQL> archive log list Database log mode No Archive Mode Automatic archival Disabled Archive destination USE_DB_RECOVERY_FILE_DEST Oldest online log sequence 15 Current log sequence 17
設(shè)置歸檔模式:
SQL> shutdown immediate; Database closed. Database dismounted. ORACLE instance shut down. SQL> startup mount ORACLE instance started. Total System Global Area 1258291200 bytes Fixed Size 1219160 bytes Variable Size 318768552 bytes Database Buffers 922746880 bytes Redo Buffers 15556608 bytes Database mounted. SQL> alter database archivelog; Database altered. SQL> alter database open; Database altered. SQL> archive log list; Database log mode Archive Mode Automatic archival Enabled Archive destination USE_DB_RECOVERY_FILE_DEST Oldest online log sequence 15 Next log sequence to archive 17 Current log sequence 17
如果需要停止歸檔模式,使用:alter database noarchivelog 命令。Oracle10g之前,你還需要修改初始化參數(shù)使數(shù)據(jù)庫處于自動歸檔模式。在pfile/spfile中設(shè)置如下參數(shù):
log_archive_start = true
重啟數(shù)據(jù)庫此參數(shù)生效,此時數(shù)據(jù)庫處于自動歸檔模式。也能在數(shù)據(jù)庫啟動過程中,手工執(zhí)行:
archive log start
使數(shù)據(jù)庫啟用自動歸檔,不過重啟后數(shù)據(jù)庫仍然處于手工歸檔模式。10g使用db_recovery_file_dest來作為歸檔日志的存放地。
SQL> show parameter db_recovery NAME TYPE VALUE db_recovery_file_dest string /home/oracle/ora10g/flash_reco very_area/ db_recovery_file_dest_size big integer 20G
能修改db_recovery_file_dest_size參數(shù)的大小
alter system set db_recovery_file_dest_size=21474836480
一、
重做日志文件把對數(shù)據(jù)文件的修改在寫入數(shù)據(jù)文件之前記錄下來。日志文件以一種循環(huán)的方式被寫入信息。當(dāng)一個日志組被寫滿時,回自動向另一個日志組寫入。管理員可以手工切換當(dāng)前日志組。alter system switch logfile 可以切換當(dāng)前的日志組。當(dāng)日志組發(fā)生切換時,oracle向新的重做日志組分配一個日志序列號。當(dāng)存在大量的事務(wù)時必須調(diào)整重做日志文件的大小,以避免頻繁的日志切換發(fā)生。重做日志文件被順序的寫在磁盤上,如果磁盤沒有其他活動,I/O將會很快。應(yīng)該把重做日志文件保存在單獨(dú)的磁盤上,以獲取良好的性能。尤其不要把經(jīng)常處于活動狀態(tài)的SYSTEM,UNDOTBS,SYSAUX的表空間或索引表空間文件保存到同一塊磁盤上。因為只有在事務(wù)的請求被寫到重做日志后,請求才能被完成。最大限度的提高重做日志的吞吐量是oracle性能優(yōu)化首先考慮的因素。當(dāng)發(fā)生重做日志切換而生成一個新的檢查點(diǎn)時,DBWn就會寫臟緩沖器塊。這樣會影響oracle的性能??梢酝ㄟ^fast_start_mttr_target初始化參數(shù)來調(diào)整檢查點(diǎn)。
每個數(shù)據(jù)庫都有自己的聯(lián)機(jī)重做日志組,一個聯(lián)機(jī)重做日志組有多個重做日志成員,每個日志成員有單獨(dú)的操作系統(tǒng)文件。在一個rac配置(這種配置中單個數(shù)據(jù)庫裝有多個實例),每個實例有一個聯(lián)機(jī)重做日志線程,每個實例的lgwr進(jìn)程都寫到相同的聯(lián)機(jī)重做日志文件。因此oracle必須跟蹤數(shù)據(jù)庫實例修改來自那個實例。
當(dāng)多路復(fù)用重做日志文件時,應(yīng)該把一個組的成員保存在不同的磁盤上。以避免單點(diǎn)故障的發(fā)生。如果重做日志文件組的所有成員都無法寫入數(shù)據(jù),oracle將被掛起。Dba可以在創(chuàng)建數(shù)據(jù)庫時創(chuàng)建多個聯(lián)機(jī)重做日志文件的副本。
對日志的操作如下:
a. 創(chuàng)建新的重做日志組:
Alter database add logfile
Group 3 (‘/ora02/oradata/mydb01/redo0301.log’,
’/ora03/oradata/mdb01/redo0302.log’) size 10m;
如果省略group子句,oracle分配一個有效的編號,如下:
Alter database add logfile
b. 添加新的組成員:
alter database add logfile member
‘/ora04/oradata/mydb01/redo0203.log’ to group 2;(向第二組中添加新的成員)
c.重命名日志成員:
在重命名日志組成員之前新的目標(biāo)必須已經(jīng)存在。Oracle的sql命令只是把控制文件中的內(nèi)部指針指向新的日志文件。Dba需要用操作系統(tǒng)命令來重命名此日志文件。步驟如下:
1.關(guān)閉數(shù)據(jù)庫
2.使用操作系統(tǒng)命令重命名或移動日志文件
3. 啟動數(shù)據(jù)庫實例(start mount),重命名控制文件中的日志文? 件成員。Alter database rename file?? ‘old_redo_file_name’ to ‘new_redo_file_name’;
4.打開數(shù)據(jù)庫 alter database open
5.備份控制文件
D.刪除重做日志組:
將要被刪除的重做日志組不能是活動的日志組。Alter database drop logfile group 3;。當(dāng)重做日志文件被刪除后,相關(guān)的操作系統(tǒng)文件也被刪除,相關(guān)的數(shù)據(jù)庫控制文件也給更新。
E.使用和刪除重做日志組相同的方式,dba可以只刪除一個非活動的重做日志組的成員。
Alter database drop logfile member ‘/ora04/oradata/mydb01/redo0203.log’;
f. 創(chuàng)建聯(lián)機(jī)重做日志文件:
當(dāng)重做日志組成員遭到破壞時,可以刪除并重新添加這個重做日志組或組成員。
二、
檔案重做日志文件:
它是聯(lián)機(jī)重做日志文件的一個副本。Lgwr和arcn進(jìn)程的故障都會引起數(shù)據(jù)庫的掛起。只有當(dāng)arcn進(jìn)程把聯(lián)機(jī)重做日志寫到歸檔地后,才可以向此重做日志組成員寫入數(shù)據(jù)。
設(shè)置歸檔目的地:
可以在參數(shù)初始化文件中的log_archive_dest_n來定義歸檔目的地。歸檔目的地可以在本地計算機(jī)上,也可在遠(yuǎn)程的數(shù)據(jù)庫服務(wù)器上。定義語法如下:
LOG_ARCHIVE_DEST_n= "null_string" |
(service=tnsnames_name |
LOCATION= ‘directory_name’)
[MANDATORY | OPTIONAL]
[REOPEN[=integer]]
例1:
LOG_ARCHIVE_DEST_1=((LOCATION=’/archive/MYDB01’) MANDATORU REOPEN=60)定義歸檔日志的位置為/archive/MYDB01,mandatory子句的定義向這個位置寫日志的操作必須的成功的。Reopen子句定義在日志寫入失敗時,下次嘗試寫入操作的時間間隔。缺省是300秒。
例2:
LOG_ARCHIVE_DEST_@=(SERVICE=STDBY01) OPTIONAL REOPEN;語句中的stdby01的連接到遠(yuǎn)程數(shù)據(jù)庫的oracle net連接串。由于寫操作是可選的,所以數(shù)據(jù)庫活動繼續(xù),當(dāng)arcn進(jìn)程不能寫檔案日志文件時,進(jìn)程將立即嘗試重新寫入(這個動作有reopen子句來定義)。
Log_archive_min_succeed_dest:定義最少歸檔日志的副本數(shù)量。
Log_archive_format:定義歸檔日志文件采用的名稱和使用的格式。可以使用預(yù)定義變量來構(gòu)造每個歸檔日志文件的名稱。變量如下:
%s????? 日志序列號
%t????? 線程號
%r????? 復(fù)位日志id
%d????? 數(shù)據(jù)庫id
定義歸檔日志名稱的變量至少包含%s,%t,%r,當(dāng)多個數(shù)據(jù)庫實例的歸檔日志采用相同的歸檔日志位置時,還必須定義%d。例如:%t_%s_%r.dbf
關(guān)鍵詞標(biāo)簽:Oracle
相關(guān)閱讀
熱門文章 Oracle中使用alter table來增加,刪除,修改列的語法 oracle中使用SQL語句修改字段類型-oracle修改SQL語句案例 誤刪Oracle數(shù)據(jù)庫實例的控制文件 為UNIX服務(wù)器設(shè)置Oracle全文檢索
人氣排行 oracle中使用SQL語句修改字段類型-oracle修改SQL語句案例 Oracle中使用alter table來增加,刪除,修改列的語法 ORACLE SQL 判斷字符串是否為數(shù)字的語句 ORACLE和SQL語法區(qū)別歸納(1) oracle grant 授權(quán)語句 ORACLE修改IP地址后如何能夠使用 如何加速Oracle大批量數(shù)據(jù)處理 Oracle刪除表的幾種方法