rman异机恢复 Linux _RAC至Win_Single Instance note

来源:互联网 发布:数据运营支持面试 编辑:程序博客网 时间:2024/05/24 06:29

--rman异机恢复 Linux _RAC至Win_Single Instance


1.数据准备


mkdir /home/exp_dir

export ORACLE_SID=dbtest2
rman target /

RMAN> run {   
allocate channel c1 device type disk;  
backup incremental level 0    
format '/home/exp_dir/db_full_%U.bak'    
tag '2016-11-28-FULL'  
database plus archivelog;  
release channel c1;  
}  
RMAN> backup current controlfile format '/home/exp_dir/control20161128.bak';  
RMAN> backup spfile format '/home/exp_dir/spfile20161128.bak';

[oracle@rac02 exp_dir]$ tar -zcvf db_dbtest.bak.tar.gz db_full* control* spfile*

传送数据至Windows系统

#!/bin/bash
#ScriptName:backup_all.sh
#Usage: backup all files in oracle user environment.
#ex: nohup /bin/bash backup_all.sh > backup.log &
#Author: xxx
#Creation: sysdate
#Version: 1.0.0

#Define variable <You may need to change the value of basedir.>
basedir=/home/exp_dir
date=`date +%Y%m%d`

#Create pfile
sqlplus / as sysdba <<EOF
create pfile='$basedir/pfile$date.ora' from spfile;
EOF

#RMAN BACKUP
rman target / log=$basedir/backup_all_$date.log <<EOF
run{
allocate channel c1 device type disk;
allocate channel c2 device type disk;
backup database filesperset 4 format '$basedir/full_%d_%T_%s_%p';
sql 'alter system archive log current';
sql 'alter system archive log current';
sql 'alter system archive log current';
sql 'alter system archive log current';
backup archivelog all format '$basedir/arch_%d_%T_%s_%p' delete input;
backup current controlfile format '$basedir/ctl_%d_%T_%s_%p';
release channel c1;
release channel c2;
}
EOF

2.数据恢复
C:\Users\win_user>oradim -new -sid auxdb
实例已创建。

C:\Users\win_user>set oracle_sid
oracle_sid=auxdb

C:\Users\win_user>rman target /

恢复管理器: Release 12.1.0.2.0 - Production on 星期四 12月 1 10:53:53 2016

Copyright (c) 1982, 2014, Oracle and/or its affiliates.  All rights reserved.

已连接到目标数据库 (未启动)

RMAN> startup nomount

启动失败: ORA-01078: failure in processing system parameters
LRM-00109: ???????????????? 'D:\APP\PRODUCT\12.1.0\DBHOME_1\DATABASE\INITAUXDB.O
RA'

在没有参数文件的情况下启动 Oracle 实例以检索 spfile
Oracle 实例已启动

系统全局区域总计    1073741824 字节

Fixed Size                     3053880 字节
Variable Size                293603016 字节
Database Buffers             771751936 字节
Redo Buffers                   5332992 字节

RMAN>

--restore spfile from 'D:\BaiduNetdiskDownload\db_dbtest.bak\spfile20161128.bak';    
RMAN> restore spfile from 'D:\BaiduNetdiskDownload\db_dbtest.bak\spfile20161128.bak';

启动 restore 于 01-12月-16
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=7 设备类型=DISK

通道 ORA_DISK_1: 正在从 AUTOBACKUP D:\BaiduNetdiskDownload\db_dbtest.bak\spfile20
161128.bak 还原 spfile
通道 ORA_DISK_1: 从 AUTOBACKUP 还原 SPFILE 已完成
完成 restore 于 01-12月-16

RMAN>

C:\Users\win_user>set oracle_sid
oracle_sid=auxdb

C:\Users\win_user>sqlplus / as sysdba

SQL*Plus: Release 12.1.0.2.0 Production on 星期四 12月 1 11:32:03 2016

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


连接到:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing opt
ions

SQL> create pfile from spfile;

文件已创建。


RMAN> shutdown immediate

Oracle 实例已关闭

修改参数文件

C:\Users\win_user>sqlplus / as sysdba

SQL*Plus: Release 12.1.0.2.0 Production on 星期四 12月 1 13:18:46 2016

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

已连接到空闲例程。

SQL> startup nomount pfile='D:\app\product\12.1.0\dbhome_1\database\INITauxdb.ORA'
ORA-32006: SEC_CASE_SENSITIVE_LOGON initialization parameter has been deprecated

ORACLE 例程已经启动。

Total System Global Area 1258291200 bytes
Fixed Size                  3045168 bytes
Variable Size            1157630160 bytes
Database Buffers           83886080 bytes
Redo Buffers               13729792 bytes
SQL>

--restore controlfile from 'D:\BaiduNetdiskDownload\db_dbtest.bak\control20161128.bak';
C:\Users\win_user>rman target /

恢复管理器: Release 12.1.0.2.0 - Production on 星期四 12月 1 13:20:37 2016

Copyright (c) 1982, 2014, Oracle and/or its affiliates.  All rights reserved.

已连接到目标数据库: dbtest (未装载)

RMAN> restore controlfile from 'D:\BaiduNetdiskDownload\db_dbtest.bak\control2016
1128.bak';

启动 restore 于 01-12月-16
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=2065 设备类型=DISK

通道 ORA_DISK_1: 正在还原控制文件
通道 ORA_DISK_1: 还原完成, 用时: 00:00:01
输出文件名=D:\APP\ORADATA\dbtest\CONTROL01.CTL
输出文件名=D:\APP\ORADATA\dbtest\CONTROL02.CTL
完成 restore 于 01-12月-16

RMAN> alter database mount;

使用目标数据库控制文件替代恢复目录
已处理语句

RMAN> select status from v$instance;

STATUS
------------
MOUNTED

RMAN> restore database;

启动 restore 于 01-12月-16
启动 implicit crosscheck backup 于 01-12月-16
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=2065 设备类型=DISK
已交叉检验的 20 对象
完成 implicit crosscheck backup 于 01-12月-16

启动 implicit crosscheck copy 于 01-12月-16
使用通道 ORA_DISK_1
已交叉检验的 2 对象
完成 implicit crosscheck copy 于 01-12月-16

搜索恢复区中的所有文件
正在编制文件目录...
没有为文件编制目录

使用通道 ORA_DISK_1
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: restore 命令 (在 12/01/2016 15:26:22 上) 失败
RMAN-06026: 有些目标没有找到 - 终止还原
RMAN-06023: 没有找到数据文件6的副本来还原
RMAN-06023: 没有找到数据文件4的副本来还原
RMAN-06023: 没有找到数据文件3的副本来还原
RMAN-06023: 没有找到数据文件1的副本来还原

RMAN>

--catalog start with 'D:\BaiduNetdiskDownload\db_dbtest.bak';
RMAN> catalog start with 'D:\BaiduNetdiskDownload\db_dbtest.bak';

搜索与样式 D:\BaiduNetdiskDownload\db_dbtest.bak 匹配的所有文件

