【实验内容】
恢复SYSTEM表空间数据文件(SYSTEM表空间数据文件所在的磁盘出现故障)
也可用在因磁盘空间不足,迁移数据文件到其他磁盘。
【实验过程】
边上代码边说明。
边上代码边说明。
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■ 我们先连接sqlplus,查看一下表空间及对应数据文件情况
■ 我们看到 SYSTEM 表空间的数据文件编号为1号文件,对应数据文件名称SYSTEM01.DBF
■ ※D:\ORACLE\PRODUCT\10.2.0\ORADATA\CHIC\SYSTEM01.DBF
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■ 我们先连接sqlplus,查看一下表空间及对应数据文件情况
■ 我们看到 SYSTEM 表空间的数据文件编号为1号文件,对应数据文件名称SYSTEM01.DBF
■ ※D:\ORACLE\PRODUCT\10.2.0\ORADATA\CHIC\SYSTEM01.DBF
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
C:\>sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on 星期五 9月 23 18:58:04 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> set linesize 8000
SQL> set pagesize 8000
SQL> set feedback on
SQL> select t2.NAME,t1.FILE#,t1.NAME from v$datafile t1,v$tablespace t2 where t1.TS#=t2.TS#;
SQL> set pagesize 8000
SQL> set feedback on
SQL> select t2.NAME,t1.FILE#,t1.NAME from v$datafile t1,v$tablespace t2 where t1.TS#=t2.TS#;
NAME FILE# NAME
------------------------------ ---------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
SYSTEM 1 D:\ORACLE\PRODUCT\10.2.0\ORADATA\CHIC\SYSTEM01.DBF
UNDOTBS1 2 D:\ORACLE\PRODUCT\10.2.0\ORADATA\CHIC\UNDOTBS01.DBF
SYSAUX 3 D:\ORACLE\PRODUCT\10.2.0\ORADATA\CHIC\SYSAUX01.DBF
USERS 4 D:\ORACLE\PRODUCT\10.2.0\ORADATA\CHIC\USERS01.DBF
EXAMPLE 5 D:\ORACLE\PRODUCT\10.2.0\ORADATA\CHIC\EXAMPLE01.DBF
------------------------------ ---------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
SYSTEM 1 D:\ORACLE\PRODUCT\10.2.0\ORADATA\CHIC\SYSTEM01.DBF
UNDOTBS1 2 D:\ORACLE\PRODUCT\10.2.0\ORADATA\CHIC\UNDOTBS01.DBF
SYSAUX 3 D:\ORACLE\PRODUCT\10.2.0\ORADATA\CHIC\SYSAUX01.DBF
USERS 4 D:\ORACLE\PRODUCT\10.2.0\ORADATA\CHIC\USERS01.DBF
EXAMPLE 5 D:\ORACLE\PRODUCT\10.2.0\ORADATA\CHIC\EXAMPLE01.DBF
已选择5行。
SQL> exit
从 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options 断开
从 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options 断开
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■ 启动rman
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
C:\>rman target /
恢复管理器: Release 10.2.0.1.0 - Production on 星期五 9月 23 18:58:41 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到目标数据库: CHIC (DBID=2441241770)
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■ 执行下面的rman脚本
■ ①强制重启数据库到mount状态
■ ②重置1号数据文件到新的位置
■ ③restore 恢复1号数据文件
■ ④告诉数据库切换使用新的数据文件
■ ⑤recover 对1号数据文件进行介质恢复
■ ⑥打开数据库到open状态
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
RMAN> run {
2> startup force mount;
3> set newname for datafile 1 to 'c:\demo\system01.dbf';
4> restore datafile 1;
5> switch datafile 1;
6> recover datafile 1;
7> sql 'alter database open';
8> }
■ 执行下面的rman脚本
■ ①强制重启数据库到mount状态
■ ②重置1号数据文件到新的位置
■ ③restore 恢复1号数据文件
■ ④告诉数据库切换使用新的数据文件
■ ⑤recover 对1号数据文件进行介质恢复
■ ⑥打开数据库到open状态
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
RMAN> run {
2> startup force mount;
3> set newname for datafile 1 to 'c:\demo\system01.dbf';
4> restore datafile 1;
5> switch datafile 1;
6> recover datafile 1;
7> sql 'alter database open';
8> }
Oracle 实例已启动
数据库已装载
数据库已装载
系统全局区域总计 612368384 字节
Fixed Size 1250428 字节
Variable Size 197135236 字节
Database Buffers 406847488 字节
Redo Buffers 7135232 字节
Variable Size 197135236 字节
Database Buffers 406847488 字节
Redo Buffers 7135232 字节
正在执行命令: SET NEWNAME
使用目标数据库控制文件替代恢复目录
使用目标数据库控制文件替代恢复目录
启动 restore 于 23-9月 -11
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=156 devtype=DISK
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=156 devtype=DISK
通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00001恢复到C:\DEMO\SYSTEM01.DBF
通道 ORA_DISK_1: 正在读取备份段 D:\ORACLE\RMANBAK\CHIC_1_20110923_ALL.DBF
通道 ORA_DISK_1: 已恢复备份段 1
段句柄 = D:\ORACLE\RMANBAK\CHIC_1_20110923_ALL.DBF 标记 = TAG20110923T071852
通道 ORA_DISK_1: 恢复完成, 用时: 00:00:47
完成 restore 于 23-9月 -11
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00001恢复到C:\DEMO\SYSTEM01.DBF
通道 ORA_DISK_1: 正在读取备份段 D:\ORACLE\RMANBAK\CHIC_1_20110923_ALL.DBF
通道 ORA_DISK_1: 已恢复备份段 1
段句柄 = D:\ORACLE\RMANBAK\CHIC_1_20110923_ALL.DBF 标记 = TAG20110923T071852
通道 ORA_DISK_1: 恢复完成, 用时: 00:00:47
完成 restore 于 23-9月 -11
数据文件 1 已转换成数据文件副本
输入数据文件副本 recid=5 stamp=762635001 文件名=C:\DEMO\SYSTEM01.DBF
输入数据文件副本 recid=5 stamp=762635001 文件名=C:\DEMO\SYSTEM01.DBF
启动 recover 于 23-9月 -11
使用通道 ORA_DISK_1
使用通道 ORA_DISK_1
正在开始介质的恢复
介质恢复完成, 用时: 00:00:03
介质恢复完成, 用时: 00:00:03
完成 recover 于 23-9月 -11
sql 语句: alter database open
RMAN>
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■ 我们再次连接sqlplus,查看一下表空间及对应数据文件情况
■ 我们看到 SYSTEM 表空间的数据文件已经修改为 C:\DEMO\SYSTEM01.DBF
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
RMAN> host;
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.
(C) 版权所有 1985-2001 Microsoft Corp.
C:\>sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on 星期五 9月 23 20:47:24 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> set linesize 8000
SQL> set pagesize 8000
SQL> set feedback on
SQL> select t2.NAME,t1.FILE#,t1.NAME from v$datafile t1,v$tablespace t2 where t1.TS#=t2.TS#;
SQL> set pagesize 8000
SQL> set feedback on
SQL> select t2.NAME,t1.FILE#,t1.NAME from v$datafile t1,v$tablespace t2 where t1.TS#=t2.TS#;
NAME FILE# NAME
------------------------------ ---------- ---------------------------------------------------------------------
SYSTEM 1 C:\DEMO\SYSTEM01.DBF
UNDOTBS1 2 D:\ORACLE\PRODUCT\10.2.0\ORADATA\CHIC\UNDOTBS01.DBF
SYSAUX 3 D:\ORACLE\PRODUCT\10.2.0\ORADATA\CHIC\SYSAUX01.DBF
USERS 4 D:\ORACLE\PRODUCT\10.2.0\ORADATA\CHIC\USERS01.DBF
EXAMPLE 5 D:\ORACLE\PRODUCT\10.2.0\ORADATA\CHIC\EXAMPLE01.DBF
------------------------------ ---------- ---------------------------------------------------------------------
SYSTEM 1 C:\DEMO\SYSTEM01.DBF
UNDOTBS1 2 D:\ORACLE\PRODUCT\10.2.0\ORADATA\CHIC\UNDOTBS01.DBF
SYSAUX 3 D:\ORACLE\PRODUCT\10.2.0\ORADATA\CHIC\SYSAUX01.DBF
USERS 4 D:\ORACLE\PRODUCT\10.2.0\ORADATA\CHIC\USERS01.DBF
EXAMPLE 5 D:\ORACLE\PRODUCT\10.2.0\ORADATA\CHIC\EXAMPLE01.DBF
已选择5行。
SQL>
以上。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/20335819/viewspace-708313/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/20335819/viewspace-708313/