Oracle 异机恢复

2023-12-07 05:08
文章标签 oracle 恢复 异机

本文主要是介绍Oracle 异机恢复,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!



注意事项:
1 此处实验环境为同平台,同字节序,同版本,源机器和目标机器相同的目录结构。
2 目标机器只需要安装oracle数据库软件即可。
3 第一次利用备份恢复测试环境,之后从源机器拷贝备份到目标机器并在控制文件中注册,再见行恢复测试。
 
一 拷贝参数文件备份、控制文件备份、数据文件备份、以及归档备份到新主机上
 
1 rman 连接到源数据库
 
[oracle@oracle dbs]$ rman target /
Recovery Manager: Release 10.2.0.1.0 - Production on Tue Dec 11 19:02:05 2012
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
connected to target database: CRM (DBID=3601019238)
RMAN>
2  分别列出参数文件备份,控制文件备份,数据文件备份,以及归档备份的名字
 
参数文件备份如下:
RMAN> list backup of spfile;
BS Key  Type LV Size       Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
13      Full    7.11M      DISK        00:00:04     09-DEC-12     
        BP Key: 13   Status: AVAILABLE  Compressed: NO  Tag: TAG20121209T040058
        Piece Name: /oracle/app/db1/dbs/0dnsd96i_1_1
  SPFILE Included: Modification time: 09-DEC-12
控制文件备份如下:
RMAN> list backup of controlfile;
BS Key  Type LV Size       Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
13      Full    7.11M      DISK        00:00:04     09-DEC-12     
        BP Key: 13   Status: AVAILABLE  Compressed: NO  Tag: TAG20121209T040058
        Piece Name: /oracle/app/db1/dbs/0dnsd96i_1_1
  Control File Included: Ckp SCN: 2779528241   Ckp time: 09-DEC-12
数据文件备份如下:
RMAN> list backup of database;
BS Key  Type LV Size       Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
12      Full    599.38M    DISK        00:03:33     09-DEC-12     
        BP Key: 12   Status: AVAILABLE  Compressed: NO  Tag: TAG20121209T040058
        Piece Name: /oracle/app/db1/dbs/0cnsd8vq_1_1
  List of Datafiles in backup set 12
  File LV Type Ckp SCN    Ckp Time  Name
  ---- -- ---- ---------- --------- ----
  1       Full 2779528081 09-DEC-12 /oracle/test/system1.dbf
  2       Full 2779528081 09-DEC-12 /oracle/test/zxb.dbf
  3       Full 2779528081 09-DEC-12 /oracle/test/sysaux01.dbf
  4       Full 2779528081 09-DEC-12 /oracle/test/users01.dbf
  5       Full 2779528081 09-DEC-12 /oracle/test/zxa.dbf
  6       Full 2779528081 09-DEC-12 /oracle/test/test1.dbf
  7       Full 2779528081 09-DEC-12 /oracle/test/zxc.dbf
  8       Full 2779528081 09-DEC-12 /oracle/test/undotbs1.dbf
  9       Full 2779528081 09-DEC-12 /oracle/test/zxbig.dbf
 
列出归档备份如下:
RMAN> list backup of archivelog all;
注意:归档的备份应该包括当前联机日志文件。
3 copy 这些备份到新的主机
 
二 恢复参数文件及控制文件
 
 1 配置新主机上的ORACLE_SID
  export   ORACLE_SID=CRM
 
 2 在新主机上发起rman连接
 
[oracle@oracle dbs]$ rman target /
 
Recovery Manager: Release 10.2.0.1.0 - Production on Mon Dec 10 05:49:11 2012
 
Copyright (c) 1982, 2005, Oracle. All rights reserved.
 
connected to target database (not started)
 
3  设置dbid 并启动实例到nomount状态
   
RMAN> set dbid 3601019238
 
executing command: SET DBID
 
RMAN> startup nomount
 
startup failed: ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/oracle/app/db1/dbs/initCRM.ora'
 
starting Oracle instance without parameter file for retrival of spfile
Oracle instance started
 
Total System Global Area     159383552 bytes
 
Fixed Size                     2019224 bytes
Variable Size                 67108968 bytes
Database Buffers              83886080 bytes
Redo Buffers                   6369280 bytes
注意:在rman下即使没有参数文件,默认也会启动一个DUMMY实例,以便能够恢复参数文件。
4  恢复spfile文件
 
RMAN> restore spfile to '/oracle/app/db1/dbs/spfileCRM.ora' from '/oracle/app/db1/dbs/0dnsd96i_1_1';
 
Starting restore at 10-DEC-12
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=34 devtype=DISK
 
channel ORA_DISK_1: autobackup found: /oracle/app/db1/dbs/0dnsd96i_1_1
channel ORA_DISK_1: SPFILE restore from autobackup complete
Finished restore at 10-DEC-12
 
