一、前提條件
在萬年等地區,都構建了全面的區域性戰略布局,加強發展的系統性、市場前瞻性、產品創新能力,以專注、極致的服務理念,為客戶提供網站設計制作、網站設計 網站設計制作按需定制網站,公司網站建設,企業網站建設,品牌網站設計,營銷型網站建設,成都外貿網站制作,萬年網站建設費用合理。
系統必須是使用LOG4J進行日志管理,否則方法無效。
系統必須包含commons-logging-xxx.jar,log4j-xxx.jar這兩個JAR包,XXX為版本號。
二、操作步驟
1、創建日志表
要把日志持久化,必須在數據庫中創建一張用來存儲日志信息的表,表內字段為日志
的一個主要屬性包括:操作類,執行方法,打印時間,日志級別,日志內容。
CREATE TABLE RESLOG (LOGID VARCHAR2(20) NOT NULL,
CLASS VARCHAR2(200),
METHOD VARCHAR2(100),
CREATETIME DATE,
LOGLEVEL VARCHAR2(50),
MSG VARCHAR2(4000))
因為存儲的類為類的全部路徑,所以CLASS字段長度需要比較大。
2、日志管理配置
LOG4J主要有兩種配置文件.properties和.xml,這里以properties文件為基礎來講
述,關于XML文件的配置,相信大家看完下面的介紹也一樣能輕松完成。
通常在LOG4J.PROPERTIES文件的第一行是:
log4j.rootLogger= XXX,這句是控制日志的輸出,如果想吧日志輸出到數據庫,
則需要在XXX中添加“DB”,如log4j.rootLogger=INFO,stdout,Platform,db。上面
這句就是把日志中級別為INFO的信息輸出到STDOUT,PLATFORM和DB
(DATABASE)中。
配置好如上的信息,LOG4J就知道用戶是想把信息存入數據庫,接下來我們就要來
配置數據庫的相關信息(包括緩存,數據庫連接信息,和執行SQL),配置信息如下:
###JDBCAppender
log4j.appender.db = org.apache.log4j.jdbc.JDBCAppender
//這個配置是選擇使用JDBCAppender方法,將日志信息存儲到數據庫。當然,如果你還要做其他操作,可以自己寫個類,繼承JDBCAppender就OK了。
log4j.appender.db.BufferSize=1
//這個配置是告訴LOG4J,有多少條日志信息后才存入數據庫,我這里是1,就是說有一條就查一條,顯然這樣在生產環境下是很影響系統性能的。
log4j.appender.db.driver=oracle.jdbc.driver.OracleDriver
//這個配置是告訴LOG4J,做數據庫存儲所用的驅動。
log4j.appender.db.URL=jdbc:oracle:thin:@ip:port:sid
//這個配置數據庫連接的URL,不用說也都知道。
log4j.appender.db.user=XXX
log4j.appender.db.password=XXX
//上面兩個是數據庫連接時的用戶名和密碼
log4j.appender.db.sql=insert into RESLOG
(LogId,Class,Method,createTime,LogLevel,MSG)
values (SQ_RESLOG_LOGID.Nextval,'%C','%M',
to_date('%d{yyyy-MM-dd HH:mm:ss}','yyyy-MM-dd
HH24:mi:ss'),'%p','%m')
//這個配置是告訴當LOG4J吧日志存儲數據庫時用的SQL語句。SQ_RESLOG_LOGID.Nextval是我建的一個SEQUENCE;‘%C’是日志中的CLASS;‘%M’是打印日志是執行到類里的方法;‘%d’是打印的時間,它支持格式化;‘%P’是日志級別,包括INFO、DEBUG、ERROR等;‘%m’是MSG,日志內容。注意這里的參數區分大小寫。
log4j.appender.db.layout=org.apache.log4j.PatternLayout
通過上面的配置,現在再啟動服務,LOG4J就會自動把原來存儲在.LOG文件中的信息,同時存儲到數據庫了。
1.查看數據庫的日志模式
archive log list;
2.進行日志切換操作
這里我是從非歸檔模式向歸歸檔模式操作.
a.關閉運行數據庫實例
shutdown immediate;
b.備份數據庫
該備份跟以后產生的日志一起用于將來的災難恢復(很重要,如要改為歸檔日志模式,沒有這個數據庫備份,僅有日志文件是無法從該時間點恢復的)
c.啟動數據庫實例到mount狀態,但不要打開。
startup mount;
d.切換數據庫日志模式。
alter database archivelog;(設置數據庫為歸檔日志模式)
alter database noarchivelog;(設置數據庫為歸檔日志模式)
d.進行自動歸檔的切換
alter system archive log start
alter system archive log stop
(在standy模式不能切換為手動歸檔)
e.打開數據庫
alter database open;
3.手動歸檔相關操作
alter system archive log current;
alter system archive log all;
1、Oracle日志的路徑的查看:
登錄:sqlplus "/as sysdba"
查看路徑:SQL select * from v$logfile;
SQL select * from v$logfile;(#日志文件路徑)
2、Oracle日志文件包含哪些內容:(日志的數量可能略有不同)
control01.ctl example01.dbf redo02.log ? sysaux01.dbf undotbs01.dbf
control02.ctl redo03.log ? system01.dbf users01.dbf
control03.ctl redo01.log ? ? SHTTEST.dbf temp01.dbf
3、Oracle日志的查看方法語句代碼:
SQLselect * from v$sql ? (#查看最近所作的操作)
SQLselect * fromv $sqlarea(#查看最近所作的操作)
4、LogMiner的使用:
5、查看LogMiner工具分析結果
SQL select * from dict t where t.table_name like '%LOGMNR%';看所有與logmnr相關的視圖
6、分析結果在GV$LOGMNR_CONTENTS 視圖中,可按以下語句查詢:?
selec tscn , timestamp , log_id , seg_owner , seg_type , table_space , data_blk# , data_obj# , data_objd#, session#,serial#,username,session_info,sql_redo,sql_undo from logmnr3 t where t.sql_redo like 'create%';
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_duplex_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_duplex_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/product/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:
1,首先刪除歸檔日志物理文件,歸檔日志一般都是位于archive目錄下,AIX系統下文件格式為“1_17884_667758186.dbf”,建議操作前先對數據庫進行備份,刪除時至少保留最近幾天的日志用于數據庫恢復。
2,把歸檔日志的物理文件刪除后,我們就可以正常登入ORACLE了,但是還沒完全把歸檔日志刪除干凈,ORACLE的controlfile中仍然記錄著這些archivelog的信息,在oracle的OEM管理器中有可視化的日志展現出,當我們手工清除archive目錄下的文件后,這些記錄并沒有被我們從controlfile中清除掉,接下去我們要做的就是這個工作。
利用RMAN進行刪除操作,操作步驟如下:(window客戶端系統為例):
1.指定數據庫實例
C:/Documents and Settings/AdministratorSET ORACLE_SID =orcl
2.連接數據庫
C:/Documents and Settings/AdministratorRMAN TARGET SYS/sysadmin@orcl
3.查看歸檔日志的狀態
RMAN list archivelog all;
4.手工刪除歸檔日志文件
RMAN DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';
5.退出rman.
有兩種模式:
一:日志模式,日志模式的設置分為Archive
Mode和No
Archive
Mode。
二:自動歸檔模式:自動歸檔模式的設置分為:Enabled和Disabled
可用可用archive
log
list命令來查看數據庫的現行日志和自動歸檔模式的設置。
希望對你有幫助。
網站欄目:oracle怎么設置日志,oracle 操作日志
分享URL:http://www.yijiale78.com/article20/dsgooco.html
成都網站建設公司_創新互聯,為您提供做網站、網站制作、外貿網站建設、網站策劃、面包屑導航、營銷型網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