ITPub博客

首页 > Linux操作系统 > Linux操作系统 > RMAN异机恢复实践

RMAN异机恢复实践

原创 Linux操作系统 作者:victor1010 时间:2008-06-14 17:03:07 0 删除 编辑

RMAN异机恢复实践。

1、全库备份(包括数据库,控制文件,归档日志)
RMAN> show all;

RMAN 配置参数为:
CONFIGURE RETENTION POLICY TO REDUNDANCY 2;
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE 'DIST' TO 'd:\oracle\bak
\%F';
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO 'd:\oracle\bak\%
F';
CONFIGURE DEVICE TYPE DISK PARALLELISM 3;
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT   'd:\oracle\bak\%d_%T_%s';
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO 'E:\ORACLE\PRODUCT\DATABASE\SNCFTSTDB.ORA
'; # default


RMAN> @d:\oracle\bak\log\bk.txt

RMAN> run {
2>  backup full database include current controlfile;
3>  backup archivelog from time 'sysdate-3' format 'D:\oracle\bak\arc_%U.bak' ;
4>  copy current controlfile to 'D:\oracle\bak\control_bak.ctl';
5> }
启动 backup 于 14-6月 -08
正在使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=23 devtype=DISK
分配的通道: ORA_DISK_2
通道 ORA_DISK_2: sid=21 devtype=DISK
分配的通道: ORA_DISK_3
通道 ORA_DISK_3: sid=22 devtype=DISK
通道 ORA_DISK_1: 正在启动 full 数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
备份集中包括当前控制文件
输入数据文件 fno=00020 name=E:\ORACLE\ORADATA\TSTDB\DATA4_1_01.DBF
输入数据文件 fno=00002 name=E:\ORACLE\ORADATA\TSTDB\UNDOTBS01.DBF
输入数据文件 fno=00001 name=E:\ORACLE\ORADATA\TSTDB\SYSTEM01.DBF
输入数据文件 fno=00013 name=E:\ORACLE\ORADATA\TSTDB\SYSTEM02.DBF
输入数据文件 fno=00005 name=E:\ORACLE\ORADATA\TSTDB\INDX01.DBF
输入数据文件 fno=00003 name=E:\ORACLE\ORADATA\TSTDB\DRSYS01.DBF
输入数据文件 fno=00014 name=E:\ORACLE\ORADATA\TSTDB\ABC.DBF
通道 ORA_DISK_1: 正在启动段 1 于 14-6月 -08
通道 ORA_DISK_2: 正在启动 full 数据文件备份集
通道 ORA_DISK_2: 正在指定备份集中的数据文件
输入数据文件 fno=00019 name=E:\ORACLE\ORADATA\TSTDB\TFDS_DATA01.DBF
输入数据文件 fno=00022 name=E:\ORACLE\ORADATA\TSTDB\TFDS_DATA02.DBF
输入数据文件 fno=00008 name=E:\ORACLE\ORADATA\TSTDB\USERS01.DBF
输入数据文件 fno=00010 name=E:\ORACLE\ORADATA\TSTDB\USED_TEST01.DBF
输入数据文件 fno=00009 name=E:\ORACLE\ORADATA\TSTDB\XDB01.DBF
输入数据文件 fno=00006 name=E:\ORACLE\ORADATA\TSTDB\ODM01.DBF
输入数据文件 fno=00017 name=E:\ORACLE\ORADATA\TSTDB\TOOLS02.DBF
输入数据文件 fno=00012 name=E:\ORACLE\TST01.DBF
通道 ORA_DISK_2: 正在启动段 1 于 14-6月 -08
通道 ORA_DISK_3: 正在启动 full 数据文件备份集
通道 ORA_DISK_3: 正在指定备份集中的数据文件
输入数据文件 fno=00018 name=E:\ORACLE\ORADATA\TSTDB\USED_TEST02.DBF
输入数据文件 fno=00021 name=E:\ORACLE\ORADATA\TSTDB\TFDS_DATA03.DBF
输入数据文件 fno=00011 name=E:\ORACLE\ORADATA\TSTDB\PERFSTAT.DBA
输入数据文件 fno=00004 name=E:\ORACLE\ORADATA\TSTDB\EXAMPLE01.DBF
输入数据文件 fno=00007 name=E:\ORACLE\ORADATA\TSTDB\TOOLS01.DBF
输入数据文件 fno=00023 name=E:\ORACLE\ORADATA\TSTDB\TT_01_01_.DBF
输入数据文件 fno=00015 name=E:\ORACLE\ORADATA\TSTDB\O1_MF_TBS_4323P200_.DBF
通道 ORA_DISK_3: 正在启动段 1 于 14-6月 -08
通道 ORA_DISK_2: 已完成段 1 于 14-6月 -08
段 handle=D:\ORACLE\BAK\TSTDB_20080614_261 comment=NONE
通道 ORA_DISK_2: 备份集已完成, 经过时间:00:04:52
通道 ORA_DISK_2: 正在启动 full 数据文件备份集
通道 ORA_DISK_2: 正在指定备份集中的数据文件
输入数据文件 fno=00016 name=E:\ORACLE\ORADATA\TSTDB\TST_8K_01.DBF
通道 ORA_DISK_2: 正在启动段 1 于 14-6月 -08
通道 ORA_DISK_3: 已完成段 1 于 14-6月 -08
段 handle=D:\ORACLE\BAK\TSTDB_20080614_262 comment=NONE
通道 ORA_DISK_3: 备份集已完成, 经过时间:00:04:55
通道 ORA_DISK_1: 已完成段 1 于 14-6月 -08
段 handle=D:\ORACLE\BAK\TSTDB_20080614_260 comment=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:05:11
通道 ORA_DISK_2: 已完成段 1 于 14-6月 -08
段 handle=D:\ORACLE\BAK\TSTDB_20080614_263 comment=NONE
通道 ORA_DISK_2: 备份集已完成, 经过时间:00:00:16
完成 backup 于 14-6月 -08