数据库未知文件的列表
=====================================
文件名: D:\BAIDUNETDISKDOWNLOAD\DB_dbtest.BAK\CONTROL20161128.BAK
文件名: D:\BAIDUNETDISKDOWNLOAD\DB_dbtest.BAK\DB_FULL_01RM1SOA_1_1.BAK
文件名: D:\BAIDUNETDISKDOWNLOAD\DB_dbtest.BAK\DB_FULL_02RM1SOI_1_1.BAK
文件名: D:\BAIDUNETDISKDOWNLOAD\DB_dbtest.BAK\DB_FULL_03RM1SOQ_1_1.BAK
文件名: D:\BAIDUNETDISKDOWNLOAD\DB_dbtest.BAK\DB_FULL_04RM1SP3_1_1.BAK
文件名: D:\BAIDUNETDISKDOWNLOAD\DB_dbtest.BAK\DB_FULL_05RM1SPB_1_1.BAK
文件名: D:\BAIDUNETDISKDOWNLOAD\DB_dbtest.BAK\DB_FULL_06RM1SPJ_1_1.BAK
文件名: D:\BAIDUNETDISKDOWNLOAD\DB_dbtest.BAK\DB_FULL_07RM1SPS_1_1.BAK
文件名: D:\BAIDUNETDISKDOWNLOAD\DB_dbtest.BAK\DB_FULL_08RM1SQ4_1_1.BAK
文件名: D:\BAIDUNETDISKDOWNLOAD\DB_dbtest.BAK\DB_FULL_09RM1SQD_1_1.BAK
文件名: D:\BAIDUNETDISKDOWNLOAD\DB_dbtest.BAK\DB_FULL_0ARM1SQL_1_1.BAK
文件名: D:\BAIDUNETDISKDOWNLOAD\DB_dbtest.BAK\DB_FULL_0BRM1SQU_1_1.BAK
文件名: D:\BAIDUNETDISKDOWNLOAD\DB_dbtest.BAK\DB_FULL_0CRM1SR6_1_1.BAK
文件名: D:\BAIDUNETDISKDOWNLOAD\DB_dbtest.BAK\DB_FULL_0DRM1SRE_1_1.BAK
文件名: D:\BAIDUNETDISKDOWNLOAD\DB_dbtest.BAK\DB_FULL_0ERM1SRN_1_1.BAK
文件名: D:\BAIDUNETDISKDOWNLOAD\DB_dbtest.BAK\DB_FULL_0FRM1SRV_1_1.BAK
文件名: D:\BAIDUNETDISKDOWNLOAD\DB_dbtest.BAK\DB_FULL_0GRM1SS7_1_1.BAK
文件名: D:\BAIDUNETDISKDOWNLOAD\DB_dbtest.BAK\DB_FULL_0HRM1SSO_1_1.BAK
文件名: D:\BAIDUNETDISKDOWNLOAD\DB_dbtest.BAK\DB_FULL_0IRM1ST1_1_1.BAK
文件名: D:\BAIDUNETDISKDOWNLOAD\DB_dbtest.BAK\DB_FULL_0JRM1SVN_1_1.BAK
文件名: D:\BAIDUNETDISKDOWNLOAD\DB_dbtest.BAK\DB_FULL_0KRM1SVV_1_1.BAK
文件名: D:\BAIDUNETDISKDOWNLOAD\DB_dbtest.BAK\SPFILE20161128.BAK
文件名: D:\BAIDUNETDISKDOWNLOAD\DB_dbtest.BAK.TAR.GZ

是否确实要将上述文件列入目录 (输入 YES 或 NO)? YES
正在编制文件目录...
目录编制完毕

已列入目录的文件的列表
=======================
文件名: D:\BAIDUNETDISKDOWNLOAD\DB_dbtest.BAK\CONTROL20161128.BAK
文件名: D:\BAIDUNETDISKDOWNLOAD\DB_dbtest.BAK\DB_FULL_01RM1SOA_1_1.BAK
文件名: D:\BAIDUNETDISKDOWNLOAD\DB_dbtest.BAK\DB_FULL_02RM1SOI_1_1.BAK
文件名: D:\BAIDUNETDISKDOWNLOAD\DB_dbtest.BAK\DB_FULL_03RM1SOQ_1_1.BAK
文件名: D:\BAIDUNETDISKDOWNLOAD\DB_dbtest.BAK\DB_FULL_04RM1SP3_1_1.BAK
文件名: D:\BAIDUNETDISKDOWNLOAD\DB_dbtest.BAK\DB_FULL_05RM1SPB_1_1.BAK
文件名: D:\BAIDUNETDISKDOWNLOAD\DB_dbtest.BAK\DB_FULL_06RM1SPJ_1_1.BAK
文件名: D:\BAIDUNETDISKDOWNLOAD\DB_dbtest.BAK\DB_FULL_07RM1SPS_1_1.BAK
文件名: D:\BAIDUNETDISKDOWNLOAD\DB_dbtest.BAK\DB_FULL_08RM1SQ4_1_1.BAK
文件名: D:\BAIDUNETDISKDOWNLOAD\DB_dbtest.BAK\DB_FULL_09RM1SQD_1_1.BAK
文件名: D:\BAIDUNETDISKDOWNLOAD\DB_dbtest.BAK\DB_FULL_0ARM1SQL_1_1.BAK
文件名: D:\BAIDUNETDISKDOWNLOAD\DB_dbtest.BAK\DB_FULL_0BRM1SQU_1_1.BAK
文件名: D:\BAIDUNETDISKDOWNLOAD\DB_dbtest.BAK\DB_FULL_0CRM1SR6_1_1.BAK
文件名: D:\BAIDUNETDISKDOWNLOAD\DB_dbtest.BAK\DB_FULL_0DRM1SRE_1_1.BAK
文件名: D:\BAIDUNETDISKDOWNLOAD\DB_dbtest.BAK\DB_FULL_0ERM1SRN_1_1.BAK
文件名: D:\BAIDUNETDISKDOWNLOAD\DB_dbtest.BAK\DB_FULL_0FRM1SRV_1_1.BAK
文件名: D:\BAIDUNETDISKDOWNLOAD\DB_dbtest.BAK\DB_FULL_0GRM1SS7_1_1.BAK
文件名: D:\BAIDUNETDISKDOWNLOAD\DB_dbtest.BAK\DB_FULL_0HRM1SSO_1_1.BAK
文件名: D:\BAIDUNETDISKDOWNLOAD\DB_dbtest.BAK\DB_FULL_0IRM1ST1_1_1.BAK
文件名: D:\BAIDUNETDISKDOWNLOAD\DB_dbtest.BAK\DB_FULL_0JRM1SVN_1_1.BAK
文件名: D:\BAIDUNETDISKDOWNLOAD\DB_dbtest.BAK\DB_FULL_0KRM1SVV_1_1.BAK
文件名: D:\BAIDUNETDISKDOWNLOAD\DB_dbtest.BAK\SPFILE20161128.BAK

未列入目录的文件的列表
=======================================
文件名: D:\BAIDUNETDISKDOWNLOAD\DB_dbtest.BAK.TAR.GZ
  RMAN-07517: 原因: 文件标头已损坏

RMAN>
--select 'set newname for datafile '||file_id||' to ''D:\app\oradata\dbtest\'||TABLESPACE_NAME||'.DBF'';' from dba_data_files;

