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}

+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文件:

+DGROUPB/dg1/onlinelog/redo5.log

Log applied.

Media recovery complete.

Resetlogs方式打开数据库:

Sql> alter database open resetlogs;

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

Sql> alter tablespace temp add tempfile '+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;

}

OCM备考 三. Managing Database Availability 之RMAN日常操作相关推荐

  1. OCM备考 三. Managing Database Availability 之RMAN高级操作

    下面列出关于RMAN的一些高级操作. 1 convert rman的convert命令,用于跨平台迁移数据库或表空间时,对数据文件进行格式转换,使得文件在目标操作系统中可读. 1.1 源库上conve ...

  2. OCM备考 三. Managing Database Availability 之flashback

    10g OCM大纲关于flashback考点 ﹡ Set Flashback Database parameters ﹡ Monitor Flashback Database logs and sta ...

  3. OCM备考 三. Managing Database Availability 之recovery catalog

    ORACLE 10g OCM大纲关于恢复目录(recover catalog)考点: ﹡ Create a recovery catalog database 恢复目录是专门用来存储rman repo ...

  4. 系统管理Lesson 07. Managing Database Storage Structures

    系统管理Lesson 07. Managing Database Storage Structures 1. 块内部是如何保存关系型表格数据的? 7-3 2. 表空间的类型有几种?分别说明各自的用途. ...

  5. RMAN 系列(九) ---- 调整RMAN备份与恢复操作的性能

    RMAN 实际上即装即用的,我们通常不需要对其做什么调整. 但是,RMAN 体系结构中还包含许多组件,当这些组件构成一个整体时,就必须调整RMAN的设置以从备份进程中得到最佳的性能. 通常RMAN 调 ...

  6. linux下oracle11G DG搭建(三):围绕备库搭建操作

    linux下oracle11G DG搭建(三):围绕备库搭建操作 环境 名称 主库 备库 主机名 bjsrv shsrv 软件版本 RedHat Enterprise5.5.Oracle 11g 11 ...

  7. 【Tools】VMware虚拟机三种网络模式详解和操作

    00. 目录 文章目录 00. 目录 01. VMware虚拟机三种网络模式 02. Bridged(桥接模式) 03. NAT(地址转换模式) 04. Host-Only(仅主机模式) 05. 参考 ...

  8. 无法打开物理文件“E:\Database\VRVIES6841-FZ01-Global\VRVEIS.mdf”。操作系统错误 5:“5(拒绝访问。)”...

    在用SQLServer2012附加SQLServer2000备份的数据库事,报如下错误: 无法打开物理文件"E:\Database\VRVIES6841-FZ01-Global\VRVEIS ...

  9. 编写一个脚本,对至少三个以上记事本窗口做相同操作,对任意一个窗口进行手动操作,其余窗口由脚本执行相同步骤的键鼠操作,记得是键盘操作+鼠标操作。

    编写一个脚本,对至少三个以上记事本窗口做相同操作,对任意一个窗口进行手动操作,其余窗口由脚本执行相同步骤的键鼠操作,记得是键盘操作+鼠标操作.  按键等级认证5级 分享 答题思路: 对最上层记事本操作 ...

最新文章

  1. 使用 jetty-maven-plugin发布maven项目
  2. IE6/IE7下:inline-block解决方案
  3. C语言再学习 -- 修改linux文件权限
  4. javascript调用Flash里对象的方法(函数)搞了五个小时。
  5. OpenCV Cut Image via ROI 根据兴趣区域剪裁图片
  6. STM32 MDK编译后生成的 .map文件深入分析
  7. 又一位!发40篇SCI,90后博士受聘985教授
  8. Python openpyxl打开有公式的excel表取值错误的解决办法,Python openpyxl获取excel有公式的单元格的数值错误,Python操作excel(.xlsx)封装类
  9. P3 如何创建数据库数据表
  10. ASP.NET2.0网站配置的数据库连接失败问题(zz)
  11. Python_骑士游历问题
  12. 【python】装饰器小结(被装饰函数有/无返回值情况,保留被装饰函数信息)
  13. PCB Layout总结
  14. 温州计算机职称考试成绩查询,职业资格证书可上网查询认证
  15. 链表初始化typedef struct LNode{}LNode,*linklist的理解
  16. Win10创建文件不显示,Windows任务栏idea图标变白
  17. 清华大学计算机系刘景财,2017年清华大学计算机系硕士录取名单
  18. Zabbix-agent在Windows下安装报[8576]:ERROR:cannot connect to Service Manager:[0x00000005]错误的解决...
  19. 微信 不用手机号注册
  20. MIME类型是什么?包含哪些类型?

热门文章

  1. spring和mybatis整合:使用xml方式
  2. 限界分支法:01背包问题,优先级队列(包含解的追踪)
  3. 使用Nginx过滤网络爬虫
  4. CodeForces Goodbye 2017
  5. sharepoint学习
  6. tensorboard 使用教程
  7. Dialog向Activity传递数据
  8. SQL server触发器中 update insert delete 分别给写个例子被。
  9. java socket字符串_Java Socket Bug:从Socket的InputStream读取字符串
  10. 完全二叉树每层元素的查找