oracle 中的 scheduler 如何备份

最近机房搬迁、库里存在scheduler,并且有jobs,programs,schedules等的东西、、、、
这个怎么备份呢?

在oracle中使用scheduler的范例

Sql代码

-- 创建新表

create table T_TEST_JOB

(

ID LONG,

TEST_DATE TIMESTAMP(6)

)

tablespace GBIAPS

pctfree 10

initrans 1

maxtrans 255

storage

(

initial 64

minextents 1

maxextents unlimited

);

-- 创建序列

create sequence SEQ_TEST_JOB

minvalue 1

maxvalue 9999999999999999999999999999

start with 1

increment by 1

cache 10;

-- 创建存储过程

create or replace procedure P_TEST_JOB as

begin

insert into t_test_job(id,test_date) values (SEQ_TEST_JOB.NEXTVAL,sysdate);

end;

/

/*

在使用create_job或者create_schedule前,请先检查 NLS_DATE_LANGUAGE, NLS_DATE_FORMAT,

NLS_TIMESTAMP_FORMAT, NLS_TIMESTAMP_TZ_FORMAT 等参数的值, 通过alter session 命令来修改

alter session set NLS_DATE_FORMAT='yyyy-MM-dd';

alter session set NLS_TIMESTAMP_FORMAT='yyyy-MM-dd hh24:mi:ss';

alter session set NLS_TIMESTAMP_TZ_FORMAT='yyyy-MM-dd HH:MI:SS.FF AM TZR';

/

select * from nls_session_parameters where parameter like '%_DATE_%' or parameter like '%_TIMESTAMP_%';

-- 创建job

-- FREQ 用来指定间隔的时间周期,可选参数有: YEARLY, MONTHLY, WEEKLY, DAILY, HOURLY, MINUTELY, SECONDLY

-- INTERVAL 用来指定间隔的频繁,可指定的值的范围从1-999

-- 附加的参数有: BYMONTH,BYWEEKNO,BYYEARDAY,BYMONTHDAY,BYDAY,BYHOUR,BYMINUTE,BYSECOND

/


每周的1,3,5运行job FREQ=WEEKLY; BYDAY=MON,WED,FRI

每年的3,6,9,12月的30号运行job FREQ=YEARLY; BYMONTH=MAR,JUN,SEP,DEC; BYMONTHDAY=30

每月1号凌晨1点执行一次

Freq=Monthly;BYMONTHDAY=1;BYHOUR=1;BYMINUTE=0;BYSECOND=0;Interval=1

*/

begin

sys.dbms_scheduler.create_job(job_name => 'JOB_TESTJOB',

job_type => 'STORED_PROCEDURE',

job_action => 'P_TEST_JOB',

start_date => sysdate,

repeat_interval => 'Freq=MINUTELY;BYSECOND=0;Interval=1',

                          end_date            => to_date(null),  

                            job_class           => 'DEFAULT_JOB_CLASS',  

                            enabled             => true,  

                            auto_drop           => false,  

                            comments            => 'Baiyun Airport Web Site');  

end;

/

-- 启动job

begin

dbms_scheduler.enable('JOB_TESTJOB');

end;

/

-- 运行job

begin

dbms_scheduler.run_job('JOB_TESTJOB',TRUE); -- true代表同步执行

end;

/

-- 停止job

begin

dbms_scheduler.stop_job(job_name => 'JOB_TESTJOB',force => TRUE);

end;

/

-- 删除job

begin

dbms_scheduler.drop_job(job_name => 'JOB_TESTJOB',force => TRUE);

end;

/

-- 查询job

select * from user_scheduler_jobs;

select * from dba_scheduler_jobs;

-- 查看数据

select * from t_test_job;

-- 删除数据

delete from t_test_job;

机房搬迁,你把服务器上的硬盘数据备份好 关机搬迁服务器 吧