启动 backup 于 14-6月 -08
当前日志已存档
使用通道 ORA_DISK_1
使用通道 ORA_DISK_2
使用通道 ORA_DISK_3
通道 ORA_DISK_1: 正在启动存档日志备份集
通道 ORA_DISK_1: 正在指定备份集中的存档日志
输入存档日志线程 =1 序列 =202 记录 ID=509 时间戳=657169904
输入存档日志线程 =1 序列 =203 记录 ID=511 时间戳=657256355
通道 ORA_DISK_1: 正在启动段 1 于 14-6月 -08
通道 ORA_DISK_2: 正在启动存档日志备份集
通道 ORA_DISK_2: 正在指定备份集中的存档日志
输入存档日志线程 =1 序列 =204 记录 ID=513 时间戳=657367734
输入存档日志线程 =1 序列 =205 记录 ID=515 时间戳=657382482
通道 ORA_DISK_2: 正在启动段 1 于 14-6月 -08
通道 ORA_DISK_1: 已完成段 1 于 14-6月 -08
段 handle=D:\ORACLE\BAK\ARC_88JITN2J_1_1.BAK comment=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:26
通道 ORA_DISK_2: 已完成段 1 于 14-6月 -08
段 handle=D:\ORACLE\BAK\ARC_89JITN2J_1_1.BAK comment=NONE
通道 ORA_DISK_2: 备份集已完成, 经过时间:00:00:26
完成 backup 于 14-6月 -08

启动 copy 于 14-6月 -08
使用通道 ORA_DISK_1
使用通道 ORA_DISK_2
使用通道 ORA_DISK_3
通道 ORA_DISK_1: 已复制当前的控制文件
输出文件名=D:\ORACLE\BAK\CONTROL_BAK.CTL
完成 copy 于 14-6月 -08

启动 Control File and SPFILE Autobackup 于 14-6月 -08
段 handle=D:\ORACLE\BAK\C-3183494620-20080614-01 comment=NONE
完成 Control File and SPFILE Autobackup 于 14-6月 -08

