
(Oracle管理)Oracle RMAN快速入门指南时间对应海明老师OracleRMAN学习.docx
13页Oracle RMAN 快速入门指南时间:播布客网 海明老师的讲座配套教程前言这篇文章主要介绍 RMAN 的常用方法,其中包含了作者一些自己的经验,里面的实验也基本全在 WIN 2K 和 ORACLE 8.1.6 环境下测试成功(因为这个环境比较容易实现)这篇文章主要是在北京出差期间写的,回到家后整理修改了一下,时间比较仓促,同时因为篇幅有限,一些技术细节不能一一覆盖了,只希望能够帮助新手入门的作用,想真正熟练掌握 RMAN,必须经过较长时间的实践磨练才可以,尤其需要在工程中获得宝贵的故障解决经验1. 什么是 RMANRMAN 可以用来备份和还原数据库文件、归档日志和控制文件它也可以用来执行完全或不完全的数据库恢复注意:RMAN 不能用于备份初始化参数文件和口令文件RMAN 启动数据库上的 Oracle 服务器进程来进行备份或还原备份、还原、恢复是由这些进程驱动的RMAN 可以由 OEM 的 Backup Manager GUI 来控制,但在本文章里不作重点讨论2. Terminology 专业词汇解释2.1. Backup sets 备份集合备份集合有下面的特性:包括一个或多个数据文件或归档日志以 oracle 专有的格式保存有一个完全的所有的备份片集合构成构成一个完全备份或增量备份2.2. Backup pieces 备份片一个备份集由若干个备份片组成。
每个备份片是一个单独的输出文件一个备份片的大小是有限制的;如果没有大小的限制, 备份集就只由一个备份片构成备份片的大小不能大于使用的文件系统所支持的文件长度的最大值2.3. Image copies 镜像备份镜像备份是独立文件(数据文件、归档日志、控制文件)的备份它很类似操作系统级的文件备份它不是备份集或备份片,也没有被压缩2.4. Full backup sets 全备份集合全备份是一个或多个数据文件中使用过的数据块的的备份没有使用过的数据块是不被备份的,也就是说,oracle 进行备份集合的压缩2.5. Incremental backup sets 增量备份集合增量备份是指备份一个或多个数据文件的自从上一次同一级别的或更低级别的备份以来被修改过的数据块 与完全备份相同,增量备份也进行压缩2.6. File multiplexing不同的多个数据文件的数据块可以混合备份在一个备份集中2.7. Recovery catalog resyncing 恢复目录同步使用恢复管理器执行 backup、copy、restore 或者 switch 命令时,恢复目录自动进行更新, 但是有关日志与归档日志信息没有自动记入恢复目录。
需要进行目录同步使用 resync catalog 命令进行同步RMAN>resync catalog;RMAN-03022:正在编译命令:resync RMAN-03023:正在执行命令:resyncRMAN-08002:正在启动全部恢复目录的 resync RMAN-08004:完成全部 resync 3. 恢复目录3.1.恢复目录的概念恢复目录是由 RMAN 使用、维护的用来放置备份信息的仓库RMAN 利用恢复目录记载的信息去判断如何执行需要的备份恢复操作恢复目录可以存在于 ORACLE 数据库的计划中虽然恢复目录可以用来备份多个数据库,建议为恢复目录数据库创建一个单独的数据库恢复目录数据库不能使用恢复目录备份自身3.2. 建立恢复目录第一步,在目录数据库中创建恢复目录所用表空间:SQL> create tablespace rman_ts datafile "d:\oracle\oradata\rman\rman_ts.dbf" size 20M;表空间已创建 第二步,在目录数据库中创建RMAN 用户并授权:SQL> create user rman identified by rman default tablespace rman_ts temporary tablespace temp quota unlimited on rman_ts;用户已创建。
SQL> grant recovery_catalog_owner to rman;授权成功SQL> grant connect, resource to rman;授权成功第三步,在目录数据库中创建恢复目录C:\>rman catalog rman/rman恢复管理器:版本 8.1.6.0.0 - ProductionRMAN-06008:连接到恢复目录数据库RMAN-06428:未安装恢复目录RMAN>create catalog tablespace rman_ts;RMAN-06431:恢复目录已创建 注意:虽然使用 RMAN 不一定必需恢复目录,但是推荐使用因为恢复目录记载的信息大部分可以通过控制文件来记载,RMAN 在恢复数据库时使用这些信息不使用恢复目录将会对备份恢复操作有限制3.3. 使用恢复目录的优势可以存储脚本;记载较长时间的备份恢复操作;4. 启动 RMANRMAN 为交互式命令行处理界面,也可以从企业管理器中运行为了使用下面的实例,先检查环境符合:the target database is called "his" and has the same TNS alias user rman has been granted "recovery_catalog_owner "privileges目标数据库的连接用户为 internal 帐号,或者以其他 SYSDBA 类型帐号连接the recovery catalog database is called "rman" and has the same TNS aliasthe schema containing the recovery catalog is "rman" (same password)在使用 RMAN 前,设置NLS_DATE_FORMAT 和 NLS_LANG 环境变量,很多RMAN LIST 命令的输出结果是与日期时间相关的,这点在用户希望执行以时间为基准的恢复工作也很重要。
下例是环境变量的示范:NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK NLS_DATE_FORMAT=DD-MON-YYYY HH24:MI:SS为了保证 RMAN 使用时能连接恢复目录,恢复目录数据库必须打开,目标数据库至少要STARTED(unmount),否则 RMAN 会返回一个错误,目标数据库必须置于归档模式下4.1. 使用不带恢复目录的 RMAN设置目标数据库的 ORACLE_SID ,执行:% rman nocatalog RMAN> connect targetRMAN> connect target internal/
为了能注销数据库,需要获得数据库的标识码( DB_ID)和数据库键值(DB_KEY)其中连接目标数据库时将会获得 DB_IDC:\>rman target internal/oracle@his catalog rman/rman@rman恢复管理器:版本 8.1.6.0.0 - ProductionRMAN-06005:连接到目标数据库:HIS (DBID=3021445076)RMAN-06008:连接到恢复目录数据库其中 DBID=3021445076,利用DBID=3021445076 查询数据库键值码,连接到目标数据库,查询 db 表:SQL> select * from db;DB_KEY DB_ID CURR_DBINC_KEY 1 3021445076 2获得 DB_KEY=1,这样,该目标数据库 DB_KEY=1,DBID=3021445076,利用两个值使用DBMS_RCVCAT 工具包就可以注销数据库:SQL> execute dbms_rcvcat.unregisterdatabase(1,3021445076);PL/SQL 过程已成功完成至此,注销数据库操作完成。
6. 操作已有的备份6.1. 加入目录数据库数据库状态:恢复目录:打开目标数据库:加载或者打开如果存在 8.x 版本以前创建的备份数据想注册到目标数据库,可以采用如下手工方式加入到恢复目录中RMAN> catalog datafilecopy "/oracle/ /system01.dbf";使用如下命令显示恢复目录中包含的文件RMAN> list copy of database; 6.2.从目录数据库中删除 第一步:查看备份信息: RMAN>list back。












