Oracle rman异机备份问题

问题描述

Oracle rman异机备份问题

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

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

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

解决方案

恢复数据库需要准备的文件: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 SettingsAdministrator>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:ORACLEDATABASEINITSTORDA.ORA' from 'D:ORACLEbackupC-3350757905-20090826-03';

--恢复控制文件

RMAN> restore controlfile from 'F:FULL-xCONTROL7286087020.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:ORACLEPRODUCT10.2.0ORADATASTUDYCONTROL01.CTL
输出文件名=D:ORACLEPRODUCT10.2.0ORADATASTUDYCONTROL02.CTL
输出文件名=D:ORACLEPRODUCT10.2.0ORADATASTUDYCONTROL03.CTL
完成 restore 于 01-9月 -10
RMAN> alter database mount;
数据库已装载
释放的通道: ORA_DISK_1
RMAN>
----恢复所有可用的数据文件
SQL> select file#,name from v$datafile;
FILE# NAME


     1 D:ORACLEPRODUCT10.2.0ORADATASTUDYSYSTEM01.DBF
     2 D:ORACLEPRODUCT10.2.0ORADATASTUDYUNDOTBS01.DBF
     3 D:ORACLEPRODUCT10.2.0ORADATASTUDYSYSAUX01.DBF
     4 D:ORACLEPRODUCT10.2.0ORADATASTUDYUSERS01.DBF
     5 D:ORACLEPRODUCT10.2.0ORADATASTUDYSTREAMS_TBS01.DBF
     6 D:ORACLEPRODUCT10.2.0ORADATASTUDYPHONE01.DBF
     7 D:ORACLEPRODUCT10.2.0ORADATASTUDYPHONE02.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:ORACLEPRODUCT10.2.0ORADATASTUDYSYSTEM01.DBF
正将数据文件00002恢复到D:ORACLEPRODUCT10.2.0ORADATASTUDYUNDOTBS01.DBF
正将数据文件00003恢复到D:ORACLEPRODUCT10.2.0ORADATASTUDYSYSAUX01.DBF
正将数据文件00004恢复到D:ORACLEPRODUCT10.2.0ORADATASTUDYUSERS01.DBF
正将数据文件00005恢复到D:ORACLEPRODUCT10.2.0ORADATASTUDYSTREAMS_TBS01.DBF
正将数据文件00006恢复到D:ORACLEPRODUCT10.2.0ORADATASTUDYPHONE01.DBF
通道 ORA_DISK_1: 正在读取备份段 F:FULL-XCLMRBQU_1_1
通道 ORA_DISK_1: 已恢复备份段 1
段句柄 = F:FULL-XCLMRBQU_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 SettingsAdministrator>orapwd file=C:Oracleproduct11.2.0dbhome_1databasePWDdmsasc.ora password=SYS force=y

时间: 2024-10-29 04:33:08

Oracle rman异机备份问题的相关文章

RMAN异机恢复遭遇ORA-01547、ORA-01152、ORA-01110错误案例

测试环境:     操作系统  :  Red Hat Enterprise Linux ES release 4 (Nahant Update 4)   VMWARE     数据库     :  Oracle Database 10g Release 10.2.0.4.0 - Production     简要介绍,一台服务器A位于虚拟机VMWARE上,由于测试需要,在VMWARE上克隆了该系统作为服务器B,过了一段时间,由于数据变更,需要将服务器A上的ORACLE数据库还原恢复到服务器B上.

Oracle中使用RMAN 异机复制数据库

RMAN 异机复制和同机复制操作步骤是一样的,不同的是我们需要把备份的文件copy到辅助库上 实验平台: REDHAT linux 4.7 + oracle 10g 目标库信息: ORACLE_BASE: /u01/app/oracle ORACLE_HOME: /u01/app/oracle/product/10.2.0/db_1 ORACLE_SID:orcl IP: 192.168.1.20 辅助库信息: ORACLE_BASE: /u01/app/oracle ORACLE_HOME:

使用RMAN实现异机备份恢复(WIN平台)

--=================================-- 使用RMAN实现异机备份恢复(WIN平台)--=================================     在有些情况下,如数据库服务器处于磁盘空间的压力或成本控制需要将数据文件备份到异机,使用RMAN可以完成该工作.基于Windows平台所需完成的配置相对简单,仅仅是添加账户与使用新增的帐户来启动数据库服务以及设置共享路径.    下面给出具体描述.    一.配置数据库服务器与备份目的主机    1.

Linux平台下RMAN异机恢复总结

下面总结.整理一下RMAN异机恢复这方面的知识点,这篇笔记在个人笔记里面躺了几年了,直到最近偶然被翻看到,遂整理.总结一下.如下所示,个人将整个RMAN异机恢复分为准备工作和操作步骤两大部分.当然,准备工作里面,有些步骤不是必须的,可以跳过或忽略的.这个取决于你的实际环境和你对RMAN异机恢复的熟悉程度.   准备工作   1:了解一下目标服务器与源服务器的操作系统版本信息   需要对比一下目标服务器与源服务器的操作系统版本是否一致,具体来说,操作系统版本信息.内核信息(例如Oracle Lin

MS-SQL异机备份恢复并最小化停机时间

本文采用备份加增量日志的恢复方法,恢复源库到异机,增量日志恢复保证停机切换时间最小. 一. SQL Server数据库有三种恢复模式:简单恢复模式.完整恢复模式和大容量日志恢复模式:   1.Simple 简单恢复模式, Simple模式的旧称叫"Checkpoint with truncate log",其实这个名字更形象,在Simple模式下,SQL Server会在每次checkpoint或backup之后自动截断log,也就是丢弃所有的inactive log records,

如何使用nbu异机备份恢复oracle

1.1 Nbu备份oracle NBU备份oracle步骤 1.在oracle数据库所在服务器上安装NBU客户端. 2.修改oracle的备份数据库脚本 9.1.1修改备份脚本 安装好客户端后生成的默认脚本路径: 备份脚本在nbu的安装目录里,oracle数据一般默认位置为:C:\Program Files\Veritas\NetBackup\DbExt\Oracle\Samples\rman 将脚本拷贝到c:\scripts目录下并重命名为hot_database_backup,修改一下几项

oracle 11g RMAN异机恢复过程

原库确定数据文件,日志文件,tempfile 文件信息 select group#,status,type, member from v$logfile; col name format a65 select file#,name,bytes/1024/1024 MB from v$datafile; select name from v$controlfile; 1.创建实例 oradim (命令行下包含多种可选项,可自行选择) oradim -new -sid maxld 在已有数据库运行的

RMAN异机还原的ORA-19698错误

实验环境: 操作系统    :Oracle Linux Server release 5.7 64 bit 数据库版本:Oracle Database 10g Release 10.2.0.4.0 - 64bit Production 案例说明: 为了测试.验证备份的有效性,需要将服务器A上的数据库的备份集还原到服务器B上,服务器B上已经创建了相同名称的ORACLE_SID和DB Name,对应数据文件目录环境完全一致 Step 1: startup nomount Step 2:  resto

RMAN异机还原遭遇ORA-19698错误案例

实验环境:               操作系统    :Oracle Linux Server release 5.7 64 bit               数据库版本:Oracle Database 10g Release 10.2.0.4.0 - 64bit Production 案例说明: 为了测试.验证备份的有效性,需要将服务器A上的数据库的备份集还原到服务器B上,服务器B上已经创建了相同名称的ORACLE_SID和DB Name,对应数据文件目录环境完全一致 Step 1: st