返回顶部
首页 > 资讯 > 精选 >怎么理解Oracle表空间Offline的三种参数
  • 477
分享到

怎么理解Oracle表空间Offline的三种参数

2023-06-06 03:06:20 477人浏览 独家记忆
摘要

本篇文章为大家展示了怎么理解oracle表空间Offline的三种参数,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Oracle数据库管理基础中,表空间操作是基础中的基础。其中,表空间Offline

本篇文章为大家展示了怎么理解oracle表空间Offline的三种参数,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

Oracle数据库管理基础中,表空间操作是基础中的基础。其中,表空间Offline是我们经常接触的一个知识点。同数据文件Offline一起,构成了Oracle维护数据一致性的重要体系结构。

一般我们比较常接触到的,就是直接的alter tablespace xxx offline操作。但是在实际中,针对表空间对应数据文件的不同情况,我们是有三种参数操作相对应的。同数据库关闭shutdown对应的若干种参数一样,不同的offline参数对应Oracle不同的行为,更引出后续不同的处理方法。

 从原理入手,分别详细介绍表空间Offline、数据文件Offline、日志归档模式和备份还原之间的关系。

1、Offline简说

 

Oracle Offline表空间是一种对表空间对象和数据的“关闭访问”。在正常Online情况下,一个表空间中若干个数据文件是维持在动态的一致状态中,文件头上的SCN根据DBWR和CKPT维持一致或者不一致的状态。

 

我们将表空间Offline的目的无非有如下三类:

 

ü  实现部分数据的不可访问。如果使用表空间进行多个系统数据模块的划分,可以使用offline方法,将一部分的数据不可访问;

ü  当进行前端应用程序进行升级维护的时候,可以使用offline方法对部分数据访问进行屏蔽;

ü  对数据文件进行改名和重定位(转移到其他位置上);

 

在进行数据库管理的时候,留足备份、慎删数据是非常重要的原则。没有绝对把握的时候,绝对不要动手删除数据。这里谈到的offline tablespace和lock user都是非常好的屏蔽数据访问的手段。

 

一个表空间可以有一个或者多个数据文件。如果一个表空间被offline,那么对应的数据文件也就被offline。

 

并不是所有表空间都可以被offline。System、Undo和Temporary表空间是不允许进行Offline操作的。一般只有非系统表空间,也就是业务数据表空间才会进行Offline操作。

 

另一个重要点是如果要进行offline操作的表空间是一个用户的Default表空间,那么最好要将其默认表空间修改一下,防止操作错误出现。

 

将表空间进行Offline的命令很简单,就是alter tablespace xxx offline;根据不同的情况,我们是可以使用三种参数进行命令修饰,分别为nORMal、temporary和immediate。三个命令分别对应了Offline过程的不同行为。在下面的步骤中,我们通过实验来查看三种命令参数的行为特征。

 

2、实验环境介绍

 

实验选择在Oracle 11gR2上进行,数据库处在归档模式arcHive log mode。注意:是否归档模式对于数据表空间和文件Offline行为至关重要!

 

 

sql> select * from v$version;

 

BANNER

------------------------------------------------------

Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - Production

PL/SQL Release 11.2.0.3.0 - Production

CORE    11.2.0.3.0      Production

TNS for linux: Version 11.2.0.3.0 - Production

NLSRTL Version 11.2.0.3.0 - Production

 

 

归档模式数据库。

 

 

SQL> archive log list;

Database log mode              Archive Mode

Automatic archival             Enabled

Archive destination            USE_DB_RECOVERY_FILE_DEST

Oldest online log sequence     21

Next log sequence to archive   23

Current log sequence           23

 

--数据库在open状态

SQL> select status from v$instance;

 

STATUS

------------

OPEN

 

--Oracle支持命名管理OMF

SQL> show parameter db_create_file;

 

NAME                                 TYPE        VALUE

------------------------- ----------- ------------------------------

db_create_file_dest                  string      /u01/app/oradata

 

 

创建实验表空间testtbs。为了更加明显进行试验,我们设计它是由两个数据文件构成。

 

 

SQL> create tablespace testtbs datafile size 10m extent management local uniform. size 1m segment space management auto;

Tablespace created

 

SQL> alter tablespace testtbs add datafile size 10m autoextend off;

Tablespace altered

 

SQL> select tablespace_name, status from dba_tablespaces where tablespace_name='TESTTBS';

TABLESPACE_NAME                STATUS

------------------------------ ---------

TESTTBS                        ONLINE

 

SQL> select file_name, status, online_status from dba_data_files where tablespace_name='TESTTBS';

FILE_NAME            STATUS    ONLINE_STATUS

-------------------- --------- -------------

/u01/app/oradata/ORA AVaiLABLE ONLINE