5 startup force nomount
 
RMAN> startup force nomount;
 
Oracle instance started
 
Total System Global Area     322961408 bytes
 
Fixed Size                     2020480 bytes
Variable Size                 96471936 bytes
Database Buffers             218103808 bytes
Redo Buffers                   6365184 bytes
 
6 恢复控制文件
 
RMAN> restore controlfile to '/oracle/CRM2/CRM/control01.ctl' from '/oracle/app/db1/dbs/0dnsd96i_1_1';
 
Starting restore at 10-DEC-12
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=210 devtype=DISK
 
channel ORA_DISK_1: restoring control file
channel ORA_DISK_1: restore complete, elapsed time: 00:00:04
Finished restore at 10-DEC-12
 
 
cp /oracle/CRM2/CRM/control01.ctl /oracle/CRM2/CRM/control02.ctl
 
7 启动数据库到加载状态
RMAN> alter database mount;
 
database mounted
released channel: ORA_DISK_1
 
三  在新控制文件中注册数据文件备份和归档备份
 
RMAN> catalog start with '/backup/';    #取消是drop catalog
 
searching for all files that match the pattern /backup/
 
List of Files Unknown to the Database
=====================================
File Name: /backup/0ensd96n_1_1
File Name: /backup/0bnsd8vn_1_1
File Name: /backup/0cnsd8vq_1_1
 
Do you really want to catalog the above files (enter YES or NO)? yes
cataloging files...
cataloging done
 
List of Cataloged Files
=======================
File Name: /backup/0ensd96n_1_1
File Name: /backup/0bnsd8vn_1_1
File Name: /backup/0cnsd8vq_1_1
 
四  恢复整个库
 
1 RMAN> restore database;
 
Starting restore at 10-DEC-12
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=209 devtype=DISK
 
channel ORA_DISK_1: starting datafile backupset restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
restoring datafile 00001 to /oracle/test/system1.dbf
restoring datafile 00002 to /oracle/test/zxb.dbf
restoring datafile 00003 to /oracle/test/sysaux01.dbf
restoring datafile 00004 to /oracle/test/users01.dbf
restoring datafile 00005 to /oracle/test/zxa.dbf
restoring datafile 00006 to /oracle/test/test1.dbf
restoring datafile 00007 to /oracle/test/zxc.dbf
restoring datafile 00008 to /oracle/test/undotbs1.dbf
restoring datafile 00009 to /oracle/test/zxbig.dbf
channel ORA_DISK_1: reading from backup piece /oracle/app/db1/dbs/0cnsd8vq_1_1
channel ORA_DISK_1: restored backup piece 1
piece handle=/oracle/app/db1/dbs/0cnsd8vq_1_1 tag=TAG20121209T040058
channel ORA_DISK_1: restore complete, elapsed time: 00:02:56
Finished restore at 10-DEC-12
 

#restore archivelog all;
2 RMAN> recover database;
 
Starting recover at 10-DEC-12
using channel ORA_DISK_1
 
starting media recovery
 
archive log thread 1 sequence 16 is already on disk as file /oracle/CRM2/CRM/redo04b.log
archive log thread 1 sequence 17 is already on disk as file /oracle/CRM2/CRM/redo05.log
archive log filename=/oracle/CRM2/CRM/redo04b.log thread=1 sequence=16
archive log filename=/oracle/CRM2/CRM/redo05.log thread=1 sequence=17
media recovery complete, elapsed time: 00:00:05
Finished recover at 10-DEC-12
 
3 alter database open resetlogs 打开数据库
SQL> alter database open resetlogs;
 
Database altered.


总结:到此,库已经恢复完成,以后只需要把源机器数据备份、归档备份,或者归档文件,拷贝到目标机器上,并在控制文件中注册该备份(catalog start with ‘/backup/’)然后执行恢复即可。

如果异机异位置恢复的话,可以使用一下方式进行恢复;

run {
set newname for datafile 1 to '/data/orcl/datafile/system01.dbf';
set newname for datafile 2 to '/data/orcl/datafile/sysaux01.dbf';
set newname for datafile 3 to '/data/orcl/datafile/undotbs01.dbf';
set newname for datafile 4 to '/data/orcl/datafile/users01.dbf';
set newname for datafile 5 to '/data/orcl/datafile/bsskzy01.dbf';
set newname for datafile 6 to '/data/orcl/datafile/zyscm01.dbf';
set newname for datafile 7 to '/data/orcl/datafile/zyscm_index01.dbf';
set newname for datafile 8 to '/data/orcl/datafile//retbillmt01.dbf';
set newname for datafile 9 to '/data/orcl/datafile/retbillmt_index01.dbf';
set newname for datafile 10 to '/data/orcl/datafile/retgoodsdt01.dbf';
set newname for datafile 11 to '/data/orcl/datafile/retgoodsdt_index01.dbf';
set newname for datafile 12 to  '/data/orcl/datafile/rettypedt01.dbf';
set newname for datafile 13 to  '/data/orcl/datafile/retgoodsdt_index01.dbf';
restore database;
switch datafile all;
}



 


