19.3.2 手动通道分配

手动通道分配可以根据用户自定义分配通道完成数据库的备份工作,并且如果在数据库中定义了手动通道分配,会优先使用手动分配的通道。这里,要使用手动通道分配就要学习RUN命令。RUN命令的一般语法如下:


RUN

{

ALLOCATE CHANNEL channel_name1 DEVICE TYPE type_name1;

ALLOCATE CHANNEL channel_name2 DEVICE TYPE type_name2;

BACKUP…

}


【语法说明】

❑channel_name:分配的通道名称,type_name是分配的设备类型,这个设备类型是磁带(sbt)和磁盘(disk),并且可以手动分配多个通道,即可以含有多个ALLOCATE CHANNEL语句。

❑BACKUP:备份数据库的关键字,可以在BACKUP后面写上要备份的表空间等信息。

下面就利用上面的语法完成数据库的备份操作。

【示例9】使用磁盘备份表空间USERS

代码如下:


RUN

{

ALLOCATE CHANNEL C DEVICE TYPE disk;

BACKUP tablespace USERS

}


在具体操作时使用BACKUP备份数据库中的文件,如果直接利用上面的语句,则会出现图19.16所示的错误。

19.3.2 手动通道分配 - 图1

图 19.16 备份时出现错误

出现上面的错误主要是因为数据库的状态是正在运行的,不能够备份数据库中的文件。如果要备份数据库中的文件,可以先关闭数据库,然后把数据库启动到MOUNT的状态。这样就可以完成数据库的备份操作。具体操作过程如图19.17所示。

19.3.2 手动通道分配 - 图2

图 19.17 使用通道备份文件

至此,表空间USERS已经备份成功。

注意 在使用RUN命令前一定要在RMAN命令状态下,并且确保已经连接到目标数据库。

【示例10】使用多个通道备份表空间USERS

在定义通道的语法中可以看到,通道是可以同时定义多个的。也就是说,可以用多个通道完成数据库的备份工作。下面就建立两个通道备份表空间USERS。代码如下:


RUN

{

ALLOCATE CHANNEL C1 DEVICE TYPE disk;

ALLOCATE CHANNEL C2 DEVICE TYPE disk;

BACKUP tablespace USERS

}


这里,两个通道的名字是不能重复的。为了让读者理解使用通道备份的过程,下面分步演示运行效果。

(1)连接到目标数据库

在命令窗口下直接输入RMAN命令,即可连接到目标数据库,如图19.18所示。

19.3.2 手动通道分配 - 图3

图 19.18 连接到目标数据库

(2)关闭数据库并启动MOUNT

为了让数据库正常完成备份的操作,需要关闭数据库。具体操作如图19.19所示。

19.3.2 手动通道分配 - 图4

图 19.19 关闭数据库

(3)使用RUN命令创建通道并备份表空间USERS

在数据库关闭的状态下可以开始备份表空间了,效果如图19.20所示。

19.3.2 手动通道分配 - 图5

图 19.20 使用多通道备份表空间

至此,使用多通道备份表空间完成。从这里可以看出,在两个通道中都备份了表空间USERS,备份后再依次释放通道。对于其他备份操作,在19.4.2小节中将详细介绍。