配置RMAN制作备份到介质管理器
在大多数平台上,备份到磁带上,或从磁带上转储时,必须将磁带与Oracle集成起来。介质管理器不是Oracle产品,因此如果选择RMAN与介质管理器一起工作,必须从供应商处得到所有产品相关的信息。
配置RMAN使用介质管理器的基本步骤如下:
RMAN使用介质管理器的要求
首先必须安装它并且确保RMAN能够与它通信,通常这一步在供应商文档上有具体说明。安装完成后,首先需要确保非RMAN备份可以正确工作。这个步骤可以使随后的故障处理更容易,可以确保介质管理其能够正确在OS上工作。
然后得到并安装第三方介质管理模块与服务器集成。这个模块包含Oracle用来加载和访问介质管理器的介质管理器库。通常这个产品需要单独购买。
定位介质管理库:SBT_LIBRARY参数
当为RMAN分配或配置通道用来与介质管理器通信时,需要设置SBT_LIBRARY参数提供介质管理软件库。在实际RMAN执行时,会尝试加载SBT_LIBRARY中的库。如果没有设置该值,将在平台的默认位置查找,$ORACLE_HOME/lib/libobk.so,后缀可能为.sl, .a等,在Windows下为%ORACLE_HOME%/bin/orasbt.dll。
默认情况下,库不是数据库安装的一部分,必须安装介质管理软件。
如果RMAN定位错误,将会得到ORA-27211错误。
无论何时通道分配失败,USER_DUMP_DEST下的跟踪文件都会写入以下信息:
SKGFQ OSD: Error in function sbtinit on line 2278
SKGFQ OSD: Look for SBT Trace messages in file /oracle/rdbms/log/sbtio.log
SBT Initialize failed for /oracle/lib/libobk.so
测试介质管理库是否以正确集成
在确认数据库服务器能够加载介质管理库后,需要测试以确保RMAN能够备份到介质管理器。
为RMAN备份配置介质管理软件
安装完介质管理软件后,执行任何供应商要求的配置以使软件可以接受RMAN备份。有可能要配置介质池,用户,类等等。
然后确定ALLOCATE CHANNEL或CONFIGURE CHANNEL所需的PARMS设置。以及BACKUP推荐的FORMAT格式。PARMS参数用来发送指令到介质管理器。具体在产品文档中会有说明。
配置介质管理器的备份片名和大小
因为介质管理器可能会有大小限制,因此需要配置RMAN限制这些备份片的名称和大小。
配置备份片名:备份片名由BACKUP,CONFIGURE CHANNEL,ALLOCATE CHANNEL的FORMAT字符串定义。
配置备份片大小:备份片大小由CONFIGURE CHANNEL,ALLOCATE CHANNEL的MAXPIECESIZE参数决定。
在介质管理器上测试ALLOCATE CHANNEL
使用以下过程确认RMAN在为介质管理器分配通道时可以加载介质管理库:
1. 连接到目标库;
2. 运行带PARMS的ALLOCATE CHANNEL命令,如下:
RUN
{
ALLOCATE CHANNEL c1 DEVICE TYPE sbt
PARMS='SBT_LIBRARY=/mediavendor/lib/libobk.so ENV=(NSR_SERVER=tape_srv,NSR_
GROUP=oracle_tapes)';
}
如果没有得到错误消息,则RMAN正确的加载了介质管理库,否则会发生ORA-27211错误。
RMAN-00571: ===========================================================
RMAN-00569: ======= ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: failure of allocate command on c1 channel at 11/30/2001 13:57:18
ORA-19554: error allocating device, device type: SBT_TAPE, device name:
ORA-27211: Failed to load Media Management Library
Additional information: 25
此时就需要重新检查安装是否正确,SBT_LIBRARY是否正确。
测试备份到介质管理库
在测试通道分配以后,就需要测试备份。
RUN
{
ALLOCATE CHANNEL c1 DEVICE TYPE sbt
PARMS='SBT_LIBRARY=/mediavendor/lib/libobk.so
ENV=(NSR_SERVER=tape_srv,NSR_GROUP=oracle_tapes)';
BACKUP CURRENT CONTROLFILE;
}
PARMS和FORMAT依赖于具体的产品。如果成功就可以开始备份。错误的情况包括如下:
ORA-19511:没有正确配置介质管理软件;
备份挂起:介质管理器等待挂载磁带;
配置SBT通道使用介质管理器
1.RMAN> CONFIGURE CHANNEL DEVICE TYPE sbt
PARMS='SBT_LIBRARY=/mediavendor/lib/libobk.so
ENV=(NSR_SERVER=tape_svr,NSR_CLIENT=oracleclnt,NSR_GROUP=ora_tapes)'
FORMAT "BACKUP_%U";
2.RMAN> BACKUP DEVICE TYPE sbt CURRENT CONTROLFILE;
3.RMAN> SHOW CHANNEL FOR DEVICE TYPE sbt;
4.RMAN> CONFIGURE DEFAULT DEVICE TYPE TO sbt;
配置备份优化
备份优化仅仅适用于以下命令:
·BACKUP DATABASE
·BACKUP ARCHIVELOG…ALL | LIKE;
·BACKUP BACKUPSET ALL
任何时候都可以使用BACKUP命令的FORCE选项覆盖,如下:
BACKUP DATABASE FORCE;
BACKUP ARCHIVELOG ALL FORCE;
默认情况下,备份优化是OFF的,可以通过如下命令启用:
CONFIGURE BACKUP OPTIMIZATION ON;
配置备份复制:CONFIGURE... BACKUP COPIES
CONFIGURE ... BACKUP COPIES声明对于特定类型的备份在特定的设备上需要创建的备份集份数。设置复制的CONFIGURE仅仅影响数据文件,控制文件,归档日志,并且仅仅是到备份集上的。
控制文件自动备份除外。
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 2;
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE sbt TO 3;
如果将复制特征和多个FORMAT字符串一起使用,可以命令每个备份集的名称。如下:
BACKUP DATABASE FORMAT '/tmp/%U', '?/dbs/%U', '?/oradata/%U';
此时,RMAN会为每个备份集中的备份片创建3个备份,然后根据FORMAT中的字符串进行命名。
如果要清除,可以执行以下命令:
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE sbt CLEAR;
如果不希望设置永久性的复制特定,可以使用BACKUP COPIES和SET BACKUP COPIES命令。
使用SHOW... BACKUP COPIES显示复制的份数
连接到目标库后,可以运行SHOW ARCHIVELOG BACKUP COPIES或SHOW DATAFILE BACKUP COPIES命令查看当前的配置。
配置在备份全库时要排除的表空间
使用CONFIGURE EXCLUDE FOR TABLESPACE命令可以配置在备份全库时自动排除的表空间。
即使在配置后,也可以强制将他们包含进来:BACKUP DATABASE NOEXCLUDE;
如果要清除,执行以下命令即可:
CONFIGURE EXCLUDE FOR TABLESPACE TBS_1 CLEAR;
之后在备份全库时,就会将这些表空间包含进来。
配置Auxiliary实例数据文件名:CONFIGURE AUXNAME
在使用TSPITR,或通过RMAN复制一个数据库时,在进行实际的TSPITR或者数据库复制前,可以需要设置auxiliary实例的数据文件名。如下:
CONFIGURE AUXNAME FOR datafileSpec TO 'filename';
DatafileSpec:原始的文件名或文件号;filename:新文件的路径。
和其他的设置的清除一样,CONFIGURE AUXNAME FOR DATAFILE 2 CLEAR;
当运行DUPLICATE时,CONFIGURE AUXNAME是SET NEWNAME命令的一种替代。区别是使用了AUXNAME后,随后执行其他的DUPLICATE命令不需要再次重设文件名,直到执行了CONFIGURE AUXNAME ... CLEAR。
显示Auxiliary通道的默认配置
SHOW AUXNAME;
CONFIGURE AUXNAME FOR DATAFILE '/oracle/oradata/trgt/tools01.dbf' TO '/tmp/tools01.dbf';
设置快照控制文件位置
当RMAN需要从一个读一致性的控制文件版本重新同步时,其将会创建一个快照控制文件。RMAN仅在于RMAN同步或者制作当前控制文件的备份时需要快照。默认情况下,$ORACLE_HOME/dbs/snapcf_@.f中,而不是在FRA。
快照控制文件的默认位置
在当前版本创建一个新数据库:快照使用默认位置,依赖于ORACLE_HOME;
从8.1.7前的版本升级到当前版本:使用存储在控制文件中的快照位置;
查看配置
SHOW SNAPSHOT CONTROLFILE NAME;
设置快照控制文件的位置
使用CONFIGURE SNAPSHOT CONTROLFILE NAME TO 'filename'设置快照控制文件的位置。
如果要更改到其他位置,只需要重新执行指向新的位置即可。
设置共享服务器下的RMAN使用
RMAN不能通过共享服务器连接到服务器,必须要求专用服务器。为了确保RMAN在MTS下不会连接到调度器,RMAN使用的连接字符串必须包含(SERVER=DEDICATED)在CONNECT_DATA中。
如下:
inst1_shs =
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=inst1_host)(port1521))
(CONNECT_DATA=(SERVICE_NAME=inst1)(SERVER=shared))
)
inst1是SERVICE_NAMES的一个值;
配置RMAN在MTS下工作如下:
1. 创建一个网络服务名通过非共享SID连接:
inst1_ded =
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=inst1_host)(port1521))
(CONNECT_DATA=(SERVICE_NAME=inst1)(SERVER=dedicated))
)
2. 启动SQL*PLUS测试两个连接字符串:
CONNECT SYS/oracle@inst1_ded
SELECT SERVER
FROM V$SESSION
WHERE SID = (SELECT DISTINCT SID FROM V$MYSTAT);
CONNECT SYS/oracle@inst1_shs AS SYSDBA
SELECT SERVER
FROM V$SESSION
WHERE SID = (SELECT DISTINCT SID FROM V$MYSTAT);
3. 使用专用服务名连接到服务器。
关于共享服务器的具体配置
在10g中只要设置shared_servers大于0即可,如下:
alter system set shared_servers=1;
执行命令lsnrctl services,结果如下:
例程 "test", 状态 READY, 包含此服务的 1 个处理程序...
处理程序:
"D000" 已建立:0 已被拒绝:0 当前: 1 最大: 1002 状态: ready
DISPATCHER
(ADDRESS=(PROTOCOL=tcp)(HOST=PD-00167674093A.tcsgegdc.com)(PORT=1579))
然后配置一个TNS服务名,使用1579端口,然后使用该端口配置的TNS服务名连接就是共享服务器。