zoukankan      html  css  js  c++  java
  • RMAN备份环境配置进阶

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

  • 相关阅读:
    DockerFile构建步骤及命令
    linux安装nginx及常用命令
    docker常用命令
    Docker安装
    获取TrustedInstaller权限
    获取本机公网ip的url地址
    centOS7配置ip
    VS Code配置c语言环境
    Linux l 2.4.20-8 # 溢出
    VMware Destination Host Unreachable
  • 原文地址:https://www.cnblogs.com/liuyou/p/2618473.html
Copyright © 2011-2022 走看看