返回顶部
首页 > 资讯 > 精选 >聊聊Oracle表空间Offline的三种参数(下)
  • 116
分享到

聊聊Oracle表空间Offline的三种参数(下)

2023-06-06 03:06:18 116人浏览 安东尼
摘要

 6、非归档情况Offline处理 上面的一系列讨论,都是在归档文件模式下进行的实验。如果在非归档情况下,我们面对的问题是不同的。 首先,非归档模式下,表空间可以进行nORMal offline操作。 

 

6、非归档情况Offline处理

 

上面的一系列讨论,都是在归档文件模式下进行的实验。如果在非归档情况下,我们面对的问题是不同的。

 

首先,非归档模式下,表空间可以进行nORMal offline操作。

 

 

sql> alter database noarcHivelog;

Database altered.

 

SQL> archive log list;

Database log mode              No Archive Mode

Automatic archival             Disabled

Archive destination            USE_DB_RECOVERY_FILE_DEST

Oldest online log sequence     22

Current log sequence           24

 

创建表空间,查看文件状态的。

 

 

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 20m autoextend on;

 

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_94hsw8oo_.dbf          

 

/u01/app/oradata/ORA AVAILABLE ONLINE

11G/datafile/o1_mf_t          

esttbs_94hswx27_.dbf          

 

 

正常Offline Tablespace

 

 

SQL> alter tablespace testtbs offline normal;

 

Tablespace altered

 

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_94hsw8oo_.dbf          

 

/u01/app/oradata/ORA AVAILABLE OFFLINE

11G/datafile/o1_mf_t          

esttbs_94hswx27_.dbf          

 

 

SQL> alter tablespace testtbs online;

Tablespace altered

 

 

在非归档模式下,单独对数据文件进行offline是不允许的。

 

 

SQL> alter database datafile '/u01/app/oradata/ORA11G/datafile/o1_mf_testtbs_94hsw8oo_.dbf' offline;

 

alter database datafile '/u01/app/oradata/ORA11G/datafile/o1_mf_testtbs_94hsw8oo_.dbf' offline

 

ORA-01145: 除非启用了介质恢复, 否则不允许立即脱机

 

 

试想一下,这个过程是可以理解的。oracle认为:如果你将文件进行offline,与表空间不一致。那么,一旦文件online的时候,一定是需要进行recover来“追”上表空间中其他文件。这个过程就是需要连续的redo log来进行apply动作。

 

在非归档模式下,连续的操作redo log file是不容易拿到的。从Oracle理论上,也就认为说不可能拿到的。所以,这个时候,Oracle索性禁止这种操作行为。

 

那么,是不是非归档模式下,就不允许进行单独文件的offline了呢?不是的,只要你“允诺”说不会再回来。

 

通过后台,我们删除了数据文件。

 

--删除掉数据文件

[oracle@Simplelinux ~]$ rm /u01/app/oradata/ORA11G/datafile/o1_mf_testtbs_94hswx27_.dbf

[oracle@SimpleLinux ~]$

 

SQL> alter system checkpoint;

alter system checkpoint

 

 

此时,数据库发现故障,实例终止。注意:不同版本Oracle在这个问题上行为有一些差异。CKPT将实例终止。

 

 

Sun Sep 29 16:59:08 2013

Beginning global checkpoint up to RBA [0x18.ad3e.10], SCN: 1062240

Errors in file /u01/app/diag/rdbms/ora11g/ora11g/trace/ora11g_ckpt_27311.trc:

ORA-01242: data file suffered media failure: database in NOARCHIVELOG mode

ORA-01116: error in opening database file 7

ORA-01110: data file 7: '/u01/app/oradata/ORA11G/datafile/o1_mf_testtbs_94hswx27_.dbf'

ORA-27041: unable to open file

Linux Error: 2: No such file or directory

Additional information: 3

Errors in file /u01/app/diag/rdbms/ora11g/ora11g/trace/ora11g_ckpt_27311.trc:

ORA-01242: data file suffered media failure: database in NOARCHIVELOG mode

ORA-01116: error in opening database file 7

ORA-01110: data file 7: '/u01/app/oradata/ORA11G/datafile/o1_mf_testtbs_94hswx27_.dbf'

ORA-27041: unable to open file

Linux Error: 2: No such file or directory

Additional information: 3

Sun Sep 29 16:59:08 2013

System state dump requested by (instance=1, sid=27311 (CKPT)), summary=[abnormal instance termination].

System State dumped to trace file /u01/app/diag/rdbms/ora11g/ora11g/trace/ora11g_diag_27299.trc