run
{
set newname for datafile 1 to 'E:\ORADATA\dbtest\SYSTEM.DBF';
set newname for datafile 3 to 'E:\ORADATA\dbtest\SYSAUX.DBF';
set newname for datafile 4 to 'E:\ORADATA\dbtest\UNDOTBS1.DBF';
set newname for datafile 6 to 'E:\ORADATA\dbtest\USERS.DBF';
set newname for datafile 2 to 'E:\ORADATA\dbtest\UNDOTBS2.DBF';
set newname for datafile 5 to 'E:\ORADATA\dbtest\TSP_WX.DBF';
set newname for datafile 7 to 'E:\ORADATA\dbtest\TSP_WSYY.DBF';
set newname for datafile 8 to 'E:\ORADATA\dbtest\TSP_TJ.DBF';
set newname for datafile 9 to 'E:\ORADATA\dbtest\TSP_SPACS.DBF';
set newname for datafile 10 to 'E:\ORADATA\dbtest\TSP_SFXT.DBF';
set newname for datafile 11 to 'E:\ORADATA\dbtest\TSP_PHYEXAM.DBF';
set newname for datafile 12 to 'E:\ORADATA\dbtest\TSP_OUTPDOCT.DBF';
set newname for datafile 13 to 'E:\ORADATA\dbtest\TSP_MZ.DBF';
set newname for datafile 14 to 'E:\ORADATA\dbtest\TSP_LOGIN.DBF';
set newname for datafile 15 to 'E:\ORADATA\dbtest\TSP_HISUSER.DBF';
set newname for datafile 16 to 'E:\ORADATA\dbtest\TSP_HEALTHCARE.DBF';
set newname for datafile 17 to 'E:\ORADATA\dbtest\TSP_HCR.DBF';
set newname for datafile 18 to 'E:\ORADATA\dbtest\TSP_HC.DBF';
set newname for datafile 19 to 'E:\ORADATA\dbtest\TSP_GRKZ.DBF';
set newname for datafile 20 to 'E:\ORADATA\dbtest\TSP_DZST.DBF';
set newname for datafile 21 to 'E:\ORADATA\dbtest\TSP_CRM.DBF';
set newname for datafile 22 to 'E:\ORADATA\dbtest\TSP_CPUB.DBF';
set newname for datafile 23 to 'E:\ORADATA\dbtest\TSP_CMP.DBF';
set newname for datafile 24 to 'E:\ORADATA\dbtest\TSP_TJHISRPT.DBF';
set newname for datafile 25 to 'E:\ORADATA\dbtest\TSP_REPORT.DBF';
set newname for datafile 26 to 'E:\ORADATA\dbtest\TSP_MOBILE.DBF';
set newname for datafile 27 to 'E:\ORADATA\dbtest\TSP_CLINPATH.DBF';
set newname for datafile 28 to 'E:\ORADATA\dbtest\TSP_INTERFACE.DBF';
set newname for datafile 29 to 'E:\ORADATA\dbtest\TSP_CPR.DBF';
set newname for datafile 30 to 'E:\ORADATA\dbtest\TSP_INQUIRE.DBF';
set newname for datafile 31 to 'E:\ORADATA\dbtest\TSP_NURSING.DBF';
set newname for datafile 32 to 'E:\ORADATA\dbtest\TSP_INFECT.DBF';
set newname for datafile 33 to 'E:\ORADATA\dbtest\TSP_BLDBANK.DBF';
set newname for datafile 34 to 'E:\ORADATA\dbtest\TSP_ECONSTAT.DBF';
set newname for datafile 35 to 'E:\ORADATA\dbtest\TSP_EQUIPMENT.DBF';
set newname for datafile 36 to 'E:\ORADATA\dbtest\TSP_INSURANCE.DBF';
set newname for datafile 37 to 'E:\ORADATA\dbtest\TSP_SURGERY.DBF';
set newname for datafile 38 to 'E:\ORADATA\dbtest\TSP_MEDADM.DBF';
set newname for datafile 39 to 'E:\ORADATA\dbtest\TSP_ACCT.DBF';
set newname for datafile 40 to 'E:\ORADATA\dbtest\TSP_INPBILL.DBF';
set newname for datafile 41 to 'E:\ORADATA\dbtest\TSP_OUTPBILL.DBF';
set newname for datafile 42 to 'E:\ORADATA\dbtest\TSP_PHARMACY.DBF';
set newname for datafile 43 to 'E:\ORADATA\dbtest\TSP_LAB.DBF';
set newname for datafile 44 to 'E:\ORADATA\dbtest\TSP_EXAM.DBF';
set newname for datafile 45 to 'E:\ORADATA\dbtest\TSP_ORDADM.DBF';
set newname for datafile 46 to 'E:\ORADATA\dbtest\TSP_INPADM.DBF';
set newname for datafile 47 to 'E:\ORADATA\dbtest\TSP_OUTPADM.DBF';
set newname for datafile 48 to 'E:\ORADATA\dbtest\TSP_MEDREC.DBF';
set newname for datafile 49 to 'E:\ORADATA\dbtest\TSP_COMM.DBF';
set newname for datafile 50 to 'E:\ORADATA\dbtest\GGSTAB.DBF';
restore database;
switch datafile all;
}

RMAN> run
2> {
3> set newname for datafile 1 to 'E:\ORADATA\dbtest\SYSTEM.DBF';
4> set newname for datafile 3 to 'E:\ORADATA\dbtest\SYSAUX.DBF';
5> set newname for datafile 4 to 'E:\ORADATA\dbtest\UNDOTBS1.DBF';
6> set newname for datafile 6 to 'E:\ORADATA\dbtest\USERS.DBF';
7> set newname for datafile 2 to 'E:\ORADATA\dbtest\UNDOTBS2.DBF';
8> set newname for datafile 5 to 'E:\ORADATA\dbtest\TSP_WX.DBF';
9> set newname for datafile 7 to 'E:\ORADATA\dbtest\TSP_WSYY.DBF';
10> set newname for datafile 8 to 'E:\ORADATA\dbtest\TSP_TJ.DBF';
11> set newname for datafile 9 to 'E:\ORADATA\dbtest\TSP_SPACS.DBF';
12> set newname for datafile 10 to 'E:\ORADATA\dbtest\TSP_SFXT.DBF';
13> set newname for datafile 11 to 'E:\ORADATA\dbtest\TSP_PHYEXAM.DBF';
14> set newname for datafile 12 to 'E:\ORADATA\dbtest\TSP_OUTPDOCT.DBF';
15> set newname for datafile 13 to 'E:\ORADATA\dbtest\TSP_MZ.DBF';
16> set newname for datafile 14 to 'E:\ORADATA\dbtest\TSP_LOGIN.DBF';
17> set newname for datafile 15 to 'E:\ORADATA\dbtest\TSP_HISUSER.DBF';
18> set newname for datafile 16 to 'E:\ORADATA\dbtest\TSP_HEALTHCARE.DBF';
19> set newname for datafile 17 to 'E:\ORADATA\dbtest\TSP_HCR.DBF';
20> set newname for datafile 18 to 'E:\ORADATA\dbtest\TSP_HC.DBF';
21> set newname for datafile 19 to 'E:\ORADATA\dbtest\TSP_GRKZ.DBF';
22> set newname for datafile 20 to 'E:\ORADATA\dbtest\TSP_DZST.DBF';
23> set newname for datafile 21 to 'E:\ORADATA\dbtest\TSP_CRM.DBF';
24> set newname for datafile 22 to 'E:\ORADATA\dbtest\TSP_CPUB.DBF';
25> set newname for datafile 23 to 'E:\ORADATA\dbtest\TSP_CMP.DBF';
26> set newname for datafile 24 to 'E:\ORADATA\dbtest\TSP_TJHISRPT.DBF';
27> set newname for datafile 25 to 'E:\ORADATA\dbtest\TSP_REPORT.DBF';
28> set newname for datafile 26 to 'E:\ORADATA\dbtest\TSP_MOBILE.DBF';
29> set newname for datafile 27 to 'E:\ORADATA\dbtest\TSP_CLINPATH.DBF';
30> set newname for datafile 28 to 'E:\ORADATA\dbtest\TSP_INTERFACE.DBF';
31> set newname for datafile 29 to 'E:\ORADATA\dbtest\TSP_CPR.DBF';
32> set newname for datafile 30 to 'E:\ORADATA\dbtest\TSP_INQUIRE.DBF';
33> set newname for datafile 31 to 'E:\ORADATA\dbtest\TSP_NURSING.DBF';
34> set newname for datafile 32 to 'E:\ORADATA\dbtest\TSP_INFECT.DBF';
35> set newname for datafile 33 to 'E:\ORADATA\dbtest\TSP_BLDBANK.DBF';
36> set newname for datafile 34 to 'E:\ORADATA\dbtest\TSP_ECONSTAT.DBF';
37> set newname for datafile 35 to 'E:\ORADATA\dbtest\TSP_EQUIPMENT.DBF';
38> set newname for datafile 36 to 'E:\ORADATA\dbtest\TSP_INSURANCE.DBF';
39> set newname for datafile 37 to 'E:\ORADATA\dbtest\TSP_SURGERY.DBF';
40> set newname for datafile 38 to 'E:\ORADATA\dbtest\TSP_MEDADM.DBF';
41> set newname for datafile 39 to 'E:\ORADATA\dbtest\TSP_ACCT.DBF';
42> set newname for datafile 40 to 'E:\ORADATA\dbtest\TSP_INPBILL.DBF';
43> set newname for datafile 41 to 'E:\ORADATA\dbtest\TSP_OUTPBILL.DBF';
44> set newname for datafile 42 to 'E:\ORADATA\dbtest\TSP_PHARMACY.DBF';
45> set newname for datafile 43 to 'E:\ORADATA\dbtest\TSP_LAB.DBF';
46> set newname for datafile 44 to 'E:\ORADATA\dbtest\TSP_EXAM.DBF';
47> set newname for datafile 45 to 'E:\ORADATA\dbtest\TSP_ORDADM.DBF';
48> set newname for datafile 46 to 'E:\ORADATA\dbtest\TSP_INPADM.DBF';
49> set newname for datafile 47 to 'E:\ORADATA\dbtest\TSP_OUTPADM.DBF';
50> set newname for datafile 48 to 'E:\ORADATA\dbtest\TSP_MEDREC.DBF';
51> set newname for datafile 49 to 'E:\ORADATA\dbtest\TSP_COMM.DBF';
52> set newname for datafile 50 to 'E:\ORADATA\dbtest\GGSTAB.DBF';
53> restore database;
54> switch datafile all;
55> }

