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.16 备份时出现错误
出现上面的错误主要是因为数据库的状态是正在运行的,不能够备份数据库中的文件。如果要备份数据库中的文件,可以先关闭数据库,然后把数据库启动到MOUNT的状态。这样就可以完成数据库的备份操作。具体操作过程如图19.17所示。
图 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.18 连接到目标数据库
(2)关闭数据库并启动MOUNT
为了让数据库正常完成备份的操作,需要关闭数据库。具体操作如图19.19所示。
图 19.19 关闭数据库
(3)使用RUN命令创建通道并备份表空间USERS
在数据库关闭的状态下可以开始备份表空间了,效果如图19.20所示。
图 19.20 使用多通道备份表空间
至此,使用多通道备份表空间完成。从这里可以看出,在两个通道中都备份了表空间USERS,备份后再依次释放通道。对于其他备份操作,在19.4.2小节中将详细介绍。