oracle外部表記錄alert日誌&&資料庫執行報告
1、建立目錄【注意目錄是alert_sid.log所在的目錄,使用show parameter background_dump_dest檢視】
> show parameter background_dump_dest
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
background_dump_dest string D:\oracle\ora11g\diag\rdbms\ora11g\ora11g\trace
------------------------------------ ----------- ------------------------------
background_dump_dest string D:\oracle\ora11g\diag\rdbms\ora11g\ora11g\trace
> create or replace directory log_dir as 'D:\oracle\ora11g\diag\rdbms\ora11g\\ora11g\trace
';
';
Directory created. --建立目錄
2、建立外部表
CREATE TABLE alert_log
(text_line varchar2(255)) ----內部表的結構定義
ORGANIZATION EXTERNAL -- 內部表結構和OS檔案的關聯載入引數定義
(TYPE ORACLE_LOADER -- 使用oracle載入器
DEFAULT DIRECTORY log_dir -- 預設的資料庫目錄
ACCESS PARAMETERS --訪問引數
(records delimited by newline fields -- 以換行符為單位定位載入行的範圍
REJECT ROWS WITH ALL NULL FIELDS ) -- 不載入整行都是null的記錄
LOCATION
('alert_ora11g.log')) -- 載入的目錄下檔名
REJECT LIMIT unlimited -- 限制長度
(text_line varchar2(255)) ----內部表的結構定義
ORGANIZATION EXTERNAL -- 內部表結構和OS檔案的關聯載入引數定義
(TYPE ORACLE_LOADER -- 使用oracle載入器
DEFAULT DIRECTORY log_dir -- 預設的資料庫目錄
ACCESS PARAMETERS --訪問引數
(records delimited by newline fields -- 以換行符為單位定位載入行的範圍
REJECT ROWS WITH ALL NULL FIELDS ) -- 不載入整行都是null的記錄
LOCATION
('alert_ora11g.log')) -- 載入的目錄下檔名
REJECT LIMIT unlimited -- 限制長度
3、此時可以透過表alter_log來檢視alert告警相關資訊了
如:
> select * from alert_log where rownum<=10;
TEXT_LINE
--------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------
Wed Feb 08 10:20:47 2012
Adjusting the default value of parameter parallel_max_servers
from 160 to 135 due to the value of parameter processes (150)
Starting ORACLE instance (normal)
LICENSE_MAX_SESSION = 0
LICENSE_SESSIONS_WARNING = 0
Shared memory segment for instance monitoring created
Picked latch-free SCN scheme 2
Using LOG_ARCHIVE_DEST_1 parameter default value as D:\oracle\ora11g\product\RDBMS
Autotune of undo retention is turned on.
Adjusting the default value of parameter parallel_max_servers
from 160 to 135 due to the value of parameter processes (150)
Starting ORACLE instance (normal)
LICENSE_MAX_SESSION = 0
LICENSE_SESSIONS_WARNING = 0
Shared memory segment for instance monitoring created
Picked latch-free SCN scheme 2
Using LOG_ARCHIVE_DEST_1 parameter default value as D:\oracle\ora11g\product\RDBMS
Autotune of undo retention is turned on.
10 rows selected.
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
利用上面的外部表來生成一個oracle的啟動、關閉相關的報告,使用下面的sql:
SELECT TO_CHAR(LAST_TIME, 'dd-mon-yyyy hh24:mi') SHUTDOWN,
TO_CHAR(START_TIME, 'dd-mon-yyyy hh24:mi') STARTUP,
ROUND((START_TIME - LAST_TIME) * 24 * 60, 2) MINS_DOWN,
ROUND((LAST_TIME - LAG(START_TIME) OVER(ORDER BY R)), 2) DAYS_UP,
CASE
WHEN (LEAD(R) OVER(ORDER BY R) IS NULL) THEN
ROUND((SYSDATE - START_TIME), 2)
END DAYS_STILL_UP
FROM (SELECT R,
TO_DATE(LAST_TIME, 'Dy-Mon-DD HH24:MI:SS YYYY') LAST_TIME,
TO_DATE(START_TIME, 'Dy-Mon-DD HH24:MI:SS YYYY') START_TIME
FROM (SELECT R,
TEXT_LINE,
LAG(TEXT_LINE, 1) OVER(ORDER BY R) START_TIME,
LAG(TEXT_LINE, 2) OVER(ORDER BY R) LAST_TIME
FROM (SELECT ROWNUM R, TEXT_LINE
FROM ALERT_LOG
WHERE TEXT_LINE LIKE '___ ___ __ __:__:__ 20__'
OR TEXT_LINE LIKE 'Starting ORACLE instance %'))
WHERE TEXT_LINE LIKE 'Starting ORACLE instance %')
/
SHUTDOWN STARTUP MINS_DOWN DAYS_UP DAYS_STILL_UP
-------------------- -------------------- ---------- ---------- -------------
26-jul-2012 17:34 27-jul-2012 08:41 907.23 .37
27-jul-2012 17:34 30-jul-2012 08:59 3804.52 .37
30-jul-2012 17:33 31-jul-2012 08:56 922.9 .36
31-jul-2012 17:33 01-aug-2012 08:59 926.07 .36
01-aug-2012 17:34 02-aug-2012 08:48 913.87 .36 .11
TO_CHAR(START_TIME, 'dd-mon-yyyy hh24:mi') STARTUP,
ROUND((START_TIME - LAST_TIME) * 24 * 60, 2) MINS_DOWN,
ROUND((LAST_TIME - LAG(START_TIME) OVER(ORDER BY R)), 2) DAYS_UP,
CASE
WHEN (LEAD(R) OVER(ORDER BY R) IS NULL) THEN
ROUND((SYSDATE - START_TIME), 2)
END DAYS_STILL_UP
FROM (SELECT R,
TO_DATE(LAST_TIME, 'Dy-Mon-DD HH24:MI:SS YYYY') LAST_TIME,
TO_DATE(START_TIME, 'Dy-Mon-DD HH24:MI:SS YYYY') START_TIME
FROM (SELECT R,
TEXT_LINE,
LAG(TEXT_LINE, 1) OVER(ORDER BY R) START_TIME,
LAG(TEXT_LINE, 2) OVER(ORDER BY R) LAST_TIME
FROM (SELECT ROWNUM R, TEXT_LINE
FROM ALERT_LOG
WHERE TEXT_LINE LIKE '___ ___ __ __:__:__ 20__'
OR TEXT_LINE LIKE 'Starting ORACLE instance %'))
WHERE TEXT_LINE LIKE 'Starting ORACLE instance %')
/
SHUTDOWN STARTUP MINS_DOWN DAYS_UP DAYS_STILL_UP
-------------------- -------------------- ---------- ---------- -------------
26-jul-2012 17:34 27-jul-2012 08:41 907.23 .37
27-jul-2012 17:34 30-jul-2012 08:59 3804.52 .37
30-jul-2012 17:33 31-jul-2012 08:56 922.9 .36
31-jul-2012 17:33 01-aug-2012 08:59 926.07 .36
01-aug-2012 17:34 02-aug-2012 08:48 913.87 .36 .11
其中:SHUTDOWN 關閉資料庫的時間
STARTUP 啟動資料庫的時間
MINS_DOWN 資料庫關閉了多少分鐘
DAYS_UP 資料庫一直執行了多少天
DAYS_STILL_UP 資料庫最後一次執行到當前有多少天
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/27000195/viewspace-739615/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle alert日誌Oracle
- 歸檔oracle alert日誌Oracle
- oracle資料庫mmnl日誌很大Oracle資料庫
- oracle 11g檢視alert日誌方法Oracle
- 日誌資訊記錄表|全方位認識 mysql 系統庫MySql
- mysql誤修改全表記錄,使用binlog日誌找回資料MySql
- Oracle 例項和RAC叢集下資料庫日誌目錄合集Oracle資料庫
- 分析Oracle資料庫日誌檔案(三)EPOracle資料庫
- 分析Oracle資料庫日誌檔案(二)DOOracle資料庫
- 分析Oracle資料庫日誌檔案(一)HBOracle資料庫
- oracle資料庫歸檔日誌量陡增分析Oracle資料庫
- 如何將 winston log 庫記錄的日誌寫入 mongo DB 資料庫Go資料庫
- golang常用庫:日誌記錄庫-logrus使用Golang
- Oracle實驗6--掌握Oracle資料庫的日誌操作Oracle資料庫
- LightDB不記錄WAL日誌的表
- laravel5.7 不記錄 sql 報錯日誌,自定義日誌資訊LaravelSQL
- 從 Oracle 日誌解析學習資料庫核心原理Oracle資料庫
- 詳解Oracle AWR執行日誌分析工具Oracle
- EBS:Oracle 資料庫執行慢SQLOracle資料庫SQL
- Oracle資料庫(RAC)巡檢報告Oracle資料庫
- 填報表怎麼跟蹤使用者操作,記錄日誌?
- 【LOG】Oracle資料庫清理日誌、跟蹤檔案利器Oracle資料庫
- [python] Python日誌記錄庫loguru使用指北Python
- Oracle 外部表Oracle
- 日誌記錄器
- ThinkPHP日誌記錄PHP
- 【ADRCI】使用ADRCI (ADR Command Interpreter) 工具檢視Oracle alert警告日誌Oracle
- Oracle 資料庫執行提示:ORA-00054Oracle資料庫
- Oracle資料庫(單機)巡檢報告Oracle資料庫
- golang常用庫包:log日誌記錄-uber的Go日誌庫zap使用詳解Golang
- Gin 框架 - 使用 logrus 進行日誌記錄框架
- Oracle資料庫SQL語句執行過程Oracle資料庫SQL
- Laravel sql 日誌記錄LaravelSQL
- [實戰]laravel 利用trait實現中介軟體指定資料庫按月份水平分表記錄系統日誌LaravelAI資料庫
- MySQL更新資料時,日誌(redo log、binlog)執行流程MySql
- 成為MySQL DBA後,再看ORACLE資料庫(七、日誌體系)MySqlOracle資料庫
- .Net Core中使用DiagnosticSource進行日誌記錄
- toad使用(檢視alert日誌、Database Report)Database
- Oracle資料庫表碎片整理Oracle資料庫