正在执行命令: 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

正在执行命令: 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

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

启动 restore 于 01-12月-16
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=1383 设备类型=DISK

通道 ORA_DISK_1: 正在还原数据文件00035
输入数据文件副本 RECID=2 STAMP=929465413 文件名=D:\APP\ORADATA\dbtest\TSP_EQUIPME
NT.DBF
数据文件 00035 的还原目标: E:\ORADATA\dbtest\TSP_EQUIPMENT.DBF
通道 ORA_DISK_1: 已复制数据文件 00035 的数据文件副本
输出文件名=E:\ORADATA\dbtest\TSP_EQUIPMENT.DBF RECID=3 STAMP=929470050
通道 ORA_DISK_1: 正在开始还原数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集还原的数据文件
通道 ORA_DISK_1: 将数据文件 00001 还原到 E:\ORADATA\dbtest\SYSTEM.DBF
通道 ORA_DISK_1: 将数据文件 00002 还原到 E:\ORADATA\dbtest\UNDOTBS2.DBF
通道 ORA_DISK_1: 将数据文件 00003 还原到 E:\ORADATA\dbtest\SYSAUX.DBF
通道 ORA_DISK_1: 将数据文件 00004 还原到 E:\ORADATA\dbtest\UNDOTBS1.DBF
通道 ORA_DISK_1: 将数据文件 00005 还原到 E:\ORADATA\dbtest\TSP_WX.DBF
通道 ORA_DISK_1: 将数据文件 00006 还原到 E:\ORADATA\dbtest\USERS.DBF
通道 ORA_DISK_1: 将数据文件 00007 还原到 E:\ORADATA\dbtest\TSP_WSYY.DBF
通道 ORA_DISK_1: 将数据文件 00008 还原到 E:\ORADATA\dbtest\TSP_TJ.DBF
通道 ORA_DISK_1: 将数据文件 00009 还原到 E:\ORADATA\dbtest\TSP_SPACS.DBF
通道 ORA_DISK_1: 将数据文件 00010 还原到 E:\ORADATA\dbtest\TSP_SFXT.DBF
通道 ORA_DISK_1: 将数据文件 00011 还原到 E:\ORADATA\dbtest\TSP_PHYEXAM.DBF
通道 ORA_DISK_1: 将数据文件 00012 还原到 E:\ORADATA\dbtest\TSP_OUTPDOCT.DBF
通道 ORA_DISK_1: 将数据文件 00013 还原到 E:\ORADATA\dbtest\TSP_MZ.DBF
通道 ORA_DISK_1: 将数据文件 00014 还原到 E:\ORADATA\dbtest\TSP_LOGIN.DBF
通道 ORA_DISK_1: 将数据文件 00015 还原到 E:\ORADATA\dbtest\TSP_HISUSER.DBF
通道 ORA_DISK_1: 将数据文件 00016 还原到 E:\ORADATA\dbtest\TSP_HEALTHCARE.DBF
通道 ORA_DISK_1: 将数据文件 00017 还原到 E:\ORADATA\dbtest\TSP_HCR.DBF
通道 ORA_DISK_1: 将数据文件 00018 还原到 E:\ORADATA\dbtest\TSP_HC.DBF
通道 ORA_DISK_1: 将数据文件 00019 还原到 E:\ORADATA\dbtest\TSP_GRKZ.DBF
通道 ORA_DISK_1: 将数据文件 00020 还原到 E:\ORADATA\dbtest\TSP_DZST.DBF
通道 ORA_DISK_1: 将数据文件 00021 还原到 E:\ORADATA\dbtest\TSP_CRM.DBF
通道 ORA_DISK_1: 将数据文件 00022 还原到 E:\ORADATA\dbtest\TSP_CPUB.DBF
通道 ORA_DISK_1: 将数据文件 00023 还原到 E:\ORADATA\dbtest\TSP_CMP.DBF
通道 ORA_DISK_1: 将数据文件 00024 还原到 E:\ORADATA\dbtest\TSP_TJHISRPT.DBF
通道 ORA_DISK_1: 将数据文件 00025 还原到 E:\ORADATA\dbtest\TSP_REPORT.DBF
通道 ORA_DISK_1: 将数据文件 00026 还原到 E:\ORADATA\dbtest\TSP_MOBILE.DBF
通道 ORA_DISK_1: 将数据文件 00027 还原到 E:\ORADATA\dbtest\TSP_CLINPATH.DBF
通道 ORA_DISK_1: 将数据文件 00028 还原到 E:\ORADATA\dbtest\TSP_INTERFACE.DBF
通道 ORA_DISK_1: 将数据文件 00029 还原到 E:\ORADATA\dbtest\TSP_CPR.DBF
通道 ORA_DISK_1: 将数据文件 00030 还原到 E:\ORADATA\dbtest\TSP_INQUIRE.DBF
通道 ORA_DISK_1: 将数据文件 00031 还原到 E:\ORADATA\dbtest\TSP_NURSING.DBF
通道 ORA_DISK_1: 将数据文件 00032 还原到 E:\ORADATA\dbtest\TSP_INFECT.DBF
通道 ORA_DISK_1: 将数据文件 00033 还原到 E:\ORADATA\dbtest\TSP_BLDBANK.DBF
通道 ORA_DISK_1: 将数据文件 00034 还原到 E:\ORADATA\dbtest\TSP_ECONSTAT.DBF
通道 ORA_DISK_1: 将数据文件 00036 还原到 E:\ORADATA\dbtest\TSP_INSURANCE.DBF
通道 ORA_DISK_1: 将数据文件 00037 还原到 E:\ORADATA\dbtest\TSP_SURGERY.DBF
通道 ORA_DISK_1: 将数据文件 00038 还原到 E:\ORADATA\dbtest\TSP_MEDADM.DBF
通道 ORA_DISK_1: 将数据文件 00039 还原到 E:\ORADATA\dbtest\TSP_ACCT.DBF
通道 ORA_DISK_1: 将数据文件 00040 还原到 E:\ORADATA\dbtest\TSP_INPBILL.DBF
通道 ORA_DISK_1: 将数据文件 00041 还原到 E:\ORADATA\dbtest\TSP_OUTPBILL.DBF
通道 ORA_DISK_1: 将数据文件 00042 还原到 E:\ORADATA\dbtest\TSP_PHARMACY.DBF
通道 ORA_DISK_1: 将数据文件 00043 还原到 E:\ORADATA\dbtest\TSP_LAB.DBF
通道 ORA_DISK_1: 将数据文件 00044 还原到 E:\ORADATA\dbtest\TSP_EXAM.DBF
通道 ORA_DISK_1: 将数据文件 00045 还原到 E:\ORADATA\dbtest\TSP_ORDADM.DBF
通道 ORA_DISK_1: 将数据文件 00046 还原到 E:\ORADATA\dbtest\TSP_INPADM.DBF
通道 ORA_DISK_1: 将数据文件 00047 还原到 E:\ORADATA\dbtest\TSP_OUTPADM.DBF
通道 ORA_DISK_1: 将数据文件 00048 还原到 E:\ORADATA\dbtest\TSP_MEDREC.DBF
通道 ORA_DISK_1: 将数据文件 00049 还原到 E:\ORADATA\dbtest\TSP_COMM.DBF
通道 ORA_DISK_1: 将数据文件 00050 还原到 E:\ORADATA\dbtest\GGSTAB.DBF
通道 ORA_DISK_1: 正在读取备份片段 D:\BAIDUNETDISKDOWNLOAD\DB_dbtest.BAK\DB_FULL_0
IRM1ST1_1_1.BAK
通道 ORA_DISK_1: 段句柄 = D:\BAIDUNETDISKDOWNLOAD\DB_dbtest.BAK\DB_FULL_0IRM1ST1_
1_1.BAK 标记 = 2016-11-28-FULL
通道 ORA_DISK_1: 已还原备份片段 1
通道 ORA_DISK_1: 还原完成, 用时: 00:03:06
完成 restore 于 01-12月-16

