ORACLE的物理存储结构
RDBMS 的一个特征是逻辑数据结构(如表、视图和索引)独立于物理存储结构。
数据库实例块在内存部分中。磁盘中是描述数据文件、控制文件和联机重做日志。
物理存储结构
简介
数据文件(针对表空间)
## 视图查询
select * from v$datafile;
数据文件是由 Oracle 数据库创建的持久性存储中的物理文件,包含表和索引等数据结构。临时文件是属于临时表空间的数据文件。数据库以Oracle专有格式将数据写入这些文件,其他程序无法读取。每个 Oracle 数据库必须至少有一个数据文件
控制文件(针对数据库)
## 视图查询
select * from v$controlfile;
控制文件是跟踪数据库的物理组件的根文件。
日志文件(针对表)
## 视图查询
select * from v$logfile;
--查询系统使用的是哪一组日志文件:
select * from v$log;
--查询正在使用的组所对应的日志文件:
select * from v$logfile;
--强制日志切换:非归档模式,联机日志在切换时就会丢弃
alter system switch logfile;
联机重做日志是一组文件,其中包含对数据所做的更改记录。
Redo log files --联机重做日志
Archive log files --归档日志
Alert log files --告警日志
Trace files --跟踪日志
user_dump_dest --用户跟踪日志
backupground_dump_dest --进程跟踪日志
————————————————————————
存储数据库文件的机制(存储介质)
1.Oracle Automatic Storage Management (Oracle ASM)
Oracle ASM 是一款适用于 Oracle 数据库文件的高性能、易于管理的存储解决方案。Oracle ASM 是一个卷管理器,它提供了一个专为数据库使用而设计的文件系统。与传统的文件系统和存储管理器相比,Oracle ASM 提供了几个优势,其中包括:
1.简化与存储相关的任务,如创建和布置数据库以及管理磁盘空间
2.跨物理磁盘分布数据以消除热点并跨磁盘提供统一的性能
3.存储配置更改后自动重新平衡数据
要使用 Oracle ASM,请为 Oracle 数据库分配分区磁盘,并具有条带化和镜像首选项。Oracle ASM 管理磁盘空间,将 I/O 负载分配到所有可用资源中,以优化性能,同时无需手动 I/O 调整。例如,可以增加数据库的磁盘大小或将数据库的某些部分移动到新设备,而无需关闭数据库。
将数据文件作为 Oracle ASM 文件存储在 Oracle ASM 磁盘组中。在磁盘组中,Oracle ASM 公开了数据库文件的文件系统接口。
Oracle ASM 磁盘可以是物理磁盘或分区、存储阵列中的逻辑单元号 (LUN)、逻辑卷或网络连接文件
数据库可以将数据文件、控制文件、联机重做日志文件和其他类型的文件存储为 Oracle ASM 文件
ASM 分配单元-->ASM 扩展数据块-->ASM 文件-->ASM 磁盘-->ASM 磁盘组
2.操作系统文件系统
eg:Ext2(second extended filesystem),Ext3
大多数 Oracle 数据库将文件存储在文件系统中,文件系统是一种构建在连续磁盘地址空间内的数据结构。所有操作系统都有文件管理器,用于将磁盘空间分配和释放到文件系统中的文件中。
文件系统通常构建在由称为逻辑卷管理器 (LVM) 的软件包构造的逻辑卷之上
3.集群文件系统(ocfs(oracle cluster filesystem))
集群文件系统是一种分布式文件系统,它是一个服务器集群,这些服务器通过协作为其客户端提供高性能服务。在 Oracle RAC 环境中,群集文件系统使共享存储显示为群集环境中许多计算机共享的文件系统。对于群集文件系统,群集中计算机的故障并不会使文件系统不可用。但是,在操作系统文件系统中,如果通过 NFS 或其他方式共享文件的计算机失败,则该文件系统不可用。
数据库采用上述存储机制的组合。例如,数据库可以将控制文件和联机重做日志文件存储在传统文件系统中,某些用户数据文件存储在原始分区上,其余数据文件存储在 Oracle ASM 中,并将重做日志文件存档到群集文件系统中。
Oracle ASM Instances
Oracle ASM 实例是管理 Oracle ASM 磁盘的特殊 Oracle 实例。
Oracle ASM 和数据库实例都需要对 Oracle ASM 磁盘组中的磁盘进行共享访问。Oracle ASM 实例管理磁盘组的元数据,并向数据库实例提供文件布局信息。数据库实例将 I/O 定向到 Oracle ASM 磁盘,而无需通过 Oracle ASM 实例。总结两个作用:
1.管理磁盘组的元数据
2.向数据库实例提供文件布局信息(为存储数据库数据的 Oracle ASM 文件提供空间分配)
Oracle 托管文件和用户托管文件
Oracle Managed Files(OMF)是一种文件命名策略,使您能够根据数据库对象而不是文件名来指定操作。例如,您可以创建表空间而不指定其数据文件的名称。
可以简化管理员的管理工作,不用指定文件的名字、大小、路径,其名字,大小,路径由oracle 自动分配。在删除不再使用的日志、数据、控制文件时,OMF也可以自动删除其对应的OS文件
//查看db_create_file_dest参数
show parameter db_create_file
//设定db_create_file_dest参数
ALTER SYSTEM SET db_create_file_dest = '/home/oracle/omf_data';
Oracle归档模式
概述
Oracle数据库有联机重做日志,这个日志是记录对数据库所做的修改,比如插入,删除,更新数据等,对这些操作都会记录在联机重做日志里。一般数据库至少要有2个联机重做日志组。当一个联机重做日志组被写满的时候(可以将日志切换配置为定期进行),就会发生日志切换,这时联机重做日志组2成为当前使用的日志,当联机重做日志组2写满的时候,又会发生日志切换,去写联机重做日志组1,就这样反复进行。
如果数据库处于非归档模式,联机日志在切换时就会丢弃. 而在归档模式下,当发生日志切换的时候,被切换的日志会进行归档。比如,当前在使用联机重做日志1,当1写满的时候,发生日志切换,开始写联机重做日志2,这时联机重做日志1的内容会被拷贝到另外一个指定的目录下。这个目录叫做归档目录,拷贝的文件叫归档重做日志。
--查看oracle数据库是否为归档模式
select name,log_mode from v$database;
--查看归档日志,非归档模式下是空的
select * from v$archived_log
--sqlplus下
archive log list;
存档的重做日志文件是联机重做日志组的已填充成员的副本。该文件不被视为数据库的一部分,而是由数据库创建并写入用户指定位置的联机重做日志文件的脱机副本。