文档详情

(oracle脚本.doc

发布:2017-01-22约2.79万字共23页下载文档
文本预览下载声明
1. 每天的8:00到23:00每隔5分钟执行一个sql语句的JOB --建立一个存储过程 CREATE OR REPLACE PROCEDURE p_jobtest IS v_hh VARCHAR2(2); BEGIN v_hh := to_char(SYSDATE, hh24); IF v_hh = 08 AND v_hh = 22 THEN --你的sql语句 NULL; END IF; END; / --提交一个JOB DECLARE v_jobno NUMBER; BEGIN dbms_job.submit(v_jobno, p_jobtest;, trunc(SYSDATE, mi) + 1 / 1440, trunc(SYSDATE, mi) + 5 / 1440); END; / 2. RMAN 中的list 命令显示的信息是从控制文件里获取的,如果使用rm等命令手工的删除备份文件,这个动作不会同步到控制文件,造成不一致,这种不一致会导致使用rman时报错。可以使用delete 删除这些过期的记录,在用就不会报错了。 RMANcrosscheck copy; RMANlist copy; RMANdelete expired copy; 3. 触发LGWR进程的条件有: 1. 用户提交 2. 有1/3重做日志缓冲区未被写入磁盘 3. 有大于1M的重做日志缓冲区未被写入磁盘 4. 3秒超时 5. DBWR 需要写入的数据的SCN大于LGWR记录的SCN,DBWR 触发LGWR写入。 4. 触发DBWR进程的条件有: 1. DBWR超时,大约3秒 2. 系统中没有多余的空缓冲区来存放数据 3. CKPT 进程触发DBWR 5. 每隔3秒钟ckpt会去更新控制文件和数据文件,记录checkpoint执行的情况。 当发生checkpoint时,会把SCN写到四个地方去。 三个地方于control file内,一个在datafile header。 6. 触发CheckPoint(检查点) 条件有很多,比如: 1. 通过正常事务处理或者立即选项关闭例程时(shutdown immediate或者Shutdown normal), 2. 当通过设置初始化参数: LOG_CHECKPOINT_INTERVAL, LOG_CHECKPOINT_TIMEOUT , FAST_START_IO_TARGET 强制时; 3. 当数据库管理员手动请求时: ALter system checkpoint; alter tablespace ... offline; 4. 每次日志切换时; alter system switch logfile 注意: 1. alter system switch logfile也将触发完全检查点的发生。 2. alter database datafile ... offline 不会触发检查点进程。 7. RECOVER DATABASE UNTIL CANCEL 和 RECOVER DATABASE UNTIL CANCEL USING BACKUP CONTROLFILE; 区别 1) RECOVER DATABASE UNTIL CANCEL == OPEN DATABASE RESETLOG == DATAFILE HEADER SCN一定会小于CONTROLFILE的DATAFILE SCN 如果你有进行RESTORE DATAFILE,则该RESTORE的DATAFILE HEADER SCN一定会小于目前CONTROLFILE的DATAFILE SCN,此时会无法开启数据库,必须进行media recovery。 重做archive log直到该datafile header的SCN=current scn 8. 建表前判断表是否存在的存储过程。 在Oracle 中没有drop table... if exists语法。 所以我们可以在创建表之前用如下存储过程来判断。 create or replace procedure proc_dropifexists( p_table in varchar2 ) is v_count number(10); begin select count(*) into v_count from user
显示全部
相似文档