11G/datafile/o1_mf_t          

esttbs_94hpygrx_.dbf          

 

/u01/app/oradata/ORA AVAILABLE ONLINE

11G/datafile/o1_mf_t          

esttbs_94hq0dgm_.dbf          

 

 

注意三个Online状态,我们的实验就在这个过程中展开。最后再添加一个数据表,用于空间分配过程。

 

 

SQL> create table test tablespace testtbs as select * from dba_objects;

Table created

 

SQL> select tablespace_name from dba_segments where wner='SYS' and segment_name='TEST';

TABLESPACE_NAME

------------------------------

TESTTBS

 

SQL> select count(*) from test;

 

  COUNT(*)

----------

     75223

 

 

3、归档模式下数据文件offline normal

 

offline normal是我们最常用的表空间offline方法,也是默认的offline方法。如果数据表空间和数据文件状态都是online,我们是可以直接offline normal的。

 

--Offline数据表空间

SQL> alter tablespace testtbs offline normal;

Tablespace altered

 

--alert log中内容

Sun Sep 29 15:35:18 2013

alter tablespace testtbs offline normal

Completed: alter tablespace testtbs offline normal

 

 

此时,数据表空间和数据文件状态如下:

 

 

SQL> select tablespace_name, status from dba_tablespaces where tablespace_name='TESTTBS';

 

TABLESPACE_NAME                STATUS

------------------------------ ---------

TESTTBS                        OFFLINE

 

SQL> select file_name, status, online_status from dba_data_files where tablespace_name='TESTTBS';

 

FILE_NAME            STATUS    ONLINE_STATUS

-------------------- --------- -------------

/u01/app/oradata/ORA AVAILABLE OFFLINE

11G/datafile/o1_mf_t          

esttbs_94hpygrx_.dbf          

 

/u01/app/oradata/ORA AVAILABLE OFFLINE

11G/datafile/o1_mf_t          

esttbs_94hq0dgm_.dbf          

 

 

数据文件一个很重要的内容就是文件头的SCN编号。我们知道,如果完全关闭数据库或者check point的时候,Oracle是要保证控制文件和文件头的SCN一致。

 

 

SQL> select file#, status, recover, fuzzy, CHECKPOINT_CHANGE# from v$datafile_header;

 

     FILE# STATUS  RECOVER FUZZY CHECKPOINT_CHANGE#

---------- ------- ------- ----- ------------------

         1 ONLINE  NO      YES              1054312

         2 ONLINE  NO      YES              1054312

         3 ONLINE  NO      YES              1054312

         4 ONLINE  NO      YES              1054312

         5 ONLINE  NO      YES              1054312

         6 OFFLINE                                0

         7 OFFLINE                                0

 

 

7 rows selected

 

SQL> select file#, CHECKPOINT_CHANGE#, OFFLINE_CHANGE# from v$datafile;

 

     FILE# CHECKPOINT_CHANGE# OFFLINE_CHANGE#

---------- ------------------ ---------------

         1            1054312          787896

         2            1054312          787896

         3            1054312          787896

         4            1054312          787896

         5            1054312          819012

         6            1059175         1058506

         7            1059175         1058506

 

7 rows selected

 

 

在offline normal的时候,数据文件头的SCN是一致的。

 

alter log中信息里面,Data Recovery Advisor显示出信息。

 

 

--有报错内容

Sun Sep 29 15:53:04 2013

Checker run found 2 new persistent data failures

 

RMAN> list failure all;

 

List of Database Failures

=========================

 

Failure ID Priority Status    Time Detected Summary

---------- -------- --------- ------------- -------

122        HIGH     OPEN      29-SEP-13     One or more non-system datafiles are offline

128        HIGH     OPEN      29-SEP-13     Tablespace 7: 'TESTTBS' is offline

 

 

如果是正常的offline normal,是可以直接online回正常的。

 

 

SQL> alter tablespace testtbs online;

Tablespace altered

 

 

在数据库正常情况下,出于性能考虑数据文件头SCN号是不能维持一致的。我们使用offline normal之后,各个文件头SCN相同。所以,offline normal特性是在offline的时候,要在表空间所有文件上打check point,只要能够打上SCN号,offline normal是可以正常完成的。也就是说,offline normal是表空间各个文件一致性的关闭。

 

Datafile在很多时候,是不能保证一致性的。这个时候就需要使用Temporary和Immediate两个参数了。

 

上述内容就是怎么理解Oracle表空间Offline的三种参数,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网精选频道。

--结束END--

本文标题: 怎么理解Oracle表空间Offline的三种参数