数据文件 1 已转换成数据文件副本
输入数据文件副本 RECID=53 STAMP=929471277 文件名=E:\ORADATA\dbtest\SYSTEM.DBF
数据文件 2 已转换成数据文件副本
输入数据文件副本 RECID=54 STAMP=929471278 文件名=E:\ORADATA\dbtest\UNDOTBS2.DBF
数据文件 3 已转换成数据文件副本
输入数据文件副本 RECID=55 STAMP=929471278 文件名=E:\ORADATA\dbtest\SYSAUX.DBF
数据文件 4 已转换成数据文件副本
输入数据文件副本 RECID=56 STAMP=929471279 文件名=E:\ORADATA\dbtest\UNDOTBS1.DBF
数据文件 5 已转换成数据文件副本
输入数据文件副本 RECID=57 STAMP=929471279 文件名=E:\ORADATA\dbtest\TSP_WX.DBF
数据文件 6 已转换成数据文件副本
输入数据文件副本 RECID=58 STAMP=929471279 文件名=E:\ORADATA\dbtest\USERS.DBF
数据文件 7 已转换成数据文件副本
输入数据文件副本 RECID=59 STAMP=929471280 文件名=E:\ORADATA\dbtest\TSP_WSYY.DBF
数据文件 8 已转换成数据文件副本
输入数据文件副本 RECID=60 STAMP=929471280 文件名=E:\ORADATA\dbtest\TSP_TJ.DBF
数据文件 9 已转换成数据文件副本
输入数据文件副本 RECID=61 STAMP=929471281 文件名=E:\ORADATA\dbtest\TSP_SPACS.DBF
数据文件 10 已转换成数据文件副本
输入数据文件副本 RECID=62 STAMP=929471281 文件名=E:\ORADATA\dbtest\TSP_SFXT.DBF
数据文件 11 已转换成数据文件副本
输入数据文件副本 RECID=63 STAMP=929471282 文件名=E:\ORADATA\dbtest\TSP_PHYEXAM.DB
F
数据文件 12 已转换成数据文件副本
输入数据文件副本 RECID=64 STAMP=929471283 文件名=E:\ORADATA\dbtest\TSP_OUTPDOCT.D
BF
数据文件 13 已转换成数据文件副本
输入数据文件副本 RECID=65 STAMP=929471283 文件名=E:\ORADATA\dbtest\TSP_MZ.DBF
数据文件 14 已转换成数据文件副本
输入数据文件副本 RECID=66 STAMP=929471284 文件名=E:\ORADATA\dbtest\TSP_LOGIN.DBF
数据文件 15 已转换成数据文件副本
输入数据文件副本 RECID=67 STAMP=929471285 文件名=E:\ORADATA\dbtest\TSP_HISUSER.DB
F
数据文件 16 已转换成数据文件副本
输入数据文件副本 RECID=68 STAMP=929471286 文件名=E:\ORADATA\dbtest\TSP_HEALTHCARE
.DBF
数据文件 17 已转换成数据文件副本
输入数据文件副本 RECID=69 STAMP=929471286 文件名=E:\ORADATA\dbtest\TSP_HCR.DBF
数据文件 18 已转换成数据文件副本
输入数据文件副本 RECID=70 STAMP=929471287 文件名=E:\ORADATA\dbtest\TSP_HC.DBF
数据文件 19 已转换成数据文件副本
输入数据文件副本 RECID=71 STAMP=929471287 文件名=E:\ORADATA\dbtest\TSP_GRKZ.DBF
数据文件 20 已转换成数据文件副本
输入数据文件副本 RECID=72 STAMP=929471288 文件名=E:\ORADATA\dbtest\TSP_DZST.DBF
数据文件 21 已转换成数据文件副本
输入数据文件副本 RECID=73 STAMP=929471288 文件名=E:\ORADATA\dbtest\TSP_CRM.DBF
数据文件 22 已转换成数据文件副本
输入数据文件副本 RECID=74 STAMP=929471289 文件名=E:\ORADATA\dbtest\TSP_CPUB.DBF
数据文件 23 已转换成数据文件副本
输入数据文件副本 RECID=75 STAMP=929471289 文件名=E:\ORADATA\dbtest\TSP_CMP.DBF
数据文件 24 已转换成数据文件副本
输入数据文件副本 RECID=76 STAMP=929471290 文件名=E:\ORADATA\dbtest\TSP_TJHISRPT.D
BF
数据文件 25 已转换成数据文件副本
输入数据文件副本 RECID=77 STAMP=929471290 文件名=E:\ORADATA\dbtest\TSP_REPORT.DBF

数据文件 26 已转换成数据文件副本
输入数据文件副本 RECID=78 STAMP=929471291 文件名=E:\ORADATA\dbtest\TSP_MOBILE.DBF

数据文件 27 已转换成数据文件副本
输入数据文件副本 RECID=79 STAMP=929471291 文件名=E:\ORADATA\dbtest\TSP_CLINPATH.D
BF
数据文件 28 已转换成数据文件副本
输入数据文件副本 RECID=80 STAMP=929471292 文件名=E:\ORADATA\dbtest\TSP_INTERFACE.
DBF
数据文件 29 已转换成数据文件副本
输入数据文件副本 RECID=81 STAMP=929471292 文件名=E:\ORADATA\dbtest\TSP_CPR.DBF
数据文件 30 已转换成数据文件副本
输入数据文件副本 RECID=82 STAMP=929471293 文件名=E:\ORADATA\dbtest\TSP_INQUIRE.DB
F
数据文件 31 已转换成数据文件副本
输入数据文件副本 RECID=83 STAMP=929471294 文件名=E:\ORADATA\dbtest\TSP_NURSING.DB
F
数据文件 32 已转换成数据文件副本
输入数据文件副本 RECID=84 STAMP=929471294 文件名=E:\ORADATA\dbtest\TSP_INFECT.DBF

数据文件 33 已转换成数据文件副本
输入数据文件副本 RECID=85 STAMP=929471295 文件名=E:\ORADATA\dbtest\TSP_BLDBANK.DB
F
数据文件 34 已转换成数据文件副本
输入数据文件副本 RECID=86 STAMP=929471295 文件名=E:\ORADATA\dbtest\TSP_ECONSTAT.D
BF
数据文件 35 已转换成数据文件副本
输入数据文件副本 RECID=87 STAMP=929471296 文件名=E:\ORADATA\dbtest\TSP_EQUIPMENT.
DBF
数据文件 36 已转换成数据文件副本
输入数据文件副本 RECID=88 STAMP=929471296 文件名=E:\ORADATA\dbtest\TSP_INSURANCE.
DBF
数据文件 37 已转换成数据文件副本
输入数据文件副本 RECID=89 STAMP=929471297 文件名=E:\ORADATA\dbtest\TSP_SURGERY.DB
F
数据文件 38 已转换成数据文件副本
输入数据文件副本 RECID=90 STAMP=929471297 文件名=E:\ORADATA\dbtest\TSP_MEDADM.DBF

数据文件 39 已转换成数据文件副本
输入数据文件副本 RECID=91 STAMP=929471298 文件名=E:\ORADATA\dbtest\TSP_ACCT.DBF
数据文件 40 已转换成数据文件副本
输入数据文件副本 RECID=92 STAMP=929471298 文件名=E:\ORADATA\dbtest\TSP_INPBILL.DB
F
数据文件 41 已转换成数据文件副本
输入数据文件副本 RECID=93 STAMP=929471299 文件名=E:\ORADATA\dbtest\TSP_OUTPBILL.D
BF
数据文件 42 已转换成数据文件副本
输入数据文件副本 RECID=94 STAMP=929471300 文件名=E:\ORADATA\dbtest\TSP_PHARMACY.D
BF
数据文件 43 已转换成数据文件副本
输入数据文件副本 RECID=95 STAMP=929471301 文件名=E:\ORADATA\dbtest\TSP_LAB.DBF
数据文件 44 已转换成数据文件副本
输入数据文件副本 RECID=96 STAMP=929471301 文件名=E:\ORADATA\dbtest\TSP_EXAM.DBF
数据文件 45 已转换成数据文件副本
输入数据文件副本 RECID=97 STAMP=929471302 文件名=E:\ORADATA\dbtest\TSP_ORDADM.DBF

