动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
电脑书籍下载:程序设计书籍 | 数据库教程书籍 | 平面与多媒体书籍 | 网络通讯书籍 | 系统管理书籍 | 网络安全书籍 | 认证考试书籍
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Oracle教程 ]的信息



本月文章推荐
.Oracle10g新增的用以简化用户管理.
.Oracle SQLCODE/SQLERRM 的应用.
.oracle重装时问题解决方案.
.ExactPapers Oracle 1Z0-147 200.
.Linux上数据自动备份与刻录整合.
.定时执行存储过程对库表及索引进.
.ORACLE常用傻瓜问题1000问全集(.
.在Oracle中重编译所有无效的存储.
.Oracle 10g Release2新功能之变化.
.如何使特定用户具有smbmount上的.
.利用SQL *Plus复制遗留的Oracle数.
.在SCO UNIX下安装ORACLE数据库.
.让Linux远离病毒侵扰.
.Oracle中如果对“性别”这样的字.
.分析list_head结构&建立双向链表.
.Oracle 数据库安全策略的具体分析.
.DBA必须熟悉的、最有用的DBA视图.
.RedHat8.0下轻松实现主板状态监测.
.Oracle数据库技术(42).
.PL/SQL中调用Java源对象产生随机.

Oracle的恢复管理器及DBMS_JOB包分析

发表日期:2008-2-9 |


一、引言 随着Oracle大型数据库系统在企业的广泛应用,系统数据量的快速增长,相信为数不少的Oracle DBA天天都在忙于做着重复的工作--对数据库进行备份。 假如一旦哪一天疏忽了,而这一天系统又恰恰发生了故障,需要进行数据恢复,那么此时对 DBA来说可能就是一场灾难, 因为他可能无法完整地恢复数据库中的数据。此外,在数据库的应用中我们会经常碰到这样的需求:将一些重要数据表中的数据定期备份到另一些数据表中去。例如在企业员工工资治理系统中,每月工资报表打印完毕后,应将当月工资数据保存到工资历史库中去,以便今后查询及统计使用。通常我们采用存储过程来完成对数据的处理,这个过程由人工定期执行完成,操作起来很不方便。对于第一种情况,现在我们可利用Oracle据库实用工具恢复治理器来完成DBA天天必须做的备份工作,而且可设定一个固定的时间,让系统自动进行备份。对后一种情况,我们可以使用DBMS_JOB包结合存储过程来实现数据处理的自动执行。下面笔者结合实践经验,分别介绍其实现方法。 二、Oracle数据库备份与恢复方式及特点 ORACLE 数据库备份分为物理备份和逻辑备份。物理备份是数据库文件拷贝的备份,冷备份、热备份属于物理备份。 导出/导入(EXPORT/IMPORT)工具用于进行逻辑备份。 导出(EXPORT)备份可拷贝数据与数据库定义,并以Oracle的内部格式保存为二进制文件。相反,利用Import则可将数据从二进制文件放回到Oracle数据库中。但是导出(EXPORT)备份机制不能提供时间点恢复,而且不能和归档重做日志文件一起使用。 冷备份是在数据库被正常关闭之后进行的数据文件的物理备份。当数据库被关闭时,被数据库使用的每一个文件都被备份下来。这些文件因而保持着数据关闭时的完整的映象。 热备份是在数据库运行的情况下,采用archivelog mode方式备份数据的方法。这涉及到将每个表空间设置为备份状态,然后备份其数据文件,最后将表空间恢复成正常的状态。数据库可以从这个备份中完全地恢复过来,也可以通过归档的重做日志回滚到前面时间的任一个点上。 上述几种备份方法的特性比较: 方法 类型 恢复特性 Export导出 逻辑型 可以将任何数据库对象恢复到它被导出时的状态 冷备份 物理型 可将数据库恢复到它被关闭时的状态 热备份 物理型 可将数据库恢复到任一时间点的状态 以上几种备份方式都需要依靠DBA人工操作完成,从而增加了DBA维护系统的负担。当DBA需要维护多个Oracle数据库系统时,还轻易导致操作失误,而且备份的数据不便于集中统一治理。 三、Oracle数据库恢复治理器及DBMS_JOB包概述 恢复治理器(RMAN)是一个使DBA能很方便地对数据库执行备份和恢复任务的Oracle应用工具,与以上介绍的几种方式不同,它能够提供DBA针对企业数据库备份与恢复操作的集中控制。RMAN可以将备份记录保存在恢复目录中,Oracle服务器保持对备份的跟踪。实际的物理备份拷贝将被存储在指定的存储系统上,可以是磁带或磁盘。RMAN将全部备份数据以Oracle特有的格式写入到"备份集"文件中,通过RMAN应用工具来读取。RMAN支持建立除逻辑备份以外的所有类型的备份。 Oracle的恢复治理器及DBMS_JOB包分析 RMAN的功能框图 利用RMAN进行备份恢复的条件是: 1.建立一个recovery_catalog,存放RMAN使用和维护着的目标数据库的信息,RMAN使用这些信息去决定如何执行备份和恢复的请求。通常是把它建在另一个Oracle数据库的一个模式里,即需要建立一个用户,该用户需要有recovery_catalog_owner权限。 2.目标数据库必须是在archivelog模式下运行,因为这样,日志才能归档,而RMAN正是利用归档日志进行数据恢复,所以这是一个必备条件。同时archivelog模式也是数据库在线备份的必备条件。 3.RMAN备份中,假如采用磁带机备份,需要安装第三方介质治理库(MML)。 恢复治理器保存在RMAN中注册的全部数据库的记录。当RMAN被用来启动备份或恢复数据库时,它将目标数据库与恢复目录中可用的数据库ID进行验证。假如条件一致,RMAN对目标数据库至少建立两个通道,其中一个通道只是对目标数据库的一个远程调用,使用PL/SQL接口来执行备份与恢复操作。RMAN使用它自己的PL/SQL引擎编译这些用户命令,并在目标数据库上执行这些命令。执行过程不需要用户干预,RMAN记录追踪在数据库上执行的全部备份与恢复操作,因而在很大程度上避免了DBA错误导致的危险。同时RMAN提供了多种命令用于检查和测试数据库备份集与拷贝,并确保备份文件完整无缺且能够用于实现恢复。由上述可见,采用恢复治理器做备份与恢复的治理与其他方式相比较具有明显的优势,可大大减少DBA做备份工作的工作量和操作失误。 DBMS_JOB包是Oracle提供的内部函数包,提供了治理和调度作业队列中的作业定时执行的控制机制。所有作业由SNP后台进程执行。 当SNP进程运行一个作业时,进程将首先创建会话,并恢复作业运行时的环境参数,再调度作业运行。DBMS_JOB包的主要功能有:提交Submit(),执行Run(),删除Remove()等。这样,我们就可以用这个包将创建的存储过程放入Oracle数据库系统的作业队列中去,由系统按时调度运行。
四、应用实例 4.1、RMAN做数据库在线备份应用实例 这里以某公司业务处理计算机中心数据库为例。用户系统配置为:两台HP9000小型机(host1、host2),操作系统为HP-UX11.0,Oracle数据库版本为8.0.5。两台机上各有一个Oracle数据库实例,分别运行不同的业务处理系统。用户要求设备7X24小时在线工作,原则上运行时不答应数据库关闭。这就使得我们只能采用在线备份方式解决问题。为安全起见,我们在另一台IBM服务器(host3)上安装Windows2000及一个独立的Oracle数据库,恢复目录就建在这个数据库中,这台服务器还配置了一台磁带加载机,备份数据存放在磁带上,这样即便哪台机器出现故障我们也能够实现数据库的完全恢复,不过DBA应注重定期做恢复目录数据库的备份。在备份策略上,我们采用了全备份与归档日志备份相结合的方式,既不占用过多的系统时间,也相应减少了备份的数据量。备份策略如下: (1)每周日晚11:00做数据库在线全备份。

(2)天天12:00,18:00 做数据库归档日志文件的在线备份。 建立备份机制的操作如下(以host1机为例): 1) 建立恢复目录并注册目标数据库。 SVRMGR> create tablespace rmanspace datafile 'rmandata' size 500m;

