设为首页 收藏本站
查看: 706|回复: 0

[经验分享] oracle 10.2.0.4 rac(ASM) 恢复到单实例文件系统

[复制链接]

尚未签到

发表于 2016-8-5 11:10:54 | 显示全部楼层 |阅读模式
rac恢复到单实例
源服务器:
rac1:192.168.100.201
rac2:192.168.100.202
目标服务器:
192.168.8.201
主要步骤:
恢复初始化参数文件->修改参数文件->恢复控制文件->resotre数据文件->recover数据文件
1、正确安装单实例数据库
1)查看rac文件环境变量
[oracle@rac2 log]$ cat /etc/profile.d/oraenv.sh
# oracle 10g
export ORACLE_BASE=/oracle/ora10g
export ORACLE_HOME=$ORACLE_BASE/product/db
export CRS_HOME=$ORACLE_BASE/product/crs
export PATH=$CRS_HOME/bin:$ORACLE_HOME/bin:$PATH
export ORACLE_OWNER=oracle
export ORACLE_SID=jscn2
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export NLS_LANG='american_america.ZHS16GBK'
#export NLS_LANG='american_america.AL32UTF8'
umask 022
目标服务器ORACLE_SID不要设置
2)根据这个环境变量创建目标服务器数据库(包括,数据库的安装,升级包安装,数据库不要创建)

2、恢复阶段
1)启动目标数据库到nomount
[oracle@IM-8-201 ~]$ rman target /

Recovery Manager: Release 10.2.0.4.0 - Production on Tue Nov 22 21:45:18 2011

Copyright (c) 1982, 2007, Oracle. All rights reserved.

connected to target database (not started)

RMAN> startup nomount;

startup failed: ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/oracle/ora10g/product/db/dbs/initjscnora'

starting Oracle instance without parameter file for retrival of spfile
Oracle instance started

Total System Global Area 159383552 bytes

Fixed Size 2082400 bytes
Variable Size 67111328 bytes
Database Buffers 83886080 bytes
Redo Buffers 6303744 bytes

2)从备份集中恢复spfile,并保存成pfile,操作如下
把最近的0级备份和后面的备份文件拷贝到
我们看到备份集有如下
[oracle@rac2 orabak]$ ll
total 756284
-rw-r----- 1 oracle oinstall 622592 Dec 2 16:11 arch_JSCN_20111202_286
-rw-r----- 1 oracle oinstall 266752 Dec 2 16:11 arch_JSCN_20111202_287
-rw-r----- 1 oracle oinstall 140288 Dec 2 16:13 arch_JSCN_20111202_296
-rw-r----- 1 oracle oinstall 36352 Dec 2 16:13 arch_JSCN_20111202_297
-rw-r----- 1 oracle oinstall 16908288 Dec 2 16:13 control_c-2437751542-20111202-00
-rw-r----- 1 oracle oinstall 16908288 Dec 3 15:04 control_c-2437751542-20111203-00
-rw-r----- 1 oracle oinstall 16908288 Dec 3 16:23 control_c-2437751542-20111203-01
-rw-r----- 1 oracle oinstall 16908288 Dec 6 13:23 control_c-2437751542-20111206-00

-rw-r----- 1 oracle oinstall 196608 Dec 2 16:11 lev0_JSCN_20111202_288
-rw-r----- 1 oracle oinstall 32784384 Dec 2 16:11 lev0_JSCN_20111202_289
-rw-r----- 1 oracle oinstall 172032 Dec 2 16:11 lev0_JSCN_20111202_290
-rw-r----- 1 oracle oinstall 388726784 Dec 2 16:12 lev0_JSCN_20111202_291
-rw-r----- 1 oracle oinstall 256327680 Dec 2 16:13 lev0_JSCN_20111202_292
-rw-r----- 1 oracle oinstall 9658368 Dec 2 16:13 lev0_JSCN_20111202_293
-rw-r----- 1 oracle oinstall 15204352 Dec 2 16:13 lev0_JSCN_20111202_294
-rw-r----- 1 oracle oinstall 1818624 Dec 2 16:13 lev0_JSCN_20111202_295

这几个都是最近的备份,红色的为最近备份的控制文件
让我们恢复参数文件
[oracle@IM-8-201 ~]$ rman target /

Recovery Manager: Release 10.2.0.4.0 - Production on Tue Nov 22 22:07:18 2011

Copyright (c) 1982, 2007, Oracle. All rights reserved.

connected to target database: DUMMY (not mounted)

RMAN> restore spfile to pfile '/home/oracle/initjscn.ora' from '/orabak/lev2_JSCN_20111201_182';

Starting restore at 22-NOV-11
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=39 devtype=DISK

channel ORA_DISK_1: autobackup found: /orabak/lev2_JSCN_20111201_182
channel ORA_DISK_1: SPFILE restore from autobackup complete
Finished restore at 22-NOV-11

