目錄
前言
一、作業系統簡介
二、權限及系統表
1.作業權限
2.系統表
1.SYSJOBSTEPS
2.SYSJOBSCHEDULES
3.SYSJOBHISTORIES2
4.SYSSTEPHISTORIES2
5.SYSOPERATORS
6.SYSALERTS
7.SYSALERTNOTIFICATIONS
8.SYSALERTHISTORIES
9.SYSMAILINFO
三、通過系統程序創建和洗掉
1.命令列操作
2.圖形界面操作
三、操作員
1、創建操作員
2、修改操作員
3、洗掉操作員
四、作業
1、創建作業
2、修改作業
3、洗掉作業
4、配置作業
1. 開始作業配置;
2. 指定要開始配置一個作業;
3. 為指定的作業增加步驟;
4. 為指定的作業增加調度;
5. 結束作業配置
五、配置定時作業
1.全備作業
2.增備作業
3.洗掉備份作業
4.歸檔清理作業
5.統計資訊作業
6.手動執行作業
總結
前言
DM作業系統,
一、作業系統簡介
DM 的作業系統為用戶提供了創建作業,并對作業進行調度執行以完成相應管理任務的功能, 可以讓這些重復的資料庫任務自動完成,實作日常作業自動化, 作業系統大致包含作業、警報和操作員三部分,用戶需要為作業配置步驟和調度,
二、權限及系統表
1.作業權限
GRANT ADMIN JOB TO NORMAL_USER;
默認 DBA 擁有全部的作業權限; ADMIN JOB 權限可以添加、配置、調度和洗掉作業等,但沒有作業環境初始化 SP_INIT_JOB_SYS(1)和作業環境銷毀 SP_INIT_JOB_SYS(0)的權限,
2.系統表
SYSJOBS表存盤用戶定義的作業資訊,每個作業對應此表中的一條記錄,每一條記錄都有一個自增ID,用來唯一表示這個作業
select * from sysjob.sysjobs;
1.SYSJOBSTEPS
SYSJOBSTEPS 存盤作業包括的所有步驟資訊
2.SYSJOBSCHEDULES
一個作業可以有多個調度,調度用來指定一個作業的執行情況,可以指定作業的執行方式及時間范圍,
3.SYSJOBHISTORIES2
SYSJOBHISTORIES2 存盤作業的執行情況的日志,
4.SYSSTEPHISTORIES2
SYSSTEPHISTORIES2 存盤作業步驟的執行情況的日志,
5.SYSOPERATORS
SYSOPERATORS 存盤作業管理系統中所有已定義操作員的資訊,以 NAME 為聚集索引,意味著不能具有同名的操作員,
6.SYSALERTS
SYSALERTS 存盤作業管理系統中所有已定義的警報資訊,聚集索引為 NAME,意味著不能定義同名的警報,
7.SYSALERTNOTIFICATIONS
SYSALERTNOTIFICATIONS 存盤警報需要通知的操作員的資訊,即警報和操作員的關聯資訊,
8.SYSALERTHISTORIES
SYSALERTHISTORIES 存盤警報發生的歷史記錄的日志,
9.SYSMAILINFO
SYSMAILINFO 存盤作業管理系統管理員的資訊,
三、通過系統程序創建和洗掉
1.命令列操作
可以通過呼叫系統程序 SP_INIT_JOB_SYS(1)來創建這些表,這些表被建在SYSJOB 模式下,
創建SYSJOB模式及系統表:
SP_INIT_JOB_SYS(1);
洗掉SYSJOB模式及系統表:
SP_INIT_JOB_SYS(0);
2.圖形界面操作


