数据文件OFFLINE之后必须要做的一件事就是立刻执行一次RECOVER操作,这样在无论过了多久之后,在ONLINE该数据文件的时候就不需要执行RECOVER操作了。
下面通过两个实验来对比验证该结论。
实验环境如下表所示:
项目 | source db |
---|---|
db 类型 | 单实例 |
db version | 11.2.0.3.4 |
db 存储 | ASM |
OS版本及kernel版本 | AIX 64位 7.1.0.0 |
实验一:数据文件OFFLINE后没有立刻执行RECOVER操作
1SYS@lhrdb> COL NAME FOR A60
2SYS@lhrdb> SELECT FILE#,NAME,STATUS FROM V$DATAFILE;
3 FILE# NAME STATUS
4---------- ------------------------------------------------------------ -------
5 1 +DATA/lhrdb/datafile/system.347.916601927 SYSTEM
6 2 +DATA/lhrdb/datafile/sysaux.340.916601927 ONLINE
7 3 +DATA/lhrdb/datafile/undotbs1.353.916601927 ONLINE
8 4 +DATA/lhrdb/datafile/users.445.916601927 ONLINE
9 5 +DATA/lhrdb/datafile/example.416.916602001 ONLINE
10 6 +DATA/lhrdb/datafile/ts_mig_chain_lhr.471.919677645 ONLINE
116 rows selected.
12SYS@lhrdb> ALTER DATABASE DATAFILE 6 OFFLINE;
13ALTER DATABASE DATAFILE 6 OFFLINE
14*
15ERROR at line 1:
16ORA-01145: offline immediate disallowed unless media recovery enabled
17====>>>>> 数据库必须归档才可以OFFLINE
18SYS@lhrdb> ARCHIVE LOG LIST;
19Database log mode No Archive Mode
20Automatic archival Disabled
21Archive destination USE_DB_RECOVERY_FILE_DEST
22Oldest online log sequence 265
23Current log sequence 267
24SYS@lhrdb> SHUTDOWN IMMEDIATE
25Database closed.
26Database dismounted.
27ORACLE instance shut down.
28SYS@lhrdb> STARTUP MOUNT
29ORACLE instance started.
30Total System Global Area 1720328192 bytes
31Fixed Size 2247072 bytes
32Variable Size 486540896 bytes
33Database Buffers 1224736768 bytes
34Redo Buffers 6803456 bytes
35Database mounted.
36SYS@lhrdb> ALTER DATABASE ARCHIVELOG;
37Database altered.
38SYS@lhrdb> ALTER DATABASE OPEN;
39Database altered.
40SYS@lhrdb> ALTER DATABASE DATAFILE 6 OFFLINE;
41Database altered.
42SYS@lhrdb> SELECT FILE#,NAME,STATUS FROM V$DATAFILE;
43 FILE# NAME STATUS
44---------- ------------------------------------------------------------ -------
45 1 +DATA/lhrdb/datafile/system.347.916601927 SYSTEM
46 2 +DATA/lhrdb/datafile/sysaux.340.916601927 ONLINE
47 3 +DATA/lhrdb/datafile/undotbs1.353.916601927 ONLINE
48 4 +DATA/lhrdb/datafile/users.445.916601927 ONLINE
49 5 +DATA/lhrdb/datafile/example.416.916602001 ONLINE
50 6 +DATA/lhrdb/datafile/ts_mig_chain_lhr.471.919677645 RECOVER
516 rows selected.
52SYS@lhrdb> SELECT FILE#,ONLINE_STATUS,CHANGE#,ERROR FROM V$RECOVER_FILE;
53 FILE# ONLINE_ CHANGE# ERROR
54---------- ------- ---------- -----------------------------------------------------------------
55 6 OFFLINE 7485831
56SYS@lhrdb> ALTER SYSTEM SWITCH LOGFILE;
57System altered.
58SYS@lhrdb> ALTER SYSTEM SWITCH LOGFILE;
59System altered.
60SYS@lhrdb> ALTER DATABASE DATAFILE 6 ONLINE;
61alter database datafile 6 online
62*
63ERROR at line 1:
64ORA-01113: file 6 needs media recovery
65ORA-01110: data file 6: '+DATA/lhrdb/datafile/ts_mig_chain_lhr.471.919677645'
66SYS@lhrdb> RECOVER DATAFILE 6;
67Media recovery complete.
68SYS@lhrdb> ALTER DATABASE DATAFILE 6 ONLINE;<<<<<<<<<----- 可以看到6号文件必须先执行recover操作后才能执行ONLINE
69Database altered.复制
实验二:数据文件OFFLINE后立刻执行一次RECOVER操作
1SYS@lhrdb> ALTER DATABASE DATAFILE 6 OFFLINE;
2Database altered.
3SYS@lhrdb> recover datafile 6;<<<<<<<<<----- OFFLINE后接着执行recover操作
4Media recovery complete.
5SYS@lhrdb> SELECT FILE#,ONLINE_STATUS,CHANGE#,ERROR FROM V$RECOVER_FILE;<<<<<<<<<--该视图查不到数据
6no rows selected
7SYS@lhrdb> SELECT FILE#,NAME,STATUS FROM V$DATAFILE;
8 FILE# NAME STATUS
9---------- ------------------------------------------------------------ -------
10 1 +DATA/lhrdb/datafile/system.347.916601927 SYSTEM
11 2 +DATA/lhrdb/datafile/sysaux.340.916601927 ONLINE
12 3 +DATA/lhrdb/datafile/undotbs1.353.916601927 ONLINE
13 4 +DATA/lhrdb/datafile/users.445.916601927 ONLINE
14 5 +DATA/lhrdb/datafile/example.416.916602001 ONLINE
15 6 +DATA/lhrdb/datafile/ts_mig_chain_lhr.471.919677645 OFFLINE
166 rows selected.
17SYS@lhrdb> ALTER SYSTEM SWITCH LOGFILE;
18System altered.
19SYS@lhrdb> ALTER SYSTEM SWITCH LOGFILE;
20System altered.
21SYS@lhrdb> ALTER SYSTEM SWITCH LOGFILE;
22System altered.
23SYS@lhrdb> alter database datafile 6 online;<<<<<<<<<-----切换日志后让数据文件做ONLINE操作并不需要执行RECOVER操作
24Database altered.
25SYS@lhrdb> select file#,name,status from v$datafile;
26 FILE# NAME STATUS
27---------- ------------------------------------------------------------ -------
28 1 +DATA/lhrdb/datafile/system.347.916601927 SYSTEM
29 2 +DATA/lhrdb/datafile/sysaux.340.916601927 ONLINE
30 3 +DATA/lhrdb/datafile/undotbs1.353.916601927 ONLINE
31 4 +DATA/lhrdb/datafile/users.445.916601927 ONLINE
32 5 +DATA/lhrdb/datafile/example.416.916602001 ONLINE
33 6 +DATA/lhrdb/datafile/ts_mig_chain_lhr.471.919677645 ONLINE
346 rows selected.
35SYS@lhrdb>复制
实验结束,根据实验过程可以知道,如果执行了数据文件的OFFLINE操作,那么需要接着执行一次RECOVER操作。这样做的好处是,在以后的数据库维护中,随时想将数据文件ONLINE都可以,而不用担心归档文件是否存在的情况了。
文章转载自DB宝,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【纯干货】Oracle 19C RU 19.27 发布,如何快速升级和安装?
Lucifer三思而后行
709次阅读
2025-04-18 14:18:38
Oracle RAC 一键安装翻车?手把手教你如何排错!
Lucifer三思而后行
637次阅读
2025-04-15 17:24:06
Oracle数据库一键巡检并生成HTML结果,免费脚本速来下载!
陈举超
549次阅读
2025-04-20 10:07:02
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
496次阅读
2025-04-17 17:02:24
【ORACLE】你以为的真的是你以为的么?--ORA-38104: Columns referenced in the ON Clause cannot be updated
DarkAthena
493次阅读
2025-04-22 00:13:51
【ORACLE】记录一些ORACLE的merge into语句的BUG
DarkAthena
491次阅读
2025-04-22 00:20:37
一页概览:Oracle GoldenGate
甲骨文云技术
471次阅读
2025-04-30 12:17:56
火焰图--分析复杂SQL执行计划的利器
听见风的声音
419次阅读
2025-04-17 09:30:30
3月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
373次阅读
2025-04-15 14:48:05
OR+DBLINK的关联SQL优化思路
布衣
360次阅读
2025-05-05 19:28:36