--查看/home/oracle/initjscn.ora
接下来要做的是个体力活,修改 pfile.ora 中的初始化参数,主要有三方面的修改
1 修改含文件路径的参数,达到符合当前服务器环境的实际情况
2 修改多实例相关的参数
3 内存参数(如果源服务器和目录服务器内存一样大,不用调)
原文件内容如下:

---------------------------------------------------------------------------------------------------
jscn2.__db_cache_size=1207959552
jscn1.__db_cache_size=1207959552
jscn2.__java_pool_size=16777216
jscn1.__java_pool_size=16777216
jscn2.__large_pool_size=16777216
jscn1.__large_pool_size=16777216
jscn2.__shared_pool_size=352321536
jscn1.__shared_pool_size=352321536
jscn2.__streams_pool_size=0
jscn1.__streams_pool_size=0
*.audit_file_dest='/oracle/ora10g/admin/jscn/adump'
*.background_dump_dest='/oracle/ora10g/admin/jscn/bdump'
*.cluster_database_instances=2
*.cluster_database=true
*.compatible='10.2.0.3.0'
*.control_files='+DATA/jscn/controlfile/current.263.768517111'
*.core_dump_dest='/oracle/ora10g/admin/jscn/cdump'
*.db_block_size=8192
*.db_create_file_dest='+DATA'
*.db_domain=''
*.db_file_multiblock_read_count=8
*.db_name='jscn'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=jscnXDB)'
jscn1.instance_number=1
jscn2.instance_number=2
*.job_queue_processes=10
jscn1.log_archive_dest_1='location=/oraarch1/'
jscn2.log_archive_dest_1='location=/oraarch2/'
jscn1.log_archive_dest_2='service=jscn2'
jscn2.log_archive_dest_2='service=jscn1'
*.open_cursors=300
*.pga_aggregate_target=2512388096
*.processes=1500
*.remote_listener='LISTENERS_JSCN'
*.remote_login_passwordfile='exclusive'
*.sessions=1655
*.sga_target=1610612736
jscn1.standby_archive_dest='/oraarch2/'
jscn2.standby_archive_dest='/oraarch1'
jscn2.thread=2
jscn1.thread=1
*.undo_management='AUTO'
jscn1.undo_tablespace='UNDOTBS1'
jscn2.undo_tablespace='UNDOTBS2'
*.user_dump_dest='/oracle/ora10g/admin/jscn/udump'
---------------------------------------------------------------------------------------------------

最终修改完之后,这里的初始化参数如下,比如原来的文件精简不少:
---------------------------------------------------------------------------------------------------
*.audit_file_dest='/oracle/ora10g/admin/jscn/adump'
*.background_dump_dest='/oracle/ora10g/admin/jscn/bdump'
*.compatible='10.2.0.3.0'
*.control_files='/oracle/ora10g/oradata/jscn/control01.ctl','/oracle/ora10g/oradata/jscn/control01.ctl',
*.core_dump_dest='/oracle/ora10g/admin/jscn/cdump'
*.db_block_size=8192
*.db_domain=''
*.db_file_multiblock_read_count=8
*.db_name='jscn'
*.job_queue_processes=10
*.log_archive_dest_1='location=/oraarch'
*.open_cursors=300
*.pga_aggregate_target=251238809
*.processes=150
*.remote_login_passwordfile='exclusive'
*.sessions=165
*.sga_target=261061273
*.undo_management='AUTO'
undo_tablespace='UNDOTBS1'
*.user_dump_dest='/oracle/ora10g/admin/jscn/udump'
---------------------------------------------------------------------------------------------------

现在我们开始恢复了
SQL> create spfile from pfile ='/home/oracle/initjscn.ora';

File created.
SQL> shutdown immediate
--下面为碰到问题了
ORACLE instance shut down.
SQL> startup nomount
ORA-07446: sdnfy: bad value '/oracle/ora10g/admin/jscn/udump' for parameter user_dump_dest.
SQL> startup nomount
ORACLE instance started.
ORA-04030: out of process memory when trying to allocate 32 bytes (sqlarea,tmp)

如果碰到以上错误
--1、创建相应的目录
  --2、修改pga_aggregate_target为合适的值
  

--正常情况应该如下
SQL> startup nomount
ORACLE instance started.

Total System Global Area 264241152 bytes
Fixed Size 2083200 bytes
Variable Size 83887744 bytes
Database Buffers 171966464 bytes
Redo Buffers 6303744 bytes

3)恢复控制文件
[oracle@IM-8-201 ~]$ rman target /

Recovery Manager: Release 10.2.0.4.0 - Production on Tue Nov 22 23:55:44 2011

Copyright (c) 1982, 2007, Oracle. All rights reserved.