SVRMGR> create user rman identified by rman default tablespace

Rmanspace temporary tablespace temp;

SVRMGR> grant connect,resource,recovery_catalog_owner to rman; 以上为建立RMAN表空间和用户。 $ sqlplus rman/rman

sql> start "/ora_01/app/oracle/prodUCt/8.0.5/rdbms/admin/catrman";--执行创建恢复目录操作$ rman target system/manager@host1 rcvcat rman/rman@host3;

--连接目标数据库和恢复目录

rman> register database;   --将目标数据库注册到恢复目录中

rman> resync catalog;      --进行同步目录操作 2) 将目标数据库改为归档模式运行。 SVRMGR> connect internal

SVRMGR> startup mount [dbname]

SVRMGR> alter database [dbname] archivelog; --起用归档模式

SVRMGR> archive log start                   --启动自动归档模式

SVRMGR> alter database [dbname] open;       --打开数据库 修改数据库初始化参数文件init.ora,定义归档模式(自动)、归档日志文件保存路径、归档日志文件命名方法,重新启动数据库。 3)建立全备份脚本文件hotbackup.rcv。 connect target internal/oracle@host1

connect rcvcat rman/rman@host3

run { allocate channel t1 type 'SBT_TAPE';

backup

incremental level 0

skip inAccessible

tag hot_db_bk_level0

filesperset 5

format 'bk_%s_%p_%t' (database);--备份全部数据库控制文件和数据文件sql 'alter system archive log current';

backup

filesperset 20

format 'al_%s_%p_%t' (archivelog all delete input);--备份归档日志,备份成功后删除归档日志。若不成功,则不做删除。

}
归档日志备份脚本hotarcbackup.rcv文件如下: connect target internal/oracle@host1

