在日常维护中 备份是我们运维最常做的工作,并且非常重要 。 那九妹带你 使用RMAN 工具备份Orcle

 

三、使用RMAN工具

RMANrecovery  manager)是oracle的一个重要工具,用于备份和恢复数据库文件、归档日志和控制文件。也可以用来执行完全或不完全的数据库恢复。RMAN3种不同的用户接口:命令行方式,GUI方式(集成在OEM中的备份管理器)、api方式(用于集成到第三方的备份软件中)。它具有如下优点:

1)支持在线热备份

2)支持多级增量备份

3)支持并行备份、恢复

4)减少所需要的备份量

5)备份、恢复使用简单

RMAN有丰富的特性集。随着oracle新版本的发布,RMAN特性也不断增强,使得RMAN几乎在任何情况下都可以备份和恢复数据库。其中很多的新特性都是针对日常工作中所遇到的问题和困难开发的。

 

1、RMAN组件

oracle备份 使用RMAN 工具_第1张图片 

1)target database(目标数据库)

目标数据库就是需要RMAN对其进行备份与恢复的数据库。RMAN可以备份数据文件、控制文件、归档日志文件、spfile

 

2)server  session(服务器会话)

RMAN启动数据库上的oracle服务器进程,并建立一个与目标数据库的会话。由目标数据库上的服务器进程进行备份、还原、恢复的实际操作。

 

3RMAN repositoryRMAN资料库)

RMAN使用过程中会用到的控制信息,是一些关于备份、归档日志及RMAN活动的元数据。

4recovery  catalog(恢复目录)

恢复目录是建立在RMAN恢复目录数据库上的一种schema对象,用于保存RMAN资料库数据。

恢复目录是一个可选的组件。RMAN会将资料库数据记录在目标数据库的控制文件中,但这样不够安全,因为一旦目标数据库的控制文件损坏就意味着所有的RMAN备份失效。所以建议在单独的一个数据中建立恢复目录另外保存一份资料库数据。

对于

对于大部分中等环境的企业环境,将RMAN备份信息存储在恢复目录数据库中,而不是存储在目标数据库的控制文件中,这样能够发挥RMAN工具的全部功能,此外,RMAN的很多高级功能也只有在创建了恢复目录的环境下才被支持。

5)MML(媒体管理库)

MMLmedia management layer)是第三方工具或软件,用于管理对磁带的读写与文件的跟踪管理,如果你要想直接通过RMAN备份到磁带上,就必须配置媒体管理层,媒体管理层的工具和RMAN共同完成备份与恢复。

 

6)快闪恢复区

快闪恢复区是oracle数据库用于保存所有与恢复相关的文件的默认磁盘位置。这些相关文件包括归档日志、RMAN备份、控制文件自动备份、复用的控制文件和重做日志副本及闪回日志文件。

7)辅助数据库

在正常使用时,RMAN会与目标数据库一起使用,如果创建了恢复目录数据库,那么也会与恢复目录数据库一起使用。在某些情况下,希望创建辅助数据库,辅助数据库是使用RMAN从目标数据库的备份中创建新的数据库。辅助数据库能被创建作为备用数据库使用。在产品数据库发生灾难时,能够在不丢失任何数据及停机时间最短的情况下切换至备用数据库。

 

2、创建恢复目录

oracle备份 使用RMAN 工具_第2张图片 

恢复目录存在于RMAN的目录数据库中,类似于标准的数据库目录,主要包含如下几个部分的信息:

1)备份和恢复信息,可以是多个目标数据库

2)RMAN脚本,可以存储供重复使用

3)关于数据文件和日志文件的本分信息

4)关于目标数据库的表空间和数据文件的信息

 

 rman 工具的基本组件及工作原理以在上面陈列出来 接下来九妹带你正式使用RMAN 备份

大体分为6

  1. 创建恢复目录数据库(类似于容器存放备份内容 )

  2. 在恢复目录中创建RMAN用户并授权

  3. 在恢复数据库中创建恢复目录

  4. 注册

  5. 通道分配(自动  手动  有默认通道可不创建)

  6. 开始备份

     

1.

1)创建恢复目录数据库

create tablespace ccdatafile '/opt/oracle/oradata/cc.ora'   cc:恢复目录数据库明名称

size 20M autoextend on next 5m maxsize unlimited            大小20m  可扩展5m 可不限制增长

oracle备份 使用RMAN 工具_第3张图片

2.

1)在恢复目录数据库中创建RMAN 用户并授权

