ORACLE存储结构之文件

详记ORACLE物理存储之文件

数据文件

在操作系统级别,Oracle 数据库将数据库数据存储在称为数据文件的结构中。每个 Oracle 数据库必须至少有一个数据文件。‘系统和用户数据’,默认以 ‘DBF’ 为扩展名

每个表空间由一个或多个数据文件组成(1对多)
数据库的数据集中存储在位于数据库的每个表空间中的数据文件中(数据总量)
一个段可以跨一个或多个数据文件,但不能跨多个表空间。(1对多)
随着时间的推移,表空间中对象的更新和删除可能会创建一些空白空间,这些空白空间单独不够大,无法重新用于新数据。这种类型的空白空间称为碎片可用空间。(产生碎片)

永久和临时数据文件

永久表空间包含持久性模式对象。永久表空间中的对象存储在数据文件中;
临时表空间仅在会话期间包含模式对象

临时文件类似于永久数据文件,但以下情况除外:

1.永久数据库对象(如表)从不存储在临时文件中。

2.临时文件始终设置为模式,这意味着它们永远不会为它们生成重做。媒体恢复无法识别临时文件。NOLOGGING

3.不能将临时文件设为只读。

4.不能使用该语句创建临时文件。ALTERDATABASE

5.创建临时文件或调整临时文件大小时,并不总是保证为指定的文件大小分配磁盘空间。在 Linux 和 UNIX 等文件系统上,临时文件被创建为稀疏文件。在这种情况下,不是在创建文件或调整大小时分配磁盘块,而是在首次访问磁盘块时分配磁盘块。

在线和离线数据文件

每个数据文件都处于联机(可用)或脱机(不可用)状态。
可以通过使单个数据文件或临时文件脱机或联机来更改它们的可用性。在脱机数据文件联机之前,数据库无法访问这些文件。

由于多种原因,您可能会使数据文件脱机,包括执行脱机备份阻止损坏。如果数据库无法写入数据文件,则该数据库会自动使该数据文件脱机。

offline数据文件 
非归档 offline drop/offline for drop 
归档下才能不加drop 只用offline

offline表空间 归档和非归档都一样,只加offline

误删数据文件后可以使用该方法离线数据文件使数据库正常好用

实验(非归档模式下):

------脱机联机数据文件
--模拟意外断电,或者使用了删除命令导致数据文件处于不可用异常
alter database datafile '/home/oracle/omf_data/ORCLCDB/E67BD90ED17718CBE055000000000001/datafile/o1_mf_ts_pdbc_khv9szn0_.dbf' offline drop;

--通过sqlplus管理员登录 恢复数据文件
recover datafile '/home/oracle/omf_data/ORCLCDB/E67BD90ED17718CBE055000000000001/datafile/o1_mf_ts_pdbc_khv9szn0_.dbf';

--将数据文件上线
alter database datafile '/home/oracle/omf_data/ORCLCDB/E67BD90ED17718CBE055000000000001/datafile/o1_mf_ts_pdbc_khv9szn0_.dbf' online;


------脱机联机表空间
//脱机
alter tablespace TS_PDBC offline;

//中间可以对数据库进行维护工作,执行对表空间的脱机备份等

//联机
alter tablespace TS_PDBC online;

表空间脱机后,他的数据文件也会随之脱机


-------移动数据文件,在Oracle 12C之前版本中,数据文件的在线重命名与位置的变动,都需要在数据文件处在offline状态下进行,现在可以在线操作
alter database move datafile '/home/oracle/omf_data/ORCLCDB/E67BD90ED17718CBE055000000000001/datafile/o1_mf_ts_pdbc_khv9szn0_.dbf' 
to '/home/oracle/omf_data/ORCLCDB/E67BD90ED17718CBE055000000000001/datafile/bak.dbf';

控制文件

数据库控制文件是仅与一个数据库关联的小型二进制文件。每个数据库都有一个唯一的控制文件,但允许使用多个相同的副本。

控制文件包含如下信息

