Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1182607
  • 博文数量: 398
  • 博客积分: 10110
  • 博客等级: 上将
  • 技术积分: 4055
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-23 20:01
个人简介

新博客http://www.cnblogs.com/zhjh256 欢迎访问

文章分类

全部博文(398)

文章存档

2012年(1)

2011年(41)

2010年(16)

2009年(98)

2008年(142)

2007年(100)

我的朋友

分类: Oracle

2008-01-20 15:20:58

配置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 CHANNELCONFIGURE CHANNEL所需的PARMS设置。以及BACKUP推荐的FORMAT格式。PARMS参数用来发送指令到介质管理器。具体在产品文档中会有说明。

       配置介质管理器的备份片名和大小

       因为介质管理器可能会有大小限制,因此需要配置RMAN限制这些备份片的名称和大小。

       配置备份片名:备份片名由BACKUPCONFIGURE CHANNELALLOCATE CHANNELFORMAT字符串定义。

       配置备份片大小:备份片大小由CONFIGURE CHANNELALLOCATE CHANNELMAXPIECESIZE参数决定。

       在介质管理器上测试ALLOCATE CHANNEL

       使用以下过程确认RMAN在为介质管理器分配通道时可以加载介质管理库:

1.  连接到目标库;

2.  运行带PARMSALLOCATE 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;

}

       PARMSFORMAT依赖于具体的产品。如果成功就可以开始备份。错误的情况包括如下:

       ORA-19511:没有正确配置介质管理软件;

       备份挂起:介质管理器等待挂载磁带;

配置SBT通道使用介质管理器

1RMAN> 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";

       2RMAN> BACKUP DEVICE TYPE sbt CURRENT CONTROLFILE;

       3RMAN> SHOW CHANNEL FOR DEVICE TYPE sbt;

       4RMAN> 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 COPIESSET BACKUP COPIES命令。

使用SHOW... BACKUP COPIES显示复制的份数

       连接到目标库后,可以运行SHOW ARCHIVELOG BACKUP COPIESSHOW 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 AUXNAMESET 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不能通过共享服务器连接到服务器,必须要求专用服务器。为了确保RMANMTS下不会连接到调度器,RMAN使用的连接字符串必须包含(SERVER=DEDICATED)CONNECT_DATA中。

       如下:

inst1_shs =

(DESCRIPTION=

(ADDRESS=(PROTOCOL=tcp)(HOST=inst1_host)(port1521))

(CONNECT_DATA=(SERVICE_NAME=inst1)(SERVER=shared))

)

inst1SERVICE_NAMES的一个值;

       配置RMANMTS下工作如下:

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服务名连接就是共享服务器。

阅读(1802) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~