RMAN 初学者指南
- 格式:doc
- 大小:41.00 KB
- 文档页数:6
RMAN 基础1.O racle 体系结构1.1Oracle 进程●PMON : 进程监视进程(process monitor process)●SMON : 系统监视进程(system monitor process)●DBWn : 数据库写入器进程(database writer process),将信息从SGA 的数据库缓冲存储区中写入到数据库数据文件中。
●LGWR : 日志写入器进程(log writer process),将生成的重做信息从日志缓冲区写入到数据库联机重做日志中。
●CKPT : 在检查点操作期间,CKPT 进程会通知DBWn 检查此点。
1.2Oracle 内存和RMANOracle 系统全局区域(SGA)●数据库缓冲存储区(database buffer cache)●共享池(shared pool)●重做日志缓冲区(重做log buffer)●large 池(large pool)●Java 池(Java pool)1.3Oracle 数据库Oracle 物理结构●数据库数据文件数据库的数据库存储介质,这些文件与表空间相联系。
主要状态有ONLINE –正常,OFFLINE –非正常。
●联机重做日志记录数据库中发生的每个原子更改。
重做日志中的记录被称为更改矢量(change vector),以SCN 顺序来代表一个原子数据库更改。
●归档的重做日志Oracle 结束写入一个联机重做日志并开始写入另一个联机重做日志时,会发生日志切换(log switch)。
如果数据库处于ARCHIVELOG 模式下并且正在运行ARCH 进程,日志切换的结果是生成联机重做日志的一个副本,这个联机重做日志副本被称为归档的重做日志。
●数据库控制文件控制文件含有许多数据库信息,如当前SCN 、数据库数据文件状态以及数据库状态。
●Oracle 表空间1.4ARCHIVELOG 模式与NOARCHIVELOG 模式1.5Oracle 备份与恢复入门1.5.1 逻辑备份与恢复Oracle exp 实用程序用于逻辑备份,imp 实用程序则负责恢复这些逻辑备份。
OracleRMAN快速进门指南前言1.什么是RMANRMAN能够用来备份和复原数据库文件、回档日志和操纵文件。
它也能够用来执行完全或不完全的数据库恢复。
注重:RMAN不能用于备份初始化参数文件和口令文件。
RMAN启动数据库上的Oracle效劳器进程来进行备份或复原。
备份、复原、恢复是由这些进程驱动的。
本文重点讨论由OEM的BackupmanagerGUI来操纵RMAN,也能够采纳纯足本的方式来操纵RMAN,但在本文章里不作讨论。
2.名词解释2.1.目标数据库:需要备份的数据2.2.恢复名目数据库:用于存放目标数据库备份信息的数据库2.3.恢复名目:恢复名目是由RMAN使用、维护的一些表格,RMAN利用恢复名目记载的信息往判定如何执行需要的备份恢复操作。
恢复名目数据库不能使用恢复名目备份自身。
3.流程操作方法4.1用户授权在控件面板治理工具本地平安策略本地策略用户权利指派作为批处理作业登录选项中增加〞administrator〞用户能够利用Oracle的ConfigurationnAssistant工具创立一个喊RMAN的数据作业恢复名目的数据库。
4.2建立恢复名目表空间和用户第一步,在名目数据库中创立恢复名目所用表空间:SQL>createtablespacerman_tsdatafile'd:\oracle\oradata\rman\rman_t s.dbf'size20Mreuseautoextendonnext20Mmaxsize60M;表空间已创立。
第二步,在名目数据库中创立RMAN用户并授权:SQL>createuserrmanidentifiedbyrmandefaulttablespacerman_tstemp orarytablespacetempquotaunlimitedonrman_ts;用户已创立。
SQL>grantrecovery_catalog_owner,connect,resourcetorman;授权成功。
Rman基础入门1R m a n基础知识Rman可以连接本地数据库,也可以连接远程数据库。
连接远程数据库时需要数据库启动,并保证监听配置正常。
1.1连接本地数据库1.1.1在不使用c a t a l o g时:rman target / #登录进入rman或RmanRMAN>connect target /若是本地有多个数据库实例启动,需要设置oracle_sidSet oracle_sid=oracleSID #Windows平台Export oracle_sid=oracleSID#Linux平台1.1.2在使用c a t a l o g时connect catalog rman/rman@rmandb; #catalog库名视现状而定1.2连接远程数据库C:\Documents and Settings\ytao007>rman target sys/oracle@ycydb或rmanRMAN> connect target sys/oracle@ycydb1.3记录r m a n日志在启动rman时可以指定日志输出,将rman所有的执行情况记录在日志文件中,而不显示在屏幕上:C:\Documents and Settings\ytao007>rman target sys/oracle@ycydb log d:\rman_log.txtrman会将执行的结果直接输出到指定的d:\rman_log.txt文件。
有两点需要注意:Ø此时指定目录需要绝对路径,如果路径指定错误或不存在,rman不会给出提示,也不会自动建立目录。
Ø如果连接的是远程数据库,日志会记录在本地而不是远程数据库服务器。
1.4启动、关闭数据库在RMAN中执行关闭和启动数据库的命令与SQL环境下一样。
简单列举如下:RMAN> startup nomount#启动数据库到nomount状态RMAN> alter database mount #将数据库启动到mount状态RMAN> alter database open #打开数据库RMAN> alter database open resetlogs#以resetlogs方式打开数据库,一般用在恢复控制文件以后。
第一讲、FULL backupTarget databseRecovery ctalog databseAuxiliabry database (Auxi 助动词)第一讲target database检查archivelog模式:sql>archive log list2)select archiver from v$instance;3)select log_mode from v$database;检查rman命令的有效:保证¥PAT顺序Rman or rman nocatalogConnect target /List backupset(查看已备份的信息),report shcema, list copy等Backup database(全备份),产生.bkp的备份文件第二讲、增量备份查看rman默认参数:show all;Backup incremental level=0 database;(0级增量备份)Backup incremental level 1 database;(1级增量备份)查看.bkp二进制文件strings controlo1.ctl可以看到所有nocatalog备份的信息注:Rman默认创建的增量备份是Differential方式,如果要建立Cumulative方式(累积增量)的增量备份,在执行BACKUP命令时显式指定即可,例如:RMAN> BACKUP INCREMENTAL LEVEL=2 CUMULATIVE DATABASE;***只有rman能进行增量备份,rman能在noarchivelog下进行增量备份,(前提是:mount 状态),rman也能在数据库关闭情况下进行增量备份(前提:Recovery ctalog)第三讲、备份归档/控制/表空间/数据文件备份archivelog: backup database plus archivelog delete input;(同时备份数据库)备份controlfiel: backup current controlfile;Backup database incude current controlfile;Configure conctrolfile autobacup on;备份表空间:backup tablespace wspy;备份指定数据文件:select file_name,file_id,tablespace_name from dba_data_files backup datafile n;第四讲、批命令批命令: run{Allocate channel cha1 type disk;BackupFormat “/u01/rmanbak/full_%t.bkp”Tag full-backupDatabase;Release channel cha1;}第五讲、自动备份自动备份=备份脚本+ crontabBakl0 (baklevel0)Exp: run{Allocate channel cha1 type disk;BackupIncremental level 0Format “/u01/rmanbak/inc_%U_%T.bkp”Tag inc-backupDatabase;Release channel cha1;}Bakl1Bakl2Rman target / msglog=/u01/rmanbak/inc0.log cmdfile= /u01/rmanbak/scripts/bakl0; Crontab –e用户名: crontab –e -u oracle (root用户执行)编辑内容重新启动crontab:[root] service crond restart (crond是后台进程)附:RUN {CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;CONFIGURE CONTROLFILE AUTOBACKUP ON;CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO 'd:/backup/%F';ALLOCATE CHANNEL CH1 DEVICE TYPE DISK Format 'd:/backup/%U';BACKUP DATABASE SKIP INACCESSIBLE FILESPERSET 10PLUS ARCHIVELOG FILESPERSET 20DELETE ALL INPUT;(not input all)RELEASE CHANNEL CH1;}ALLOCATE CHANNEL FOR MAINTENANCE DEVICE TYPE DISK;CROSSCHECK BACKUPSET;DELETE NOPROMPT OBSOLETE;(无提示YES or NO)run{configure retention policy to recovery window of 7 days;configure controlfile autobackup on;configure controlfile autobackup format for device type disk to '/backup/rmanbak/%F';allocate channel ch1 type disk;backupincremental level 0format "/backup/rmanbak/inc_%U_%T.bak"tag inc_backupdatabase;release channel ch1;}allocate channel for maintenance device type disk;crosscheck backupset;delete noprompt obsolete;第六讲、RMAN spfile恢复口令文件丢失:orapwd file=orapwSID password=pass1234 entries=5 (允许5个dba用户) Spfile丢失:dbid,(rman时,可以看到dbid,那时候需要记下来,以备恢复用)1. startup nomout(因为丢失spfile,会报错)2.set dbid 40104650623.restore spfile from autobackup / restore spfile from (具体的那个备份文件)4.shutdown immediate5,startup (若启动不了,需再set dbid 4010465062)****:192.168.1.64 DBID: 844880894192.168.0.88 DBID: 4010465062第七讲、控制/重做恢复控制文件1.startup nomount2.restore controlfile from autobackup3.alter database mount(启动不到open状态)4.recover database;5.alter database open resetlogs(日志的sequece采用新的,因此后面需要full backup一次) 重做日志文件1.shutdown immediate;2.startup mount3.alter database open resetlogs;(不成功,因为resetlogs 只能在部分恢复后使用。
OracleRMAN快速入门指南--(5)11. 脚本创建或者取代脚本:RMAN> create script alloc_disk {2> # Allocates one disk3> allocate channel dev1 type disk;4> setlimit channel dev1 kbytes 2097150 maxopenfiles 32 readrate 200;5> }RMAN> replace script rel_disk {2> # releases disk3> release channel dev1;5> }RMAN> replace script backup_db_full {2> # Performs a complete backup3> execute script alloc_disk;4> backup5> .....<backup commands here>6> execute script rel_disk;7> }前两个脚本分别用来分配和回收通道。
alloc_disk 脚本还额外指定了备份片的最大兆字节数,备份时可以同时打开的输入文件的最大数目,以及每秒钟读每个输入文件的数据缓冲区的最大数目。
第三个脚本调用先前存储的两个脚本进行数据库备份。
运行存储脚本的示范:RMAN> run {2> execute script backup_db_full;3> }注意:存储的脚本必须在{ .... execute <script>; ....}命令中调用。
12. Corruption detectionRMAN可以备份包含损坏数据块的数据文件,查询视图V$BACK_CORRUPTION和V$COPY_CORRUPTION可以获得有关坏数据的信息。
Oracle9i恢复管理器(RMAN)什么是RM AN恢复管理器(Recovery Manager,RM AN)是一个与操作系统无关的数据库备份工具,可以跨越不同的操作系统进行数据库备份。
RMAN必须运行在一个数据库上。
与常用的数据库备份、逻辑数据库备份不同,RMAN使用数据库对数据库进行备份的原理。
在RMAN屮,可以使用COPY命令将数据库文件复制到磁盘或磁带上,也可以用BACKUP命令对整个数据库、一个指定的表空间、控制文件、LI志文件迹行备份。
什么是恢复H录恢复H录(Recovery Catalog)是建立在RMAN数据库上的一种存储对象,由RMAN 自动维护。
通过恢复目录,RMAN可以从目录数据库控制文件屮自动获得信息。
创建恢复目录:1、创建恢复目录数据库(详见手动创建数据库)系统表空间SYSTEM: 300MRBS表空间:10M临时表空间:10M口志文件设置:3个日志文件组,每组两个口志成员,大小10MCatalog表空间:表空间名为cattbs,大小为50M2、创建RMAN用户SQL>Create user rman identifiey by rman default tablespace cattbs temporary tablespace temp;SQL>Grant connect,resource to rman;SQL>Grant recovery_catalog_owner to rman;3、创建恢复目录$rman catalog rman/rman@「manRMAN>create catalog;连接到H标数据库1、连接到目录数据库无恢复目录Srman no catalog RMAN>connect target sys/passwd @网络连接串有恢复目录$rman catalog rman/rman @ rman RMAN>connect target sys/passwd@ 网络连接串2、注册与注销数据库注册数据库RMAN>register database;注销数据库Ssqlplus nnan/rman@imanSQL>select * from db; #杳看已注册数据库的db_key,db_idSQL>exec dbms_rcvcat.un「egiste「database(db_key,db_id);3、将目标数据库与恢复目录同步RMAN>resync catalog;除手工同步外可以在参数文件屮增加参数CONTROL_FILE_RECORD_KEEP_TIME设置同步时问,该参数默认为7天。
一、oracle数据库操作1、进入oracle 数据库方法1-1:方法1-2:2、修改数据库的归档模式2-1:查看状态,为归档模式(自动:启用)2-2:修改为不归档模式(默认是不归档)3、表空间3-1:创建表空间3-2:创建用户并指定表空间3-3:给用户分配角色4、sql使用4-1:查看表空间的剩余空间4-2:查看表空间大小4-3.1:重置表空间大小4-3.2:添加数据文件以增大表空间4-4.1:创建表4-4.2:查看该用户下的表4-4.3:向新建表插入数据(两种方法)4-4.4:把ccc表中的内容导入aaa表(前提两个表的列名、类型相同)4-4.5:修改表中的某一列的属性4-4.6:向表中插入一列4-4.7:删除表中一列4-4.8:重命表名5-1.1:查看归档日志的目录5-1.2:查看online日志和归档状态二、RMAN操作1、进入rman,(双节点时要先设置SID:set oralce_sid=xx)方法1-1:方法1-2:2、rman的基础操作2-1.1:整库备份(前提为归档模式),piece handle= 为备份路径(下图)默认路径为$ORACLE_BASE/flash_recovery_area/ORACLE/backupset/2-1.2: 可以手动指定路径(前提指定目录需存在)2-2:备份指定的表空间2-3.1: 列出有关database的备份信息(分别为备份集12、14和16)2-3.2.1:删除备份集2-3.2.2:报错:use CROSSCHECK command to fix status,则2-4.1: 分配备份时的平行通道(默认为1条)2-4.2:创建通道“1”并限制备份片大小为20M(参数中会显示)2-4.3:删除通道2-4.4: 查看RMAN配置参数2-5.1: 查看数据文件信息(名字,ID,所属表空间)2-5.2:备份数据文件(备份时要指定ID号:2-5.1中的FILE_ID)2-6.1:备份控制文件2-6.2:查看备份控制文件2-7.1:备份归档日志文件2-7.2:查看备份归档日志文件2-8.1:建立0级别的数据库增量备份(即全备,默认是differential方式(差异备份))2-8.2:也可以指定cumulative方式(累积备份)2-9:配置基于备份的保存策略(基于时间:恢复数据库到第N天,即保存可以恢复数据库到N天前的备份)。
oracle学习系列之Rman学习学习rman的大纲:1.进入rman2.rman基础命令3.rman基本备份命令4.rman其他命令5.rman实战6.rman恢复1.进入rman(1)进入本地数据库[oracle@oracle-n1 ~]$ rman target /(2)进入远程数据库[oracle@oracle-n1 ~]$ rman target zsd/zsd@zsddb_1.9 (3)使用日志功能[oracle@oracle-n1 logs]$ rman target / msglog/data/backup/logs/full_dbbackup_`date +%y%m%d`.log2.rman基础命令(1)启动关闭数据库RMAN> shutdown immediateRMAN> startup(2)执行操作系统命令RMAN> host(3)执行SQL语句RMAN> SQL 'ALTER SYSTEM SWITCH LOGFILE';需要注意的一点是,rman中的sql环境不能执行SELECT语句,就算执行不报错,也不出结果。
RMAN> SQL 'select * from member.test';sql statement: select * from member.test (可以看出没有任何数据显示)(4)查看默认RMAN配置RMAN>show allCONFIGURE RETENTION POLICY TO REDUNDANCY 1; #default 设置的保留策略冗余度为1CONFIGURE BACKUP OPTIMIZATION OFF; #default 备份优化为offCONFIGURE DEFAULT DEVICE TYPE TO DISK; #default 默认的配置通道为磁盘,如果是sbt就为磁带设备 CONFIGURE CONTROLFILE AUTOBACKUP OFF; #default 默认配置controlfile不自动备份CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default controlfile自动备份的位置CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default 备份类型为backupset,备份类型的并行度为1CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default 数据文件备份的拷贝为1CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default 归档日志文件备份的拷贝为1CONFIGURE MAXSETSIZE TO UNLIMITED; #default 备份集大小不设上限CONFIGURE ENCRYPTION FOR DATABASE OFF; #default 数据库加密技术为offCONFIGURE ENCRYPTION ALGORITHM 'AES128'; #default 数据库加密算法'AES128'CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; #default 归档日志的删除策略为NONECONFIGURE SNAPSHOT CONTROLFILE NAME TO'/data/ora11g/product/11.2.0/db_1/dbs/snapcf_zsddb.f'; # default controlfile的快照命名为'/data/ora11g/product/11.2.0/db_1/dbs/snapcf_zsddb.f'(5)修改默认RMAN参数设置#configure retention policy to recovery window of 7 days;#configure controlfile autobackup on;#configure controlfile autobackup format for device type disk to '/data/backup/rman/con_%F';3.rman基本备份命令(1)对数据库进行备份* 备份数据库RMAN>BACKUP DATABASE;注意:也可以指定备份的位置:RMAN> BACKUP DATABASE FORMAT '/data/backup/rman/bak_%U';* list命令查看刚刚创建的备份信息:RMAN>list backup of database;(2)对表空间进行备份* 备份表空间RMAN>backup tablespace HDMEMBER;* 通过LIST BACKUP 查看一下备份RMAN>list backup of TABLESPACE HDMEMBER;(3)备份指定数据文件* 查看对应的数据文件及其序号select file_name,file_id,tablespace_name from dba_data_files* 再通过BACKUP DATAFILE备份指定序号的数据文件RMAN> BACKUP DATAFILE n;* 通过list backup查看备份RMAN> LIST BACKUP OF DATAFILE n;(4)备份控制文件* 第一种,做任何备份的时候,自动备份控制文件RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;* 第二种,手动执行控制文件备份RMAN> BACKUP CURRENT CONTROLFILE;* 第三种,执行BACKUP时指定INCLUDE CURRENT CONTROLFILE参数 RMAN> BACKUP DATABASE INCLUDE CURRENT CONTROLFILE;* 查看备份的控制文件RMAN> LIST BACKUP OF CONTROLFILE;* 使用alter database backup controlfile备份控制文件SQL> alter database backup controlfile to trace;或者SQL> alter database backup controlfile to trace as'/data/controlfile1.cof'; (这样你可以查看controlfile的构成)(5)备份归档日志文件* 利用BACKUP ARCHIVELOG命令备份RMAN> BACKUP ARCHIVELOG ALL;* BACKUP过程中利用PLUS ARCHIVELOG参数备份RMAN> BACKUP DATABASE PLUS ARCHIVELOG;1>.运行ALTER SYSTEM ARCHIVE LOG CURRENT语句对当前redolog进行归档。
Rman操作简单分析数据库教程-电脑资料Rman操作简单分析电脑资料《Rman操作简单分析数据库教程》(https://www.)。
08.00.04到09.02.00接下来rman 会查询V$database ,从中获取name ,resetlogs_time ,resetlogs_change# ,dbid 等信息。
下面这个比较重要, x$kcccp( Kernel Cache Checkpoint Progress)中获取检查点记录:类似如下的SQL:select nvl(max(cpmid),0) from x$kcccp where cpsta=2这些操作完成后,rman 从v$option 中获取相关信息,包括:'Parallel backup and recovery','Incremental backup and recovery','Duplexed backups','Block Media Recovery','Point-in-time tablespace recovery',通过这些来判断数据库是否具有这些功能。
然后Log中显示连接到目标数据库。
分析过程并不复杂,不过在涉及到深入的命令的时候会产生大量的Log,要有一定的耐心才能继续下去。
在rman 出现故障的时候,设置Debug模式进行分析是一种非常有效的办法。
如果可能得话,以后的文章中我会举几个例子来说明。
参考信息dbmsbkrs.sql 和 prvtbkrs.plb 文件说明注释(可在你的系统$ORACLE_HOME/rdbms/admin/中找到.)《Oracle 9i RMAN备份与恢复技术》清华出版社 2.12节从开始到结束的rman进程p41Steve Adams's Q+A .au/q+a/0102/06135327.htm。
RMAN 初学者指南RMAN 初学者指南这篇文章是去年写的了,最初发表在的oracle论坛里,收录在旧版文集中,可能很多没有看到,总有人写信要,今天乘改版之际就把它单独拿出来了。
RMAN(Recovery Manager)是DBA的一个重要工具,用于备份、还原和恢复oracle 数据库,前一段时间有网友找我要,可惜没时间,趁这两天出差在外没什么事,就写了一下,供初学的朋友参考。
本文将介绍RMAN 的基本操作,更多的信息请参考《Oracle8i Backup & Recovery Guide》及RMAN 手册,或者是OCP Student Guide M09096《Backup and Recovery Workshop》Volume 2,也可以通过gototop@和我联系。
Oracle 自带的例子参考$ORACLE_HOME/rdbms/demo 目录下的*.rcv脚本。
一、RMAN 简介RMAN 可以用来备份和恢复数据库文件、归档日志和控制文件,也可以用来执行完全或不完全的数据库恢复。
RMAN有三种不同的用户接口:COMMAND LINE方式、GUI 方式(集成在OEM 中的备份管理器)、API 方式(用于集成到第三方的备份软件中)。
具有如下特点:1)功能类似物理备份,但比物理备份强大N倍,从下面的特点可以看到;2)可以压缩空块;3)可以在块水平上实现增量;4)可以把备份的输出打包成备份集,也可以按固定大小分割备份集;5)备份与恢复的过程可以自动管理;6)可以使用脚本(存在Recovery catalog 中)7)可以做坏块监测二、相关术语解释1)Backup sets 备份集备份集顾名思义就是一次备份的集合,它包含本次备份的所有备份片,以oracle 专有的格式保存。
一个备份集根据备份的类型不同,可能构成一个完全备份或增量备份。
2)Backup pieces 备份片一个备份集由若干个备份片组成。
每个备份片是一个单独的输出文件。
一个备份片的大小是有限制的;如果没有大小的限制,备份集就只由一个备份片构成。
备份片的大小不能大于你的文件系统所支持的文件长度的最大值。
3)Image copies 映像备份映像备份不压缩、不打包、直接COPY 独立文件(数据文件、归档日志、控制文件),类似操作系统级的文件备份。
而且只能COPY 到磁盘,不能到磁带。
可以作为增量备份的0级,一般用来备份控制文件。
4)Full backup 全备份全备份是指对数据文件中使用过的数据块进行备份,没有使用过的数据块是不做备份的,也就是说,RMAN 进行备份是进行压缩的。
5)Incremental backup 增量备份增量备份是指备份数据文件中自从上一次同一级别的或更低级别的备份以来被修改过的数据块。
与完全备份相同,增量备份也进行压缩。
增量备份虽然概念很好,备份也很简单,但恢复起来却是另外一回事,不仅麻烦而且容易出错,所以实际中越来越少使用,到了Oracle 9i已经建议不再使用,以后版本会逐渐取消对增量备份的支持。
6)Recovery catalog 恢复目录恢复目录用于记录RMAN 使用过程中的控制信息,恢复目录应该经常被同步(这在后面会讲到)。
尽管我们可以使用nocatalog 方式来使用RMAN,此时控制信息记录在目标数据库的控制文件中,但这样毕竟不安全,因为一旦目标数据库的控制文件损坏就意味着所有的RMAN 备份失效。
同样的道理恢复目录应该建立在另外一个数据库中,在下面的例子中我们称作“目录数据库”。
三、创建恢复目录1、在目录数据库中创建恢复目录所用表空间SQL> create tablespace rmants datafile'c:\oracle\oradata\cc\rmants.ora' size 20M ;表空间已创建。
2、在目录数据库中创建RMAN 用户并授权SQL> create user rman identified by rman default tablespace rmants temporary tablespace temp quotaunlimited on rmants;用户已创建SQL> grant recovery_catalog_owner to rman ;授权成功。
3、在目录数据库中创建恢复目录C:\>rman catalog rman/rman恢复管理器:版本8.1.7.0.0 - ProductionRMAN-06008:连接到恢复目录数据库RMAN-06428:未安装恢复目录RMAN>create catalog tablespace rmants;RMAN-06431:恢复目录已创建4、注册目标数据库到恢复目录注意哦,这里我的目标数据库使用的服务名称是rman,意思为要使用RMAN 进行备份的数据库,而目录数据库使用的服务名称是CC。
C:\>rman target sys/sys@rman恢复管理器:版本8.1.7.0.0 - ProductionRMAN-06005:连接到目标数据库:RMAN (DBID=1303772234)RMAN>connect catalog rman/rman@ccRMAN-06008:连接到恢复目录数据库RMAN>register database;RMAN-03022:正在编译命令:registerRMAN-03023:正在执行命令:registerRMAN-08006:注册在恢复目录中的数据库RMAN-03023:正在执行命令:full resyncRMAN-08002:正在启动全部恢复目录的resyncRMAN-08004:完成全部resync好了,到此为止前面的准备工作都做好了,下面就可以使用RMAN 来进行备份和恢复了。
四、使用RMAN下面通过具体的例子来说明RMAN 的使用,这里会涉及到除了恢复以外的所有RMAN 操作,关于使用RMAN 进行恢复的内容请参考我以前写的另外一篇文章:RMAN 恢复实践。
1、备份整个数据库RMAN>run {2> allocate channel c1 type disk;3> backup datab ase format 'e:\dbbackup\2db.dmp';4> }2、复制数据文件RMAN>run {2> allocate channel c1 type disk;3> copy datafile 'c:\oracle\oradata\rman\users01.dbf' to 'e:\dbbackup\u.dbf' tag=u1215;4> }3、查看备份及复制的信息RMAN>list backup;RMAN-03022:正在编译命令:list备份集列表关键字Recid 标记LV 集合标记集合计数完成时间------- ---------- ---------- -- ---------- ---------- ----------------------216 1 417347013 0 417346992 1 26-12 月-00备份段列表关键字Pc# Cp# 状态完成时间段名------- --- --- ----------- ---------------------- ------------------------217 1 1 A V AILABLE 26-12 月-00 E:\DBBACKUP\2DB.DMP数据文件包括列表文件名称LV 类型检查点SCN 检查点时间---- ------------------------------------- -- ---- ---------- -------------1 C:\ORACLE\ORADA TA\RMAN\SYSTEM01.DBF 0 Full 33224 26-12 月-002 C:\ORACLE\ORADA TA\RMAN\RBS01.DBF 0 Full 33224 26-12 月-003 C:\ORACLE\ORADA TA\RMAN\USERS01.DBF 0 Full 33224 26-12 月-004 C:\ORACLE\ORADA TA\RMAN\TEMP01.DBF 0 Full 33224 26-12 月-005 C:\ORACLE\ORADA TA\RMAN\TOOLS01.DBF 0 Full 33224 26-12 月-006 C:\ORACLE\ORADA TA\RMAN\INDX01.DBF 0 Full 33224 26-12 月-00RMAN>list copy of datafile 'c:\oracle\oradata\rman\users01.dbf';RMAN-03022:正在编译命令:list数据文件备份列表关键字文件状态完成时间检查点SCN 检查点时间名称------- ---- - --------------- ---------- --------------- ------226 3 A 26-12 月-00 33226 26-12 月-00 E:\DBBACKUP\U.DBF4、在备份是设置相关参数format --文件输出格式,%d--database name,%s--backup sets sequence number,%p--backup pieces sequence numberfilesperset --每个备份集中所包括的文件数更多参数请参考本文开始时列出的书。
RMAN>run {2> allocate channel c1 type disk;3> set limit channel c1 kbytes 8000;4> backup5> format 'e:\dbbackup\db_%d_%s_%p.bck'6> (database filesperset=2 );7> }RMAN-03022:正在编译命令:allocateRMAN-03023:正在执行命令:allocateRMAN-08030:分配的通道:c1RMAN-08500:通道c1:sid=9 devtype=DISKRMAN-03022:正在编译命令:set limitRMAN-03023:正在执行命令:set limitRMAN-03022:正在编译命令:backupRMAN-03023:正在执行命令:backupRMAN-08008:通道c1:正在启动full 数据文件备份集RMAN-08502:set_count=6 set_stamp=417351064 creation_time=26-12 月-00RMAN-08010:通道c1:正在指定备份集中的数据文件RMAN-08522:输入数据文件fno=00003name=C:\ORACLE\ORADA TA\RMAN\USERS01.DBFRMAN-08522:输入数据文件fno=00005name=C:\ORACLE\ORADA TA\RMAN\TOOLS01.DBFRMAN-08013:通道c1:已创建1 段RMAN-08503:段handle=E:\DBBACKUP\DB_RMAN_6_1.BCK comment=NONERMAN-08525:备份集完成,经过时间:00:00:03RMAN-08008:通道c1:正在启动full 数据文件备份集RMAN-08502:set_count=7 set_stamp=417351067 creation_time=26-12 月-00RMAN-08010:通道c1:正在指定备份集中的数据文件RMAN-08522:输入数据文件fno=00002 name=C:\ORACLE\ORADA TA\RMAN\RBS01.DBF RMAN-08522:输入数据文件fno=00006 name=C:\ORACLE\ORADA TA\RMAN\INDX01.DBF RMAN-08013:通道c1:已创建1 段RMAN-08503:段handle=E:\DBBACKUP\DB_RMAN_7_1.BCK comment=NONERMAN-08525:备份集完成,经过时间:00:00:04RMAN-08008:通道c1:正在启动full 数据文件备份集RMAN-08502:set_count=8 set_stamp=417351071 creation_time=26-12 月-00RMAN-08010:通道c1:正在指定备份集中的数据文件RMAN-08522:输入数据文件fno=00001name=C:\ORACLE\ORADA TA\RMAN\SYSTEM01.DBFRMAN-08011:备份集中包括当前控制文件RMAN-08013:通道c1:已创建1 段RMAN-08503:段handle=E:\DBBACKUP\DB_RMAN_8_1.BCK comment=NONERMAN-08013:通道c1:已创建2 段RMAN-08503:段handle=E:\DBBACKUP\DB_RMAN_8_2.BCK comment=NONERMAN-08013:通道c1:已创建3 段RMAN-08503:段handle=E:\DBBACKUP\DB_RMAN_8_3.BCK comment=NONERMAN-08013:通道c1:已创建4 段RMAN-08503:段handle=E:\DBBACKUP\DB_RMAN_8_4.BCK comment=NONERMAN-08013:通道c1:已创建5 段RMAN-08503:段handle=E:\DBBACKUP\DB_RMAN_8_5.BCK comment=NONERMAN-08013:通道c1:已创建6 段RMAN-08503:段handle=E:\DBBACKUP\DB_RMAN_8_6.BCK comment=NONERMAN-08013:通道c1:已创建7 段RMAN-08503:段handle=E:\DBBACKUP\DB_RMAN_8_7.BCK comment=NONERMAN-08525:备份集完成,经过时间:00:00:19.... ....RMAN-08008:通道c1:正在启动full 数据文件备份集RMAN-08502:set_count=9 set_stamp=417351090 creation_time=26-12 月-00RMAN-08010:通道c1:正在指定备份集中的数据文件RMAN-08522:输入数据文件fno=00004 name=C:\ORACLE\ORADA TA\RMAN\TEMP01.DBF RMAN-08013:通道c1:已创建1 段RMAN-08503:段handle=E:\DBBACKUP\DB_RMAN_9_1.BCK comment=NONERMAN-08525:备份集完成,经过时间:00:00:07RMAN-03023:正在执行命令:partial resyncRMAN-08003:启动部分恢复目录的resyncRMAN-08005:完成部分resyncRMAN-08031:释放的通道:c15、使用脚本功能使用脚本的目的在于方便我们操作中的方便,操作上和存储过程相似。