设为首页 收藏本站
查看: 1593|回复: 0

[经验分享] OCM备考 三. Managing Database Availability 之RMAN日常操作

[复制链接]

尚未签到

发表于 2015-11-9 11:24:52 | 显示全部楼层 |阅读模式
10 OCM考试大纲关于RMAN的考点:

三 Managing Database Availability

﹡ Create a recovery catalog database

﹡ Configure Recovery Manager

﹡ Use Recovery Manager to perform database backups

﹡ Use Recover Manager to perform complete database restore and recovery operations


整理rman日常操作如下:


1 备份
1.1 指定backup piece的大小
将较大的backupset分解为多个bakcup piece。

Rman> run {

Allocate channel c1 device type disk maxpiecesize 500m;

Backup database format ‘$ORACLE_BASE/backup’;

}

1.2 使用command file
将多条rman命令包含在command file中,批量执行,常用于数据库例行备份。

Cat > rman.csv

run {

  backup datafile 1 format '$ORACLE_BASE/backup/system_%U.bpk';

  backup datafile 2 format '$ORACLE_BASE/backup/sysaux_%U.bpk';

}

执行备份:

$ rman target / cmdfile=rman.rcv log=rman.log

1.3 备份时排除表空间
1.3.1 排除指定的表空间
设置备份时要排除的表空间:

Rman> configure exclude for tablespace users;


永久取消排除:

Rman> configure exclude for tablespace users clear ;  -

临时取消排除:

Rman> backup database noexclude;

1.3.2 排除只读表空间和离线表空间
Rman> backup database skip readonly skip offline;

1.4 并行备份
1.4.1 永久配置PARALLELISM
Rman> CONFIGURE DEVICE TYPE DISK PARALLELISM 5 BACKUP TYPE TO BACKUPSET;

执行备份时,自动开5个channel进行备份,备到同一目录下。

通过配置channel可以备份到不同目录下:

Rman> CONFIGURE DEVICE TYPE DISK PARALLELISM 2 BACKUP TYPE TO BACKUPSET;

Rman> CONFIGURE CHANNEL 1 DEVICE TYPE DISK FORMAT   '/u01/app/oracle/backup/%d_%s_%p.bpk';

CONFIGURE CHANNEL 2 DEVICE TYPE DISK FORMAT   '/u01/app/oracle/backup2/%d_%s_%p.bpk';

1.4.1 临时配置PARALLELISM
通过allocate channel分配多个通道。

Rman> run {

Allocate channel c1 device type disk;

Allocate channel c2 device type disk;

Backup database format ‘$ORACLE_BASE/backup/db_%U.bpk’

  (datafile 1,2,3 channel c1)

  (datafile 4,5,6 channel c2);

}

1.5 copy备份
1.5.1 copy备份的方式
可以采取下面两种方式:

1、backup as copy

Rman> backup as copy datafile 4 format ‘$ORACLE_BASE/backup/users.dbf’;

2、copy

Rman> copy datafile 1 to ‘$ORACLE_BASE/backup/users.dbf’;

1.5.2 删除copy
Rman> delete datafilecopy 30;

删除key=30的copy。

1.6 备份的高级功能
1.6.1 filesperset
指定一个backupset中最多包含几个数据文件。

Rman> backup database filesperset 2;

每个备份集中最多只包含两个数据文件。

1.6.2 set maxcorrupt
设置备份时能跳过多少个坏块,默认为0,即一发现坏块,备份任务会报错退出。

Rman> run {

   Set maxcorrupt for datafile 4 to 5;  #允许5个坏块

   Backup check logical datafile 4;

}

1.6.3 开启块改变跟踪
Sql> alter database enable block change tracking using file ‘tracking.f’ reuse;

2 恢复
2.1 将数据文件恢复到新的位置
出现硬件损坏时,需要将数据文件恢复到新的目录下。

Run {

Sql ‘alter tablespace users offline immediate’;

Set newname for datafile 4 to ‘/newpath/user.dbf’;

Restore datafile 4;

Swith datafile 4;

Recover datafile 4;

Sql ‘alter tablespace users online’;

}

2.2 基于SQL的不完全恢复
2.2.1 基于time恢复
将数据库恢复到过去一个时间点。

