一、物理文件的分类
Oracle数据库的物理文件可以分成三类:
·数据文件
·日志文件
·控制文件
二、数据文件
数据文件顾名思义是用来存储数据的。例如:表,索引等等。从数据文件中读取出来的数据会首先存放在内存中的SGA,作为缓冲数据。应用对数据的修改也是先保持在SGA中。由DBWR在某一时刻将其写入到数据文件中。
那么如何查看数据库中的数据文件呢?我们可以使用以下的SQL语句:
SQL>select * from dba_data_files;
SQL>select * from v$datafile;
第一个SQL语句查询到的是文件的静态信息,第二个SQL语句查询到的动态信息,其中特别重要的就是系统的检查号(SCN)。
我们可以通过查询dba_free_space表来了解各个表空间的使用信息,从这个表中我们看到每一个表空间下每一个块的BLOCK_ID,BYTES,BLOCKS值。
SQL>select * from dba_free_space;
我们可以通过给某个表空间添加数据文件来增加其存储空间的大小,例如:
SQL>alter tablespace 'table space name' add datafile 'data file name' size ***m autoextend off;
如果我们觉得数据文件的可用空间已经所剩不多了,那么要重新调整数据文件的大小,这时就可用通过执行以下的SQL语句来完成了:
SQL>alter database dbname datafile 'data file name' resize ***M
但是如果每次都要管理员手动来调整增加表空间的大小是一件很麻烦的事情,所以Oracle为我们提供了一些关键字,通过这些关键字我们可以轻松地让表空间在空间不够时自动扩展表空间。例如:
SQL>alter database dbname datafile 'data file name' autoextended on next 50m maxsize unlimited;
上面的SQL语句使到数据库dbname下面的数据文件'data file name'在空间不够时自动扩展,每次扩展50M。不设上限。
如果我们不加以控制的话,那么表空间有可能无限制地扩展下去,所以我们又可以通过maxsize来限制上限。
SQL>alter database dbname datafile 'data file name' autoextend on next 50m maxsize 400m;
二、重做日志文件
重做日志文件记录了对数据库的所有修改的信息。
每一个Oracle数据库中都有至少两个的重做日志文件组,每个重做日志文件组都包含了一个到多个的重做日志文件-即日志成员。同一个日志文件组中的各个日志成员之间是镜像关系,它们的内容都是一模一样的。
Oracle在写日志的时候是以日志组为单位的,只有写完了同一个日志组中的所有日志成员之后,写日志才会结束。当一个日志文件组中所有的成员同时被写满数据时,系统自动转换到下一个日志文件组,这个转换过程称为日志切换。
当日志切换后,会给前一个日志组编一个号,用于归档日志的编号,这个编号称为日志序列号。此编号由1开始,每切换一次,序列号自动加1,最大值受参数MAXLOGHISTORY限制,该参数的最大值为65534。
当oracle把最后一个日志组写满了以后,自动转向第一个日志组,这时,再向第一个日志组写日志的时候, 如果数据库运行在非归档模式下,这个日志组中的原有日志信息就会被覆盖。
如果我们想查看日志文件的具体信息,可以通过以下的SQL语句来查看:
SQL>select * from v$log
这个动态视图的查询结果中包含了几个比较重要的信息,例如:
·GROUP#:日志文件组号
·SEQUENCE#:日志序列号
·STATUS:该组状态(CURRENT表示当前正在使用的,NACTIVE表示非活动组,ACTIVE表示归档未完成)
·FIRST_CHANGE#:系统改变号SCN(也称为检查点号)
上面我们提到日志文件有两种方式,第一种是非归档日志(NOARCHIVELOG),第二种是归档日志(ARCHIVELOG)。其中非归档日志在切换时,原日志文件的内容会被新的日志内容所覆盖,而对于对档模式日志,Oracle会首先对原日志文件进行归档存储,且在归档未完成之前不允许覆盖原日志。
如果我们想了解自己的数据库到底采用什么类型的日志模式,可以使用以下语句查询
SQL>select log_mode from v$database
上面我们提到一个叫做SCN(系统检查点号)的东西,SCN是系统恢复时一个非常重要的标志,在数据文件,日志文件,控制文件,数据库头都包含了这个标记。SCN由Oracle的后台进程CKPT在DBWR将数据写入磁盘后更新。查询SCN的方式有3种:
SQL>select first_change# from v$log;
SQL>select checkpoint_change# from v$datafile;
SQL>select checkpoint_change# from v$database;
三、控制文件
控制文件是一个二进制文件,用来描述数据库的物理结构,一个数据库只需要一个控制文件,控制文件的内容包括:
·数据库名及数据库惟一标识
·数据文件及日志文件的标识
·系统恢复的必要信息,即SCN
我们可以在Oracle的init.ora文件中看到这样一个参数:controller_files = ('file1','file2'...'filen'),这说明数据库有多个控制文件,这些控制文件彼此之间都是镜像的关系。只要其中一个文件是完好的数据库就可以启动。
同样的,我们也可以通过如下的SQL语句来查看控制文件的信息:
SQL>select * from v$controller_file
总结:
Oracle中各种物理文件的操作
操作项目
|
SQL语句
|
创建数据文件
|
alter tablespace *** add datafile *** size ***m autoextend on maxsize unlimited |
调整数据文件 |
alter database *** datafile *** resize ***m |
查看数据文件 |
select * from dba_data_files/select * from v$datafile |
查看空闲空间 |
select * from dba_free_space |
查看日志文件 |
select * from v$log |
查看检查点号 |
select first_change# / checkpoint_change# from v$log/v$datafile/v$database |
查看控制文件 |
select * from v$controller |
注:本文参考了CSDN网友方友松的技术Blog,作者Blog地址:http://blog.csdn.net/truexf/
分享到:
相关推荐
Oracle体系结构详解 Oracle体系结构是指Oracle数据库的架构设计和组件之间的关系。 Oracle数据库实例、物理存储结构、逻辑存储结构、内存结构、数据库实例与进程、数据字典等都是Oracle体系结构的重要组件。 物理...
Oracle数据库体系结构是一个复杂而精细的系统,它由多个关键组件构成,包括实例、内存结构和后台进程,以及数据库的物理和逻辑结构。Oracle实例是数据库运行时的核心,由System Global Area (SGA)和后台进程两大部分...
#### 一、Oracle体系结构简介 **Oracle Server**: Oracle服务器包含两个主要部分:数据库(Database)和实例(Instance)。 - **Database**: 包括数据文件(Datafiles)、控制文件(Controlfile)和重做日志文件(Redolog ...
【Oracle 体系结构详解】 Oracle数据库的体系结构是其高效管理和优化数据操作的关键。这个复杂的架构设计主要目的是为了有效地管理数据库系统中的稀缺资源,特别是内存,以提高性能并确保数据的完整性和可用性。 1...
Oracle体系结构是Oracle数据库的核心,涵盖了数据库运行的基本原理和组成部分。Oracle数据库体系结构非常复杂,主要包括实例和数据库两个方面。Oracle实例是一个运行中的数据库系统,它由系统全局区(SGA)和一组...
### Oracle体系结构详解 Oracle体系结构是理解Oracle数据库工作原理的关键。本文将深入解析Oracle的基本组成、实例(Instance)结构以及内存结构等核心概念。 #### 一、Oracle基本组成 Oracle的基本组成部分包括...
以下是对Oracle体系结构主要组成部分的详细说明: 1. **数据库**:数据库是Oracle的核心,它是一个逻辑数据集合,包含了物理存储的数据以及元数据。Oracle是关系型数据库管理系统(RDBMS),意味着它以表格形式组织...
本文将深入探讨Oracle体系结构的各个关键组成部分。 首先,我们关注物理结构,这是Oracle数据库在磁盘上的实际存储形式。主要包含以下几个部分: 1. **数据文件**:数据文件是Oracle数据库中最基本的存储单元,...
Oracle数据库的体系结构是其高效稳定运行的基础,涵盖了物理结构、逻辑结构、内存结构、数据库实例与进程以及数据字典等多个重要组成部分。本章主要围绕这些方面展开详细讲解。 首先,Oracle的物理结构主要包括数据...
Oracle 12c数据库体系结构图文详解手册是 Oracle 12c数据库管理系统的核心组件之一,该手册详细介绍了 Oracle 12c数据库的体系结构、实例、数据库、内存结构、后台进程、控制文件、重做日志文件、数据文件等概念。...
### 涂抹ORACLE-第16章-体系结构之数据库物理存储结构 #### 重要知识点详述 ##### 引言与理解基础 在深入探讨Oracle数据库的物理存储结构之前,我们首先需要理解,这一章节并非侧重于具体的操作指南,而是致力于...
### Oracle体系结构8.09知识点详解 #### 一、Oracle体系结构概述 Oracle数据库的体系结构主要包括几个关键部分:数据库实例(Instance)和数据库文件(Database Files)。其中,数据库实例由内存结构(Memory ...
Oracle数据库是世界上最流行的数据库管理系统之一,它具有复杂的体系结构,包括物理存储结构、逻辑存储结构以及各种组件。在实验“实验2_Oracle数据库体系结构”中,我们将深入理解Oracle数据库的关键组成部分。 ...
### Oracle 体系结构详解 #### 一、Oracle 基本体系结构概览 Oracle 数据库的体系结构设计得非常复杂且精妙,它能够高效地处理大量的并发请求,并确保数据的安全性和一致性。Oracle 的基本体系结构主要包括内存...
深入地分析Oracle数据库体系结构,包括文件、内存结构以及构成Oracle数据库(database)和实例(instance)的底层进程。讨论锁定、并发控制、事务、redo和undo,分析数据库这的物理结构,如表、索引和数据类型,并...
本文将详细解析Oracle数据库的体系结构,帮助读者深入理解其内部工作原理。 Oracle数据库的核心架构可以分为以下几个主要部分: 1. **数据文件**(Data Files):数据文件是Oracle数据库存储实际数据的地方,包含...
ORACLE体系结构-数据库篇 在这篇文章中,我们将探讨ORACLE数据库体系结构的数据库篇,涵盖了数据库健康检查、控制文件管理、在线日志文件管理、数据文件管理、磁盘扩容等多个主题。下面是我们将要讨论的知识点。 ...
### Oracle体系结构介绍 #### 物理文件构成 在Oracle数据库系统中,物理文件是数据库在磁盘上存储数据的基本单位。这些文件包括数据文件、在线重做日志文件、控制文件、归档日志文件等。 - **数据文件(Datafiles...