RMAN> **文件结尾**

RMAN>


2、在异机创建服务。

cmd>oradim –NEW –SID ORCL -STARTMODE a
3、修改初始化参数文件与创建密码文件

4、配置监听和TNS
5、创建路径(bdump,udump...等等)
6、复制控制文件
     将rman全库备份中copy出来的控制文件备份D:\oracle\bak\control_bak.ctl传到测试机, 然后将其按照参数文件中的控制文件配置复制。这里是复制成如下三个文件:
'D:\oracle\orcl\data\CONTROL01.CTL',
'D:\oracle\orcl\data\CONTROL02.CTL',
'D:\oracle\orcl\data\CONTROL03.CTL'

7、 启动数据库到mount 状态
8、 用RMAN做全库恢复


C:\>rman target /

恢复管理器: 版本9.2.0.1.0 - Production

Copyright (c) 1995, 2002, Oracle Corporation.  All rights reserved.

连接到目标数据库: TSTDB (DBID=3183494620)

RMAN> @D:\orcl\restore.TXT

RMAN> RUN{
2>           STARTUP FORCE MOUNT;
3>           SET NEWNAME FOR DATAFILE 1 TO 'D:\oracle\orcl\data\SYSTEM01.DBF';
4>           SET NEWNAME FOR DATAFILE 2 TO 'D:\oracle\orcl\data\UNDOTBS01.DBF';
5>           SET NEWNAME FOR DATAFILE 3 TO 'D:\oracle\orcl\data\DRSYS01.DBF';
6>           SET NEWNAME FOR DATAFILE 5 TO 'D:\oracle\orcl\data\INDX01.DBF';
7>           SET NEWNAME FOR DATAFILE 13 TO 'D:\oracle\orcl\data\SYSTEM02.DBF';
8>           SET NEWNAME FOR DATAFILE 14 TO 'D:\oracle\orcl\data\ABC.DBF';
9>           SET NEWNAME FOR DATAFILE 20 TO 'D:\oracle\orcl\data\DATA4_1_01.DBF'
;
10>
11>           SET NEWNAME FOR DATAFILE 4  TO 'D:\oracle\orcl\data\EXAMPLE01.DBF
         ';
12>           SET NEWNAME FOR DATAFILE 7  TO 'D:\oracle\orcl\data\TOOLS01.DBF
         ';
13>           SET NEWNAME FOR DATAFILE 11 TO 'D:\oracle\orcl\data\PERFSTAT.DBA
         ';
14>           SET NEWNAME FOR DATAFILE 15 TO 'D:\oracle\orcl\data\O1_MF_TBS_4323
P200_.DBF';
15>           SET NEWNAME FOR DATAFILE 18 TO 'D:\oracle\orcl\data\USED_TEST02.DB
F        ';
16>           SET NEWNAME FOR DATAFILE 21 TO 'D:\oracle\orcl\data\TFDS_DATA03.DB
F        ';
17>           SET NEWNAME FOR DATAFILE 23 TO 'D:\oracle\orcl\data\TT_01_01_.DBF
         ';
18>
19>           SET NEWNAME FOR DATAFILE 6  TO 'D:\oracle\orcl\data\ODM01.DBF
 ';
20>           SET NEWNAME FOR DATAFILE 8  TO 'D:\oracle\orcl\data\USERS01.DBF
 ';
21>           SET NEWNAME FOR DATAFILE 9  TO 'D:\oracle\orcl\data\XDB01.DBF
 ';
22>           SET NEWNAME FOR DATAFILE 10 TO 'D:\oracle\orcl\data\USED_TEST01.DB
F';
23>           SET NEWNAME FOR DATAFILE 12 TO 'D:\oracle\orcl\data\TST01.DBF
           ';
24>           SET NEWNAME FOR DATAFILE 17 TO 'D:\oracle\orcl\data\TOOLS02.DBF
 ';
25>           SET NEWNAME FOR DATAFILE 19 TO 'D:\oracle\orcl\data\TFDS_DATA01.DB
F';
26>           SET NEWNAME FOR DATAFILE 22 TO 'D:\oracle\orcl\data\TFDS_DATA02.DB
F';
27>
28>           SET NEWNAME FOR DATAFILE 16 TO 'D:\oracle\orcl\data\TST_8K_01.DBF'
;
29>
30>
31>           RESTORE DATABASE;
32>           SWITCH DATAFILE ALL;
33>           RECOVER DATABASE;
34>           SQL 'ALTER DATABASE OPEN';
35>   }
Oracle 例程已启动
数据库已加载