connected to target database: jscn (not mounted)

RMAN> set dbid=2437751542 --设置dbid

executing command: SET DBID

RMAN> restore controlfile from '/orabak/control_c-2437751542-20111202-00'; --恢复控制文件

Starting restore at 23-NOV-11
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=157 devtype=DISK

channel ORA_DISK_1: restoring control file
channel ORA_DISK_1: restore complete, elapsed time: 00:00:03
output filename=/oracle/ora10g/oradata/jscn/control01.ctl
output filename=/oracle/ora10g/oradata/jscn/control02.ctl
Finished restore at 23-NOV-11

RMAN> alter database mount;

database mounted

4)恢复数据文件
先查看源文件配置
数据文件:
[oracle@rac2 orabak]$ sqlplus / as sysdba
SQL> select file#,name from v$datafile;

FILE# NAME
---------- --------------------------------------------------------------------------------
1 +DATA/jscn/datafile/system.276.768517007
2 +DATA/jscn/datafile/undotbs1.280.768517007
3 +DATA/jscn/datafile/sysaux.277.768517007
4 +DATA/jscn/datafile/users.281.768517009
5 +DATA/jscn/datafile/undotbs2.265.768517163
6 +DATA/jscn/datafile/jscn.279.768561585
7 +DATA/jscn/datafile/jscndata.274.768561677
8 +DATA/jscn/datafile/jscnindex.273.768561769

临时文件
SQL> select file#,name from v$tempfile;

FILE# NAME
---------- --------------------------------------------------------------------------------
1 +DATA/jscn/tempfile/temp.266.768517129

日志文件:
SQL> select member from gv$logfile;

MEMBER
--------------------------------------------------------------------------------
+DATA/jscn/onlinelog/group_1.278.768517115
+DATA/jscn/onlinelog/group_2.267.768517119
+DATA/jscn/onlinelog/group_3.262.768517183
+DATA/jscn/onlinelog/group_4.261.768517187

RMAN 中的 SET 命令可以用来为数据文件和临时文件重命名,这里就使用 set 命令对数据文件和临时文件的路径进行重定义,然后再执行恢复操作,如下:
RMAN>RUN {
SET NEWNAME FOR DATAFILE 1 to '/oracle/ora10g/oradata/jscn/system01.dbf';
SET NEWNAME FOR DATAFILE 2 to '/oracle/ora10g/oradata/jscn/UNDOTBS1.dbf';
SET NEWNAME FOR DATAFILE 3 to '/oracle/ora10g/oradata/jscn/sysaux01.dbf';
SET NEWNAME FOR DATAFILE 4 to '/oracle/ora10g/oradata/jscn/users01.dbf';
SET NEWNAME FOR DATAFILE 5 to '/oracle/ora10g/oradata/jscn/UNDOTBS2.dbf';
SET NEWNAME FOR DATAFILE 6 to '/oracle/ora10g/oradata/jscn/jscn.dbf';
SET NEWNAME FOR DATAFILE 7 to '/oracle/ora10g/oradata/jscn/jscndata.dbf';
SET NEWNAME FOR DATAFILE 8 to '/oracle/ora10g/oradata/jscn/jscnindex.dbf';
SET NEWNAME FOR TEMPFILE 1 to '/oracle/ora10g/oradata/jscn/temp01.dbf';
restore database;
switch datafile all;
SWITCH TEMPFILE ALL;
}
2> 3> 4> 5> 6> 7> 8> 9> 10> 11> 12> 13>

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

Starting restore at 23-NOV-11
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=156 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/ora10g/oradata/jscn/system01.dbf
restoring datafile 00004 to /oracle/ora10g/oradata/jscn/users01.dbf
restoring datafile 00008 to /oracle/ora10g/oradata/jscn/jscnindex.dbf
channel ORA_DISK_1: reading from backup piece /orabak/lev0_JSCN_20111201_203
channel ORA_DISK_1: restored backup piece 1
piece handle=/orabak/lev0_JSCN_20111201_203 tag=LEV0
channel ORA_DISK_1: restore complete, elapsed time: 00:00:45
channel ORA_DISK_1: starting datafile backupset restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
restoring datafile 00005 to /oracle/ora10g/oradata/jscn/UNDOTBS2.dbf
restoring datafile 00006 to /oracle/ora10g/oradata/jscn/jscn.dbf
channel ORA_DISK_1: reading from backup piece /orabak/lev0_JSCN_20111201_205
channel ORA_DISK_1: restored backup piece 1
piece handle=/orabak/lev0_JSCN_20111201_205 tag=LEV0
channel ORA_DISK_1: restore complete, elapsed time: 00:00:25
channel ORA_DISK_1: starting datafile backupset restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
restoring datafile 00002 to /oracle/ora10g/oradata/jscn/UNDOTBS1.dbf
restoring datafile 00003 to /oracle/ora10g/oradata/jscn/sysaux01.dbf
restoring datafile 00007 to /oracle/ora10g/oradata/jscn/jscndata.dbf
channel ORA_DISK_1: reading from backup piece /orabak/lev0_JSCN_20111201_204
channel ORA_DISK_1: restored backup piece 1
piece handle=/orabak/lev0_JSCN_20111201_204 tag=LEV0
channel ORA_DISK_1: restore complete, elapsed time: 00:00:35
Finished restore at 23-NOV-11

