RMAN通道分配

RMAN通道分配是我们进行RMAN备份时经常提起的一个概念,RMAN通道分配就是确定连接数据库备份的设置个数,每设置一个设备就代表RMAN会自动启动一个服务器会话,由此来完成数据库的备份与恢复的操作。这其中通道指的就是某个设备(可以是磁盘或磁带等其他介质)和数据库进行关联。

通道分配有手动分配和自动分配两种,其中手动分配通道时要使用run命令实现,自动分配则只需要使用configure命令即可完成。


RMAN手动通道分配

RMAN手动通道分配指的是根据用户自己定义的通道完成数据库备份工作,并且如果在恢复目录中定义好了手动通道分配,就会优先使用手动分配。手动通道分配是在RMAN命令中利用RUN命令完成分配工作。

RMAN手动通道分配语法:

run
{
 allocate channel  ch_name1 device type  typename1;
 allocate channel  ch_name2 device type  typename2;
 ....
 backup ...
}

语法解析:

1、allocate channel指定要分配的通道名称,后面跟着通道名称。

2、device type 指定介质的类型。其中typename可以是磁带(sbt)、磁盘(disk)。

3、backup是备份数据集的关键字。backup后面可以跟着要进行备份的数据库对象,比如表空间或用户等。


例1、利用手动通道分配备份student表空间。

1、首先把目标数据库注册到恢复目录当中再进备份,在RMAN命令下通过register database命令进行注册:

register database

2、利用RUN命令手动备份表空间student,命令如下:

run
{allocate channel  c device type  disk;
 backup tablespace student;
}

结果如下:

RMAN通道分配

注意:

1、从图中可以发现,利用通道进行备份表空间,在备份完后,通道会进行释放。

2、在使用RUN命令进行备份前,一定是得在RMAN命令状态下,而且是得连接到恢复目录和目标数据库的前提下,才能进行备份。


例2、利用多通道备份student表空间。

使用通道进行备份是可以通过定义多个通道,从而提高备份的效率。也就是利用多个通道完成数据库的备份工作。代码如下:

run
{allocate channel  c1 device type  disk;
 allocate channel  c2 device type  disk;
 backup tablespace student;
}

语法解析:

1、这里的两个通道的名字是不能重复的。

结果如下:

RMAN通道分配


RMAN自动通道分配

RMAN自动通道分配,顾名思义就是数据库自己定义分配的通道的数量和名称,不需要管理员自己手动进行通道分配。但是在进行数据备份之前,必须为目标数据库定义一下自动通道分配的参数,比如介质的类型、通道的最大个数以及默认的介质类型。命令如下:

CONFIGURE DEVICE TYPE typename PARALLELISM n
CONFIGURE DEFAULT DEVICE TYPE TO typename

语法解析:

1、configure是指定自动通道分配的配置信息的关键字。

2、typename指定介质的类型,PARALLELISM n指定通道分配的个数。

3、default指定默认的设备的介质类型。


例3、定义目标数据库的自动通道分配的配置参数,再进行自动备份student表空间。

CONFIGURE DEVICE TYPE disk PARALLELISM 3;
CONFIGURE DEFAULT DEVICE TYPE TO disk;

backup tablespace student;

上面命令定义了介质类型都是磁盘,自动分配通道的个数是3。结果如下:

RMAN通道分配

从上图,可以发现直接使用backup备份集命令进行表空间备份时,会自动分配三个通道进行表空间备份,通道的名字分别为ORA_DISK_1到3。那么这种就是使用了自动的通道分配。