本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon RDS for Oracle 資料庫日誌檔案
您可以使用 Amazon RDS主控台或 存取 Oracle 警示日誌、稽核檔案和追蹤檔案API。如需關於檢視、下載與查看資料庫日誌檔案的資訊,請參閱監控 Amazon RDS Amazon 日誌檔。
所提供的 Oracle 稽核檔案為標準 Oracle 稽核檔案。Amazon RDS支援 Oracle 精細稽核 (FGA) 功能。不過,日誌存取不會提供對儲存在SYS.FGA_LOG$
資料表中,且可透過DBA_FGA_AUDIT_TRAIL
檢視存取FGA的事件的存取權。
列出可供資料庫執行個體使用的 Oracle 日誌檔案DescribeDBLogFiles
API的操作會忽略 MaxRecords
參數,並傳回最多 1,000 筆記錄。呼叫會以毫秒為單位傳回LastWritten
為POSIX日期。
保留排程
若日誌檔案變得過大,Oracle 資料庫引擎可能會輪換這些檔案。欲保留稽核或追蹤檔案,請下載這些檔案。如果您在本機存放檔案,可以降低 Amazon RDS儲存成本,並為資料提供更多可用空間。
下表顯示 Oracle 警示日誌、稽核檔案和 Amazon 上追蹤檔案的保留排程RDS。
日誌類型 | 保留排程 |
---|---|
提醒日誌 |
文字提醒日誌每日輪換,保留 30 天由 Amazon 管理RDS。XML 警示日誌會保留至少七天。您可使用 |
稽核檔案 |
預設稽核檔案的保留時間為 7 日。Amazon RDS可能會刪除超過七天的稽核檔案。 |
追蹤檔案 |
預設的追蹤檔案保留時間為 7 日。Amazon RDS可能會刪除超過七天的追蹤檔案。 |
接聽程式日誌 |
預設接聽程式記錄的保留時間為 7 日。Amazon RDS可能會刪除超過七天的接聽程式日誌。 |
注意
稽核檔案和追蹤檔案共享相同的保留組態。
使用 Oracle 追蹤檔案
接下來,您可以找到建立、重新整理、存取和刪除追蹤檔案的 Amazon RDS 程序說明。
列出檔案
您可使用這兩個程序之一來存取 background_dump_dest
路徑上的檔案。第一個程序會重新整理畫面,其中內含 background_dump_dest
中現有的所有檔案。
EXEC rdsadmin.manage_tracefiles.refresh_tracefile_listing;
重新整理畫面後,請查詢下列畫面來存取結果。
SELECT * FROM rdsadmin.tracefile_listing;
上述程序的替代做法是使用 FROM table
,採用類似資料表的格式來串流非關聯式資料,以列出資料庫目錄內容。
SELECT * FROM TABLE(rdsadmin.rds_file_util.listdir('BDUMP'));
下列查詢顯示日誌檔案的文字。
SELECT text FROM TABLE(rdsadmin.rds_file_util.read_text_file('BDUMP','alert_
dbname
.log.date
'));
在僅供讀取複本上,查詢 以取得BDUMP目錄的名稱V$DATABASE.DB_UNIQUE_NAME
。如果唯一名稱為 DATABASE_B
,則BDUMP目錄為 BDUMP_B
。下列範例會在複本上查詢BDUMP名稱,然後使用此名稱來查詢 的內容alert_DATABASE.log.2020-06-23
。
SELECT 'BDUMP' || (SELECT regexp_replace(DB_UNIQUE_NAME,'.*(_[A-Z])', '\1') FROM V$DATABASE) AS BDUMP_VARIABLE FROM DUAL; BDUMP_VARIABLE -------------- BDUMP_B SELECT TEXT FROM table(rdsadmin.rds_file_util.read_text_file('BDUMP_B','alert_DATABASE.log.2020-06-23'));
產生追蹤檔案並追蹤工作階段
由於 沒有限制ALTER SESSION
,許多在 Oracle 中產生追蹤檔案的標準方法仍可供 Amazon RDS 資料庫執行個體使用。需要更多存取權限的追蹤檔案,可參考下列程序。
Oracle 方法 | Amazon RDS方法 |
---|---|
|
|
|
|
您可以使用許多標準方法來追蹤連線至 Amazon 中 Oracle 資料庫執行個體的個別工作階段RDS。若要啟用工作階段的追蹤,您可以在 Oracle 提供的 PL/SQL 套件中執行子程式,例如 DBMS_SESSION
和 DBMS_MONITOR
。如需詳細資訊,請參閱 Oracle 文件中的為工作階段啟用追蹤
擷取追蹤檔案
您可以使用 background_dump_dest
Amazon RDS受管外部資料表上的標準SQL查詢,在 中擷取任何追蹤檔案。欲使用此方法,務必執行此程序,為此資料表設定特定追蹤檔案的位置。
例如,您可以使用上述的 rdsadmin.tracefile_listing
畫面,之後即可列出系統上的所有追蹤檔案。接著,請使用下列程序,將 tracefile_table
畫面設定為指向特定追蹤檔案。
EXEC rdsadmin.manage_tracefiles.set_tracefile_table_location('CUST01_ora_3260_SYSTEMSTATE.trc');
下列範例會在目前的結構描述內建立外部資料表,其位置則設定為所提供的文件。您可以使用SQL查詢將內容擷取至本機檔案。
SPOOL /tmp/tracefile.txt SELECT * FROM tracefile_table; SPOOL OFF;
清除追蹤檔案
追蹤檔案可能會累積和耗用磁碟空間。Amazon 預設會RDS清除追蹤檔案,以及超過七天的日誌檔案。您可使用 show_configuration
程序來檢視並設定追蹤檔案保留期間。您應執行命令 SET SERVEROUTPUT ON
以檢視組態結果。
下列範例顯示目前的追蹤檔案保留期間,然後設定為新的追蹤檔案保留期間。
# Show the current tracefile retention SQL> EXEC rdsadmin.rdsadmin_util.show_configuration; NAME:tracefile retention VALUE:10080 DESCRIPTION:tracefile expiration specifies the duration in minutes before tracefiles in bdump are automatically deleted. # Set the tracefile retention to 24 hours: SQL> EXEC rdsadmin.rdsadmin_util.set_configuration('tracefile retention',1440); SQL> commit; #show the new tracefile retention SQL> EXEC rdsadmin.rdsadmin_util.show_configuration; NAME:tracefile retention VALUE:1440 DESCRIPTION:tracefile expiration specifies the duration in minutes before tracefiles in bdump are automatically deleted.
除了定期的清除程序,您也可透過 background_dump_dest
手動移除檔案。下列範例說明如何清除超過五分鐘的所有檔案。
EXEC rdsadmin.manage_tracefiles.purge_tracefiles(5);
您亦可清除符合特定模式的所有檔案 (如果這樣做,請勿包含副檔名,例如 .trc)。下列範例說明如何清除以 SCHPOC1_ora_5935
為開頭的所有檔案。
EXEC rdsadmin.manage_tracefiles.purge_tracefiles('SCHPOC1_ora_5935');
將 Oracle 日誌發佈至 Amazon CloudWatch Logs
您可以設定 RDS for Oracle 資料庫執行個體,將日誌資料發佈至 Amazon CloudWatch Logs 中的日誌群組。透過 CloudWatch Logs,您可以分析日誌資料,並使用 CloudWatch 建立警示和檢視指標。您可以使用 CloudWatch Logs 將日誌記錄存放在高度耐用的儲存體中。
Amazon RDS 會將每個 Oracle 資料庫日誌發佈為日誌群組中的個別資料庫串流。例如,若您將匯出功能設定為包含稽核日誌,則稽核資料會存放在 /aws/rds/instance/my_instance/audit
日誌群組內的稽核日誌流中。下表摘要說明 RDS Oracle 將日誌發佈至 Amazon CloudWatch Logs 的要求。
日誌名稱 | 需求 | 預設 |
---|---|---|
警示日誌 |
無。您無法停用此日誌。 |
已啟用 |
追蹤日誌 |
將 |
|
稽核日誌 |
將
|
|
接聽程式日誌 |
無。您無法停用此日誌。 |
已啟用 |
Oracle Management Agent 日誌 |
無。您無法停用此日誌。 |
已啟用 |
此 Oracle Management Agent 日誌包含下表所示的日誌群組。
日誌名稱 | CloudWatch 日誌群組 |
---|---|
emctl.log | oemagent-emctl |
emdctlj.log | oemagent-emdctlj |
gcagent.log | oemagent-gcagent |
gcagent_errors.log | oemagent-gcagent-errors |
emagent.nohup | oemagent-emagent-nohup |
secure.log | oemagent-secure |
如需詳細資訊,請參閱 Oracle 文件中的尋找 Management Agent 日誌和追蹤檔案
從 將 Oracle 資料庫日誌發佈至 CloudWatch 日誌 AWS Management Console
在 開啟 Amazon RDS主控台https://console.aws.amazon.com/rds/
。 -
在導覽窗格中選擇 Databases (資料庫),然後選擇您要修改的資料庫執行個體。
-
選擇 Modify (修改)。
-
在日誌匯出區段中,選擇您要開始發佈至日誌的 CloudWatch 日誌。
-
選擇 Continue (繼續),然後在摘要頁面上選擇 Modify DB Instance (修改資料庫執行個體)。
欲發佈 Oracle 日誌,您可搭配下列參數使用 modify-db-instance
命令:
-
--db-instance-identifier
-
--cloudwatch-logs-export-configuration
注意
--cloudwatch-logs-export-configuration
選項的變更一律立即套用到資料庫執行個體。因此,--apply-immediately
和 --no-apply-immediately
選項沒有效果。
您亦可使用下列命令來發佈 Oracle 日誌:
範例
下列範例會在啟用 CloudWatch 日誌發佈的情況下建立 Oracle 資料庫執行個體。該--cloudwatch-logs-export-configuration
值是字串JSON陣列。字串可以是 alert
、audit
、listener
以及 trace
的任意組合。
用於 Linux, macOS,或 Unix:
aws rds create-db-instance \ --db-instance-identifier
mydbinstance
\ --cloudwatch-logs-export-configuration '["trace","audit","alert","listener","oemagent"]' \ --db-instance-classdb.m5.large
\ --allocated-storage20
\ --engineoracle-ee
\ --engine-version19.0.0.0.ru-2024-04.rur-2024-04.r1
\ --license-modelbring-your-own-license
\ --master-usernamemyadmin
\ --manage-master-user-password
用於 Windows:
aws rds create-db-instance ^ --db-instance-identifier
mydbinstance
^ --cloudwatch-logs-export-configurationtrace alert audit listener oemagent
^ --db-instance-classdb.m5.large
^ --allocated-storage20
^ --engineoracle-ee
^ --engine-version19.0.0.0.ru-2024-04.rur-2024-04.r1
^ --license-modelbring-your-own-license
^ --master-usernamemyadmin
^ --manage-master-user-password
範例
下列範例修改現有的 Oracle 資料庫執行個體,將日誌檔案發佈至 CloudWatch Logs。該--cloudwatch-logs-export-configuration
值是JSON物件。此物件的金鑰為 EnableLogTypes
,而其值為字串陣列,其中包含 alert
、audit
、listener
以及 trace
的任意組合。
用於 Linux, macOS,或 Unix:
aws rds modify-db-instance \ --db-instance-identifier
mydbinstance
\ --cloudwatch-logs-export-configuration '{"EnableLogTypes":["trace","alert","audit","listener","oemagent"]}'
用於 Windows:
aws rds modify-db-instance ^ --db-instance-identifier
mydbinstance
^ --cloudwatch-logs-export-configuration EnableLogTypes=\"trace\",\"alert\",\"audit\",\"listener\",\"oemagent\"
範例
下列範例會修改現有的 Oracle 資料庫執行個體,以停用將稽核和接聽程式日誌檔案發佈至 CloudWatch Logs。該--cloudwatch-logs-export-configuration
值是JSON物件。此物件的金鑰為 DisableLogTypes
,而其值為字串陣列,其中包含 alert
、audit
、listener
以及 trace
的任意組合。
用於 Linux, macOS,或 Unix:
aws rds modify-db-instance \ --db-instance-identifier
mydbinstance
\ --cloudwatch-logs-export-configuration '{"DisableLogTypes":["audit","listener"]}'
用於 Windows:
aws rds modify-db-instance ^ --db-instance-identifier
mydbinstance
^ --cloudwatch-logs-export-configuration DisableLogTypes=\"audit\",\"listener\"
您可以使用 發佈 Oracle 資料庫日誌RDSAPI。您可以使用下列參數來呼叫 ModifyDBInstance
動作:
-
DBInstanceIdentifier
-
CloudwatchLogsExportConfiguration
注意
CloudwatchLogsExportConfiguration
參數的變更一律立即套用到資料庫執行個體。因此,ApplyImmediately
參數沒有效果。
您也可以呼叫下列RDSAPI操作來發佈 Oracle 日誌:
使用以下參數執行其中一個RDSAPI操作:
-
DBInstanceIdentifier
-
EnableCloudwatchLogsExports
-
Engine
-
DBInstanceClass
視您執行RDS的操作而定,可能需要其他參數。
存取警示日誌和接聽程式日誌
您可以使用 Amazon RDS主控台檢視警示日誌。您也可以使用下列SQL陳述式。
SELECT message_text FROM alertlog;
使用 Amazon Logs 存取接聽程式 CloudWatch 日誌。
注意
當警示和接聽程式日誌超過 10 MB 時,Oracle 會輪換警示和接聽程式日誌,此時 Amazon RDS 檢視無法使用。