三、操作員
分別用 SP_CREATE_OPERATOR、 SP_ALTER_OPERATOR 和 SP_DROP_OPERATOR 三個程序來完成操作員的創建、修改和洗掉,
1、創建操作員
SP_CREATE_OPERATOR (
OPR_NAME VARCHAR(128),
ENABLED INT,
EMAILADDR VARCHAR(128),
NETSEND_IP VARCHAR(128)
)
2、修改操作員
SP_ALTER_OPERATOR (
OPR_NAME VARCHAR(128),
ENABLED INT,
EMAILADDR VARCHAR(128),
NETSEND_IP VARCHAR(128)
)
3、洗掉操作員
SP_DROP_OPERATOR (
OPR_NAME VARCHAR(128)
)
四、作業
1、創建作業
SP_CREATE_JOB (
JOB_NAME VARCHAR(128),
ENABLED INT,
ENABLE_EMAIL INT,
EMAIL_OPTR_NAME VARCHAR(128),
EMAIL_TYPE INT,
ENABLED_NETSEND INT,
NETSEND_OPTR_NAME VARCHAR(128),
NETSEND_TYPE INT,
DESCRIBE VARCHAR(8187)
)
例如, 創建一個名為 TEST 的作業,
SP_CREATE_JOB('TEST', 1, 1, 'TOM', 2, 1, 'TOM', 2, '每一個測驗作業');
創建完成這個作業后,系統就會在 SYSJOBS 中插入一條相應的記錄,但是這個作業不
會做任何事情,只是一個空的作業,如果需要讓它執行,還需要配置這個作業,
2、修改作業
SP_ALTER_JOB (
JOB_NAME VARCHAR(128),
ENABLED INT,
ENABLE_EMAIL INT,
EMAIL_OPTR_NAME VARCHAR(128),
EMAIL_TYPE INT,
ENABLED_NETSEND INT,
NETSEND_OPTR_NAME VARCHAR(128),
NETSEND_TYPE INT,
DESCRIBE VARCHAR(8187)
)
函式 SP_ALTER_JOB 的引數和 SP_CREATE_JOB 的引數完全相同,除了 JOB_NAME 可修 改外,其他的屬性都可修改,對于可修改引數,如果要修改,則指定新值;如果不修改,則 繼續指定原值, 作業屬性修改后,需要重新配置作業,使修改生效,
例如, 下面的陳述句修改了作業 TEST 的一些資訊,
SP_ALTER_JOB('TEST', 0, 1, 'DBA', 2, 1, 'DBA', 2, '修改一個作業');
SP_JOB_CONFIG_START('TEST');
SP_JOB_CONFIG_COMMIT('TEST');
3、洗掉作業
SP_DROP_JOB (
JOB_NAME VARCHAR(128)
)
例如, 洗掉作業 TEST,
SP_DROP_JOB('TEST');
4、配置作業
配置一個作業主要包括以下幾個步驟:
1. 開始作業配置;
2. 指定要開始配置一個作業;
3. 為指定的作業增加步驟;
4. 為指定的作業增加調度;
5. 結束作業配置
1.用系統程序 SP_JOB_CONFIG_START 指定對一個作業配置的開始,
SP_JOB_CONFIG_START (
JOB_NAME VARCHAR(128)
)
例如, 開始對作業 TEST 進行配置,
SP_JOB_CONFIG_START('TEST');
2.設定作業執行節點
SP_JOB_SET_EP_SEQNO (
JOB_NAME VARCHAR(128),
EP_SEQNO INT
)
例如,下面的例子設定了作業在指定的節點號上執行,
SP_JOB_SET_EP_SEQNO(‘TEST’,2);
3.增加作業的步驟通過系統程序 SP_ADD_JOB_STEP 實作,
SP_ADD_JOB_STEP (
JOB_NAME VARCHAR(128),
STEP_NAME VARCHAR(128),
TYPE INT,
COMMAND VARCHAR(8187),
SUCC_ACTION INT,
FAIL_ACTION INT,
RETRY_ATTEMPTS INT,
RETRY_INTERVAL INT,
OUTPUT_FILE_PATH VARCHAR(256),
APPEND_FLAG INT
)
例如, 下面的陳述句為作業 TEST 增加了步驟 STEP1,
SP_ADD_JOB_STEP('TEST', 'STEP1', 0, 'INSERT INTO MYINFO VALUES(1000, ''HELLO
WORLD''); ', 0, 0, 2, 1, NULL, 0);
4.修改作業的步驟通過系統程序 SP_ALTER_JOB_STEP 實作
SP_ALTER_JOB_STEP (
JOB_NAME VARCHAR(128),
STEP_NAME VARCHAR(128),
TYPE INT,
COMMAND VARCHAR(8187),
SUCC_ACTION INT,
FAIL_ACTION INT,
RETRY_ATTEMPTS INT,
RETRY_INTERVAL INT,
OUTPUT_FILE_PATH VARCHAR(256),
APPEND_FLAG INT
)
所有引數與 SP_ADD_JOB_STEP 的引數一樣
5.可 以 通 過 系 統 過 程SP_DROP_JOB_STEP 洗掉這個步驟,
SP_DROP_JOB_STEP (
JOB_NAME VARCHAR(128),
STEP_NAME VARCHAR(128)
)
例:洗掉STEP1
SP_DROP_JOB_STEP('TEST', 'STEP1');
6.增加調度通過調度系統程序 SP_ADD_JOB_SCHEDULE 實作,
SP_ADD_JOB_SCHEDULE (
JOB_NAME VARCHAR(128),
SCHEDULE_NAME VARCHAR(128),
ENABLE INT,
TYPE INT,
FREQ_INTERVAL INT,
FREQ_SUB_INTERVAL INT,
FREQ_MINUTE_INTERVAL INT,
STARTTIME VARCHAR(128),
ENDTIME VARCHAR(128),
DURING_START_DATE VARCHAR(128),
DURING_END_DATE VARCHAR(128),
DESCRIBE VARCHAR(500)
)
例如, 下面的陳述句為作業 TEST 增加名為 SCHEDULE3 的調度,
SP_ADD_JOB_SCHEDULE('TEST', 'SCHEDULE3', 1, 1, 1, 0, 1, CURTIME, '23:59:59',
CURDATE, NULL, '一個測驗調度');
7.修改調度通過調度系統程序 SP_ALTER_JOB_SCHEDULE 實作,
SP_ALTER_JOB_SCHEDULE (
JOB_NAME VARCHAR(128),
SCHEDULE_NAME VARCHAR(128),
ENABLE INT,
TYPE INT,
FREQ_INTERVAL INT,
FREQ_SUB_INTERVAL INT,
FREQ_MINUTE_INTERVAL INT,
STARTTIME VARCHAR(128),
ENDTIME VARCHAR(128),
DURING_START_DATE VARCHAR(128),
DURING_END_DATE VARCHAR(128),
DESCRIBE VARCHAR(500)
)
所有引數與 SP_ADD_JOB_SCHEDULE 的引數一樣
8.呼叫的函式為SP_DROP_JOB_SCHEDULE,
SP_DROP_JOB_SCHEDULE (
JOB_NAME VARCHAR(128),
SCHEDULE_NAME VARCHAR(128)
)
例如, 洗掉作業 TEST 中名為 SCHEDULE3 的調度,
SP_DROP_JOB_SCHEDULE('TEST', 'SCHEDULE3');
9.結束作業配置
在配置完成后,用戶需要對前面所做的配置進行提交,表示對作業的配置已經完成,同 時將這個作業加入到運行佇列,這一步可以通過系統程序 SP_JOB_CONFIG_COMMIT 實作,
SP_JOB_CONFIG_COMMIT (
JOB_NAME VARCHAR(128)
)
10.清除作業日志記錄,可以通過系統程序 SP_JOB_CLEAR_HISTORIES 清除迄今為止某個作業的所有日志記錄,即洗掉表 SYSJOBHISTORIES2、 SYSSTEPHISTORIES2 中的相關記錄,
SP_JOB_CLEAR_HISTORIES (
JOB_NAME VARCHAR(128)
)
例:洗掉作業TEST
SP_JOB_CLEAR_HISTORIES ('TEST');
五、配置定時作業
開啟作業:
SP_INIT_JOB_SYS(1);
1.全備作業
call SP_CREATE_JOB('bakfull',1,0,'',0,0,'',0,'周六23:00全備');
call SP_JOB_CONFIG_START('bakfull');
call SP_ADD_JOB_STEP('bakfull', 'bak01', 6, '01000000/dmdata1/dmbak', 1, 2, 0, 0, NULL,0);
call SP_ADD_JOB_SCHEDULE('bakfull', 'bak01', 1, 2, 1, 32, 0, '23:00:00', NULL, '2020-11-02 14:42:15', NULL, '');
call SP_JOB_CONFIG_COMMIT('bakfull');
2.增備作業
call SP_CREATE_JOB('bakincr',1,0,'',0,0,'',0,'每天23:00增備');
call SP_JOB_CONFIG_START('bakincr');
call SP_ADD_JOB_STEP('bakincr', 'bak02', 6, '11000000/dmdata1/dmbak|/dmdata1/dmbak', 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('bakincr', 'bak2', 1, 2, 1, 95, 0, '23:00:00', NULL, '2020-11-02 14:44:30', NULL, '');
call SP_JOB_CONFIG_COMMIT('bakincr');
3.洗掉備份作業
call SP_CREATE_JOB('delbak',1,0,'',0,0,'',0,'周日02:00洗掉前14天備份');
call SP_JOB_CONFIG_START('delbak');
call SP_ADD_JOB_STEP('delbak', 'bak1', 0, 'SF_BAKSET_BACKUP_DIR_ADD(''DISK'',''/dmdata1/dmbak'');call sp_db_bakset_remove_batch(''DISK'',now()-14);', 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('delbak', 'del01', 1, 1, 1, 0, 0, '23:30:00', NULL, '2020-11-02 14:48:41', NULL, '');
call SP_JOB_CONFIG_COMMIT('delbak');
4.歸檔清理作業
每周日02:00執行洗掉30天以前的歸檔日志,2020年10月10日00:00開始執行
call SP_CREATE_JOB('JOB_DEL_ARCH_TIMELY',1,0,'',0,0,'',0,'定時洗掉歸檔日志');
call SP_JOB_CONFIG_START('JOB_DEL_ARCH_TIMELY');
call SP_ADD_JOB_STEP('JOB_DEL_ARCH_TIMELY', 'STEP_DEL_ARCH', 0,'SF_ARCHIVELOG_DELETE_BEFORE_TIME(SYSDATE - 30);', 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('JOB_DEL_ARCH_TIMELY', 'SCHEDULE_DEL_ARCH',1, 2, 1, 1, 0, '02:00:00', NULL, '2020-10-10 00:00:00', NULL, '');
call SP_JOB_CONFIG_COMMIT('JOB_DEL_ARCH_TIMELY');
5.統計資訊作業
--每天自動收集統計資訊
call SP_CREATE_JOB('STAT_GATHER',1,0,'',0,0,'',0,'');
call SP_JOB_CONFIG_START('STAT_GATHER');
call SP_ADD_JOB_STEP('STAT_GATHER', 'STAT_GATHER', 3, '', 0, 0, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('STAT_GATHER', 'STAT_GATHER', 1, 1, 1, 0, 0, '23:38:35', NULL, '2021-04-29 13:38:35',NULL, '');
call SP_JOB_CONFIG_COMMIT('STAT_GATHER');
6.手動執行作業
查詢作業表
select sysjob.sysjobs;
根據作業號執行作業:
call dbms_job.run(1626857481);
總結
更多資訊請上達夢技術社區了解:https://eco.dameng.com
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/299631.html
標籤:其他
下一篇:DM資料庫性能診斷