connect rcvcat rman/rman@host3

run { allocate channel t1 type 'SBT_TAPE';

sql 'alter system archive log current';

backup

filesperset 20

format 'al_%s_%p_%t' (archivelog all delete input);

} 4)利用Unix的crontab命令定期自动执行备份脚本 Crontab命令用于指定一个文件,其行计划命令以固定时间间隔执行。Cron是一个永久进程,它由/etc/rc.local启动执行。Cron程序读取、解释并执行crontab文件。我们将需自动定期执行备份的脚本文件写成shell命令行方式存入crontab文件中,由系统定期调度执行。Crontab文件的每一行由六个域(minutes、hours、day of month、month、day of week、command)组成,域之间用空格或Tab分开。 现在,我们在目标机上编写一个文件,用以启动自动备份进程。文件名定为Oracle,文件将放在/var/spool/cron/crontabs 目录下。Oracle文件内容: 0 23 * * 0 /oracle/rman/rman cmdfile ‘hotbackup.rcv’

# 星期天23点对数据库执行在线全备份

0 12,18 * * * /oracle/rman/rman cmdfile ‘hotarcbackup.rcv’

# 天天12点,18点执行归档文件备份 经过以上的操作后,系统天天自动产生两个归档日志备份,每个星期天产生一个数据库完全备份。DBA需要做的是,隔几天换一盘磁带(更换磁带的周期取决于备份文件的大小和磁带的容量)和用RMAN定期检查备份执行情况。 执行恢复操作的RMAN脚本文件restore.rcv如下(在host1上运行): connect target

connect rcvcat rman/rman@host3

run { allocate channel t1 type 'SBT_TAPE';

allocate channel t2 type 'SBT_TAPE';

restore controlfile;

sql 'alter database mount';

restore database;

recover database;

sql 'alter database open resetlogs';

} 4.2、存储过程定期自动执行的实例 以下为将Salary表数据定时转入Salary_history表的应用实例: 创建存储过程 SQL> create or replace procedure ProcEmp

IS

begin

insert into Salary_history (EmpId,EmpName,DptName,Salary,Month)select EmpId,EmpName,DptName,Salary,

to_char(sysdate,'yyyy-mm') from Salary;commit;

end ProcEmp;

/ 提交作业 SQL> variable jobno number;

SQL> begin

DBMS_JOB.SUBMIT(:jobno,

'ProcEmp;',

SYSDATE, 'SYSDATE + 30'); --每30天运行一次

commit;

end;

/ 运行作业 SQL>begin

dbms_job.run(:jobno);end;

/ 五、结束语 Oracle实用工具RMAN的应用为DBA治理多个Oracle数据库提供了集中备份治理与恢复控制的机制,大大地减轻了DBA的工作压力,而DBMS_JOB包的使用增强了存储过程的应用功能,这样,他们就可以从备份数据及重复处理数据的繁琐中解脱出来,去做其它更有意义的工作。而数据库既实现了在线磁带备份,又实现了异机备份集中治理,相应提高了系统运行的安全性。
上一篇:用ORACLE数据库存储海量图像数据 人气:539
下一篇:利用Oracle执行计划机制提高查询性能 人气:348
浏览全部Oracle教程的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-7-25 WikyBlog v1.7.0.1 多国语言版
2008-7-25 乐彼网上开店系统(56770 Eshop)
2008-7-25 赛特网站管理系统sitecms v3.6.0
2008-7-25 Modoer多功能点评系统 v1.0.1 Bu
2008-7-25 Shangducms Teamsuit! v1.1.0 开
2008-7-25 幻影动漫网视频系统(Ppdong) v1.
2008-7-25 acteecompany企业网站建设系统 v
2008-7-25 恒浪整合管理系统 ims v4.1 ACCE
2008-7-25 艺术图库系统 v1.0 beta
2008-7-19 UltraEdit 简体中文增强版 14.10
2008-7-19 CentOS 5.2 i386 LiveCD
2008-7-19 Snapture多功能相机 v1.4
2008-7-19 iAcces中文输入法 v1.0Build016
2008-7-19 Cookbook烹饪秘籍 v2.5
2008-7-19 苹果专用DVD转换工具 v1.1.59汉化
2008-7-19 Modem修复软件ZiPhone修改版04.0
2008-7-19 AgileMessenger即时通讯工具美化
2008-7-19 Sketches画图软件 v0.7b6破解版


  发表评论
姓 名: 验证码:
内 容:
[ 汉字翻译拼音 ] [ 广告代码 ] [ 符号对照表 ] [ 进制转换 ] [ 经典小工具 ] [ 个税计算 ] [ 汉字简繁转换 ] [ 普通单位换算 ] [ 公制单位换算 ]
[ 生辰老黄历 ] [ 国内电话区号 ] [ 国家代码与域名缩写 ] [ 文字加密解密 ] [ 健康查询 ] [ 万年历 ] [ 手机号码查询 ] [ ip搜索 ] [ Google PR查询 ]
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号