資料庫的歸檔日誌文件
① 如何正確刪除ORACLE歸檔日誌文件
一、首先刪除歸檔日誌物理文件,歸檔日誌一般都是位於archive目錄下,AIX系統下文件格式為「1_17884_667758186.dbf」,建議操作前先對資料庫進行備份,刪除時至少保留最近幾天的日誌用於資料庫恢復。
二、把歸檔日誌的物理文件刪除後,我們就可以正常登入ORACLE了,但是還沒完全把歸檔日誌刪除干凈,ORACLE的controlfile中仍然記錄著這些archivelog的信息,在oracle的OEM管理器中有可視化的日誌展現出,當我們手工清除archive目錄下的文件後,這些記錄並沒有被我們從controlfile中清除掉,接下去我們要做的就是這個工作。
我們利用RMAN進行刪除操作,操作步驟如下:(window客戶端系統為例)
1.指定資料庫實例
C:/Documents and Settings/Administrator>SET ORACLE_SID =orcl
2.連接資料庫
C:/Documents and Settings/Administrator>RMAN TARGET SYS/sysadmin@orcl
3.查看歸檔日誌的狀態
RMAN> list archivelog all;
4.手工刪除歸檔日誌文件
RMAN> DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';
說明:
SYSDATA-7,表明當前的系統時間7天前,before關鍵字表示在7天前的歸檔日誌,如果使用了閃回功能,也會刪除閃回的數據。
同樣道理,也可以刪除從7天前到現在的全部日誌,不過這個命令要考慮清楚,做完這個刪除,最好馬上進行全備份資料庫
DELETE ARCHIVELOG from TIME 'SYSDATE-7'; 刪除從7天前到現在的全部日誌,慎用
UNIX/linux下也可以通過FIND找到7天前的歸檔數據,使用EXEC子操作刪除
find /oraarchive -xdev -mtime +7 -name "*.dbf" -exec rm -f {} ;
這樣做仍然會在RMAN里留下未管理的歸檔文件
仍需要在RMAN里執行下面2條命令
crosscheck archivelog all;
delete expired archivelog all;
所以還不如上面的方法好用,不過用FIND的好處就是,可以在條件上,和EXEC子項上做很多操作,實現更復雜的功能
5.退出rman
RMAN> exit
② 如何刪除oracle的歸檔日誌
su - oracle //進入oracle賬戶
sqlplus / as sysdba //以操作系統許可權認證的oracle sys管理員登陸
archive log list //查看資料庫的歸檔模式
注意:輸入archive log list會顯示出USE_DB_RECOVERY_FILE_DEST
select * from V$RECOVERY_FILE_DEST; //查詢歸檔日誌空間大小及路徑
show parameter recover; //顯示歸檔文件路徑
退出到oracle賬戶根目錄然後進入rman輸入以下命令進入rman
rman target sys/password
RMAN> crosscheck archivelog all; //驗證的DB的歸檔日誌
RMAN> delete expired archivelog all; //刪除所有歸檔日誌
RMAN>DELETE ARCHIVELOG ALL COMPLETED BEFORE 『SYSDATE-7』; //保留7天的歸檔日誌
再查
SQL> select * from V$RECOVERY_FILE_DEST;
修改大小
SQL> alter system set db_recovery_file_dest_size=5G scope=both;
關閉歸檔
SQL> alter system set log_archive_start=false scope=spfile; #禁用自歸檔
SQL> shutdown immediate; //強制關閉資料庫
SQL> startup mount; //重啟資料庫到mount模式
SQL> alter database noarchivelog; //修改為非歸檔模式
SQL> alter database open; //打數據文件
SQL> archive log list; //再次查看前歸檔模式
③ SQL 資料庫如何查看歸檔日誌
在對象資源管理器中,展開「管理」,展開「SQL Server 日誌」,再雙擊「當前 <日期/時間>」,此時將顯示 SQL Server、「SQL 代理」和 Windows NT 日誌。
查看與作業相關的日誌
在對象資源管理器中,展開「SQL Server 代理」,右鍵單擊「作業」,再單擊「查看歷史記錄」,此時將顯示「作業歷史記錄」和「SQL 代理」日誌。
查看與維護計劃相關的日誌
在對象資源管理器中,展開「管理」,右鍵單擊「維護計劃」,再單擊「查看歷史記錄」,此時將顯示「維護計劃」、「作業歷史記錄」和「SQL 代理」日誌。
④ linux下oracle怎麼查找歸檔日誌文件
檢查歸檔情況
SQL>archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination ###########
Oldest online log sequence 1
Next log sequence to archive 2
Current log sequence 2
Automatic archival=Enabled表示歸檔進行是否自動啟動
其中LOG_MODE表示Oracle當前的歸檔方式。ARCHIVELOG表示資料庫運行在歸
檔模式下,NOARCHIVELOG表示資料庫運行在非歸檔模式下。
通過上面的信息可以看出已經是歸檔模式了 (如果是非歸檔模式參考博主的另一篇文章 有關「歸檔日誌與非歸檔日誌切換」), 查看歸
檔日誌文件
存放在哪個位置 運行show parameter log_archive_dest;命令
...
log_archive_dest_state_20 string enable
log_archive_dest_state_21 string enable
log_archive_dest_state_22 string enable
log_archive_dest_state_23 string enable
...
提前建立/u01/app/oracle/arch目錄
設置歸檔目錄
SQL>alter system set log_archive_dest='/u01/app/oracle/arch' scope=spfile;
第 1 行出現錯誤:
ORA-02097: 無法修改參數, 因為指定的值無效
ORA-16018: 無法將 LOG_ARCHIVE_DEST 與 LOG_ARCHIVE_DEST_n 或 DB_RECOVERY_FILE_DEST 一起使用
出現錯誤的原因是db_recovery_file_dest的參數已經被設置了,去查詢一下看看,果真如此。
alter system set db_recovery_file_dest='' scope=spfile;
db_recovery_file_dest是預設的歸檔位置,下面把它設置為"空",然後設置log_archive_dest參數,指定另外一個非預設的參數
重啟db 如下圖
運行 shutdown immediate;
一直沒有反應
輸入shutdown abort
手動歸檔,之後去歸檔目錄看看
alter system archive log current;
如果出現以下錯誤
SQL> startup
ORA-16032: parameter LOG_ARCHIVE_DEST destination string cannot be translated
ORA-07286: sksagdi: cannot obtain device information.
Linux Error: 2: No such file or directory
有可能是歸檔目錄沒有建立,需要檢查
⑤ 如何正確刪除Oracle歸檔日誌文件
可以嘗試這種方法:
1. 進入rman
2. connect target /
3. crosscheck archivelog all;
4. delete expired archivelog all;
這時候我們再去OEM中看就一定看不到,如果你的從來沒有做過這個動作的話,我們可以比較從這個動作前的controlfile後動作後的controlfile的大小!
ORACLE正確刪除歸檔並回收空間的方法
ORACLE正確刪除歸檔並回收空間的方法
一個ORACLE歸檔日誌經常滿,表現為/oraarchive
這個文件空間佔用100%大家一定抱怨ORACLE為何沒有歸檔維護工具,很多人直接刪除了事,錯了,ORACLE有,而且很智能,可以正確的刪除歸檔和
FLASHBACK,不過切記,ORACLE歸檔日誌對於ORACLE的數據恢復和備份非常重要,不到萬不得已不要刪除歸檔日誌。
刪除歸檔日誌的過程
以ORACLE用戶身份登錄到資料庫伺服器主機或通過網路連接
進入ORACLE數據備份工具
rman target/
或rman target/@orcl
在命令窗口裡面執行
DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';
說明
SYSDATA-7,表明當前的系統時間7天前,before關鍵字表示在7天前的歸檔日誌,如果使用了閃回功能,也會刪除閃回的數據。
同樣道理,也可以刪除從7天前到現在的全部日誌,不過這個命令要考慮清楚,做完這個刪除,最好馬上進行全備份資料庫
DELETE ARCHIVELOG FROM TIME 'SYSDATE-7'; 刪除從7天前到現在的全部日誌,慎用
UNIX/LINUX下也可以通過FIND找到7天前的歸檔數據,使用EXEC子操作刪除
find /oraarchive -xdev -mtime +7 -name "*.dbf" -exec rm -f {} ;
這樣做仍然會在RMAN里留下未管理的歸檔文件
仍需要在RMAN里執行下面2條命令
crosscheck archivelog all;
delete expired archivelog all;
所以還不如上面的方法好用,不過用FIND的好處就是,可以在條件上,和EXEC子項上做很多操作,實現更復雜的功能
⑥ oracle 怎麼生成歸檔日誌文件
oracle 歸檔日誌
歸檔日誌(Archive Log)是非活動的重做日誌備份.通過使用歸檔日誌,可以保留所有重做歷史記錄,當資料庫處於ARCHIVELOG模式並進行日誌切換式,後台進程ARCH會將重做日誌的內容保存到歸檔日誌中.當資料庫出現介質失敗時,使用數據文件備份,歸檔日誌和重做日誌可以完全恢復資料庫.
日誌操作模式:ARCHIVELOG NOARCHIVELOG
1,改變日誌操作模式:
檢查當前日誌操作模式
SELECT log_mode from v$database;
關閉資料庫,然後裝載資料庫
SHUTDOWN IMMEDIATE
STARTUP MOUNT
改變日誌操作模式,然後打開資料庫
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;
2,執行手工歸檔
從oracle database 10g開始,當將日誌操作模式轉變未ARCHIVELOG模式時,oracle會自動啟動ARCH進程.如果要使用手工歸檔.那麼在改變日誌操作模式時必須使用命令ALTER DATABASE ARCHIVELOG MANUAL.
需要注意,使用手工歸檔方式,資料庫管理員必須手工執行歸檔命令.如果沒有執行手工歸檔命令,日誌組的原有內容將不能被覆蓋.ALTER DATABASE ARCHIVELOG MANUAL 命令是為了與先前的版本兼容而保留的,.將來的oracle版本會淘汰該命令,使用手工歸檔方式是,資料庫管理員可以執行以下命令歸檔重做日誌:
ALTER SYSTEM ARCHIVELOG ALL;
3,配置歸檔進程
初始化參數LOG_ARCHIVE_MAX_PROCESSES用於指定常式初始啟動的最大歸檔進程個數,當將資料庫轉變為ARCHIVELOG模式時,默認情況下oracle會自動啟動兩個歸檔進程.通過改變初始化參數LOG_ARCHIVE_MAX_PROCESS的值,可以動態地增加或降低歸檔進程的個數:
ALTER SYSTEM SET LOG_ARCHIVE_MAX_PROCESSES=3;配置歸檔位置和文件格式
當資料庫處於ARCHIVELOG模式時,如果進行日誌切換,後台進程將自動生成歸檔日誌,歸檔日誌的默認位置為%oracle_home%rdbms,在oracle database 10g中,歸檔日誌的默認文件格式為ARC%S_%R.%T.為了改變歸檔日誌的位置和名稱格式,必須改變相應的初始化參數,1,初始化參數LOG_ARCHIVE_FORMAT用於指定歸檔日誌的文件名格式,設置該初始化參數時,可以指定以下匹配符:
%s: 日誌序列號:
%S: 日誌序列號(帶有前導0)
%t: 重做線程編號.
%T: 重做線程編號(帶有前導0)
%a: 活動ID號
%d: 資料庫ID號
%r RESETLOGS的ID值.
從10g開始,配置歸檔日誌文件格式時,必須帶有%s,%t和%r匹配符,配置了歸檔文件格式後,必須重啟資料庫.
2,使用LOG_ARCHIVE_DEST配置歸檔位置
如果不使用備用資料庫,只需要將歸檔日誌存放到本地目錄.配置本地歸檔位置可以使用初始化參數LOG_ARCHIVE_DEST和LOG_ARCHIVE_DUPLEX_DEST,其中,第一個參數用於設置第一個歸檔位置,第二個參數用於指定第二個歸檔位置.
ALTER SYSTEM SET log_archive_dest='d:demoarchive1';ALTER SYSTEM SET log_archive_plex_dest='d:demoarchive2';3,使用LOG_ARCHIVE_DEST_n配置多個歸檔位置.
初始化參數LOG_ARCHIVE_DEST_n用於指定多個歸檔位置,該參數最多可以指定10個歸檔位置.通過使用初始化參數LOG_ARCHIVE_DEST_n,不僅可以配置本地歸檔位置,還可以配置遠程歸檔位置.
如果既要在主節點上生成歸檔日誌,又要將歸檔日誌傳遞到備用節點,那麼必須使用參數LOG_ARCHIVE_DEST_n.該參數與LOG_ARCHIVE_DEST具有如下區別;初始化參數LOG_ARCHIVE_DEST_n可以配置本地歸檔位置和遠程歸檔位置,而初始化參數LOG_ARCHIVE_DEST和LOG_ARCHIVE_DUPLEX_DEST只能配置本地歸檔位置.
初始化參數LOG_ARCHIVE_DEST_n可以配置多達10個歸檔位置,而初始化參數LOG_ARCHIVE_DEST和LOG_ARCHIVE_DUPLEX_DEST最多隻能配置兩個歸檔位置.
初始化參數LOG_ARCHIVE_DEST_n 不能與初始化參數LOG_ARCHIVE_DEST和LOG_ARCHIVE_DUPLEX_DEST同時使用.
因為初始化參數LOG_ARCHIVE_DEST_n不能與初始化參數LOG_ARCHIVE_DEST和LOG_ARCHIVE_DUPLEX_DEST同時使用,所以必須禁用初始化參數LOG_ARCHVE_DEST和LOG_ARCHIVE_DUPLEX_DEST.當使用初始化參數LOG_ARCHIVE_DEST_n配置本地歸檔位置時,需要指定LOCALTION選項.當配置遠程歸檔位置時,需要指定SERVICE選項.
示例如下:
ALTER SYSTEM SET log_archive_plex_dest='';ALTER SYSTEM SET log_archive_dest='';
ALTER SYSTEM SET log_archive_dest_1='location=d:demoarchive1';ALTER SYSTEM SET log_archive_dest_2='location=d:demoarchive2';ALTER SYSTEM SET log_archive_dest_3='location=d:demoarchive3';ALTER SYSTEM SET log_archive_dest_4='service=standby';配置遠程歸檔位置時,SERVICE選項需要指定遠程資料庫的網路服務名(在tnsnames.ora文件中配置)4,使用LOG_ARCHIVE_DEST_n選項
使用初始化參數LOG_ARCHIVE_DEST_n配置歸檔位置時,可以在歸檔位置上指定OPTIONAL或MANDATORY選項.指定MANDATORY選項時,可以設置REOPEN屬性.
OPTIONAL:該選項是默認選項.使用該選項時,無論歸檔是否成功,都可以覆蓋重做日誌.
MANDATORY:強制歸檔.使用該選項時,只有在歸檔成功之後,重做日誌才能被覆蓋.
REOPEN:該屬性用於指定重新歸檔的時間間隔,默認值為300秒,必須跟在MANDATORY後.
例:
Alter system set log_archive_dest_1=』location=d:demoarchive1 mandatory』;Alter system set log_archive_dest_2=』location=d:demoarchive2 mandatory reopen=500』;Alter system set log_archive_dest_3=』location=d:demoarchive3 optional』;5,控制本地歸檔成功的最小個數.
使用初始化參數LOG_ARCHIVE_MIN_SUCCEED_DEST控制本地歸檔的最小成功個數Alter system set log_archive_min_succeed_dest=2;6,使用初始化參數LOG_ARCHIVE_DEST_STATE_n控制歸檔位置的可用性.設置該參數為ENABLE(默認值),表示會激活相應的歸檔位置;設置該參數為DEFER,表示禁用相應歸檔位置.當歸檔日誌所在磁碟損壞或填滿時,DBA需要暫時禁用該歸檔位置.
Alter system set log_archive_dest_state_3=defer;(禁用)Alter system set log_archive_dest_state_3=enable;(啟用)顯示歸檔日誌信息
1,使用ARCHIVE LOG LIST命令可以顯示日誌操作模式,歸檔位置,自動歸檔機器要歸檔的日誌序列號等信息.
2顯示日誌操作模式
SELECT name,log_mode FROM v$database;
3,顯示歸檔日誌信息.
Col name format a46
Select name, swquence#, first_change# FROM v$archived_log;Name用於表示歸檔日誌文件名,sequence#用於表示歸檔日誌對應的日誌序列號,firs_change#用於標識歸檔日誌的起始SCN值.
4、執行介質恢復時,需要使用歸檔日誌文件,此四必須准確定位歸檔日誌的存放位置.通過查詢動態性能視圖v$archive_dest可以取得歸檔日誌所在目錄.
SELECT destination FROM v$archive dest;
5,顯示日誌歷史信息
SELECT * FROM v$loghist;
THREAD#用於標識重做線程號,SEQUNCE#用於標識日誌序列號,FIRST_CHANGE#用於標識日誌序列號對應的起始SCN值,FIRST_TIME用於標識起始SCN的發生時間.SWICTH_CHANGE#用於標識日誌切換的SCN值.
6.顯示歸檔進程信息.
進行日誌切換時,ARCH進程會自動將重做日誌內容復制到歸檔日誌中,為了加快歸檔速度,應該啟用多個ARCH進程.通過查詢動態性能視圖V$ARCHIVE_PROCESSES可以顯示所有歸檔進程的信息!
SELECT * FROM v$archive_processes;
Porcess用於標識ARCH進程的編號,status用於標識ARCH進程的狀態(ACTIVE:活動,STOPPED:未啟動),log_sequence用於標識正在進行歸檔的日誌序列號,state用於標識ARCH進程的工作狀態==========================================用Oracle歸檔日誌進行恢復的方法
用Oracle歸檔日誌進行恢復的方法
聯機重演日誌沒有丟失應使用完成恢復,如聯機重演日誌損壞,而又沒有備份,就只能進行不完全恢復。
一、完全恢復:
1.使用命令「svrmgrl」調用行方式伺服器管理;2.輸入命令「connect internal」,然後輸入命令「startup mount』;3.輸入命令「recover database;」
4.按下ENTER,接受默認值。
5.然後輸入命令「alter database open;」完成資料庫恢復。
二、不完全恢復
警告:
應用不完成恢復前,必須將資料庫做一次完全冷備份,因為應用不完全恢復後,聯機重演日誌將重置,以前的所有日誌不可用。
如果恢復不成功,資料庫就不能使用了。再次強調,做完全冷備份後再應用不完全恢復。
1).基於變化的恢復(change-based recovery)要執行基於變化的恢復,需要知道丟失日誌之前的系統寫入歸檔重演日誌的最大的變化號(SCN),然後可以啟動恢復語句恢復資料庫直到改變scn_number,其中比scn_number是寫到已歸檔重演日誌文件順序號386的SCN(即,小於丟失日誌順序號387的SCN)。可以從V$log_history視圖中得到SCN信息。
select first_change# from v$log_history where sequence#=387;其中387為最後一個有效的日誌文件號加1,該例是查找386.
知道了SCN後,使用下述步驟完成恢復
1.使用命令「svrmgrl」調用行方式伺服器管理;2.輸入命令「connect internal」,然後輸入命令「startup mount』;3.輸入命令「recover database until change 9999;」
4.在回答Oracle第一個歸檔重演日誌建議信息時,輸入「auto」,Oracle在找到第387號重演日誌之前停止恢復。
5.用命令「alter database open resetlogs;」打開資料庫。(應用該命令前請確認資料庫已備份,如打開失敗,日誌將不可用)2).基於停止的恢復(cancel-based recovery)
1.使用命令「svrmgrl」調用行方式伺服器管理;2.輸入命令「connect internal」,然後輸入命令「startup mount』;3.輸入命令「recover database until cancel;」,Oracle提示需要的第一個歸檔重演日誌文件名.按下ENTER鍵接受預設文件名,並且—路ENTER直到詢問順序號387的日誌。輸入「cancel」,停止恢復操作。
4.用命令「alter database open resetlogs;」打開資料庫。(應用該命令前請確認資料庫已備份,如打開失敗,日誌將不可用)3).基於時間的恢復(time-based recovery)
為使用基於時間的恢復,必須知道記錄在V$log_history歸檔重演日誌序號387(丟失重演日誌)的時間,通過執行查詢語句「select time from v$log_history where sequence#=387;」得到。本例得到的時間是:2002-06-23 14:42:04現在開始實施恢復。
1.使用命令「svrmgrl」調用行方式伺服器管理;2.輸入命令「connect internal」,然後輸入命令「startup mount』;3.輸入命令「recover database until time '2002/06/23 14:42:04';」,Oracle提示需要的第一個歸檔重演日誌文件名,輸入「auto」,Oracle恢復歸檔重演日誌直到序號為387的日誌,停止恢復操作。
4.用命令「alter database open resetlogs;」打開資料庫。(應用該命令前請確認已資料庫已備份,如打開失敗,日誌將不可用)提示: 使用基於時間的恢復,時間的格式是YYYY/MM/DD HH24:MI:SS,並且用單引號括起。
附:如何啟用Oracle的歸檔方式
1.參照以下內容編輯init.ora文件:
log_archive_start = true
log_archive_dest_1 = " LOCATION=D:\Oracle\oradata\ORCL\archive "og_archive_format = %%ORACLE_SID%%T%TS%S.ARC2.關閉資料庫
svrmgrl> connect internal
svrmgrl> shutdown normal
3.然後啟動實例並安裝該資料庫,但不打開資料庫。
svrmgrl> startup mount
4.接著,發布下列更改資料庫的命令。
Svrmgrl> alter database archivelog;
5.現在,資料庫已經更改為歸檔方式,您可以打開資料庫。
svrmgrl> alter database open;
提示:也可以使用DBA studio工具啟用資料庫的歸檔方式,操作很簡單=============================================================ORACLE歸檔模式的設置
在ORACLE 資料庫的開發環境和測試環境中,資料庫的日誌模式和自動歸檔模式一般都是不設置的,這樣有利於系統應用的調整,也免的生成大量的歸檔日誌文件將磁碟空間大量的消耗。但在系統上線,成為生產環境時,將其設置為日誌模式並自動歸檔就相當重要了,因為,這是保證系統的安全性,有效預防災難的重要措施。這樣,通過定時備份資料庫和在兩次備份間隔之間的日誌文件,可以有效的恢復這段時間的任何時間點的數據,可以在很多時候挽回或最大可能的減少數據丟失。
一、 要使OARCLE 資料庫進行日誌的自動歸檔,需要做兩方面的事情;1.是資料庫日誌模式的設置(可為Archive Mode 和No Archive Mode);2.就是自動歸檔模式設置(Automatic archival,可為Enabled 和Disabled)。
二、 如何查看資料庫的現行日誌和自動歸檔模式的設置可用archive log list 命令來查看。
運行在日誌自動歸檔模式下的資料庫系統查看結果如下(一般是生產環境):
SQL> archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /backup/archivelog
Oldest online log sequence 2131
Next log sequence to archive 2133
Current log sequence 2133
沒有啟動資料庫日誌模式和自動歸檔的資料庫系統查看結果如下(一般是測試環境):
SQL> archive log list
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination /u01/app/oracle/proct/8.1.7/dbs/archOldest online log sequence 194
Current log sequence 196
三. 資料庫日誌模式的設置
在創建資料庫時,可以在CREATE DATABASE 語句中指定資料庫的日誌模式。假如沒有指明,則預設為NOARCHIVELOG 模式。由於如果在創建資料庫時指明是Archive Mode的話,會增加約20%的創建時間,而在以後啟動INSTANCE 時再設置的話,一般只用去幾秒的時間,所以一般在創建資料庫時是不設置為ARCHIVE MODE 的。
將資料庫的日誌模式設置切換(Archive Mode 和No Archive Mode 之間的切換)的步驟和操作如下:
1. 關閉運行的資料庫實例
SQL> shutdown
在進行日誌模式切換之前,必須將運行的資料庫正常關閉。
2. 備份資料庫
該備份跟以後產生的日誌一起用於將來的災難恢復(很重要,如要改為歸檔日誌模式,沒有這個資料庫備份,僅有日誌文件是無法從該時間點恢復的)。
3. 啟動資料庫實例到mount 狀態,但不要打開。
SQL> startup mount
4. 切換資料庫日誌模式。
SQL> alter database archivelog;(設置資料庫為歸檔日誌模式)或SQL> alter database noarchivelog;(設置資料庫為非歸檔日誌模式)5. 打開資料庫
SQL> alter database open;
6. 確認資料庫現在處於歸檔日誌模式。
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination for example: $ORACLE_HOME/dbs/archOldest on-line log sequence 275
Next log sequence 277
Current log sequence 278
7. 將這個時間點的redo logs 歸檔
SQL> archive log all;
8. 確認新產生的日誌文件已在相應的歸檔目錄下面。
四. 自動歸檔模式設置(Automatic archival,可為Enabled 和Disabled)。
在該模式下,資料庫啟動一個arch 進程,專門負責將redo logs 寫到系統歸檔設備的相應目錄下。在資料庫的參數文件中設置參數(一般是在$ORACLE_HOME/dbs/init*.ora 文件中):
LOG_ARCHIVE_START=
LOG_ARCHIVE_DEST=
LOG_ARCHIVE_FORMAT=
LOG_ARCHIVE_START:
⑦ Oracle的日誌文件存儲在什麼位置
1、通過sqlplus命令連接資料庫,查看伺服器是否已經開啟歸檔。
⑧ 如何備份oracle 歸檔日誌文件
歸檔日誌(Archive Log)是非活動的重做日誌備份.
通過使用歸檔日誌,可以保留所有重做歷史記錄,當資料庫處於ARCHIVELOG模式並進行日誌切換式,後台進程ARCH會將重做日誌的內容保存到歸檔日誌中.當資料庫出現介質失敗時,使用數據文件備份,歸檔日誌和重做日誌可以完全恢復資料庫.
⑨ Oracle主從資料庫清理歸檔日誌
1、
切換至oracle用戶
2、進入Oracle安裝目錄下的app文件夾
3、新建目錄並創建腳本文件(一定要在oracle用戶下操作)
arcclear.sh 腳本內容如下
4、給文件分配許可權(一定要在oracle用戶下操作)
5、給Oracle 用戶創建計劃任務(一定要在oracle用戶下操作)
新增內容
crontab 計劃任務時間設置說明
6、重啟 crontab 服務
⑩ ORACLE聯機重做日誌文件與歸檔日誌文件的區別。
重做日誌redo
log
file是LGWR進程從Oracle實例中的redo
log
buffer寫入的,是循環利用的。就是說一個redo
log
file(group)
寫滿後,才寫下一個。
歸檔日誌archive
log是當資料庫運行在歸檔模式下時,一個redo
log
file(group)寫滿後,由ARCn進程將重做日誌的內容備份到歸檔日誌文件下,然後這個redo
log
file(group)才能被下一次使用。
不管資料庫是否是歸檔模式,重做日誌是肯定要寫的。而只有資料庫在歸檔模式下,重做日誌才會備份,形成歸檔日誌。
一般來說,歸檔日誌結合全備份,用於資料庫出現問題後的恢復使用。
重做日誌是循環使用的。比如說,有三個重做日誌組A、B、C。那麼,當A寫滿後,系統就調用ARCn進程,將A備份為歸檔日誌,同時B已經開始使用了。
假設你只有兩個組A、B,如果某種情況下,A正在備份,未結束,還不能繼續使用,而B也寫滿了,這個時候,資料庫就會出現掛起的情況。所以一般情況下,重做日誌最好是三個組或者再多一點,而且大小要適當。
實際上,一個重做日誌組滿了後,就開始寫入歸檔日誌。不是等ABC都寫滿了,再歸檔,這樣肯定就是出現掛起的情況了,Oracle不是這樣的,歸檔日誌和重做日誌都是物理上的文件,只是存放的目錄不同,而且重做日誌的文件名不變,而歸檔日誌的文件名是備份時系統生成的。
重做日誌備份為歸檔日誌後,系統就會把重做日誌的內容清空,但文件依然存在,准備下一次使用。
重做日誌紀錄了你所有做過的dml語句,重做日誌循環使用,寫滿一輪後就要覆蓋前面的。如果你是用熱備模式,當重做日誌寫滿一個後就將內容寫入歸檔日誌,以備將來恢復數據用。
只有資料庫運行在歸檔模式並且初始化參數ARCHIVE_LOG_START等於TRUE時,ARCn進程才能被啟動,進行自動歸檔。
如果資料庫運行在歸檔模式但ARCHIVE_LOG_START等於FALSE時,需要DBA手工歸檔。
重做日誌文件也叫聯機日誌文件,一般資料庫有幾個日誌文件(例如有三個,編號分別為1,2,3)先寫1,當1滿時再寫2,當2滿時再寫3,當3滿時1就歸
檔出來,產生一個文件寫到磁碟上,這個文件就叫歸檔日誌文件.1歸檔出來後,新的聯機日誌文件又寫到1中,將原來的覆蓋,(即聯機日誌是循環使用的).一
般當產生一個檢查點或聯機日誌寫滿一定程度時會產生一個歸檔日誌文件.