CKPT (ospid: 27311): terminating the instance due to error 1242

Dumping diagnostic data in directory=[cdmp_20130929165908], requested by (instance=1, sid=27311 (CKPT)), summary=[abnormal instance termination].

Instance terminated by CKPT, pid = 27311

 

 

--数据库终止

[oracle@SimpleLinux ~]$ ps -ef | grep pmon

oracle   27487 27404  0 17:00 pts/2    00:00:00 grep pmon

[oracle@SimpleLinux ~]$

 

 

我们将数据库启动到mount状态,之后可以offline drop文件。

 

 

--启动到mount状态。

SQL> conn / as sysdba

Connected to an idle instance.

SQL> startup mount

ORACLE instance started.

 

Total System Global Area  376635392 bytes

Fixed Size                  1345072 bytes

Variable Size             306186704 bytes

Database Buffers           62914560 bytes

Redo Buffers                6189056 bytes

Database mounted.

 

 

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

 

     FILE# STATUS  RECOVER FUZZY CHECKPOINT_CHANGE#

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

         1 ONLINE  NO      YES              1062240

         2 ONLINE  NO      YES              1062240

         3 ONLINE  NO      YES              1062240

         4 ONLINE  NO      YES              1062240

         5 ONLINE  NO      YES              1062240

         6 ONLINE  NO      YES              1062240

         7 ONLINE                                 0

 

7 rows selected

 

--直接offline不允许

SQL> alter database datafile 7 offline;

alter database datafile 7 offline

 

ORA-01145: 除非启用了介质恢复, 否则不允许立即脱机

 

 

--未打开情况下,表空间状态不明确

SQL> alter tablespace testtbs offline;

 

alter tablespace testtbs offline

 

ORA-01109: 数据库未打开

 

--Offline Drop

SQL> alter database datafile 7 offline drop;

 

Database altered

 

SQL> alter database open;

 

Database altered

 

SQL> drop tablespace testtbs;

 

Tablespace dropped

 

 

顾名思义,Offline Drop就是永久性的删除这个对象,也就不需要了。更不要提到重新回归online

 

7、结论

 

最后,我们来总结一下Offline三种参数的情况。

 

offline normal:是最常用的场景,也是最不容易出问题的场景。Offline Normal的时候,Oracle会在表空间内部进行Check Point动作,保证表空间内部各个文件头上面的SCN一致,也就是数据一致。如果存在数据文件不能前推SCN,如已经Offline,的情况,offline normal失效报错。

 

offline temporary:比Normal要求略松的一种关闭模式。Temporary模式下,Oracle依然会去“尝试”统一表空间内部文件头的SCN号。如果数据文件可以统一,就进行Check Point动作,如果文件不能统一,操作也不会报错,只是将其状态标记为不一致。Temporary模式下Offline的表空间Online的时候,那些“有问题”的不一致文件,是需要进行media recovey的。没有问题,打入check point的数据文件,就不需要进行恢复动作。

 

offline immediate:最松的一种offline模式。Immediate模式下,Oracle不会进行check point动作,无论有无问题的Datafile,都会被设置为需要Recover过程。在重新online的时候,表空间就需要进行重新的全表空media recover

 

在日常选择上,我们倾向严格的原则。因为非Normal方式的offline,都需要借助外部的redo log进行media recover动作。选择的顺序是normaltemporaryimmediate

 

Oracle表空间的Offline动作,是我们非常常用的一种日常维护操作手段。

--结束END--

本文标题: 聊聊Oracle表空间Offline的三种参数(下)

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

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

