使用外部表訪問監聽日誌
某天工作是使用外部表載入監聽日誌資訊,觀察並分析使用者連線數變化趨勢
按照eygle循序漸進oracle的教程一步步進行:
按照eygle循序漸進oracle的教程一步步進行:
測試使用外部表先建立目錄:
connect / as sysdba
create(replace) directory sqldr as 'E:\app\john.tam\oradata\sqldr';
SQL> select * from dba_directories where directory_name =
'SQLDR';
OWNER DIRECTORY_ DIRECTORY_PATH
------------------------------ ---------- ------------------------------
SYS SQLDR E:\app\john.tam\oradata\sqldr
OWNER DIRECTORY_ DIRECTORY_PATH
------------------------------ ---------- ------------------------------
SYS SQLDR E:\app\john.tam\oradata\sqldr
然後可以建立外部表了,下面是流程:
建立指向監聽器日誌目錄的Driectory:
SQL> select * from dba_directories where directory_name =
'SQLDR';
OWNER DIRECTORY_ DIRECTORY_PATH
------------------------------ ---------- ------------------------------
SYS SQLDR E:\app\john.tam\oradata\sqldr
SQL> create or replace directory LISTENER_LOG
2 as 'E:\app\john.tam\product\11.2.0\dbhome_1\NETWORK\log'
3 /
OWNER DIRECTORY_ DIRECTORY_PATH
------------------------------ ---------- ------------------------------
SYS SQLDR E:\app\john.tam\oradata\sqldr
SQL> create or replace directory LISTENER_LOG
2 as 'E:\app\john.tam\product\11.2.0\dbhome_1\NETWORK\log'
3 /
SQL> select * from dba_directories where
DIRECTORY_NAME='LISTENER_LOG';
OWNER DIRECTORY_ DIRECTORY_PATH
------------------------------ ---------- ------------------------------
SYS LISTENER_L E:\app\john.tam\product\11.2.0
OG \dbhome_1\NETWORK\log
OWNER DIRECTORY_ DIRECTORY_PATH
------------------------------ ---------- ------------------------------
SYS LISTENER_L E:\app\john.tam\product\11.2.0
OG \dbhome_1\NETWORK\log
建立外部表:
建立指向監聽器日誌的外部表:
SQL> CREATE TABLE listener_log(text VARCHAR2(4000))
2 ORGANIZATION EXTERNAL (
3 TYPE oracle_loader
4 DEFAULT DIRECTORY listener_log
5 ACCESS PARAMETERS (
6 RECORDS DELIMITED BY NEWLINE
7 NOBADFILE
8 NOLOGFILE
9 NODISCARDFILE
10 )
11 LOCATION ('listener.log')
12 )
13 REJECT LIMIT UNLIMITED
14 /
Table created.
2 ORGANIZATION EXTERNAL (
3 TYPE oracle_loader
4 DEFAULT DIRECTORY listener_log
5 ACCESS PARAMETERS (
6 RECORDS DELIMITED BY NEWLINE
7 NOBADFILE
8 NOLOGFILE
9 NODISCARDFILE
10 )
11 LOCATION ('listener.log')
12 )
13 REJECT LIMIT UNLIMITED
14 /
Table created.
查詢外部表
現在可以通過SQL查詢和訪問外部表的資料了:(監聽日誌共190000行,但12月份的資訊都有19000以上行)
SQL> set pagesize 99
SQL> select * from listener_log where rownum < 12;
select * from listener_log where rownum < 12
*
ERROR at line 1:
ORA-29913: error in executing ODCIEXTTABLEFETCH callout
ORA-29400: data cartridge error
KUP-04020: found record longer than buffer size supported, 524288, in
E:\app\john.tam\product\11.2.0\dbhome_1\NETWORK\log\listener.log
SQL> select * from listener_log where rownum < 12;
select * from listener_log where rownum < 12
*
ERROR at line 1:
ORA-29913: error in executing ODCIEXTTABLEFETCH callout
ORA-29400: data cartridge error
KUP-04020: found record longer than buffer size supported, 524288, in
E:\app\john.tam\product\11.2.0\dbhome_1\NETWORK\log\listener.log
資料量太大,表內容不能顯示。
其實這是因為匯入的txt文字沒用按格式換行。系統預設一行來處理,資料量當然太大
其實這是因為匯入的txt文字沒用按格式換行。系統預設一行來處理,資料量當然太大
現抽取10年12月1日的資訊生成表:
建立指向監聽器日誌目錄的Driectory:
SQL> create or replace directory LISTENER121_LOG
2 as 'E:\app\john.tam\product\11.2.0\dbhome_1\NETWORK\log'
3 /
SQL> create or replace directory LISTENER121_LOG
2 as 'E:\app\john.tam\product\11.2.0\dbhome_1\NETWORK\log'
3 /
SQL> select * from dba_directories where
DIRECTORY_NAME='LISTENER121_LOG';
OWNER DIRECTORY_ DIRECTORY_PATH
------------------------------ ---------- ------------------------------
SYS LISTENER_L E:\app\john.tam\product\11.2.0
OG \dbhome_1\NETWORK\log
OWNER DIRECTORY_ DIRECTORY_PATH
------------------------------ ---------- ------------------------------
SYS LISTENER_L E:\app\john.tam\product\11.2.0
OG \dbhome_1\NETWORK\log
建立外部表:
建立指向監聽器日誌的外部表:
SQL> CREATE TABLE listener_log(text VARCHAR2(4000))
2 ORGANIZATION EXTERNAL (
3 TYPE oracle_loader
4 DEFAULT DIRECTORY listener121_log
5 ACCESS PARAMETERS (
6 RECORDS DELIMITED BY NEWLINE
7 NOBADFILE
8 NOLOGFILE
9 NODISCARDFILE
10 )
11 LOCATION ('listener121.log')
12 )
13 REJECT LIMIT UNLIMITED
14 /
Table created.
這次的查詢就成功了。
2 ORGANIZATION EXTERNAL (
3 TYPE oracle_loader
4 DEFAULT DIRECTORY listener121_log
5 ACCESS PARAMETERS (
6 RECORDS DELIMITED BY NEWLINE
7 NOBADFILE
8 NOLOGFILE
9 NODISCARDFILE
10 )
11 LOCATION ('listener121.log')
12 )
13 REJECT LIMIT UNLIMITED
14 /
Table created.
這次的查詢就成功了。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24582392/viewspace-688042/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle之外部表監聽日誌Oracle
- 使用外部表訪問警告日誌檔案
- 使用外部表讀日誌檔案
- 使用外部表管理Oracle 告警日誌Oracle
- 使用外部表儲存巡檢日誌
- Linux下使用GoAccess監控Nginx訪問日誌LinuxGoNginx
- oracle清理監聽日誌Oracle
- 使用Oracle的外部表查詢警告日誌Oracle
- Oracle之外部表警告日誌Oracle
- Oracle 監聽器日誌解析Oracle
- 關閉監聽的日誌。
- 使用外部表檢視ORACLE報警日誌薦Oracle
- 使用Fluentd + Elasticsearch收集訪問日誌Elasticsearch
- Oracle監聽日誌過大導致的問題Oracle
- Oracle 監聽器日誌解析(續)Oracle
- 監聽日誌檔案的管理
- ORACLE停止監聽日誌檔案Oracle
- 使用Oracle的外部表查詢警告日誌檔案Oracle
- Oracle監聽日誌2g-監聽啟動報錯Oracle
- Oracle 監聽器日誌配置與管理Oracle
- 管理監聽器日誌listener.log
- Apche日誌系列(1):訪問日誌(轉)
- 刪除oracle 11g的警告日誌和監聽日誌Oracle
- Oracle之備份和清理監聽日誌、告警日誌指令碼Oracle指令碼
- 利用外部表讀取告警日誌檔案
- 使用外部表管理Oracle 告警日誌(ALAERT_$SID.LOG)Oracle
- Oracle 11g 檢視監聽日誌Oracle
- rac scan listener log 清理監聽日誌 oracleOracle
- 定時清理監聽日誌的指令碼 。指令碼
- 清理資料庫監聽日誌最好方法資料庫
- 如何更改監聽器日誌檔名稱
- 使用apache日誌進行訪問ip的排序Apache排序
- FeignClient配置日誌訪問client
- 用外部表實現Alert日誌的檢視
- 監聽MySQL的binlog日誌工具分析:CanalMySql
- 如何線上操作監聽日誌listener.log
- Flume監聽Nginx日誌流向HDFS安裝配置Nginx
- 【LISTENER】禁止產生監聽器日誌的方法