Sql> startup mount

Sql> recover database until time ‘2011-07-08 10:05:00’;

Sql> alter database open resetlogs;


下面是两个关于scn和time转换的函数。

注:通过时间得到scn

select timestamp_to_scn(to_timestamp('2011-07-05 10:30:00','yyyy-mm-dd hh24:mi:ss')) from dual;

通过scn得到时间:

select scn_to_timestamp(1418437) from dual;

2.2.2 基于scn恢复
将数据库恢复到过去的一个scn。

Sql> startup mount

Sql> recover database until scn 1418437;

Sql> alter database open resetlogs;

2.2.3 基于cancel恢复
当archivelog或onlinelog损坏,将数据库尽可能地恢复,最大限度地减少数据丢失。

Sql> startup mount

Sql> recover database until cancel; #可能需要选择online log,进行恢复

ORA-00279: change 1426537 generated at 07/06/2011 20:59:43 needed for thread 1

ORA-00289: suggestion : /u01/app/oracle/archive/1_44_754155512.dbf

ORA-00280: change 1426537 for thread 1 is in sequence #44


Specify log: {<RET>=suggested | filename | AUTO | CANCEL}

&#43;DGROUPB/dg1/onlinelog/redo5.log #选择恢复需要的日志文件


Sql> alter database open resetlogs;

2.2.4 基于sequence恢复
根据online log sequence进行恢复,

Sql> startup mount

Sql> recover database until sequence 128; 将数据库恢复到log sequence 127

Sql> alter database open resetlogs;

2.2.5 通过备份控制文件恢复
1)备份控制文件

Sql> alter database backup controlfile to trace;

将控制文件创建语句写入user trace文件。或者

Sql> alter database backup controlfile to ‘/backup/control01.ctl’;

将控制文件备份。


2)恢复

Sql> startup nomount;

重建控制文件,从user trace找到创建控制文件的语句,执行:

Sql> recover database using backup controlfile;

ORA-00279: change 1426537 generated at 07/06/2011 20:59:43 needed for thread 1

ORA-00289: suggestion : /u01/app/oracle/archive/1_44_754155512.dbf

ORA-00280: change 1426537 for thread 1 is in sequence #44


Specify log: {<RET>=suggested | filename | AUTO | CANCEL}

由于是重建控制文件,找不到当前recover需要应用的日志,需要指定log文件:

&#43;DGROUPB/dg1/onlinelog/redo5.log

Log applied.

Media recovery complete.


Resetlogs方式打开数据库:

Sql> alter database open resetlogs;

通过备份控制文件恢复数据库,tempfile不会自动产生,需通过手工创建:

Sql> alter tablespace temp add tempfile '&#43;dgroupb/dg1/datafile/temp01.dbf';

2.3 基于rman的不完全恢复
2.3.1 基于time的恢复
Sql> startup mount;

Run {

Set until time = ‘2011-07-08 11:30:30’;

Restore database;

Recover database;

Alter database open resetlogs;

}

2.3.2 基于sequence的恢复
Sql> startup mount;

Run {

Set until sequence 128 thread 1;

Restore database;

Recover database;

Alter database open resetlogs;

}

2.3.3 基于scn的恢复
Sql> startup mount;

Run {

Set until scn 1418437;

Restore database;

Recover database;

Alter database open resetlogs;

}

2.3.4 基于还原点的恢复
Sql> create restore point p1

Rman> restore database;

Rman> recover database until restore point p1;

2.3.5 通过备份控制文件进行不完全恢复
1)控制文件备份

Rman> CONFIGURE CONTROLFILE AUTOBACKUP on;


Rman> backup current confile format ‘/backup/control%.bpk’;


Rman> backup database including current controlfile;

2)从备份控制文件恢复数据库

Sql> startup nomount;

Rman> restore controlfile to ‘/control01.ctl’  from autobackup; 或

Rman> restore controlfile from ‘备份集名称’;

Rman> run {

Alter database mount;

Restore database;

Recover database;

Alter database open resetlogs;

}


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-136970-1-1.html 上篇帖子: 中秋节--收到OCM考试通过结果 下篇帖子: OCM备考 三. Managing Database Availability 之flashback
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表