数据文件 46 已转换成数据文件副本
输入数据文件副本 RECID=98 STAMP=929471302 文件名=E:\ORADATA\dbtest\TSP_INPADM.DBF

数据文件 47 已转换成数据文件副本
输入数据文件副本 RECID=99 STAMP=929471303 文件名=E:\ORADATA\dbtest\TSP_OUTPADM.DB
F
数据文件 48 已转换成数据文件副本
输入数据文件副本 RECID=100 STAMP=929471303 文件名=E:\ORADATA\dbtest\TSP_MEDREC.DB
F
数据文件 49 已转换成数据文件副本
输入数据文件副本 RECID=101 STAMP=929471304 文件名=E:\ORADATA\dbtest\TSP_COMM.DBF
数据文件 50 已转换成数据文件副本
输入数据文件副本 RECID=102 STAMP=929471304 文件名=E:\ORADATA\dbtest\GGSTAB.DBF

RMAN> recover database;

启动 recover 于 01-12月-16
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=1383 设备类型=DISK

正在开始介质的恢复

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: recover 命令 (在 12/01/2016 19:52:29 上) 失败
RMAN-06053: 无法执行介质恢复, 因为缺少日志
RMAN-06025: 没有找到线程 2 序列 5533 的归档日志的备份以及起始 SCN 60281145 来还

RMAN-06025: 没有找到线程 1 序列 5644 的归档日志的备份以及起始 SCN 60283097 来还

RMAN-06025: 没有找到线程 1 序列 5643 的归档日志的备份以及起始 SCN 60282982 来还

RMAN-06025: 没有找到线程 1 序列 5642 的归档日志的备份以及起始 SCN 60281230 来还


SQL> recover database using backup controlfile until cancel;
ORA-00279: 更改 60279908 (在 11/28/2016 11:31:46 生成) 对于线程 2 是必需的
ORA-00289: 建议:
+DG_RECOVERY/G_dbtest/ARCHIVELOG/2016_11_28/thread_2_seq_5531.1036.929100773
ORA-00280: 更改 60279908 (用于线程 2) 在序列 #5531 中


指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
AUTO
ORA-00308: cannot open archived log
'+DG_RECOVERY/G_dbtest/ARCHIVELOG/2016_11_28/thread_2_seq_5531.1036.929100773'
ORA-17503: ksfdopn:2 Failed to open file
+DG_RECOVERY/G_dbtest/ARCHIVELOG/2016_11_28/thread_2_seq_5531.1036.929100773
ORA-15001: diskgroup "DG_RECOVERY" does not exist or is not mounted
ORA-29701: unable to connect to Cluster Synchronization Service


ORA-00308: cannot open archived log
'+DG_RECOVERY/G_dbtest/ARCHIVELOG/2016_11_28/thread_2_seq_5531.1036.929100773'
ORA-17503: ksfdopn:2 Failed to open file
+DG_RECOVERY/G_dbtest/ARCHIVELOG/2016_11_28/thread_2_seq_5531.1036.929100773
ORA-15001: diskgroup "DG_RECOVERY" does not exist or is not mounted
ORA-29701: unable to connect to Cluster Synchronization Service


SQL> select status from v$instance;

STATUS
------------
MOUNTED

SQL> alter database open read only;
alter database open read only
*
第 1 行出现错误:
ORA-01092: ORACLE instance terminated. Disconnection forced
ORA-00704: bootstrap process failure
ORA-39700: database must be opened with UPGRADE option
进程 ID: 2552
会话 ID: 2071 序列号: 53410

SQL> alter database open resetlogs
  2  ;
alter database open resetlogs
*
第 1 行出现错误:
ORA-00349: ???? '+DGDATA/g_dbtest/redo01.log' ????
ORA-29701: unable to connect to Cluster Synchronization Service
ORA-29701: unable to connect to Cluster Synchronization Service
ORA-29701: unable to connect to Cluster Synchronization Service

SQL> select member from v$logfile;

MEMBER
-------------------------------------------------------------

+DGDATA/g_dbtest/redo02.log
+DGDATA/g_dbtest/redo01.log
+DGDATA/g_dbtest/redo03.log
+DGDATA/g_dbtest/redo04.log
SQL>

alter database rename file '+DGDATA/g_dbtest/redo02.log' to 'E:\ORADATA\dbtest\redo02.log';
alter database rename file '+DGDATA/g_dbtest/redo01.log' to 'E:\ORADATA\dbtest\redo01.log';
alter database rename file '+DGDATA/g_dbtest/redo03.log' to 'E:\ORADATA\dbtest\redo03.log';
alter database rename file '+DGDATA/g_dbtest/redo04.log' to 'E:\ORADATA\dbtest\redo04.log';

SQL> alter database rename file '+DGDATA/g_dbtest/redo02.log' to 'E:\ORADATA\dfhi
s\redo02.log';

数据库已更改。

SQL> alter database rename file '+DGDATA/g_dbtest/redo01.log' to 'E:\ORADATA\dfhi
s\redo01.log';

数据库已更改。

SQL> alter database rename file '+DGDATA/g_dbtest/redo03.log' to 'E:\ORADATA\dfhi
s\redo03.log';

数据库已更改。

SQL> alter database rename file '+DGDATA/g_dbtest/redo04.log' to 'E:\ORADATA\dfhi
s\redo04.log';

数据库已更改。

SQL>

SQL> alter database open resetlogs;
alter database open resetlogs
*
第 1 行出现错误:
ORA-00392: 日志 1 (用于线程 1) 正被清除, 不允许操作
ORA-00312: 联机日志 1 线程 1: 'E:\ORADATA\dbtest\REDO01.LOG'

SQL> select member from v$logfile;

MEMBER
--------------------------------------------------------------------------------

E:\ORADATA\dbtest\REDO02.LOG
E:\ORADATA\dbtest\REDO01.LOG
E:\ORADATA\dbtest\REDO03.LOG
E:\ORADATA\dbtest\REDO04.LOG

SQL> select group#,bytes/1024/1024||'M',status from v$log;

    GROUP# BYTES/1024/1024||'M'                      STATUS
---------- ----------------------------------------- ----------------
         1 50M                                       CLEARING_CURRENT
         2 50M                                       CLEARING
         3 50M                                       CLEARING
         4 50M                                       CLEARING_CURRENT


alter database clear logfile group 1;
alter database clear logfile group 2;
alter database clear logfile group 3;
alter database clear logfile group 4;

SQL> alter database clear logfile group 1;

数据库已更改。

SQL> alter database clear logfile group 2;

数据库已更改。

SQL> alter database clear logfile group 3;

数据库已更改。

SQL> alter database clear logfile group 4;

数据库已更改。

SQL> select group#,bytes/1024/1024||'M',status from v$log;

    GROUP# BYTES/1024/1024||'M'                      STATUS
---------- ----------------------------------------- ----------------
         1 50M                                       CURRENT
         2 50M                                       UNUSED
         3 50M                                       UNUSED
         4 50M                                       CURRENT

SQL>


SQL> alter database open resetlogs upgrade;
alter database open resetlogs upgrade
*
第 1 行出现错误:
ORA-01139: RESETLOGS ???????????????


SQL> recover database using backup controlfile until cancel;
ORA-00283: recovery session canceled due to errors
ORA-16433: The database or pluggable database must be opened in read/write
mode.


SQL> alter database open read only;
alter database open read only
*
第 1 行出现错误:
ORA-16433: ????/????????????????


SQL> select status from v$instance;

STATUS
------------
MOUNTED

