前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在Oracle中,数据文件OFFLINE之后必须要做的一件事是什么?

在Oracle中,数据文件OFFLINE之后必须要做的一件事是什么?

作者头像
小麦苗DBA宝典
发布2023-04-26 12:04:06
3980
发布2023-04-26 12:04:06
举报

数据文件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操作

代码语言:javascript
复制
SYS@lhrdb> COL NAME FOR A60
SYS@lhrdb> SELECT FILE#,NAME,STATUS  FROM V$DATAFILE;
     FILE# NAME                                                         STATUS
---------- ------------------------------------------------------------ -------
         1 +DATA/lhrdb/datafile/system.347.916601927                    SYSTEM
         2 +DATA/lhrdb/datafile/sysaux.340.916601927                    ONLINE
         3 +DATA/lhrdb/datafile/undotbs1.353.916601927                  ONLINE
         4 +DATA/lhrdb/datafile/users.445.916601927                     ONLINE
         5 +DATA/lhrdb/datafile/example.416.916602001                   ONLINE
         6 +DATA/lhrdb/datafile/ts_mig_chain_lhr.471.919677645          ONLINE
6 rows selected.
SYS@lhrdb> ALTER DATABASE DATAFILE 6 OFFLINE;
ALTER DATABASE DATAFILE 6 OFFLINE
*
ERROR at line 1:
ORA-01145: offline immediate disallowed unless media recovery enabled
====>>>>> 数据库必须归档才可以OFFLINE
SYS@lhrdb> ARCHIVE LOG LIST;
Database log mode              No Archive Mode
Automatic archival             Disabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     265
Current log sequence           267
SYS@lhrdb> SHUTDOWN IMMEDIATE
Database closed.
Database dismounted.
ORACLE instance shut down.
SYS@lhrdb> STARTUP MOUNT
ORACLE instance started.
Total System Global Area 1720328192 bytes
Fixed Size                  2247072 bytes
Variable Size             486540896 bytes
Database Buffers         1224736768 bytes
Redo Buffers                6803456 bytes
Database mounted.
SYS@lhrdb> ALTER DATABASE ARCHIVELOG;
Database altered.
SYS@lhrdb> ALTER DATABASE OPEN;
Database altered.
SYS@lhrdb> ALTER DATABASE DATAFILE 6 OFFLINE;
Database altered.
SYS@lhrdb> SELECT FILE#,NAME,STATUS  FROM V$DATAFILE;
     FILE# NAME                                                         STATUS
---------- ------------------------------------------------------------ -------
         1 +DATA/lhrdb/datafile/system.347.916601927                    SYSTEM
         2 +DATA/lhrdb/datafile/sysaux.340.916601927                    ONLINE
         3 +DATA/lhrdb/datafile/undotbs1.353.916601927                  ONLINE
         4 +DATA/lhrdb/datafile/users.445.916601927                     ONLINE
         5 +DATA/lhrdb/datafile/example.416.916602001                   ONLINE
         6 +DATA/lhrdb/datafile/ts_mig_chain_lhr.471.919677645          RECOVER
6 rows selected.
SYS@lhrdb> SELECT FILE#,ONLINE_STATUS,CHANGE#,ERROR FROM V$RECOVER_FILE;
     FILE# ONLINE_    CHANGE# ERROR
---------- ------- ---------- -----------------------------------------------------------------
         6 OFFLINE    7485831
SYS@lhrdb> ALTER SYSTEM SWITCH LOGFILE;
System altered.
SYS@lhrdb> ALTER SYSTEM SWITCH LOGFILE;
System altered.
SYS@lhrdb> ALTER DATABASE DATAFILE 6 ONLINE;
alter database datafile 6 online
*
ERROR at line 1:
ORA-01113: file 6 needs media recovery
ORA-01110: data file 6: '+DATA/lhrdb/datafile/ts_mig_chain_lhr.471.919677645'
SYS@lhrdb> RECOVER DATAFILE 6;
Media recovery complete.
SYS@lhrdb> ALTER DATABASE DATAFILE 6 ONLINE;<<<<<<<<<----- 可以看到6号文件必须先执行recover操作后才能执行ONLINE
Database altered.

实验二:数据文件OFFLINE后立刻执行一次RECOVER操作

代码语言:javascript
复制
SYS@lhrdb> ALTER DATABASE DATAFILE 6 OFFLINE;
Database altered.
SYS@lhrdb> recover datafile 6;<<<<<<<<<----- OFFLINE后接着执行recover操作
Media recovery complete.
SYS@lhrdb> SELECT FILE#,ONLINE_STATUS,CHANGE#,ERROR FROM V$RECOVER_FILE;<<<<<<<<<--该视图查不到数据
no rows selected
SYS@lhrdb> SELECT FILE#,NAME,STATUS  FROM V$DATAFILE;
     FILE# NAME                                                         STATUS
---------- ------------------------------------------------------------ -------
         1 +DATA/lhrdb/datafile/system.347.916601927                    SYSTEM
         2 +DATA/lhrdb/datafile/sysaux.340.916601927                    ONLINE
         3 +DATA/lhrdb/datafile/undotbs1.353.916601927                  ONLINE
         4 +DATA/lhrdb/datafile/users.445.916601927                     ONLINE
         5 +DATA/lhrdb/datafile/example.416.916602001                   ONLINE
         6 +DATA/lhrdb/datafile/ts_mig_chain_lhr.471.919677645          OFFLINE
6 rows selected.
SYS@lhrdb> ALTER SYSTEM SWITCH LOGFILE;
System altered.
SYS@lhrdb> ALTER SYSTEM SWITCH LOGFILE;
System altered.
SYS@lhrdb> ALTER SYSTEM SWITCH LOGFILE;
System altered.
SYS@lhrdb> alter database datafile 6 online;<<<<<<<<<-----切换日志后让数据文件做ONLINE操作并不需要执行RECOVER操作
Database altered.
SYS@lhrdb> select file#,name,status  from v$datafile;
     FILE# NAME                                                         STATUS
---------- ------------------------------------------------------------ -------
         1 +DATA/lhrdb/datafile/system.347.916601927                    SYSTEM
         2 +DATA/lhrdb/datafile/sysaux.340.916601927                    ONLINE
         3 +DATA/lhrdb/datafile/undotbs1.353.916601927                  ONLINE
         4 +DATA/lhrdb/datafile/users.445.916601927                     ONLINE
         5 +DATA/lhrdb/datafile/example.416.916602001                   ONLINE
         6 +DATA/lhrdb/datafile/ts_mig_chain_lhr.471.919677645          ONLINE
6 rows selected.
SYS@lhrdb> 

实验结束,根据实验过程可以知道,如果执行了数据文件的OFFLINE操作,那么需要接着执行一次RECOVER操作。这样做的好处是,在以后的数据库维护中,随时想将数据文件ONLINE都可以,而不用担心归档文件是否存在的情况了。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-11-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DB宝 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档