系统全局区域总计     337189908 字节

Fixed Size                      453652 字节
Variable Size                125829120 字节
Database Buffers             209715200 字节
Redo Buffers                   1191936 字节

正在执行命令: SET NEWNAME
正在使用目标数据库控制文件替代恢复目录

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

启动 restore 于 14-6月 -08

分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=15 devtype=DISK
分配的通道: ORA_DISK_2
通道 ORA_DISK_2: sid=16 devtype=DISK
分配的通道: ORA_DISK_3
通道 ORA_DISK_3: sid=17 devtype=DISK
通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00006恢复到D:\ORACLE\ORCL\DATA\ODM01.DBF
正将数据文件00008恢复到D:\ORACLE\ORCL\DATA\USERS01.DBF
正将数据文件00009恢复到D:\ORACLE\ORCL\DATA\XDB01.DBF
正将数据文件00010恢复到D:\ORACLE\ORCL\DATA\USED_TEST01.DBF
正将数据文件00012恢复到D:\ORACLE\ORCL\DATA\TST01.DBF
正将数据文件00017恢复到D:\ORACLE\ORCL\DATA\TOOLS02.DBF
正将数据文件00019恢复到D:\ORACLE\ORCL\DATA\TFDS_DATA01.DBF
正将数据文件00022恢复到D:\ORACLE\ORCL\DATA\TFDS_DATA02.DBF
通道 ORA_DISK_2: 正在开始恢复数据文件备份集
通道 ORA_DISK_2: 正在指定从备份集恢复的数据文件
正将数据文件00004恢复到D:\ORACLE\ORCL\DATA\EXAMPLE01.DBF
正将数据文件00007恢复到D:\ORACLE\ORCL\DATA\TOOLS01.DBF
正将数据文件00011恢复到D:\ORACLE\ORCL\DATA\PERFSTAT.DBA
正将数据文件00015恢复到D:\ORACLE\ORCL\DATA\O1_MF_TBS_4323P200_.DBF
正将数据文件00018恢复到D:\ORACLE\ORCL\DATA\USED_TEST02.DBF
正将数据文件00021恢复到D:\ORACLE\ORCL\DATA\TFDS_DATA03.DBF
正将数据文件00023恢复到D:\ORACLE\ORCL\DATA\TT_01_01_.DBF
通道 ORA_DISK_3: 正在开始恢复数据文件备份集
通道 ORA_DISK_3: 正在指定从备份集恢复的数据文件
正将数据文件00001恢复到D:\ORACLE\ORCL\DATA\SYSTEM01.DBF
正将数据文件00002恢复到D:\ORACLE\ORCL\DATA\UNDOTBS01.DBF
正将数据文件00003恢复到D:\ORACLE\ORCL\DATA\DRSYS01.DBF
正将数据文件00005恢复到D:\ORACLE\ORCL\DATA\INDX01.DBF
正将数据文件00013恢复到D:\ORACLE\ORCL\DATA\SYSTEM02.DBF
正将数据文件00014恢复到D:\ORACLE\ORCL\DATA\ABC.DBF
正将数据文件00020恢复到D:\ORACLE\ORCL\DATA\DATA4_1_01.DBF
通道 ORA_DISK_1: 已恢复备份段 1
段 handle=D:\ORACLE\BAK\TSTDB_20080614_261 tag=TAG20080614T140926 params=NULL
通道 ORA_DISK_1: 恢复完成
通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00016恢复到D:\ORACLE\ORCL\DATA\TST_8K_01.DBF
通道 ORA_DISK_2: 已恢复备份段 1
段 handle=D:\ORACLE\BAK\TSTDB_20080614_262 tag=TAG20080614T140926 params=NULL
通道 ORA_DISK_2: 恢复完成
通道 ORA_DISK_3: 已恢复备份段 1
段 handle=D:\ORACLE\BAK\TSTDB_20080614_260 tag=TAG20080614T140926 params=NULL
通道 ORA_DISK_3: 恢复完成
通道 ORA_DISK_1: 已恢复备份段 1
段 handle=D:\ORACLE\BAK\TSTDB_20080614_263 tag=TAG20080614T140926 params=NULL
通道 ORA_DISK_1: 恢复完成
完成 restore 于 14-6月 -08