SQL> alter database open resetlogs;
alter database open resetlogs
*
第 1 行出现错误:
ORA-01139: RESETLOGS ???????????????


SQL> alter database open resetlogs upgrade;
alter database open resetlogs upgrade
*
第 1 行出现错误:
ORA-01139: RESETLOGS ???????????????


SQL> alter database open;
alter database open
*
第 1 行出现错误:
ORA-01092: ORACLE instance terminated. Disconnection forced
ORA-00704: bootstrap process failure
ORA-39700: database must be opened with UPGRADE option
进程 ID: 4360
会话 ID: 6 序列号: 23895


C:\Users\win_user>sqlplus / as sysdba

SQL*Plus: Release 12.1.0.2.0 Production on 星期四 12月 1 21:57:35 2016

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

已连接到空闲例程。

SQL> startup mount pfile='D:\app\product\12.1.0\dbhome_1\database\INITauxdb.ORA'

ORA-32006: SEC_CASE_SENSITIVE_LOGON initialization parameter has been deprecated

ORACLE 例程已经启动。

Total System Global Area 1258291200 bytes
Fixed Size                  3045168 bytes
Variable Size            1157630160 bytes
Database Buffers           83886080 bytes
Redo Buffers               13729792 bytes
数据库装载完毕。
SQL> alter database open upgrade;

数据库已更改。


SQL> select status from v$instance;

STATUS
------------
OPEN MIGRATE

SQL> select open_mode from v$database;

OPEN_MODE
--------------------
READ WRITE

SQL> @D:\app\product\12.1.0\dbhome_1\RDBMS\ADMIN\catupgrd.sql;
DOC>######################################################################
DOC>######################################################################
DOC>                                 NOTE
DOC>
DOC>    The catupgrd.sql is being deprecated in the 12.1 release of the
DOC>    Oracle Database.  Customers are encouraged to use catctl.pl as
DOC>    the replacement for catupgrd.sql when upgrading the database dictionary.

DOC>
DOC>                    cd $ORACLE_HOME/rdbms/admin
DOC>                    $ORACLE_HOME/perl/bin/perl catctl.pl -n 4 catupgrd.sql
DOC>
DOC>    Refer to the Oracle Database Upgrade Guide for more information.
DOC>
DOC>    This database upgrade procedure must be called with the following
DOC>    argument when invoking from the SQL prompt:
DOC>
DOC>                    @catupgrd.sql PARALLEL=NO
DOC>
DOC>######################################################################
DOC>######################################################################
DOC>#
原值    2: WHERE  UPPER('&&1') = 'PARALLEL=NO' OR
新值    2: WHERE  UPPER('') = 'PARALLEL=NO' OR
原值    3:        UPPER('&&1') = 'PARALLEL=YES'
新值    3:        UPPER('') = 'PARALLEL=YES'
SELECT (to_number(count(*)))/(to_number(count(*))) FROM DUAL
                            *
第 1 行出现错误:
ORA-01476: 除数为 0


从 Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing opt
ions 断开

C:\Users\win_user>

SQL> @D:\app\product\12.1.0\dbhome_1\RDBMS\ADMIN\utlrp.sql;
SELECT dbms_registry_sys.time_stamp('utlrp_bgn') as timestamp from dual
       *
第 1 行出现错误:
ORA-28106: 为参数#1输入的值无效
ORA-06512: 在 "SYS.DBMS_SESSION", line 122
ORA-06512: 在 "SYS.DBMS_REGISTRY_SYS", line 2200
ORA-06512: 在 "SYS.DBMS_REGISTRY_SYS", line 2481


DOC>   The following PL/SQL block invokes UTL_RECOMP to recompile invalid
DOC>   objects in the database. Recompilation time is proportional to the
DOC>   number of invalid objects in the database, so this command may take
DOC>   a long time to execute on a database with a large number of invalid
DOC>   objects.
DOC>
DOC>   Use the following queries to track recompilation progress:
DOC>
DOC>   1. Query returning the number of invalid objects remaining. This
DOC>      number should decrease with time.
DOC>         SELECT COUNT(*) FROM obj$ WHERE status IN (4, 5, 6);
DOC>
DOC>   2. Query returning the number of objects compiled so far. This number
DOC>      should increase with time.
DOC>         SELECT COUNT(*) FROM UTL_RECOMP_COMPILED;
DOC>
DOC>   This script automatically chooses serial or parallel recompilation
DOC>   based on the number of CPUs available (parameter cpu_count) multiplied
DOC>   by the number of threads per CPU (parameter parallel_threads_per_cpu).
DOC>   On RAC, this number is added across all RAC nodes.
DOC>
DOC>   UTL_RECOMP uses DBMS_SCHEDULER to create jobs for parallel
DOC>   recompilation. Jobs are created without instance affinity so that they
DOC>   can migrate across RAC nodes. Use the following queries to verify
DOC>   whether UTL_RECOMP jobs are being created and run correctly:
DOC>
DOC>   1. Query showing jobs created by UTL_RECOMP
DOC>         SELECT job_name FROM dba_scheduler_jobs
DOC>            WHERE job_name like 'UTL_RECOMP_SLAVE_%';
DOC>
DOC>   2. Query showing UTL_RECOMP jobs that are running
DOC>         SELECT job_name FROM dba_scheduler_running_jobs
DOC>            WHERE job_name like 'UTL_RECOMP_SLAVE_%';
DOC>#
DECLARE
*
第 1 行出现错误:
ORA-06544: PL/SQL: 内部错误, 参数: [77303], [], [], [], [], [], [], []
ORA-06553: PLS-801: 内部错误 [77303]
ORA-06512: 在 "SYS.UTL_RECOMP", line 865
ORA-06512: 在 line 4


SELECT dbms_registry_sys.time_stamp('utlrp_end') as timestamp from dual
       *
第 1 行出现错误:
ORA-28106: 为参数#1输入的值无效
ORA-06512: 在 "SYS.DBMS_SESSION", line 122
ORA-06512: 在 "SYS.DBMS_REGISTRY_SYS", line 2200
ORA-06512: 在 "SYS.DBMS_REGISTRY_SYS", line 2481


DOC> The following query reports the number of objects that have compiled
DOC> with errors.
DOC>
DOC> If the number is higher than expected, please examine the error
DOC> messages reported with each object (using SHOW ERRORS) to see if they
DOC> point to system misconfiguration or resource constraints that must be
DOC> fixed before attempting to recompile these objects.
DOC>#

OBJECTS WITH ERRORS
-------------------
                  0

DOC> The following query reports the number of errors caught during
DOC> recompilation. If this number is non-zero, please query the error
DOC> messages in the table UTL_RECOMP_ERRORS to see if any of these errors
DOC> are due to misconfiguration or resource constraints that must be
DOC> fixed before objects can compile successfully.
DOC>#

ERRORS DURING RECOMPILATION
---------------------------
                          0


函数已创建。


PL/SQL 过程已成功完成。


函数已删除。

BEGIN dbms_registry_sys.validate_components; END;

    *
第 1 行出现错误:
ORA-28106: 为参数#1输入的值无效
ORA-00911: 无效字符
ORA-06512: 在 "SYS.DBMS_SESSION", line 122
ORA-06512: 在 "SYS.DBMS_REGISTRY_SYS", line 2200
ORA-06512: 在 "SYS.DBMS_REGISTRY_SYS", line 2481
ORA-06512: 在 line 1

SQL>shutdown immediate

SQL> startup upgrade pfile='D:\app\product\12.1.0\dbhome_1\database\INITauxdb.OR
A'
ORA-32006: SEC_CASE_SENSITIVE_LOGON initialization parameter has been deprecated

ORACLE 例程已经启动。

Total System Global Area 1258291200 bytes
Fixed Size                  3045168 bytes
Variable Size            1157630160 bytes
Database Buffers           83886080 bytes
Redo Buffers               13729792 bytes
数据库装载完毕。
数据库已经打开。
SQL> select status from v$instance;

STATUS
------------
OPEN MIGRATE

SQL> select open_mode from v$database;

OPEN_MODE
--------------------
READ WRITE

SQL>

OK

SQL>
SQL> select file_name from dba_temp_files;
select file_name from dba_temp_files
                      *