猜你喜欢
  • 聊聊Oracle表空间Offline的三种参数(下)
     6、非归档情况Offline处理 上面的一系列讨论,都是在归档文件模式下进行的实验。如果在非归档情况下,我们面对的问题是不同的。 首先,非归档模式下,表空间可以进行normal offline操作。 ...
    99+
    2023-06-06
  • 如何理解Oracle表空间Offline的三种参数
    如何理解Oracle表空间Offline的三种参数,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。归档模式下Temporary Offline操作 Of...
    99+
    2023-06-06
  • 怎么理解Oracle表空间Offline的三种参数
    本篇文章为大家展示了怎么理解Oracle表空间Offline的三种参数,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Oracle数据库管理基础中,表空间操作是基础中的基础。其中,表空间Offline...
    99+
    2023-06-06
  • Oracle中表空间offline的三种参数对比案例
    Oracle数据库管理中,对表空间操作是基础中的基础。其中,表空间Offline是我们经常接触的。同数据文件Offline一起,构成了Oracle维护数据一致性的重要体系结构。 &n...
    99+
    2024-04-02
  • Python 聊聊socket中的listen()参数(数字)到底代表什么
    疑问 在调用socket的时候,我们会使用到listen()函数,里面有个参数叫backlog, 例如:socket.listen(5). 那么这个数字5到底代表什么意思呢?网上有...
    99+
    2024-04-02
  • 表空间OFFLINE的3种脱机方式分别是什么
    这期内容当中小编将会给大家带来有关表空间OFFLINE的3种选项分别是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。 表空间OFFLIN...
    99+
    2024-04-02
  • oracle怎么查询表空间下表的大小
    要查询表空间下表的大小,可以使用以下SQL语句:```sqlSELECT owner, table_name, round(...
    99+
    2023-09-29
    oracle
  • 表空间与数据文件的offline和online操作是怎样的
    这期内容当中小编将会给大家带来有关表空间与数据文件的offline和online操作是怎样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。 1...
    99+
    2024-04-02
  • Oracle表空间不足的两种解决办法
    首先查询表空间的大小以及文件路径地址 select tablespace_name, file_id, file_name,round(bytes/(1024*1024),0) total_s...
    99+
    2024-04-02
  • PHP页面之间传递参数的三种方法
    php变量传递是非常常见的,比如一个简单的登录模块,首先需要创建登录表单,然后需要将登录表单页面的用户名和密码传递到登录处理页面进行判断用户名和密码是否正确,如果正确则进行登录成功的相关操作,如果错误就提示给用户账号密码有误。 以上所说的登...
    99+
    2023-09-09
    php
  • oracle扩展数据库的表空间
    直接登录主机后;如果需要转换数据库的实例,则在Windows里输入,需要在ORACLE的根目录下输入set oracle_id=...,在AIX系统里输入export ORACLE_SID=.....认证方...
    99+
    2024-04-02
  • DB2支持的三种表空间SMS、DMS、DMS的自动存储
     DB2支持的三种表空间SMS、DMS、DMS的自动存储 DB2中,表空间是数据库与这个数据库中存储的表之间的逻辑层。表空间在数据库中创建,表在表空间中创建。容器是一个物理存储设备。它可...
    99+
    2024-04-02
  • oracle的数据表、索引从一个表空间迁移到另一个表空间
    ----查询索引 select * from user_objects t where t.object_type = "INDEX"; ----或查询索引 select * from user_indexes...
    99+
    2021-06-24
    oracle的数据表 索引从一个表空间迁移到另一个表空间
  • Oracle数据库中的表空间是什么
    表空间是Oracle数据库中存储数据的逻辑结构,用来存储表、索引以及其他数据库对象。每个表空间可以包含一个或多个数据文件,这些数据文...
    99+
    2024-04-09
    Oracle
  • 如何在 Oracle 数据库中确定表的表空间
    在Oracle数据库中确定表的表空间是数据库管理中的一个重要操作,通过这个操作可以更好地管理数据库空间并优化数据库性能。在Oracle数据库中,每个表都会被分配到一个表空间中,表空间是...
    99+
    2024-03-03
    oracle 表空间 表名 sql语句
  • Oracle数据库自带表空间的详细说明
    需求: 需要整理现场用户创建的表空间以及其存储数据,进行规范化管理。在整理用户现场建立的表空间时,需要排除掉非用户创建的表空间,所有首先需要那些表空间是用户创建的,那些是Oracle自带的。 本机测试建立一...
    99+
    2024-04-02
  • Oracle数据库的表空间基本管理方法
    这篇文章主要讲解了“Oracle数据库的表空间基本管理方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Oracle数据库的表空间基本管理方法”吧!一、概述...
    99+
    2024-04-02
  • 关于oracle数据库表空间扩容的问题
    目录1.查看表空间使用率2.扩容方法一:增大所需表空间大小方法二:增加数据文件个数方法三:设置表空间自动扩展3.遇到的错误总结1.查看表空间使用率 SELECT B.FILE_NAME 物理文件名, B....
    99+
    2023-02-15
    oracle表空间扩容 数据库表空间扩容 oracle表扩容
  • oracle数据库表空间迁移的方法是什么
    Oracle数据库表空间迁移有多种方法,以下是几种常见的方法:1. 使用Oracle Data Pump工具:Oracle Data...
    99+
    2023-09-15
    oracle数据库
  • 如何在Oracle数据库中创建新的表空间
    要在Oracle数据库中创建新的表空间,可以使用以下SQL语句: CREATE TABLESPACE tablespace_name...
    99+
    2024-04-09
    Oracle
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作