数据文件 1 已转换成数据文件副本
输入数据文件副本 recid=57 stamp=657389306 文件名=D:\ORACLE\ORCL\DATA\SYSTEM01.DB
F
数据文件 2 已转换成数据文件副本
输入数据文件副本 recid=58 stamp=657389307 文件名=D:\ORACLE\ORCL\DATA\UNDOTBS01.D
BF
数据文件 3 已转换成数据文件副本
输入数据文件副本 recid=59 stamp=657389307 文件名=D:\ORACLE\ORCL\DATA\DRSYS01.DBF

数据文件 5 已转换成数据文件副本
输入数据文件副本 recid=60 stamp=657389308 文件名=D:\ORACLE\ORCL\DATA\INDX01.DBF
数据文件 13 已转换成数据文件副本
输入数据文件副本 recid=61 stamp=657389309 文件名=D:\ORACLE\ORCL\DATA\SYSTEM02.DB
F
数据文件 14 已转换成数据文件副本
输入数据文件副本 recid=62 stamp=657389309 文件名=D:\ORACLE\ORCL\DATA\ABC.DBF
数据文件 20 已转换成数据文件副本
输入数据文件副本 recid=63 stamp=657389310 文件名=D:\ORACLE\ORCL\DATA\DATA4_1_01.
DBF
数据文件 4 已转换成数据文件副本
输入数据文件副本 recid=64 stamp=657389310 文件名=D:\ORACLE\ORCL\DATA\EXAMPLE01.D
BF
数据文件 7 已转换成数据文件副本
输入数据文件副本 recid=65 stamp=657389311 文件名=D:\ORACLE\ORCL\DATA\TOOLS01.DBF

数据文件 11 已转换成数据文件副本
输入数据文件副本 recid=66 stamp=657389312 文件名=D:\ORACLE\ORCL\DATA\PERFSTAT.DB
A
数据文件 15 已转换成数据文件副本
输入数据文件副本 recid=67 stamp=657389313 文件名=D:\ORACLE\ORCL\DATA\O1_MF_TBS_4
323P200_.DBF
数据文件 18 已转换成数据文件副本
输入数据文件副本 recid=68 stamp=657389313 文件名=D:\ORACLE\ORCL\DATA\USED_TEST02
.DBF
数据文件 21 已转换成数据文件副本
输入数据文件副本 recid=69 stamp=657389314 文件名=D:\ORACLE\ORCL\DATA\TFDS_DATA03
.DBF
数据文件 23 已转换成数据文件副本
输入数据文件副本 recid=70 stamp=657389315 文件名=D:\ORACLE\ORCL\DATA\TT_01_01_.D
BF
数据文件 6 已转换成数据文件副本
输入数据文件副本 recid=71 stamp=657389315 文件名=D:\ORACLE\ORCL\DATA\ODM01.DBF
数据文件 8 已转换成数据文件副本
输入数据文件副本 recid=72 stamp=657389316 文件名=D:\ORACLE\ORCL\DATA\USERS01.DBF