第 1 行出现错误:
ORA-01219: ?????????????: ?????????????

RMAN>sql 'alter database open resetlogs';

+++++++++++++++++++++++++++++++++++++++++++++++++++++++
C:\>oradim -new -sid orcl  #创建一个orcl服务
C:\>set ORACLE_SID=orcl
C:\>sqlplus "/as sysdba";
SQL>startup nomount pfile='C:\INITorcl.ORA';
SQL> create spfile from pfile='C:\INITorcl.ORA';
SQL> shutdown immediate;
SQL>exit;
C:\>set ORACLE_SID=orcl
C:\>rman target/
RMAN>startup nomount;
RMAN>restore controlfile to '目标数据库控制文件放置的位置及名称' from '备份控制文件放置的位置';
RMAN>alter database mount;
RMAN>catalog start with '备份集放置的位置'; #向控制文件中添加备份集
RMAN>crosscheck backup;
RMAN>report schema;

run
{
set newname for datafile 1
  to 'D:\app\oradata\db\SYSTEM.DBF';  #实例中SYSTEM.DBF放置的位置
   set newname for datafile 2
   to 'D:\app\oradata\db\UNDOTBS2.DBF';
   set newname for datafile 3
   to 'D:\app\oradata\db\SYSAUX.DBF';
   set newname for datafile 4
   to 'D:\app\oradata\db\UNDOTBS1.DBF';
   set newname for datafile 6
   to 'D:\app\oradata\db\USERS.DBF';
   set newname for datafile 5
   to 'D:\app\oradata\db\TSP_WX.DBF';
restore database;
switch datafile all;
}
RMAN>recover database;
RMAN>sql 'alter database open resetlogs';


--基于时间点的恢复
RMAN>startup mount;
RMAN>restore database;
RMAN>sql 'alter session set nls_date_format="yyyymmdd hh24:mi:ss"'; #设置显示时间格式
RMAN>recover database until time '20161012 17:07:00'; #把数据库恢复到2016-10-12 17:07:00这一时间点上
RMAN>sql 'alter database open resetlogs';

--删除过期备份
1.crosscheck backupset;或crosscheck backup;
2.report obsolete;
3.delete obsolete;

--ORA-39700
startup upgrade;
@$ORACLE_HOME\rdbms\admin\catupgrd.sql; --@D:\app\product\12.1.0\dbhome_1\RDBMS\ADMIN\catupgrd.sql;
@$ORACLE_HOME/rdbms/admin/utlrp.sql;  --@D:\app\product\12.1.0\dbhome_1\RDBMS\ADMIN\utlrp.sql;  重新编译失效的object,跟这个问题本身关系不大
重启数据库
shutdwon immediate;
startup
ok

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
--参考

注:
①恢复的前提是已经做好备份
②完全恢复数据库是数据库遇到故障,在恢复时候没有丢失任何已经提交事物数据的恢复
不完全恢复数据库是数据库遇到故障,在恢复时候丢失部分数据的恢复
③在linux下需要设置环境变量,即需要恢复的oracle数据库的实例名:export ORACLE_SID=orcl
④当用resetlogs启动数据库时,应该要对数据库进行一次全备份

一、恢复方案
1、丢失数据文件,进行完全恢复
复制代码 代码如下:

RMAN>startup mount;
RMAN>restore database;
RMAN>recover database;
RMAN>sql 'alter database open';

2、丢失重做日志文件,进行不完全恢复
复制代码 代码如下:

SQL>startup mount;
SQL>recover database until cancel;
SQL>alter database open resetlogs;

3、丢失数据文件、控制文件和重做日志文件,进行不完全恢复
复制代码 代码如下:

RMAN>startup nomount;
RMAN>restore controfile from autobackup;
RMAN>alter database mount;
RMAN>restore database;
SQL>recover database using backup controlfile until cancel;
SQL>alter database open resetlogs;

4、丢失初始化文件、控制文件数据文件和重做日志文件,进行不完全恢复
复制代码 代码如下:

SQL>startup nomount pfile='D:\oracle\product\10.2.0\db_1\admin\orcl\pfile\init.ora.27201414210'; #pfile的路径
RMAN>restore spfile from autobackup;
SQL>shutdown immediate;
SQL>startup nomount;
RMAN>restore controlfile from autobackup;
RMAN>alter database mount;
RMAN>restore database;
SQL>recover database using backup controlfile until cancel;
SQL>alter database open resetlogs;

5、基于时间点的恢复(常用)
复制代码 代码如下:

RMAN>startup mount;
RMAN>restore database;
RMAN>sql 'alter session set nls_date_format="yyyymmdd hh24:mi:ss"'; #设置显示时间格式
RMAN>recover database until time '20140312 17:07:00'; #把数据库恢复到2014-03-12 17:07:00这一时间点上
RMAN>sql 'alter database open resetlogs';

6、基于SCN的恢复
复制代码 代码如下:

RMAN>startup mount;
RMAN>restore database;
RMAN>recover database until scn  963915;
RMAN>sql 'alter database open resetlogs';

①查询当前SCN号:
复制代码 代码如下:

SQL>select dbms_flashback.get_system_change_number from dual;

②根据SCN号查询时间:
复制代码 代码如下:

SQL>select to_char(scn_to_timestamp(963959),'yyyymmdd hh24:mi:si') from dual;

③根据时间查询SCN号:
复制代码 代码如下:

SQL>select timestamp_to_scn(to_date('20140309 17:55:10','yyyymmdd hh24:mi:ss')) from dual;

④查询一段时间内的SCN号:
复制代码 代码如下:

SQL>select * from (select time_dp,scn from smon_scn_time order by time_dp desc) where  rownum<20;

7、深入理解incarnation:就是可以跨越resetlogs进行数据恢复
①每一次resetlogs就会使incarnation + 1;如果想要恢复到之前incarnation的scn,就需要先恢复到之前的incarnation;

②Incarnation 11 and 12都包括scn 900000 的spot,所以当incarnation 12 做 until scn的时候,是恢复到当前incarcation 的 scn;但是根据我们的需要,我们需要的是incarnation 11的scn 900000;所以就需要切换incarnation到incarnation 11,才能找回我们需要的数据。
RMAN>reset database to incarnation 11;

8、recover database的四条语句区别
① SQL>recover database using backup controlfile
如果丢失当前控制文件,用冷备份的控制文件恢复的时候,用来告诉oracle,不要以controlfile中的scn作为恢复的终点。
②SQL>recover database until cancel
如果丢失current/active redo的时候,手动指定终点。
③SQL>recover database using backup controlfile until cancel;
如果丢失当前controlfile并且current/active redo都丢失,会先去自动应用归档日志,可以实现最大的恢复;
④SQL>recover database until cancel using backup controlfile;
如果丢失当前controlfile并且current/active redo都丢失,以旧的redo中的scn为恢复终点,因为没有应用归档日志,所有会丢失数据。

要理解recover database using backup controlfile,先理解 recover database;在普通的recover database 或者 recover tablespace, recover datafile时, Oracle会以当前controlfile所纪录的SCN为准,利用archive log和 redo log的redo entry, 把相关的datafile 的 block恢复到“当前controlfile所纪录的SCN”;而某些情况下,Oracle需要把数据恢复到比当前controlfile所纪录的SCN还要靠后的位置(比如说,control file是backup controlfile , 或者 controlfile是根据trace create的。),这时候,就需要用using backup controlfile.   恢复就不会受“当前controlfile所记录的SCN”的限制。这时候的限制就来自于你的语句(until time , until scn),或者可用的archive log(until cancel) 。如果控制文件丢失,restore备份的控制文件后,则必须使用using backup controlfile选项。而until cancel则是不完全恢复,即current/active redo丢失,或者从restore数据库后某个归档文件缺失,则终止。
结论:
如果有旧的数据库备份,在归档日志和在线日志全部保存完好的情况下,使用recover database或recover database using backup controlfile,则不丢失数据
如果存在备份数据文件restore后,归档日志或者在线日志(active、current)丢失情况下,使用recover database using backup controlfile until cancel,则可以实现最大恢复。
0 0
原创粉丝点击