共計 3023 個字符,預計需要花費 8 分鐘才能閱讀完成。
這篇文章主要講解了“怎么理解 ORACLE 11G 維護窗口和自動維護任務”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著丸趣 TV 小編的思路慢慢深入,一起來研究和學習“怎么理解 ORACLE 11G 維護窗口和自動維護任務”吧!
維護窗口是一個連續的時間間隔,用于管理自動維護任務,所謂自動維護窗口是按照預定義一個時間段,比如晚上 22:10~04:00 就可以稱為一個窗口。自動維護任務是一種按規則自動啟動的數據庫維護操作任務。自動維護任務在維護窗口打開時自動運行。(就例如鬧鐘響了,該起床了,時間到了,任務自動執行,)
在 Oracle Database 11g 中,自動維護任務功能依賴于在維護窗口期間啟用的資源管理器。因此,窗口打開時,會自動啟用與窗口關聯的資源計劃,其目標是防止維護工作消耗過多的系統資源。每個維護窗口都與一個資源計劃關聯;該計劃指定了窗口持續期間的資源分配方式。
oracle11g 數據庫有三種預定義的自動維護任務:
■ Automatic Optimizer Statistics Collection:
■ Automatic Segment Advisor
■ Automatic SQL Tuning Advisor(這個是 oracle
11g 新添加的自動維護任務)
缺省情況下,這三個任務配置為在所有維護窗口運行。
維護窗口:維護窗口是 oracle 調度窗口,屬于窗口組 MAINTENANCE_WINDOW_GROUP。
控制自動維護任務
“自動維護任務”功能可以確定任務的執行時間和順序。DBA 可以控制以下項目:
? 在維護窗口最終不足以承受維護工作量時,調整維護窗口的持續時間和開始時間。
? 控制在每個窗口期間將資源分配給自動維護任務的資源計劃。
? 啟用或禁用部分或全部維護窗口中的單個任務。
? 在 RAC 環境中,通過將維護工作映射到某項服務,將維護工作轉移至一個或多個實例。對實例子集啟用服務會將維護工作轉移至這些實例。
一:配置自動維護任務:
1:啟用和禁止維護任務:
使用 DBMS_AUTO_ADMIN pl/sql 包來啟用或禁用任務:
禁用任務:
BEGIN
dbms_auto_task_admin.disable(
client_name = sql tuning advisor ,
operation = NULL,
window_name = NULL);
END;
啟用任務:
BEGIN
dbms_auto_task_admin.enable(
client_name =‘sql tuning advisor‘,
operation = NULL,
window_name = NULL);
END;
這里 client_name 參數可以通過數據字典視圖 DBA_AUTOTASK_CLIENT 來查詢。
sys@ ORA select client_name from dba_autotask_client;
CLIENT_NAME
————————————————————
auto optimizer stats collection
auto space advisor
sql tuning advisor
如果想啟用或禁用所有窗口自動維護任務,調用 ENABLE 或 DISABLE 過程:
EXECUTE DBMS_AUTO_TASK_ADMIN.DISABLE;
2:為某一個維護窗口啟用或禁用維護窗口
缺省情況下,所有維護任務在所有預定義的維護窗口都運行。可以對某一個維護窗口啟用或禁用自動化任務。
BEGIN
dbms_auto_task_admin.disable(
client_name = sql tuning advisor ,
operation = NULL,
window_name = MONDAY_WINDOW
END;
上面的例子是對維護窗口 monday_window 進行禁用 sql tuning advisor。
二:配置維護窗口:
可是使用 DBMS_SCHEDULER 包來修改窗口屬性。
1:修改維護窗口
– 先禁用維護窗口
BEGIN
dbms_scheduler.disable(
name = SATURDAY_WINDOW
– 修改維護窗口屬性:
dbms_scheduler.set_attribute(
name = SATURDAY_WINDOW ,
attribute = DURATION ,
value = numtodsinterval(4,
hour
– 啟用維護窗口
dbms_scheduler.enable(
name = SATURDAY_WINDOW
END;
/
對于當前打開的窗口,你需要首先禁用,然后修改再啟用,配置立即生效,如果你不通過這三個過程來修改屬性,屬性是不會生效的,直到下一次窗口打開。
2:創建新窗口:
BEGIN
dbms_scheduler.create_window(
window_name =
EARLY_MORNING_WINDOW ,
duration =
numtodsinterval(1, hour),
resource_plan = DEFAULT_MAINTENANCE_PLAN ,
repeat_interval =
FREQ=DAILY;BYHOUR=5;BYMINUTE=0;BYSECOND=0
dbms_scheduler.add_window_group_member(
group_name = MAINTENANCE_WINDOW_GROUP ,
window_list = EARLY_MORNING_WINDOW
END;
/
3: 刪除窗口:
BEGIN
DBMS_SCHEDULER.REMOVE_WINDOW_GROUP_MEMBER(
group_name = MAINTENANCE_WINDOW_GROUP ,
window_list = EARLY_MORNING_WINDOW
END;
/
三:跟蹤 job 運行情況:
可以通過查詢視圖 DBA_AUTOTASK_HISTORY 追蹤 job 運行情況:
SQL select client_name,job_name,job_start_time from
dba_autotask_job_history;
CLIENT_NAME
JOB_NAME JOB_START_TIME
——————–
——————- ———————————-
auto optimizer stats ORA$AT_OS_OPT_SY_1 12-JUN-18 12.00.02.039000
PM +08:50
auto space advisor ORA$AT_SA_SPC_SY_2 12-JUN -18 12.00.02.050000
PM +08:50
sql tuning advisor ORA$AT_SQ_SQL_SW_3 12-JUN -18 12.00.02.015000
PM +08:50
感謝各位的閱讀,以上就是“怎么理解 ORACLE 11G 維護窗口和自動維護任務”的內容了,經過本文的學習后,相信大家對怎么理解 ORACLE 11G 維護窗口和自動維護任務這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是丸趣 TV,丸趣 TV 小編將為大家推送更多相關知識點的文章,歡迎關注!