oracle資料庫rman歸檔設定和管理

chenfengwww發表於2011-12-08

一 設定為歸檔方式

1 sql> archive log list; #檢視是不是歸檔方式

2 sql> alter system set log_archive_start=true scope=spfile; #啟用主動歸檔

sql> alter system set log_archive_dest=''location=/oracle/ora9/oradata/arch'' scope=spfile;

#設定歸檔路徑

sql> alter system set log_archive_dest_1=''location=/oracle/ora9/oradata/arch1'' scope=spfile;

sql> alter system set log_archive_dest_2=''location=/oracle/ora9/oradata/arch2'' scope=spfile;

#如果歸檔到兩個位置,則可以透過上邊方法實現

sql> alter system set log_archive_format=''arch_%d_%t_%r_%s.log'' #設定歸檔日記款式

3 sql> shutdown immediate;

4 sql> startup mount; #開啟控制檔案,不開啟資料檔案

5 sql> alter database archivelog; #將資料庫切換為歸檔模式

6 sql> alter database open; #將資料檔案開啟

7 sql> archive log list; #檢視此時是否處於歸檔模式

8 查詢以確定資料庫位於archivelog模式中且歸檔過程正在執行

sql> select log_mode from v$database;

sql> select archiver from v$instance;

9 日誌切換

sql> alter system switch logfile;

10 這次日誌切換將歸檔寫到兩個目標地,

1,即第二步的/oracle/ora9/oradata/arch1/oracle/ora9/oradata/arch1,要是要對目錄確認

oracle情況中執行如下查詢:

sql> select name from v$archived_log;

而後在作業系統中確認查詢所列出的檔案

二 設定非歸檔方式

1 sql> archive log list; #檢視是否是歸檔方式

2 sql> alter system set log_archive_start=false scope=spfile; #禁用自動歸檔

3 sql> shutdown immediate;

4 sql> startup mount; #開啟控制檔案,不開啟資料檔案

5 sql> alter database noarchivelog; #將資料庫切換為非歸檔模式

6 sql> alter database open; #將資料檔案開啟

7 sql> archive log list; #檢視此時便處於非歸檔模式

三 歸檔相關命令

archive log stop;

archive log start;

archive log list;

show parameters;

show parameters log_archive_start;

show parameters log_archive_max_process; #歸檔程式數

alter system set log_archive_max_process=5; #將歸檔程式數改為5

select * from v$bgprocess; #檢察後臺程式

四 歸檔日誌刪除

OS層面非正常刪除

find /oraarchive -xdev -mtime +7 -name "*.dbf" -exec rm -f {} ;

1. 進入rman

2. connect target /

3. crosscheck archivelog all;

4. delete expired archivelog all;

這時候我們再去OEM中看就一定看不到,如果你的從來沒有做過這個動作的話,我們可以比較從這個動作前的controlfile後動作後的controlfile的大小!

ORACLE正確刪除歸檔並回收空間的方法

rman target/

rman target/@orcl

在命令視窗裡面執行

DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';

五、rman歸檔備份策略和指令碼

------rman 備份指令碼

rman target /

CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 3 DAYS;

level0_backup.sh

#!/bin/ksh

#lzccb rman full backup

#export env

cd /oraclebackup

rman cmdfile=level0_backup.sql msglog=/oraclebackup/level0_`date +'%y%m%d%H%M'`.log

level0_backup.sql

connect target /

run {

allocate channel c1 type disk;

allocate channel c2 type disk;

backup incremental level 0

tag 'level0 include controlfile'

format '/oraclebackup/level0_%d_%U.bak'

database;

release channel c1;

release channel c2;

}

crosscheck backup;

delete noprompt expired backup;

delete noprompt obsolete;

----crontab -e

0 5 * * 1,4 /oraclebackup/level0_backup.sh 1>/oraclebackup/crontab_rman.log 2>&1 &

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22036495/viewspace-1056753/,如需轉載,請註明出處,否則將追究法律責任。

相關文章