本文链接: https://lsjlt.com/news/245981.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么理解Oracle表空间Offline的三种参数
    本篇文章为大家展示了怎么理解Oracle表空间Offline的三种参数,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Oracle数据库管理基础中,表空间操作是基础中的基础。其中,表空间Offline...
    99+
    2023-06-06
  • 如何理解Oracle表空间Offline的三种参数
    如何理解Oracle表空间Offline的三种参数,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。归档模式下Temporary Offline操作 Of...
    99+
    2023-06-06
  • 聊聊Oracle表空间Offline的三种参数(下)
     6、非归档情况Offline处理 上面的一系列讨论,都是在归档文件模式下进行的实验。如果在非归档情况下,我们面对的问题是不同的。 首先,非归档模式下,表空间可以进行normal offline操作。 ...
    99+
    2023-06-06
  • Oracle中表空间offline的三种参数对比案例
    Oracle数据库管理中,对表空间操作是基础中的基础。其中,表空间Offline是我们经常接触的。同数据文件Offline一起,构成了Oracle维护数据一致性的重要体系结构。 &n...
    99+
    2024-04-02
  • 怎么理解Oracle表空间
    这篇文章主要讲解了“怎么理解Oracle表空间”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么理解Oracle表空间”吧!1. 查询当前所有表空...
    99+
    2024-04-02
  • 怎么理解ORACLE MOVE 表空间
    怎么理解ORACLE MOVE 表空间,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。move一个表到另外一个表空间时,索引...
    99+
    2024-04-02
  • 表空间OFFLINE的3种脱机方式分别是什么
    这期内容当中小编将会给大家带来有关表空间OFFLINE的3种选项分别是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。 表空间OFFLIN...
    99+
    2024-04-02
  • oracle怎么清理表空间
    oracle表空间清理步骤:1. 识别未使用的表空间;2. 删除未使用的段;3. 重建索引;4. 收缩表空间;5. 合并表空间(如有需要);6. 移动数据文件(如有需要)。 Oracl...
    99+
    2024-05-30
    oracle
  • 怎么理解Oracle临时表空间组
    本篇内容介绍了“怎么理解Oracle临时表空间组”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在oracl...
    99+
    2024-04-02
  • Oracle中怎么清理SYSAUX表空间
    这篇文章将为大家详细讲解有关Oracle中怎么清理SYSAUX表空间,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Oracle 清理SYSAUX表空间SYS...
    99+
    2024-04-02
  • oracle索引表空间怎么清理
    要清理Oracle索引表空间,可以按照以下步骤进行操作:1. 查询索引表空间的使用情况:使用以下SQL语句查询索引表空间的使用情况:...
    99+
    2023-08-29
    oracle
  • oracle表空间满了怎么处理
    当Oracle表空间满了时,可以采取以下几种处理方式: 增加表空间大小:可以通过增加表空间的大小来解决表空间满的问题。可以使用A...
    99+
    2024-04-09
    oracle
  • Oracle表空间不足的两种解决办法
    首先查询表空间的大小以及文件路径地址 select tablespace_name, file_id, file_name,round(bytes/(1024*1024),0) total_s...
    99+
    2024-04-02
  • 表空间与数据文件的offline和online操作是怎样的
    这期内容当中小编将会给大家带来有关表空间与数据文件的offline和online操作是怎样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。 1...
    99+
    2024-04-02
  • oracle怎么清除表空间数据
    要清除Oracle表空间数据,可以使用以下方法: 使用TRUNCATE TABLE命令清空表中的数据: TRUNCATE TAB...
    99+
    2024-05-11
    oracle
  • oracle sysaux表空间满了怎么处理
    这篇文章主要介绍“oracle sysaux表空间满了怎么处理”,在日常操作中,相信很多人在oracle sysaux表空间满了怎么处理问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大...
    99+
    2024-04-02
  • oracle表空间查询慢怎么处理
    如果Oracle表空间查询变慢,可以尝试以下几种方法进行处理: 优化查询语句:检查查询语句是否能够被优化,可以通过添加索引、重新...
    99+
    2024-04-09
    oracle
  • Oracle中怎么将字典管理的表空间转换为本地管理表空间
    这篇文章主要介绍“Oracle中怎么将字典管理的表空间转换为本地管理表空间”,在日常操作中,相信很多人在Oracle中怎么将字典管理的表空间转换为本地管理表空间问题上存在疑惑,小编查阅了各式资料,整理出简单...
    99+
    2024-04-02
  • oracle表空间删不掉怎么解决
    如果您无法删除Oracle表空间,可能是因为表空间中尚有对象存在或者其他原因导致无法删除。您可以尝试以下方法解决问题: 确保表空间...
    99+
    2024-04-09
    oracle
  • oracle数据库表空间扩容的问题怎么解决
    本文小编为大家详细介绍“oracle数据库表空间扩容的问题怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“oracle数据库表空间扩容的问题怎么解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1.查看表...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作