数据文件 9 已转换成数据文件副本
输入数据文件副本 recid=73 stamp=657389316 文件名=D:\ORACLE\ORCL\DATA\XDB01.DBF
数据文件 10 已转换成数据文件副本
输入数据文件副本 recid=74 stamp=657389317 文件名=D:\ORACLE\ORCL\DATA\USED_TEST01
.DBF
数据文件 12 已转换成数据文件副本
输入数据文件副本 recid=75 stamp=657389318 文件名=D:\ORACLE\ORCL\DATA\TST01.DBF
数据文件 17 已转换成数据文件副本
输入数据文件副本 recid=76 stamp=657389318 文件名=D:\ORACLE\ORCL\DATA\TOOLS02.DBF

数据文件 19 已转换成数据文件副本
输入数据文件副本 recid=77 stamp=657389319 文件名=D:\ORACLE\ORCL\DATA\TFDS_DATA01
.DBF
数据文件 22 已转换成数据文件副本
输入数据文件副本 recid=78 stamp=657389319 文件名=D:\ORACLE\ORCL\DATA\TFDS_DATA02
.DBF
数据文件 16 已转换成数据文件副本
输入数据文件副本 recid=79 stamp=657389320 文件名=D:\ORACLE\ORCL\DATA\TST_8K_01.D
BF

启动 recover 于 14-6月 -08
使用通道 ORA_DISK_1
使用通道 ORA_DISK_2
使用通道 ORA_DISK_3

正在开始介质的恢复

通道 ORA_DISK_1: 正在启动到默认目标的存档日志恢复
通道 ORA_DISK_1: 正在恢复存档日志
存档日志线程 =1 序列=205
通道 ORA_DISK_1: 已恢复备份段 1
段 handle=D:\ORACLE\BAK\ARC_89JITN2J_1_1.BAK tag=TAG20080614T141443 params=NULL
通道 ORA_DISK_1: 恢复完成
存档日志文件名 =D:\ORACLE\ORCL\ARCH\ARC00205.001 线程 =1 序列 =205
无法找到存档日志
存档日志线程 =1 序列=206
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of recover command at 06/14/2008 16:09:20
RMAN-06054: media recovery requesting unknown log: thread 1 scn 120916987976

RMAN>
RMAN> **文件结尾**

RMAN>

7、

SQL> alter database open;
alter database open
*
ERROR 位于第 1 行:
ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项


SQL> alter database open resetlogs;
alter database open resetlogs
*
ERROR 位于第 1 行:
ORA-00344: 无法重新创建联机日志 'E:\ORACLE\ORADATA\TSTDB\REDO01.LOG'
ORA-27040: skgfrcre: 创建错误,无法创建文件
OSD-04002: Ξ??????
O/S-Error: (OS 21) ???δ?????

SQL> alter database drop logfile group 1;
alter database drop logfile group 1
*
ERROR 位于第 1 行:
ORA-01623: 日志1是线程1的当前日志 - 无法删除
ORA-00312: 联机日志 1 线程 1: 'E:\ORACLE\ORADATA\TSTDB\REDO01.LOG'
ORA-00312: 联机日志 1 线程 1: 'E:\ORACLE\ORADATA\TSTDB\REDO01_2.LOG'


SQL> alter system switch logfile;
alter system switch logfile
*
ERROR 位于第 1 行:
ORA-01109: 数据库未打开
8、用重建控制文件的方法来重建数据库(一定要使用导出文件的后一部分来建)
CREATE CONTROLFILE REUSE DATABASE "TSTDB" RESETLOGS  force LOGGING ARCHIVELOG
--  SET STANDBY TO MAXIMIZE PERFORMANCE
    MAXLOGFILES 20
    MAXLOGMEMBERS 5
    MAXDATAFILES 100
    MAXINSTANCES 1
    MAXLOGHISTORY 113