这篇关于Oracle 异机恢复的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/464576

相关文章

使用Python实现网络设备配置备份与恢复

《使用Python实现网络设备配置备份与恢复》网络设备配置备份与恢复在网络安全管理中起着至关重要的作用,本文为大家介绍了如何通过Python实现网络设备配置备份与恢复,需要的可以参考下... 目录一、网络设备配置备份与恢复的概念与重要性二、网络设备配置备份与恢复的分类三、python网络设备配置备份与恢复实

Oracle存储过程里操作BLOB的字节数据的办法

《Oracle存储过程里操作BLOB的字节数据的办法》该篇文章介绍了如何在Oracle存储过程中操作BLOB的字节数据,作者研究了如何获取BLOB的字节长度、如何使用DBMS_LOB包进行BLOB操作... 目录一、缘由二、办法2.1 基本操作2.2 DBMS_LOB包2.3 字节级操作与RAW数据类型2.

MySQL使用binlog2sql工具实现在线恢复数据功能

《MySQL使用binlog2sql工具实现在线恢复数据功能》binlog2sql是大众点评开源的一款用于解析MySQLbinlog的工具,根据不同选项,可以得到原始SQL、回滚SQL等,下面我们就来... 目录背景目标步骤准备工作恢复数据结果验证结论背景生产数据库执行 SQL 脚本,一般会经过正规的审批

查看Oracle数据库中UNDO表空间的使用情况(最新推荐)

《查看Oracle数据库中UNDO表空间的使用情况(最新推荐)》Oracle数据库中查看UNDO表空间使用情况的4种方法:DBA_TABLESPACES和DBA_DATA_FILES提供基本信息,V$... 目录1. 通过 DBjavascriptA_TABLESPACES 和 DBA_DATA_FILES

通过ibd文件恢复MySql数据的操作方法

《通过ibd文件恢复MySql数据的操作方法》文章介绍通过.ibd文件恢复MySQL数据的过程,包括知道表结构和不知道表结构两种情况,对于知道表结构的情况,可以直接将.ibd文件复制到新的数据库目录并... 目录第一种情况:知道表结构第二种情况:不知道表结构总结今天干了一件大事,安装1Panel导致原来服务

Oracle登录时忘记用户名或密码该如何解决

《Oracle登录时忘记用户名或密码该如何解决》:本文主要介绍如何在Oracle12c中忘记用户名和密码时找回或重置用户账户信息,文中通过代码介绍的非常详细,对同样遇到这个问题的同学具有一定的参... 目录一、忘记账户:二、忘记密码:三、详细情况情况 1:1.1. 登录到数据库1.2. 查看当前用户信息1.

MySQL InnoDB引擎ibdata文件损坏/删除后使用frm和ibd文件恢复数据

《MySQLInnoDB引擎ibdata文件损坏/删除后使用frm和ibd文件恢复数据》mysql的ibdata文件被误删、被恶意修改,没有从库和备份数据的情况下的数据恢复,不能保证数据库所有表数据... 参考:mysql Innodb表空间卸载、迁移、装载的使用方法注意!此方法只适用于innodb_fi

mysql通过frm和ibd文件恢复表_mysql5.7根据.frm和.ibd文件恢复表结构和数据

《mysql通过frm和ibd文件恢复表_mysql5.7根据.frm和.ibd文件恢复表结构和数据》文章主要介绍了如何从.frm和.ibd文件恢复MySQLInnoDB表结构和数据,需要的朋友可以参... 目录一、恢复表结构二、恢复表数据补充方法一、恢复表结构(从 .frm 文件)方法 1:使用 mysq

mysql8.0无备份通过idb文件恢复数据的方法、idb文件修复和tablespace id不一致处理

《mysql8.0无备份通过idb文件恢复数据的方法、idb文件修复和tablespaceid不一致处理》文章描述了公司服务器断电后数据库故障的过程,作者通过查看错误日志、重新初始化数据目录、恢复备... 周末突然接到一位一年多没联系的妹妹打来电话,“刘哥,快来救救我”,我脑海瞬间冒出妙瓦底,电信火苲马扁.

oracle DBMS_SQL.PARSE的使用方法和示例

《oracleDBMS_SQL.PARSE的使用方法和示例》DBMS_SQL是Oracle数据库中的一个强大包,用于动态构建和执行SQL语句,DBMS_SQL.PARSE过程解析SQL语句或PL/S... 目录语法示例注意事项DBMS_SQL 是 oracle 数据库中的一个强大包,它允许动态地构建和执行