2 wangchao2016226 wangchao2016226 于 2015.06.29 11:23 提问

Oracle rman异机备份问题

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

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

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

1个回答

u012513463
u012513463   2015.07.12 08: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

Csdn user default icon
上传中...
上传图片
插入图片