LOGFILE
  GROUP 1 (
    'D:\oracle\orcl\data\REDO01_a.LOG',
    'D:\oracle\orcl\data\REDO01_b.LOG'
  ) SIZE 20M,
  GROUP 2 (
    'D:\oracle\orcl\data\REDO02_a.LOG',
    'D:\oracle\orcl\data\REDO02_b.LOG'
  ) SIZE 20M,
  GROUP 3 (
    'D:\oracle\orcl\data\REDO03_A.LOG',
    'D:\oracle\orcl\data\REDO03_B.LOG'
  ) SIZE 20M
-- STANDBY LOGFILE
DATAFILE
  'D:\ORACLE\ORCL\DATA\SYSTEM01.DBF',
  'D:\ORACLE\ORCL\DATA\UNDOTBS01.DBF',
  'D:\ORACLE\ORCL\DATA\DRSYS01.DBF',
  'D:\ORACLE\ORCL\DATA\EXAMPLE01.DBF',
  'D:\ORACLE\ORCL\DATA\INDX01.DBF',
  'D:\ORACLE\ORCL\DATA\ODM01.DBF',
  'D:\ORACLE\ORCL\DATA\TOOLS01.DBF',
  'D:\ORACLE\ORCL\DATA\USERS01.DBF',
  'D:\ORACLE\ORCL\DATA\XDB01.DBF',
  'D:\ORACLE\ORCL\DATA\USED_TEST01.DBF',
  'D:\ORACLE\ORCL\DATA\PERFSTAT.DBA',
  'D:\ORACLE\ORCL\DATA\TST01.DBF',
  'D:\ORACLE\ORCL\DATA\SYSTEM02.DBF',
  'D:\ORACLE\ORCL\DATA\ABC.DBF',
  'D:\ORACLE\ORCL\DATA\O1_MF_TBS_4323P200_.DBF',
  'D:\ORACLE\ORCL\DATA\TST_8K_01.DBF',
  'D:\ORACLE\ORCL\DATA\TOOLS02.DBF',
  'D:\ORACLE\ORCL\DATA\USED_TEST02.DBF',
  'D:\ORACLE\ORCL\DATA\TFDS_DATA01.DBF',
  'D:\ORACLE\ORCL\DATA\DATA4_1_01.DBF',
  'D:\ORACLE\ORCL\DATA\TFDS_DATA03.DBF',
  'D:\ORACLE\ORCL\DATA\TFDS_DATA02.DBF',
  'D:\ORACLE\ORCL\DATA\TT_01_01_.DBF'
CHARACTER SET AL32UTF8
;
解决!
9、打开数据库
SQL> alter database mount;
alter database mount
*
ERROR 位于第 1 行:
ORA-01100: ??????


SQL> shutdown immediate;
ORA-01109: ??????


已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。

Total System Global Area  337189908 bytes
Fixed Size                   453652 bytes
Variable Size             125829120 bytes
Database Buffers          209715200 bytes
Redo Buffers                1191936 bytes
数据库装载完毕。
ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项


SQL> alter database open resetlogs;

数据库已更改。

SQL> select instance_name ,status,host_name from v$instance;

INSTANCE_NAME                    STATUS
-------------------------------- ------------------------
HOST_NAME
--------------------------------------------------------------------------------

orcl                             OPEN
HOSTNAME

10、检查temp表空间,为temp表空间增加临时文件。

SQL>  SELECT A.tablespace_name,A.status FROM DBA_TABLESPACES A WHERE A.contents=
'TEMPORARY';

TABLESPACE_NAME                                              STATUS
------------------------------------------------------------ ------------------
TEMP                                                         ONLINE
TEMP2                                                        ONLINE

SQL> SELECT A.FILE#,A.TS# ,A.NAME FROM V$TEMPFILE A;

未选定行
添加临时文件:
SQL> alter  tablespace temp add tempfile 'D:\oracle\orcl\data\temp01.dbf' size 1
00m reuse
  2    autoextend on next 640k maxsize 200m;

表空间已更改。

SQL> SELECT A.FILE#,A.TS# ,A.NAME FROM V$TEMPFILE A;

     FILE#        TS#
