`

Oracle体系结构之-物理结构

阅读更多

一、物理文件的分类

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

分享到:
评论

相关推荐

    涂抹ORACLE-第16章-体系结构之数据库物理存储结构

    涂抹ORACLE-第16章-体系结构之数据库物理存储结构

    Oracle 体系结构 说明

    详细描述了Oracle的体系结构,包括 物理结构 逻辑结构 等

    Oracle体系结构概述

    Oracle体系结构概述,包括结构图. 物理结构 逻辑结构 内存结构 数据库实例与进程 数据字典

    实验2_Oracle数据库体系结构

    熟悉Oracle数据库的物理结构 理解Oracle的工作机制 理解Oracle的软件结构

    深入oracle体系结构

    深入地分析Oracle数据库体系结构,包括文件、内存结构以及构成Oracle数据库(database)和实例(instance)的底层进程。讨论锁定、并发控制、事务、redo和undo,分析数据库这的物理结构,如表、索引和数据类型,并...

    oracle数据库体系结构之一【物理结构】.docx

    oracle数据库体系结构之一【物理结构】.docx

    Oracle9i 数据库管理基础

    1 Oracle 体系结构组件 目标1-2 基本组件概览1-3 Oracle 服务器1-5 Oracle 例程1-6 建立连接和创建会话1-7 Oracle 数据库1-9 物理结构1-10 内存结构1-11 系统全局区1-12 共享池1-15 库高速缓存1-16 数据字典高速缓存...

    oracle体系结构.doc

    描述oracle体系结构的经典教程,你可以有如下收获 1、 理解ORACLE 实例的组成 2、 理解ORACLE 数据库的组成 3、 理解ORACLE内存结构的组成 4、 理解后台进程的作用与分工 5、 理解数据库的物理文件与对应的逻辑结构 ...

    Oracle DBA workshop1 (中文版)

    Oracle 数据库体系结构1-8 数据库结构1-9 Oracle 内存结构1-10 进程结构1-12 Oracle 实例管理1-13 服务器进程和数据库缓冲区高速缓存1-14 物理数据库结构1-15 表空间和数据文件1-17 SYSTEM 和SYSAUX 表空间1-18 段、...

    oracle10g课堂练习I(1)

    Oracle 数据库体系结构 1-8 数据库结构 1-9 Oracle 内存结构 1-10 进程结构 1-12 Oracle 实例管理 1-13 服务器进程和数据库缓冲区高速缓存 1-14 物理数据库结构 1-15 表空间和数据文件 1-17 SYSTEM 和 ...

    Oracle 9i 10g编程艺术深入体系结构 中文版

    无论你是程序员还是dba,要创建和管理稳定、高质量的oracle系统,归根结底都需要理解oracle数据库的体系结构。  本书是讲述oracle数据库毋庸置疑的权威指南,凝聚了世界顶尖的oracle专家thomas kyte数十年的宝贵...

    Oracle数据库体系结构

    详细讲解了Oracle数据库的体系结构,以及物理结构和逻辑结构

    Oracle体系结构

    oracle的体系结构讲解,关于软件体系结构和物理体系结构

    【试读】Oracle编程艺术:深入理解数据库体系结构(第3版)

    书中深入分析了Oracle数据库体系结构,包括文件、内存结构以及构成Oracle数据库和实例的底层进程,利用具体示例讨论了一些重要的数据库主题,同时分析了数据库中的物理结构,如表、索引和数据类型,并介绍采用哪些...

    oracle 体系结构.doc

    在本章里你可以了解以下内容 1、 理解ORACLE 实例的组成 2、 理解ORACLE 数据库的组成 3、 理解ORACLE内存结构的组成 4、 理解后台进程的作用与...5、 理解数据库的物理文件与对应的逻辑结构 6、 理解ORACLE的整体构架

    培训讲义:Oracle 数据库体系结构

    Oracle 数据库体系结构  ORACLE数据库体系结构决定了oracle如何使用网络、磁盘和内存。包括实例(instance),文件(file)和进程(process不包括后台进程)三部分。 实例:每一个运行的ORACLE数据库与一个ORACLE...

    Oracle 9i 10g编程艺术:深入数据库体系结构

    我会深入地分析Oracle数据库体系结构,包括文件、内存结构以及构成Oracle数据库(database)和实例(instance)的底层进程。然后讨论一些重要的数据库主题,如锁定、并发控制、事务、redo和undo,还会解释为什么了解...

    oracle体系结构

    两个PPT,一个word文件,讲解oracle的体系结构(Oracle服务器体系结构,Oracle 实例 ,Oracle内存结构 ,Oracle进程结构 ,Oracle 数据库逻辑存储结构 ,Oracle 数据库物理存储结构)视频、笔记、PPT可以配合着看,...

    Oracle四大宝典之二:Oracle基本管理 中文版

    ORACLE数据库和数据库的物理结构,就如同人的身体结构一样,展现了一个人的外部特征,ORACLE实例如同人的神经,展现了一个人对事务的内部反应,ORACLE的逻辑结构,如同人的不同的内部组织,执行着人生存的基本功能。...

    ORACLE 体系结构

    ORACLE 体系结构介绍 包括以下内容 1、 理解ORACLE 实例的组成 2、 理解ORACLE 数据库的组成 3、 理解ORACLE内存结构的组成 4、 理解后台进程的作用与分工 5、 理解数据库的物理文件与对应的逻辑结构 6、 理解ORACLE...

Global site tag (gtag.js) - Google Analytics