結合EM快速解決複雜的配置問題
圖形工具在學習中一般是不作為推薦工具使用的,很多時候可能工作環境都是字元介面,遠端連線,基本沒有可能接觸到圖形工具,圖形工具的好處真是一把雙刃劍,功能豐富全面而且極其方面,這是優點也是缺點,如果一旦脫離了圖形工具,可能就會發現自己會的東西越來越少。在工作中,有時候有些同事會問我 一些關於toad,SQLDeveloper的使用細節,很多時候自己都有些陌生,因為確實使用這些圖形工具的機會相對比比較少,但是也不能一味排斥這些工具,一旦有緊急問題的時候,有些圖形工具的功能還是很給力的。
前段時間客戶有個需求,需要在在某個使用者下建立一個物化檢視,透過db link來從源資料中重新整理得到資料,但是重新整理的頻率有一定的要求,他們希望在每天凌晨4點半的時候重新整理這個物化檢視,這個工作看起來還是很簡單的。
作業系統層面可以透過crontab來完成。
如果透過指令碼,可以透過shell執行,然後設定sleep時間,基本能夠滿足要求。
如果從資料庫層面,scheduler job就是一個很不錯的選擇。dbms_scheduler算是dbms_job的升級版,可以靈活地搭配對應的程式(pl/sql)和排程來完成,這個時候程式和排程就像零件一樣,可以在不同的job中靈活組配。
客戶傾向於從資料庫層面來完成。這個時候思路就很清晰,需要建立program,建立scheduler,然後在job中載入program,scheduler
說起來容易做起來難,如果在文件中查詢,也能做出來,但是需要花一些時間來驗證,而且很有可能出錯,這個時候如果透過圖形工具也是一個不錯的選擇。可能這個時候工作環境中沒有圖形介面,透過遠端連線這些都是不可以實現的,
沒有條件我們要創造條件,我們可以在本地安裝一套資料庫軟體,配置EM就可以開工了,但是EM或者Grid control有一個很不錯的選項就是show sql的功能,本地建立沒有意義,但是我們可以把對應的sql語句複製出來,略作修改就是最終的指令碼了。
看看透過EM建立job是多麼的簡單。
建立scheduler的截圖如下:
建立program的截圖如下:
建立job的截圖如下:
來看看show sql生成的語句吧。
建立scheduler的語句。
BEGIN
sys.dbms_scheduler.create_schedule(
repeat_interval => 'FREQ=DAILY;BYHOUR=4;BYMINUTE=30;BYSECOND=0',
start_date => systimestamp at time zone 'Pacific/Pago_Pago',
schedule_name => '"SYSTEM"."REFRESH_SNAP_BY_DAY"');
END;
建立program的語句
BEGIN
DBMS_SCHEDULER.CREATE_PROGRAM(
program_name=>'"SYSTEM"."PROGRAM_REFRESH_SNAP"',
program_action=>'exec dbms_mview.refresh(''XX'',''C'');',
program_type=>'PLSQL_BLOCK',
number_of_arguments=>0,
comments=>'',
enabled=>TRUE);
END;
建立job的語句
BEGIN
sys.dbms_scheduler.create_job(
job_name => '"SYSTEM"."JOB_REFRESH_SNAP"',
program_name => '"SYSTEM"."PROGRAM_REFRESH_SNAP"',
schedule_name => '"SYSTEM"."REFRESH_SNAP_BY_DAY"',
job_class => '"DEFAULT_JOB_CLASS"',
auto_drop => FALSE,
enabled => TRUE);
END;
前段時間客戶有個需求,需要在在某個使用者下建立一個物化檢視,透過db link來從源資料中重新整理得到資料,但是重新整理的頻率有一定的要求,他們希望在每天凌晨4點半的時候重新整理這個物化檢視,這個工作看起來還是很簡單的。
作業系統層面可以透過crontab來完成。
如果透過指令碼,可以透過shell執行,然後設定sleep時間,基本能夠滿足要求。
如果從資料庫層面,scheduler job就是一個很不錯的選擇。dbms_scheduler算是dbms_job的升級版,可以靈活地搭配對應的程式(pl/sql)和排程來完成,這個時候程式和排程就像零件一樣,可以在不同的job中靈活組配。
客戶傾向於從資料庫層面來完成。這個時候思路就很清晰,需要建立program,建立scheduler,然後在job中載入program,scheduler
說起來容易做起來難,如果在文件中查詢,也能做出來,但是需要花一些時間來驗證,而且很有可能出錯,這個時候如果透過圖形工具也是一個不錯的選擇。可能這個時候工作環境中沒有圖形介面,透過遠端連線這些都是不可以實現的,
沒有條件我們要創造條件,我們可以在本地安裝一套資料庫軟體,配置EM就可以開工了,但是EM或者Grid control有一個很不錯的選項就是show sql的功能,本地建立沒有意義,但是我們可以把對應的sql語句複製出來,略作修改就是最終的指令碼了。
看看透過EM建立job是多麼的簡單。
建立scheduler的截圖如下:
建立program的截圖如下:
建立job的截圖如下:
來看看show sql生成的語句吧。
建立scheduler的語句。
BEGIN
sys.dbms_scheduler.create_schedule(
repeat_interval => 'FREQ=DAILY;BYHOUR=4;BYMINUTE=30;BYSECOND=0',
start_date => systimestamp at time zone 'Pacific/Pago_Pago',
schedule_name => '"SYSTEM"."REFRESH_SNAP_BY_DAY"');
END;
建立program的語句
BEGIN
DBMS_SCHEDULER.CREATE_PROGRAM(
program_name=>'"SYSTEM"."PROGRAM_REFRESH_SNAP"',
program_action=>'exec dbms_mview.refresh(''XX'',''C'');',
program_type=>'PLSQL_BLOCK',
number_of_arguments=>0,
comments=>'',
enabled=>TRUE);
END;
BEGIN
sys.dbms_scheduler.create_job(
job_name => '"SYSTEM"."JOB_REFRESH_SNAP"',
program_name => '"SYSTEM"."PROGRAM_REFRESH_SNAP"',
schedule_name => '"SYSTEM"."REFRESH_SNAP_BY_DAY"',
job_class => '"DEFAULT_JOB_CLASS"',
auto_drop => FALSE,
enabled => TRUE);
END;
所以也不要一味排斥圖形工具,畢竟我們只是為了讓自己工作效率提高,白貓黑貓啊,抓住老鼠就是好貓,合理使用圖形工具還是值得推薦的。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23718752/viewspace-1479441/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 簡單問題複雜著解決
- 利用函式索引解決複雜的約束問題函式索引
- 快速解決mongodb出現id重複問題MongoDB
- 最近解決了一個比較複雜的“死鎖”問題
- mysql主從複製配置與問題解決MySql
- Oracle 10.2.0.5 EM 啟動BUG問題解決Oracle
- oracle10g中EM的有關問題解決Oracle
- QOJ6958-複雜的雙樹上問題以及簡單的解決方式
- 解決DDD核心的複雜性
- 面試題35:複雜連結串列的複製面試題
- bg配置問題解決
- oracle 10g em 亂碼問題解決方法Oracle 10g
- 降低程式碼的圈複雜度——複雜程式碼的解決之道複雜度
- Oracle EM 常見問題總結Oracle
- Kimi探索版釋出,10倍搜尋量自主解決複雜問題
- 解決表單重複提交的問題
- 解決csdn登陸複製的問題
- 快速解決電腦噪音問題
- AliAGC 自動增益控制演算法:解決複雜場景下的音量問題GC演算法
- 解決oracle10g EM主機驗證問題Oracle
- rem與em的區別||結合使用rem與emREM
- 現代化配置管理以解決網路複雜性
- Python Requests庫文件連結404問題解決及防止重複問題的建議Python
- 被騰訊問蒙的各種Redis複雜問題Redis
- Cabloy-CMS:動靜結合,解決Hexo痛點問題Hexo
- Oracle10g EM亂碼之快速解決Oracle
- 解決移動端複製問題
- 複雜人像背景分割解決方案
- 使用vue解決複雜邏輯Vue
- 分治思想--快速排序解決TopK問題排序TopK
- 解決AIX 5.3 & Oracle 10g EM中出現的亂嗎問題AIOracle 10g
- Harbor搭建及配置 問題解決
- 解決Ubuntu配置nginx出現的問題UbuntuNginx
- [golang]一個複雜的中文編碼問題Golang
- 使用ajax請求傳送複雜的json資料型別,並解決fastjson解析複雜的json資料型別的問題JSON資料型別AST
- 解決生產日誌重複列印的問題
- 解決alertmanager重複傳送訊息的問題
- 元件複用傳值(待解決問題)元件