zoukankan      html  css  js  c++  java
  • 官方文档 恢复备份指南四 Starting and Interacting with the RMAN Client

    本章讲:
    • Starting and Exiting RMAN                                                                
    • Specifying the Location of RMAN Output                                                        指定RMAN输出位置
    • Setting Globalization Support Environment Variables for RMAN            设置RMAN全局变量
    • Entering RMAN Commands                                                                                      进入RMAN命令
    • Making Database Connections with RMAN                                                        用RMAN连接数据库
    • Using the RMAN Pipe Interface                                                                                使用RMAN 管道接口

    1.Starting and Exiting RMAN 打开RMAN
        RMAN随数据库一起安装,路径在$ORACLE_HOME/bin下.打开方式
        % rman                                                                         进入后再输入用户名密码
        % rman TARGET /                       # operating system authentication        操作系统验证,即在数据库服务器上使用RMAN
        % rman TARGET SYS@prod NOCATALOG      # RMAN prompts for SYS password          使用SYS用户登录RMAN
        % rman TARGET / CATALOG rco@catdb     # RMAN prompts for rco password          在数据库服务器上使用操作系统验证连接数据库并连接catalog
       退出:RMAN> EXIT


    2.Specifying the Location of RMAN Output  指定RMAN输出位置
        默认下,RMAN将输出内容写到标准输出(命令台),可以将内容输出到日志文件:
        % rman LOG /tmp/rman.log
        上面的方式只会将RMAN的输出内容写到日志,如果想把输入内容也写到日志,可以使用linux的tee命令:
        % rman | tee rman.log
        RMAN>

    3.Setting Globalization Support Environment Variables for RMAN 设置RMAN全局变量
        在使用RMNA之前,可能需要设置NLS_DATE_FORMAT 和NLS_LANG 参数来设置RMAN使用的语言和时间格式
        NLS_LANG=american                            如果RMAN客户端可以数据库的语言不同,会报错
        NLS_DATE_FORMAT='Mon DD YYYY HH24:MI:SS'


    4.Entering RMAN Commands 输入RMAN命令
        本节内容:
    • Entering RMAN Commands at the RMAN Prompt                            使用RMAN提示输入命令
    • Using Command Files with RMAN                                                 使用命令文件
    • Entering Comments in RMAN Command Files                                编辑命令文件
    • Using Substitution Variables in Command Files                              在命令文件使用变量 
    • Checking RMAN Syntax                                                                检查RMAN语法

    1)Entering RMAN Commands at the RMAN Prompt 
        RMAN> BACKUP DATABASE
        2> INCLUDE CURRENT
        3> CONTROLFILE
        4> ;


    2)Using Command Files with RMAN
        可以将命令保存在文件中,然后用@调用,如cmdfil1中:
        BACKUP DATABASE PLUS ARCHIVELOG;
      调用:
        % rman TARGET / @cmdfile1
    命令执行完毕后,RMAN会自动退出
    也可以在RMAN提示符下使用文件:
        RMAN> @cmdfile1


    3)Entering Comments in RMAN Command Files
        # Command file name: mybackup.rman                    #是注释符号
        # The following command backs up the database
        BACKUP DATABASE;
        # The following command backs up the archived redo logs
        BACKUP ARCHIVELOG ALL;


    4)Using Substitution Variables in Command Files
        可以设置变量,使RMAN变得更加灵活,如&1代表第一个变量,&2代表第二个变量.&1.3的意义:&1表示传入的第一个变量,如backup,.3表示接在变量后面的字符,&1.3表示backup3.
        <1>创建RMAN脚本,包含变量
    CONNECT TARGET /
    RUN
    {
      ALLOCATE CHANNEL c1
        DEVICE TYPE sbt
        PARMS 'ENV=(OB_MEDIA_FAMILY=&1)';
      BACKUP DATABASE
        TAG &2
        FORMAT '/disk2/bck/&1%U.bck'
        KEEP FOREVER
        RESTORE POINT &3;
    }
    EXIT;

        <2>创建shell脚本来调用 RMAN脚本
    #!/bin/tcsh
    # name: runbackup.sh
    # usage: use the tag name and number of copies as arguments
    set media_family = $argv[1]
    set format = $argv[2]set restore_point = $argv[3]
    rman @'/disk1/scripts/whole_db.cmd' USING $media_family $format $restore_point

           <3>执行shell
    % runbackup.sh archival_backup bck0906 FY06Q3



        5).Checking RMAN Syntax
        在执行命令之前可以用CHECKSYNTAX 来检查命令的正确性
        启动RMAN时指定CHECKSYNTAX 选项
        % rman CHECKSYNTAX
         输入脚本
    RMAN> backup database;
    此命令不存在任何语法错误
        检查脚本语法
        % rman CHECKSYNTAX @filename
        

     5. Making Database Connections with RMAN
    • About RMAN Database Connections                                                        
    • Connecting RMAN to an Auxiliary Database
    • Making RMAN Database Connections Within Command Files
    • Diagnosing RMAN Connection Problems

        1)About RMAN Database Connections 关于RMAN连接
        RMAN连接选项
        
    Type of Database ConnectionKeywordDescription

    target database

    TARGET

    A database to be backed up or restored by RMAN

    recovery catalog database

    CATALOG

    A database that provides an optional backup store for the RMAN repository in addition to the control file.

    auxiliary instance or auxiliary database

    AUXILIARY

    physical standby database, or a database instance created for performing a specific task such as creating a duplicate database, transporting tablespaces, or performingtablespace point-in-time recovery (TSPITR).

    For many tasks that use an auxiliary database, RMAN creates an automatic auxiliary instance for use during the task, connects to it, performs the task, and then destroys it when the task is completed. You do not give any explicit command to connect to automatic auxiliary instances.



        2)连接数据库的验证方式
        RMAN连接数据库的方式与SQLPLUS 一样,不过RMAN需要以SYSDB的身份连接.
        为了使用操作系统身份验证,首先设置ORACLE_SID
    % ORACLE_SID=prod; export ORACLE_SID
        连接
    % ORACLE_SID=prod; export ORACLE_SID

        使用密码验证:
    % rman TARGET SYS@prod
     
    target database Password:
    passwordconnected to target database: PROD1 (DBID=39525561)


    3)连接数据库
        连接语法
    Value Used in ExampleMeaning

    SYS

    User with SYSDBA privileges

    prod

    The net service name for the target database

    rco

    User that owns the recovery catalog schema. This is a user defined in the recovery catalog database that has been granted the RECOVERY_CATALOG_OWNER role.

    catdb

    The net service name for the recovery catalog database

    aux

    The net service name for an auxiliary instance



        连接target,操作系统验证
    % rman TARGET / NOCATALOG
     
    connected to target database: PROD (DBID=39525561)
    using target database control file instead of recovery catalog
     
    RMAN>
        
        连接target,密码验证
    % rman TARGET SYS@prod NOCATALOG
     
    target database Password:
    password
    connected to target database: PROD (DBID=39525561)
     
    RMAN>
        
        同时连接target和catalog
    % rman TARGET SYS@prod CATALOG rco@catdb
     
    target database Password:
    password
    connected to target database: PROD (DBID=39525561)
    recovery catalog database Password:
    password
    connected to recovery catalog database
     
    RMAN>

        在命令提示符中连接:
    RMAN> CONNECT TARGET /
    RMAN> CONNECT CATALOG rco@catdb

    RMAN> CONNECT TARGET SYS@prod

        连接辅助数据库.
        在duplicateo(复制)数据库和执行基于时间点的表空间恢复(TSPITR)时,必须使用auxiliary instance连接辅助数据库
    % rman
    RMAN> CONNECT TARGET /
    RMAN> CONNECT AUXILIARY SYS@aux
     
    auxiliary database Password:
    passwordconnected to auxiliary database: PROD (DBID=30472568)

        在脚本中连接数据库.
        脚本内容如下
    cat > listbkup.rman << EOF
    CONNECT TARGET /
    LIST BACKUP;
    EOF
        执行
    % rman @listbkup.rman
        显示
    RMAN> CONNECT TARGET *
    2> LIST BACKUP;
    3>
    connected to target database: RDBMS (DBID=771530996)
     
    using target database control file instead of recovery catalog
     
    List of Backup Sets
    ===================



    6.Using the RMAN Pipe Interface 使用RMAN通道接口
        RMAN管道接口就是通过DBMS_PIPE 包来执行RMAN命令并输出结果,直接在SQLPLUS中执行.
     DECLARE
    2 V_INPUT VARCHAR2(32767) := 'BACKUP DATABASE;';
    3 V_OUT NUMBER;
    4 BEGIN
    5 DBMS_PIPE.PACK_MESSAGE(V_INPUT);
    6 V_OUT := DBMS_PIPE.SEND_MESSAGE('ORA$RMAN_P1_IN');
    7 DBMS_OUTPUT.PUT_LINE(V_OUT);
    8 COMMIT;
    9 END;
    10 /
    0
    启动 backup 于 02-4月 -06
    分配的通道: ORA_DISK_1
    通道 ORA_DISK_1: sid=16 devtype=DISK
    通道 ORA_DISK_1: 正在启动 full 数据文件备份集
    通道 ORA_DISK_1: 正在指定备份集中的数据文件
    在备份集中包含当前的 SPFILE
    备份集中包括当前控制文件
    输入数据文件 fno=00001 name=F:ORACLEORADATATESTSYSTEM01.DBF
    输入数据文件 fno=00002 name=F:ORACLEORADATATESTUNDOTBS01.DBF
    输入数据文件 fno=00006 name=F:ORACLEORADATATESTYANGTK01.DBF
    输入数据文件 fno=00003 name=F:ORACLEORADATATESTINDX01.DBF
    输入数据文件 fno=00005 name=F:ORACLEORADATATESTUSERS01.DBF
    输入数据文件 fno=00004 name=F:ORACLEORADATATESTTOOLS01.DBF
    通道 ORA_DISK_1: 正在启动段 102-4月 -06
    通道 ORA_DISK_1: 已完成段 102-4月 -06
    段 handle=F:ORACLEORACLE920DATABASEIHFHTAE_1_1 comment=NONE
    通道 ORA_DISK_1: 备份集已完成, 经过时间:00:01:47
    完成 backup 于 02-4月 -06
    RMAN-00572: waiting for dbms_pipe input
    PL/SQL 过程已成功完成。

    感觉管道没啥用








  • 相关阅读:
    oracle自动选择索引
    oracle避免在索引列上使用计算
    oracle强制索引失效
    oracle不明确的索引等级
    oracle等式比较和范围比较
    oracle多个平等的索引
    oracle 基础表的选择
    微信5.0:可定制菜单栏、移动支付、公众账号付费订阅
    微信公众平台消息接口开发(26)从Hello2BizUser文本到subscribe事件
    PHP数组教程
  • 原文地址:https://www.cnblogs.com/skyrim/p/3819222.html
Copyright © 2011-2022 走看看