Chinaunix首页 | 论坛 | 博客
  • 博客访问: 442639
  • 博文数量: 35
  • 博客积分: 2000
  • 博客等级: 大尉
  • 技术积分: 444
  • 用 户 组: 普通用户
  • 注册时间: 2009-01-02 21:42
文章分类
文章存档

2009年(35)

我的朋友

分类: Oracle

2009-09-08 15:47:54

Oracle Rman学习笔记

附件有截图

文件: Oracle Rman学习笔记.pdf
大小: 2678KB
下载: 下载


包含的内容主要是rman的备份,备份方案以及自动备份,以及rman恢复
一、Linux自己有一个Rman程序位于/usr/X11R6/bin/rman ,但是我们应该使用的是oracle德rman,所以应该在oracle用户的.bash_profile文件里面将$ORACLE_HOME/BIN放在$PATH的前面。或者在使用Rman的时候用全路径。使用which rman查看使用的是哪一个rman。
 
要使用rman备份,oracle的运行模式必须是Archive mode,使用如下图所示的方式将数据库已Archive mode启动,
 
然后alter database open
使用rman target / 连接到本地的数据库, 使用list backupset 可以查看以前的备份情况.
直接敲入backup database即可使用默认的设置对数据可进行一次完全的备份.
 
初次全备份失败,因为db_recovery_file_dest_size 默认的是2G,我们的文件备份文件超过了2G,
使用如下命令将db_recovery_file_dest_size修改大一点,大小应该可以随意的大,只要够备份就行,我看到PC的数据库里面设置的是500G,如下图,,

ALTER SYSTEM SET db_recovery_file_dest_size=10g SCOPE=BOTH;

Scope=BOTH是指将改变写入内存以及配置文件中. 如下图为修改前后的对比. 修改之后重新执行全备份将会成功.
 


二. 进行0级Rman备份.其实0级与全备份备份结果的大小是一致的,他们都是进行了完全的备份.唯一的差别就是全备份不能作为其他备份的基础.而0级备份可以作为1级或更高级备份的基础.
0级备份的命令为:
Backup incremental level=0 database;
 
备份成功后使用List backupset可以查看到备份的情况,如下所示.
 
其默认的备份路径是$ORACLE_HOME/flash_recover_area/ 下面.
 
使用rman的备份情况将会被记录到控制文件中.可以查看, 使用strings control01.ctl查看. 
一级备份的命令为:
 

 

 

 

三. Rman中可以使用如下的命令分别对archivelog 表空间,控制文件进行备份. 

在rman中可以使用单独的命令或者是批命令进行备份.所以可以无人值守的自动备份.批命令即使各条命令放在run{} 包含的命令集里面.
 
如图所示.所以使用批命令的话比较方便设置自己想要的参数.
 

四.备份方案.
增量备份分为累积增量备份和差异增量备份,rman默认使用的是差异增量备份.
一周RMAN 差异增量备份方案:

日期 备份
级别 备份量 备份速度
WH最慢
1X最快 当天备份
文件大小 备份基准
C(当天change) 白天恢复
需要文件量 恢复
速度 对比文
件数量
周日晚 0级 0级全备份 WH WH WH 上周的(0+1+2+2+2) 5X 5
周一晚 2级 周日到周一的change 1X 1T 0+C 0 1X 1
周二晚 2级 周一到周二的change 2X 1T 0+2+C 0+2 2X 2
周三晚 1级 周日到周三的change 3X 3T 0+2+2+C 0+2+2 3X 3
周四晚 2级 周三到周四的change 2X 1T 0+1+C 0+1 2X 2
周五晚 2级 周四到周五的change 3X 1T 0+1+2+C 0+1+2 3X 3
周六晚 2级 周五到周六的change 4X 1T 0+1+2+2+C 0+1+2+2 4X 4
周日晚 0级 0级全备份 WH WH WH 0+1+2+2+2 5X 5

这是我自己假设松下系统来设计的一个一周备份的方案,我觉得系统刚上线的时候作一次全备份,由于刚上线系统不太稳定,我觉得可以每周都做一次全备份,待系统比较稳定之后可以按照上述的方案进行自动的备份,
 若以松下系统为例的话,由于周末业务很少,所以从每天晚上备份的速度以及若在周一至周五的任何一天出现系统崩溃其恢复时间都比较平衡。


五.自动备份.
Rman自动备份常用的方式是使用linux的crontab以及我们编写的rman备份脚本来执行.
例如把0级备份,1级备份和2级备份的脚本分别写在bakl0,bakl1,bakl2里面.在使用如下的方式提交自动备份.
 
其中的45 23 * * 0 代表每个周日的23点45分执行.然后需要重新启动crontab服务.

 

 


使用如下命令可以开启在备份的同时备份控制文件.默认的参数是off的.
 
如下命令可以使得我们备份的文件按照自己想要的路径和命令方式备份.
 
可以使用如下的方式备份控制文件.
 


六.rman恢复.
使用如下的命令可以首先查看一下之前的备份空间的使用情况.
 
对于口令文件丢失的恢复,这个比较简单.因为口令文件时一个单独的放在dbs目录下面的以orapw命令的文件里面.只需要使用如下的命令即可恢复:
Orapw file=orapw passwd=”passwd” entries=5

首先一点,我们应该要在备份的时候就记录下来数据库的dbid,在恢复的时候我们是必须要用到的,在使用rman连接数据库的时候就可以看到dbid,如下图:
 


如下为redolog丢失后的恢复情况.
  
该图中的3是指数据文件的标示,在rman里面使用report schema可以查看到.


 
可以使用如下的sql查看表空间情况
    
其中的scn值可以再rman 中使用list backupset 查看到.


对于日志的序列可以通过如下的sql查询到,
 
在rman中可以使用show all查看参数.
 

阅读(1644) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~