datafile 1 switched to datafile copy
input datafile copy recid=9 stamp=767941800 filename=/oracle/ora10g/oradata/jscn/system01.dbf
datafile 2 switched to datafile copy
input datafile copy recid=10 stamp=767941800 filename=/oracle/ora10g/oradata/jscn/UNDOTBS1.dbf
datafile 3 switched to datafile copy
input datafile copy recid=11 stamp=767941800 filename=/oracle/ora10g/oradata/jscn/sysaux01.dbf
datafile 4 switched to datafile copy
input datafile copy recid=12 stamp=767941800 filename=/oracle/ora10g/oradata/jscn/users01.dbf
datafile 5 switched to datafile copy
input datafile copy recid=13 stamp=767941800 filename=/oracle/ora10g/oradata/jscn/UNDOTBS2.dbf
datafile 6 switched to datafile copy
input datafile copy recid=14 stamp=767941800 filename=/oracle/ora10g/oradata/jscn/jscn.dbf
datafile 7 switched to datafile copy
input datafile copy recid=15 stamp=767941800 filename=/oracle/ora10g/oradata/jscn/jscndata.dbf
datafile 8 switched to datafile copy
input datafile copy recid=16 stamp=767941800 filename=/oracle/ora10g/oradata/jscn/jscnindex.dbf
  

  5)recover 数据库
SQL> recover database using backup controlfile;
ORA-00279: change 1141856 generated at 12/01/2011 20:50:40 needed for thread 2
ORA-00289: suggestion : /oraarch/2_72_768517114.dbf
ORA-00280: change 1141856 for thread 2 is in sequence #72

Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
CANCEL
Media recovery cancelled.

SQL> alter database backup controlfile to trace;
Database altered.

6)重建控制文件
SQL> shutdown immediate;
ORA-01109: database not open

Database dismounted.
ORACLE instance shut down.
SQL> startup nomount;
ORACLE instance started.

Total System Global Area 264241152 bytes
Fixed Size 2083200 bytes
Variable Size 83887744 bytes
Database Buffers 171966464 bytes
Redo Buffers 6303744 bytes

SQL> CREATE CONTROLFILE REUSE DATABASE "JSCN" RESETLOGS ARCHIVELOG
MAXLOGFILES 192
MAXLOGMEMBERS 3
MAXDATAFILES 1024
MAXINSTANCES 32
MAXLOGHISTORY 292
LOGFILE
GROUP 1 '/oracle/ora10g/oradata/jscn/redo01.dbf' SIZE 50M,
GROUP 2 '/oracle/ora10g/oradata/jscn/redo02.dbf' SIZE 50M
-- STANDBY LOGFILE
DATAFILE
'/oracle/ora10g/oradata/jscn/system01.dbf',
'/oracle/ora10g/oradata/jscn/UNDOTBS1.dbf',
'/oracle/ora10g/oradata/jscn/sysaux01.dbf',
'/oracle/ora10g/oradata/jscn/users01.dbf',
'/oracle/ora10g/oradata/jscn/UNDOTBS2.dbf',
'/oracle/ora10g/oradata/jscn/jscn.dbf',
'/oracle/ora10g/oradata/jscn/jscndata.dbf',
'/oracle/ora10g/oradata/jscn/jscnindex.dbf'
CHARACTER SET ZHS16GBK
  ;
ALTER DATABASE ADD LOGFILE THREAD 2
GROUP 3 '/oracle/ora10g/oradata/jscn/redo03.dbf' SIZE 50M,
GROUP 4 '/oracle/ora10g/oradata/jscn/redo04.dbf' SIZE 50M;
  

  7)打开数据库

SQL> alter database open resetlogs
2 ;

Database altered.

SQL> exit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
[oracle@IM-8-201 ~]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.4.0 - Production on Wed Nov 23 09:43:49 2011

Copyright (c) 1982, 2007, Oracle. All Rights Reserved.

Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> conn jscn/jscn
Connected.
SQL> desc nihao;
Name Null? Type
----------------------------------------- -------- ----------------------------
ID NUMBER

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-253214-1-1.html 上篇帖子: oracle查看用户所在的表空间 下篇帖子: 免安装Oracle客户端软件-使用pl/sql配置登陆
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表