OCP Oracle 10g管理(二):使用恢复管理器
2008-09-05 12:51:30 来源:WEB开发网目标:
使用Recovery Manager
使用RMAN BACKUP命令建立备份集和镜像
启用块变化跟踪
使用LIST和REPORT命令管理RMAN获得备份和镜像
RMAN命令
可以将多个RMAN命令组合在run和花括号{}中,组合成一个命令:这样能完成不同类型的备份,run块可以作为RMAN脚本存储,在执行重复的备份任务时可以调用它,排除了用户的某些互操作。
备份集和图像副本
备份集中的数据库文件必须以特定的RMAN格式存储,在这些文件可使用之前,必须用RESTORE命令处理。
备份集具有复用性:多个文件被读出,文件块相互交错在一起写在同一个备份集中。
RMAN>run{ allocatechannelc1typedisk; backdatabaseformat'db_%u_%d_%s'; backupformat'log_t%t_s%s_p%p' (archivelogall); } |
图像副本
数据库文件归档日志或控制文件的实际副本,不以RMAN特定格式存储,文件以原始格式存储。也不一定需要RMAN的restore命令处理。
由于不能被压缩,所需的空间要比备份集大的多。
RMAN>run{ Allocatechannelch1typedisk; Copy Datafile1to'd:oracle……system01.dbf'; Currentcontrolfileto'd:oracle……control01.ctl'; } |
10g里引进了新的命令:BACKUP AS COPY
RMAN>connecttarget RMAN>backupascopydatabase; |
压缩备份
10g的新功能,可以压缩备份而不管理数据文件的内容。只有备份集能压缩!压缩对象包括:数据库、表空间和数据文件备份集。
为RMAN生成压缩备份集
BACKUPASCOMPRESSED RMAN>backupascompressedbackupsetdatabase; |
配置压缩备份集的默认设备:
RMAN>configuredevicetypediskbackuptypetocompressedbackupset; |
压缩备份集大小大概是没压缩的五分之一。
完全备份和递增备份
前者为备份所有数据块,无论有无修改
后者则只在上一次递增备份后修改过的数据块
完全备份不能作为递增备份策略的一个部分来使用
递增备份的基线备份是0级备份
0级备份是在某一时间点上的完全备份
因为不需要复制所有的块,所以递增备份更快
两类递增备份:差异和累积
共同点:都是仅备份改变了的数据块
不同:差异备份:备份最近一次备份以后发生改变的数据块,默认的递增备份。
累积备份:备份本备份集上一级别的备份以后发生改变的数据块,需要更多的空间,恢复起来更快更容易。
完成差异递增备份
首次必须是0级备份
RMAN>backupincrementallevel0database; RMAN>backupincrementallevel1database; |
完成累积递增备份
RMAN>backupincrementallevel1cumulativedatabase; |
备份集的并行化
概念:多个备份集同时通过多个设备通道进行备份。
实现方法三种:1.为每个备份集分配一个通道2.configure设置parallenlism大于1的值3.手工通道分配
书上例子:
1.
Run{ Allocatechannelc1typedisk; Allocatechannelc1typedisk; Backup (datafile1,2,3channelc1) (archiveallchannelc2); } |
2.
Rman>configuredevicetypediskparallenlism3; Backup (datafile1,2) (datafile3,4) (archivelogall); |
备份选项
作用:控制文件名、备份性能和备份大小。
Format和tag:用于控制文件名
Rate :限制I/O带宽的使用
Duration :备份的时间,超过这个时间就自动停止备份,并作上不能使用的标志
Maxsetsize:限制备份集,注意:假如要备份的数据文件大于这个参数,备份失败
Maxpiecesize:限制备份块的大小
备份文件名的命名的默认是%u,是由系统生成的唯一文件名。
命名的例子:
1.format:
Rman>backuptablespaceusersformat='user_bs_%d%p%s'; Rman>backupascopytablespaceusersformat'd:oracle……users_%d%p%s'; |
2.tag:
Rman>backupdatabasetagweekly_backup; |
RATE的例子:
Rman>configure channel device type disk rate 5m;------备份或恢复时,每秒只读5m
限制备份集和备份块大小的例子:
Rman>configurechanneldevicetupediskmaxsetsize=10G; Rman>backupdatabasemaxsetsize=10G; Rman>configurechanneldevicetypediskmaxpiecesize=2G; |
启动和关闭块变化跟踪
块变化跟踪10g的新功能:记录上次备份以来变化了的块,存储在块变化跟踪文件里。好处:提高性能,不用扫描整个数据文件。
V$block_change_tracking
默认是停用状态
启动:
Alterdatabaseenableblockchangetrackingusingfile'd:oracle……ora_block_track.log'; |
关闭:
Alterdatabasedisableblockchangetracking; |
10g引进了一个新的系统进程负责将数据写入块变化跟踪文件:CTRW
用EM管理备份
登陆》maintenance》manage current backups
监视RMAN备份
有关RMAN动态视图,可以查看在RMAN报告功能(如LIST、REPORT、SHOW命令)里没有的信息
V$rman_output进行中的RMAN消息
V$rman_status标示完成的RMAN成功还是失败
V$process当前活动进程
V$recover_file要求恢复的数据文件
V$session活动会话
V$session_longops备份和恢复过程的报告
V$session_wait会话等待事件
V$backup_sync_io当I/O同步于备份过程时的行信息
V$backup_async_io当I/O异步于备份过程时的行信息
Db_key:一个实体是目标数据库的唯一备份,它由唯一的DB_KEY值标识。
每次数据库用resetlogs或者backup controlfile打开,就生成一个新的实体
例子:
获取目标库的dbid
Selectdbidfromv$database; |
目录库里执行:
以Rman用户登陆到目录数据库,
Select db_key from rc_database where dbid='上一条语句查到的dbid';
假如存在多个incarnation,下面语句能查询最当前的incarnation:
Selectbs_key,backup_type,completion_timefromrc_database_incarnationa,rc_backup_setbwherea.db_key=b.db_keyanda.db_key=b.db_keyanda.current_incarnation='yes'; |
使用LIST命令
查询rman资料档案并获取backup命令、copy命令和数据库实体的有关数据。
数据库实体(incarnation)是物理数据库的一个单独版本。
LIST命令输出显示change、crosscheck和delete命令已经使用过的文件。
可跟选项:by backup/by file,summary/verbose(精简/扩张输出)
例子:
Rman>listbackupsetbybackupsummary; Rman>listbackupsetbybackupverbose; Rman>listbackupsetbyfile; |
也可通过查询v$backup_files和rc_backup_files列出备份
使用REPORT命令
查询哪些文件要备份、哪些不需要备份、数据库物理模式等信息。
可查询对文件是否完成了不可恢复的操作
Report命令形式:
Report need backup哪些文件要备份
Report obsolete哪些不需要备份
Report schema数据库物理模式
使用RMAN的作业示例
启用archivelog模式
Startupnomount; Alterdatabasearchivelog; Alterdatabaseopen; |
使用RMAN备份归档日志
Run{ Alloatechannelc1typedisk; Alloatechannelc2typedisk; Backupdatabase; Backup(archivelogall); } |
制定备份工作计划表
备份命令run块可以存储在文件中,如DAILY_BACKUP.RCV。然后该文件可以被放入命令行序列,这在UNIX中被成为CRON,在windows操作系统中被成为AT。
Rmantargetsys/xxx@target_dbcatalogrman_user/xxxx@catalog_db@daily_backup.rcv |
格外收获:change archivelog all crosscheck
当有归档日志被手动删除的时候,执行这句,使rman不会去找那些删除了的归档日志备份。
- ››oracle 恢复误删除的表和误更新的表
- ››Oracle分页查询排序数据重复问题
- ››Oracle创建dblink报错:ORA-01017、ORA-02063解决
- ››Oracle 提高SQL执行效率的方法
- ››Oracle 动态查询,EXECUTE IMMEDIATE select into...
- ››Oracle 11g必须开启的服务及服务详细介绍
- ››oracle性能34条优化技巧
- ››oracle数据库生成随机数的函数
- ››Oracle 数据库表空间容量调整脚本
- ››oracle单库彻底删除干净的方法
- ››Oracle创建表空间、创建用户以及授权、查看权限
- ››oracle 中 UPDATE nowait 的使用方法
赞助商链接