数据库名称和数据库唯一标识符 (DBID)
数据库创建的时间戳
有关数据文件、联机重做日志文件和存档重做日志文件的信息
表空间信息
RMAN 备份

用途

包含有关打开数据库所需的数据文件、联机重做日志文件等的信息

包含数据库未打开时必须可访问的元数据。包含恢复数据库所需的信息,包括检查点(checkpoint),检查点进程至少每三秒钟在控制文件中记录一次有关联机重做日志中检查点位置的信息

检查点的作用:
1)保证数据库的一致性,这是指将脏数据写出到硬盘,保证内存和硬盘上的数据是一样的。
2)缩短实例恢复的时间,实例恢复要把实例异常关闭前没有写到硬盘的脏数据通过日志进行恢复。如果脏块过多,实例恢复的时间也会过长,检查点的发生可以减少脏块的数量,从而减少实例恢复的时间。


--查看控制文件
select * from v$controlfile;
--列出所有参数的位置和状态信息
select * from v$parameter;
--列出控制文件中记录的部分信息
select * from v$controlfile_record_section;

--列出控制文件的名字、状态、位置等
SHOW PARAMETER CONTROL_FILES;

联机重做日志

恢复最关键的结构是联机重做日志,它由两个或多个预分配的文件组成,记录对数据库所做的修改,比如插入,删除,更新数据等,对这些操作都会记录在联机重做日志里。在实例发生故障后,联机重做日志文件使 Oracle 数据库能够恢复尚未写入数据文件的已提交数据。(写入数据文件的数据,在日志文件里面会清除吗?)

服务器进程将每个事务同步写入重做日志缓冲区,然后 LGWR(Log Writer) 进程将其写入联机重做日志。联机重做日志的内容包括未提交的事务以及架构和对象管理语句。LGWR写日志是顺序写,这就解释了一个Orace Server只能有一个LGWR进程,不能像DBWR那样可以有多个,否则就无法保证顺序写的机制,而且可能会产生锁的问题。

个人理解
LGWR负责将日志缓冲内容写到磁盘的在线重做日志文件或组中,DBWn(数据库写进程)将dirty块写到磁盘之前(已提交但是未写入数据文件,这就是redo保存的内容,就能解释前面的问题了),所有与buffer修改相关的redo log都需要由LGWR写入磁盘的在线重做日志文件(组),如果未写完,那么DBWn会等待LGWR

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle存储文件包括数据文件和日志文件。数据文件是用来存储、索引和其他数据库对象的文件,而日志文件则用于记录数据库的变更操作。在Oracle中,数据文件和日志文件都是以块为单位进行管理的。 数据文件Oracle数据库中存储数据的主要文件类型。它们包含了、索引和其他数据库对象的实际数据。数据文件按照空间进行组织,每个空间可以包含一个或多个数据文件。数据文件的大小可以根据需求进行设置,一般以操作系统数据块容量的整数倍为准。默认情况下,Oracle的数据文件大小为8KB。 日志文件用于记录数据库的变更操作,包括事务的提交和回滚等。日志文件分为在线日志文件和归档日志文件两种类型。在线日志文件记录当前正在进行的事务操作,而归档日志文件则用于记录已经完成的事务操作。日志文件的命名和位置可以通过数据库的参数进行配置。 在移动Oracle存储文件时,可以使用命令行工具进行操作。首先,需要关闭数据库并进入到要移动文件的路径。然后,使用mv命令将文件移动到目标路径。移动完成后,可以重新启动数据库并进行相应的重命名操作。最后,可以通过查询v$logfile视图来确认移动是否成功。 请注意,移动Oracle存储文件是一项敏感的操作,需要谨慎处理。在进行操作之前,建议先备份相关文件以防止意外情况的发生。 #### 引用[.reference_title] - *1* *3* [Oracle存储的三大物理文件](https://blog.csdn.net/weixin_43840211/article/details/120040328)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Oracle 存储结构简介](https://blog.csdn.net/qq_43613793/article/details/119876284)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值