개요
Job을 다른 시스템이나 계정으로 이관해야 하는 경우가 종종 발생합니다. 이를 스크립트 형태로 재구성하여 안전하게 이관하는 방법을 안내합니다.
job이관 스크립트 확보 목적
•
일부 구버전 바이너리에서는 tbexport 시 Job이 export 대상에서 누락되는 경우가 있습니다.
•
운영 중 실수나 장애로 인한 잡 삭제 상황에 대비해, 평소에 정기적인 백업이 필요합니다.
방법
절차
1. job_bak.sql를 생성합니다.
$ vi job_bak.sql
set pages 500;
set lines 300;
set feedback off;
set heading off;
set echo off;
select 'DECLARE job_no number;'|| chr(10) || 'begin ' || chr(10) || ' dbms_job.submit (job_no,' || '''' || what||''',' || '''' || next_date || ''','|| '''' || interval || ''');' || chr(10) || ' end;' || chr(10) || '/' from dba_jobs;
SELECT 'schema : '||B.USERNAME||'','DECLARE job_no number;'|| chr(10) || 'begin ' || chr(10) || ' dbms_job.submit (job_no,' || '''' || what||''',' || '''' || next_date || ''','|| '''' || interval || ''');' || chr(10) || ' end;' || chr(10) || '/'
FROM dba_jobs a , dba_users b
where a.SCHEMA_USER=b.USER_ID;
SQL
복사
2. job_bak.sh를 생성합니다.
$ vi job_bak.sh
source /home/tibero/.bash_profile
tbsql -s sys/tibero @/home/tibero/job_bak.sql << EOF
quit
EOF
SQL
복사
3. 실행권한을 부여합니다.
$ chmod +x job_bak*
SQL
복사
4. crontab에 등록합니다.
$ crontab -e
* * * * * sh /home/tibero/job_bak.sh >> /home/tibero/job_backup_$(date +%y%m%d%H%M).sql 2>&1
SQL
복사
5. 결과를 확인합니다.