---------- ----------
NAME
--------------------------------------------------------------------------------

         1          2
D:\ORACLE\ORCL\DATA\TEMP01.DBF
结果: 成功,完成!

几个脚本:
BACKUP:
run {
 backup full database include current controlfile;
 backup archivelog from time 'sysdate-3' format 'D:\oracle\bak\arc_%U.bak' ;
 copy current controlfile to 'D:\oracle\bak\control_bak.ctl';
}

用RMAN做全库恢复:
RUN{
          STARTUP FORCE MOUNT;
          SET NEWNAME FOR DATAFILE 1 TO 'D:\oracle\orcl\data\SYSTEM01.DBF';
          SET NEWNAME FOR DATAFILE 2 TO 'D:\oracle\orcl\data\UNDOTBS01.DBF';
          SET NEWNAME FOR DATAFILE 3 TO 'D:\oracle\orcl\data\DRSYS01.DBF';
          SET NEWNAME FOR DATAFILE 5 TO 'D:\oracle\orcl\data\INDX01.DBF';
          SET NEWNAME FOR DATAFILE 13 TO 'D:\oracle\orcl\data\SYSTEM02.DBF';
          SET NEWNAME FOR DATAFILE 14 TO 'D:\oracle\orcl\data\ABC.DBF';
          SET NEWNAME FOR DATAFILE 20 TO 'D:\oracle\orcl\data\DATA4_1_01.DBF';
         
          SET NEWNAME FOR DATAFILE 4  TO 'D:\oracle\orcl\data\EXAMPLE01.DBF          ';
          SET NEWNAME FOR DATAFILE 7  TO 'D:\oracle\orcl\data\TOOLS01.DBF            ';
          SET NEWNAME FOR DATAFILE 11 TO 'D:\oracle\orcl\data\PERFSTAT.DBA           ';
          SET NEWNAME FOR DATAFILE 15 TO 'D:\oracle\orcl\data\O1_MF_TBS_4323P200_.DBF';                       
          SET NEWNAME FOR DATAFILE 18 TO 'D:\oracle\orcl\data\USED_TEST02.DBF        ';
          SET NEWNAME FOR DATAFILE 21 TO 'D:\oracle\orcl\data\TFDS_DATA03.DBF        ';
          SET NEWNAME FOR DATAFILE 23 TO 'D:\oracle\orcl\data\TT_01_01_.DBF          ';
         
          SET NEWNAME FOR DATAFILE 6  TO 'D:\oracle\orcl\data\ODM01.DBF      ';
          SET NEWNAME FOR DATAFILE 8  TO 'D:\oracle\orcl\data\USERS01.DBF    ';
          SET NEWNAME FOR DATAFILE 9  TO 'D:\oracle\orcl\data\XDB01.DBF      ';
          SET NEWNAME FOR DATAFILE 10 TO 'D:\oracle\orcl\data\USED_TEST01.DBF';
          SET NEWNAME FOR DATAFILE 12 TO 'D:\oracle\orcl\data\TST01.DBF                ';
          SET NEWNAME FOR DATAFILE 17 TO 'D:\oracle\orcl\data\TOOLS02.DBF    ';
          SET NEWNAME FOR DATAFILE 19 TO 'D:\oracle\orcl\data\TFDS_DATA01.DBF';
          SET NEWNAME FOR DATAFILE 22 TO 'D:\oracle\orcl\data\TFDS_DATA02.DBF';
          
          SET NEWNAME FOR DATAFILE 16 TO 'D:\oracle\orcl\data\TST_8K_01.DBF';                                                                  

         
          RESTORE DATABASE;
          SWITCH DATAFILE ALL;
          RECOVER DATABASE;
          SQL 'ALTER DATABASE OPEN';
  }      

 

参考:
http://www.itpub.net/749705,1.html
http://space.itpub.net/756652/viewspace-242396

 

 

 

 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/8102208/viewspace-346819/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-04-29

  • 博文量
    296
  • 访问量
    626145