create user lmy identified by oracle default tablespace cc   创建用户lmy使用的恢复目录是c

temporary tablespace temp                                    临时的表空间是temp

 

wKiom1kT6gfwSCZuAAAQrNgTBr4117.png-wh_50

3.授予权限

grant connect,resource to ydw

grant recovery_catalog_owner to ydw

4.创建目录

oracle备份 使用RMAN 工具_第4张图片

5.注册

oracle备份 使用RMAN 工具_第5张图片

6.通道

 

通道分配

使用RMAN进行备份和恢复操作时,必须进行通道的分配,一个通道是RMAN和目标数据库之间的一个连接,通道指定了某种类型的设备用于备份和恢复,RMAN可以使用的通道设备包括磁盘与磁带两种。

1.自动通道

oracle备份 使用RMAN 工具_第6张图片

oracle备份 使用RMAN 工具_第7张图片

2.手动通道

oracle备份 使用RMAN 工具_第8张图片6

6.恢复

 

在归档方式下备份与恢复

要用RMAN进行联机备份操作。数据库就必须位于归档模式。恢复目录必须打开,目标数据库进程必须启动,数据库已经加载或者打开。

1)备份和恢复整个数据库

查看当前数据模式为非归档模式

oracle备份 使用RMAN 工具_第9张图片

oracle备份 使用RMAN 工具_第10张图片

修改为归档模式

oracle备份 使用RMAN 工具_第11张图片

wKioL1kT8WShZANNAAAIwlb2URQ623.png-wh_50

换RMAN 用户开始备份

rman catalogg lmy/oracle target /

backup database;

查看快闪恢复区 发现备份成功

oracle备份 使用RMAN 工具_第12张图片

备份时 不包含归档日志文件  

如果还要包含归档日志文件,则要加上plus archivelog关键字,delete input的意思是在备份完成后,删除archivelog文件。

backup database plus archivelog delete input;

 

测试备份是否可以生效   删除文件 sytem01.dbf  系统文件  

  1. 前因在关闭数据库情况下进行

  2. 使用 sys链接ramn  

    wKiom1kT9cvAsX7AAAAN0DfXTAc078.png-wh_50

  3. 重建数据库物理文件

    oracle备份 使用RMAN 工具_第13张图片

  4. 同步恢复

    oracle备份 使用RMAN 工具_第14张图片

  5. 打开数据库

    wKiom1kT9kOg4nQSAABfgr9KaH4160.png-wh_50

    oracle备份 使用RMAN 工具_第15张图片

  6. 已经恢复

    wKiom1kT9qviYDyXAABrqpwz_zU486.png-wh_50 

 二.

1)备份和恢复表空间

表空间users备份:

oracle备份 使用RMAN 工具_第16张图片

备份多个表空间

oracle备份 使用RMAN 工具_第17张图片

使用 run  方式备份

run

{

allocatv channel ch1 device type disk;

backup format '/opt/bakup/rmanback/%U’

releasw channel ch1;

}

如果只丢失了特定的表空间的数据文件,那么可以选择只恢复这个表空间,而不是恢复整个数据库,表空间恢复可以在不关闭数据库的情况下进行,只需要将需要恢复的表空间offline

 恢复表空间

oracle备份 使用RMAN 工具_第18张图片

 

 

补充自动备份:

1)生成脚本文件,如backup.rcv

  假定文件内容如下:

$>cat backup.rcv

connect target sys/password rcvcat rman/rman@localname;

run{

allocate channel c1 type disk;

allocate channel c2 type disk;

allocate channel c3 type disk;

backup fileaperset 3 format /u01/oradata/backup/arch%u_%s_%p

archivelog all delete input;

release channel c1;

release channel c2;

release channel c3;

}

2)生成执行文件

  在windows上生成backup_archive.bat,内容包括

rman cmdfile = backup.rcv

  在unix下生成 backup_archive.sh,内容包括

/oracle/ramn/rman cmdfile = backup.rcv

3)加入调度

  在windows中用任务计划向导即可,或使用at命令。

  在unix中,在目标机器上编写一个文件,用以启动自动备份进程。假定文件名为ORACLE,文件将放在/var/spool/cron/crontabs目录下

$>cat oracle

0 23 * * 0 backup_archive.sh

#表示星期天23点对数据库备份

0 12,18 * * * backup_archive.sh

#表示每天12点,18点备份

Crontab文件的每一行由六个域(minutes,hours,day of month,month,day of week,command)组成,域之间用空格或Tab分隔开来