wangchao2016226 2015-06-29 03:23 采纳率: 0%
浏览 1592

Oracle rman异机备份问题

初学oracle rman,遇到了不大理解的地方。

我想实现的是:现在两台主机,含有数据的A机与空机B。想实现在B中备份A。
现在在B中建立了恢复目录,在A的rman中使用语句:
backup database;
进行全库备份(因为测试,所以使用这一简单方式)。
但我想实现的是在B中保留A的备份,这样A down掉后我可以从B去恢复。
请问是在B的rman中直接操作,还是需要将A的备份直接复制到B的指定位置中实现备份?

关于这一机制不是很理解,可能问题有些低端,还望各位不惜赐教。谢谢~

  • 写回答

1条回答 默认 最新

  • zeruns 2015-07-12 00:47
    关注

    恢复数据库需要准备的文件:rman完整备份(包括数据文件、日志文件、控制文件、参数文件),记录源数据库的DBID

    一、安装数据库ORACLE数据库软件并创建跟源数据库同名和数据库SID并修改数据库DBID跟源数据库DBID一样,创建跟源数据库服务器相同的数据文件目录、日志文件目录、控制文件目录。

    二、修改DBID:

    SQL>CONN / AS SYSDBA;

    SQL> select dbid from v$database;

      DBID
    

    1465764760

    SQL> show parameter db_name

    NAME TYPE VALUE


    db_name string eygle

    SQL> exec dbms_backup_restore.nidbegin('eygle','EYGLE','3935589514','1465764760',0,0,10)

    PL/SQL 过程已成功完成。

    SQL> select dbid from v$database;

      DBID
    

    1465764760

    SQL> variable a number;
    SQL> variable b number
    SQL> variable c number;
    SQL> exec dbms_backup_restore.nidprocessdf(0,0,:a,:b,:c);

    PL/SQL 过程已成功完成。

    SQL> print :a

        A
    

        0
    

    SQL> print :b

        B
    

        1
    

    SQL> print :c

        C
    

        1
    

    SQL> exec dbms_backup_restore.nidprocesscf(:a,:b);

    PL/SQL 过程已成功完成。

    SQL> print :a

        A
    

        1
    

    SQL> print :b

        B
    

        1
    

    SQL> exec dbms_backup_restore.nidend;

    PL/SQL 过程已成功完成。

    SQL> select dbid from v$database;

      DBID
    

    3935589514
    三、DBID修改成功后,依次恢复参数文件、控制文件、数据文件、日志文件:

    SQL>startup nomount force
    SQL>host;

    C:\Documents and Settings\Administrator>rman target /

    恢复管理器: Release 10.2.0.1.0 - Production on 星期三 9月 1 23:19:41 2010
    Copyright (c) 1982, 2005, Oracle. All rights reserved.
    连接到目标数据库: study (未装载)
    ----恢复参数文件

    RMAN> restore spfile to pfile 'D:\ORACLE\DATABASE\INITSTORDA.ORA' from 'D:\ORACLE\backup\C-3350757905-20090826-03';

    --恢复控制文件

    RMAN> restore controlfile from 'F:\FULL-x\CONTROL7286087020.CTL';
    启动 restore 于 01-9月 -10
    使用目标数据库控制文件替代恢复目录
    分配的通道: ORA_DISK_1
    通道 ORA_DISK_1: sid=156 devtype=DISK
    通道 ORA_DISK_1: 正在复原控制文件
    通道 ORA_DISK_1: 恢复完成, 用时: 00:00:06
    输出文件名=D:\ORACLE\PRODUCT\10.2.0\ORADATA\STUDY\CONTROL01.CTL
    输出文件名=D:\ORACLE\PRODUCT\10.2.0\ORADATA\STUDY\CONTROL02.CTL
    输出文件名=D:\ORACLE\PRODUCT\10.2.0\ORADATA\STUDY\CONTROL03.CTL
    完成 restore 于 01-9月 -10
    RMAN> alter database mount;
    数据库已装载
    释放的通道: ORA_DISK_1
    RMAN>
    ----恢复所有可用的数据文件
    SQL> select file#,name from v$datafile;
    FILE# NAME


         1 D:\ORACLE\PRODUCT\10.2.0\ORADATA\STUDY\SYSTEM01.DBF
         2 D:\ORACLE\PRODUCT\10.2.0\ORADATA\STUDY\UNDOTBS01.DBF
         3 D:\ORACLE\PRODUCT\10.2.0\ORADATA\STUDY\SYSAUX01.DBF
         4 D:\ORACLE\PRODUCT\10.2.0\ORADATA\STUDY\USERS01.DBF
         5 D:\ORACLE\PRODUCT\10.2.0\ORADATA\STUDY\STREAMS_TBS01.DBF
         6 D:\ORACLE\PRODUCT\10.2.0\ORADATA\STUDY\PHONE01.DBF
         7 D:\ORACLE\PRODUCT\10.2.0\ORADATA\STUDY\PHONE02.DBF
    

    已选择7行。

    RMAN> restore datafile 1,2,3,4,5,6;
    启动 restore 于 01-9月 -10
    使用通道 ORA_DISK_1
    通道 ORA_DISK_1: 正在开始恢复数据文件备份集
    通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
    正将数据文件00001恢复到D:\ORACLE\PRODUCT\10.2.0\ORADATA\STUDY\SYSTEM01.DBF
    正将数据文件00002恢复到D:\ORACLE\PRODUCT\10.2.0\ORADATA\STUDY\UNDOTBS01.DBF
    正将数据文件00003恢复到D:\ORACLE\PRODUCT\10.2.0\ORADATA\STUDY\SYSAUX01.DBF
    正将数据文件00004恢复到D:\ORACLE\PRODUCT\10.2.0\ORADATA\STUDY\USERS01.DBF
    正将数据文件00005恢复到D:\ORACLE\PRODUCT\10.2.0\ORADATA\STUDY\STREAMS_TBS01.DBF
    正将数据文件00006恢复到D:\ORACLE\PRODUCT\10.2.0\ORADATA\STUDY\PHONE01.DBF
    通道 ORA_DISK_1: 正在读取备份段 F:\FULL-X\0CLMRBQU_1_1
    通道 ORA_DISK_1: 已恢复备份段 1
    段句柄 = F:\FULL-X\0CLMRBQU_1_1 标记 = TAG20100901T231645
    通道 ORA_DISK_1: 恢复完成, 用时: 00:01:15
    完成 restore 于 01-9月 -10
    ----恢复归档日志文件
    RMAN> run{
    2> set archivelog destination to '/racbackup';
    3> restore archivelog all;
    4> }
    ----恢复数据库
    SQL> conn /as sysdba
    SQL> recover database using backup controlfile until cancel;
    ----指定 resetlogs关键字,启动数据库到open状态
    SQL> alter database open resetlogs;

    至此,数据库恢复正常

    SQL>CONN / AS SYSDBA;
    ----修改用户密码
    SQL>alter user SYS identified by SYS;
    ----修改密码文件方法
    C:\Documents and Settings\Administrator>orapwd file=C:\Oracle\product\11.2.0\dbhome_1\database\PWDdmsasc.ora password=SYS force=y

    评论

报告相同问题?

悬赏问题

  • ¥15 矩阵加法的规则是两个矩阵中对应位置的数的绝对值进行加和
  • ¥15 活动选择题。最多可以参加几个项目?
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?
  • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)
  • ¥20 怎么在stm32门禁成品上增加查询记录功能
  • ¥15 Source insight编写代码后使用CCS5.2版本import之后,代码跳到注释行里面
  • ¥50 NT4.0系统 STOP:0X0000007B
  • ¥15 想问一下stata17中这段代码哪里有问题呀