当前位置:文档之家› (36) Oracle存储结构管理(5)

(36) Oracle存储结构管理(5)

(36) Oracle存储结构管理(5)
(36) Oracle存储结构管理(5)

6.6 管理数据库存储结构(5)

1.主要目标

?掌握Oracle数据库逻辑结构组成

?掌握表空间的作用及其管理

?掌握扩展区的结构,了解扩展区的管理

?掌握段的作用,了解段的管理

2. 逻辑存储结构概述

?概念

?逻辑存储结构是从逻辑的角度来分析数据库的构成的,是数据库创建后利用逻辑概

念来描述Oracle数据库内部数据的组织和管理形式。在操作系统中,没有数据库逻

辑存储结构信息,而只有物理存储结构信息。数据库的逻辑存储结构概念存储在数

据库的数据字典中,可以通过数据字典查询逻辑存储结构信息。

?逻辑结构单元类型

?数据块:BLOCK

?区:EXTENT

?段:SEGMENT

?表空间:TABLESPAC E

?数据库的存储层次关系

?数据库逻辑存储结构之间的关系

3.表空间的基本概念

(1)主要内容

?表空间的概念

?表空间的分类

?表空间的管理方式

?表空间的管理策略

(2)表空间概念

?Oracle数据库在逻辑上可以划分为一系列的逻辑空间,每一个逻辑空间就可以称为一个表空间。

?一个数据库由有一个或多个表空间构成,不同表空间用于存放不同应用的数据,表空间大小决定了数据库的大小。

?一个表空间对应一个或多个数据文件,数据文件大小决定了表空间的大小。一个数据文件只能从属于一个表空间。

?表空间是存储模式对象的容器,一个数据库对象只能存储在一个表空间中(分区表和分区索引除外),但可以存储在该表空间所对应的一个或多个数据文件中。若表空间只有一个数据文件,则该表空间中所有对象都保存在该文件中;若表空间对应多个数据文件,则表空间中的对象可以分布于不同的数据文件中。

?数据库、表空间、数据文件、数据库对象之间的关系

数据库

表空间1

数据文件1 数据库对象1 数据文件2

数据库对象3

数据库对象2

表空间2

数据文件3

数据库对象4

数据文件4

数据库对象5

数据库对象6

(3)表空间的分类

?系统表空间

?SYSTEM 表空间,主要存储:

?数据库的数据字典;

?PL/SQL程序的源代码和解释代码,包括存储过程、函数、包、触发器等;

?数据库对象的定义,如表、视图、序列、同义词等。

?SYSAUX表空间

?SYSAUX表空间是Oracle 10g新增的辅助系统表空间,主要用于存储数据库组件等信息,以减小SYSTEM表空间的负荷。

?在通常情况下,不允许删除、重命名及传输SYSAUX表空间。

?非系统表空间

?撤销表空间

?专门进行回滚信息的自动管理,由UNDO_TABLESPACE参数设置。

?临时表空间

?专门进行临时数据管理的表空间

?在数据库实例运行过程中,执行排序等SQL语句时会产生大量的临时数据,这些临时数据将保存在数据库临时表空间中。

?默认临时表空间

?用户表空间

?保存用户数据

?大文件表空间与小文件表空间

?所谓大文件表空间(Bigfile Tablespace)是指一个表空间只包含一个大数据文件,该

文件的最大尺寸为128 TB(数据块大小为32 KB)或只32 TB(数据块大小为8 KB)。

?与大文件表空间相对应,系统默认创建的表空间称为小文件表空间(Smallfile

Tablespace),如SYSTEM表空间、SYSAUX表空间等。小文件表空间可以包含多达

1024个数据文件。小文件表空间的总容量与大文件表空间的容量基本相似。

4.表空间的管理方式

?字典管理方式

?表空间使用数据字典来管理存储空间的分配,当进行区的分配与回收时,Oracle将

对数据字典中的相关基础表进行更新,同时会产生回滚信息和重做信息。字典管理

方式将渐渐被淘汰。

?本地管理方式

?在本地管理方式中,区的分配和管理信息都存储在表空间的数据文件中,而与数据

字典无关。表空间在每个数据文件中维护一个“位图”结构,用于记录表空间中所

有区的分配情况,因此区在分配与回收时,Oracle将对数据文件中的位图进行更新,

不会产生回滚信息或重做信息。

?表空间本地管理方式的优势:

?由于在区分配与回收过程中不需要对数据字典进行访问,提高了表空间存储管理操

作的速度和并发性。

?能够避免表空间存储管理操作中的递归现象,提高了存储空间管理操作性能。

?由于本地管理的临时表空间在使用过程中不会产生任何重做信息和撤销信息,因此

既使查询操作中包含排序,对数据库来说也完全是只读操作,这样能够在保留可查

询性同时,将整个数据库设置为只读状态。这种数据库可以作为备用数据库使用。

?简化了表空间的存储管理,由Oracle自动完成存储管理操作。

?降低了用户对数据字典的依赖性。

?不存在磁盘碎片问题,因为必要的信息都存储在数据文件的位图中,而不是保存在

数据字典中

5.表空间管理策略

?将数据字典与用户数据分离,避免由于数据字典对象和用户对象保存在一个数据文件中而产生I/O冲突。

?将回滚数据与用户数据分离,避免由于硬盘损坏而导致永久性的数据丢失。

?将表空间的数据文件分散保存到不同的硬盘上,平均分布物理I/O操作。

?为不同的应用创建独立的表空间,避免多个应用之间的相互干扰。

?能够将表空间设置为脱机状态或联机状态,以便对数据库的一部分进行备份或恢复。

?能够将表空间设置为只读状态,从而将数据库的一部分设置为只读状态。

?能够为某种特殊用途专门设置一个表空间,如临时表空间,优化表空间的使用效率。

?能够更加灵活地为用户设置表空间配额。

6.表空间的管理(本地管理方式)

(1)主要内容

?创建表空间

?修改表空间

?表空间的备份

?删除表空间

?大文件表空间的管理

?表空间信息查询

?利用OEM管理表空间

7.创建表空间

(1)在创建本地管理方式下的表空间时,应该确定表空间的名称、类型、对应的数据文件的名称和位置以及区的分配方式、段的管理方式

?表空间名称不能超过30个字符,必须以字母开头,可以包含字母、数字以及一些特殊字符(如#、_、$)等;

?表空间的类型包括普通表空间、临时表空间和撤销表空间;

?表空间中区的分配方式包括两种方式:自动扩展(AUTOALLOCATE)和定制(UNIFORM);

?段的管理包括两种方式:自动管理(AUTO)和手动管理(MANUAL)。

(2)创建永久表空间

?创建永久表空间使用CREATE TABLESPACE语句来实现,该语句包含以下几个子句:?DA TAFILE:设定表空间对应的数据文件。

?EXTENT MANAGEMENT:指定表空间的管理方式,取值为LOCAL(默认)或DICTIONARY。

?AUTOALLOCA TE(默认)或UNIFORM:设定区的分配方式。

?SEGMENT SPACE MANAGEMENT:设定段的管理方式,其取值为MANUAL或AUTO (默认)。

?示例

?为ORCL数据库创建一个永久性的表空间,区自动扩展,段采用手动管理方式

CREATE TABLESPACE ORCLTBS1 DA TAFILE

'D:\ORACLE\PRODUCT\10.2.0\ORADA TA\ORCL\

ORCLTBS1_1.DBF' SIZE 50M;

?为ORCL数据库创建一个永久性的表空间,区定制分配,段采用自动管理方式。

CREATE TABLESPACE ORCLTBS2 DA TAFILE

'D:\ORACLE\PRODUCT\10.2.0\ORADA TA\ORCL\

ORCLTBS2_1.DBF' SIZE 50M

EXTENT MANAGEMENT LOCAL UNIFORM SIZE 512K;

?为ORCL数据库创建一个永久性的表空间,区自动扩展,段采用手动管理方式。

CREATE TABLESPACE ORCLTBS3 DATAFILE

'D:\ORACLE\PRODUCT\10.2.0\ORADA TA\ORCL\

ORCLTBS3_1.DBF' SIZE 50M

SEGMENT SPACE MANAGEMENT MANUAL;

MANAGEMENT MANUAL;

?为ORCL数据库创建一个永久性的表空间,区定制分配,段采用手动管理方式。

CREATE TABLESPACE ORCLTBS4 DATAFILE

'D:\ORACLE\PRODUCT\10.2.0\ORADA TA\ORCL\

ORCLTBS4_1.DBF' SIZE 50M

EXTENT MANAGEMENT LOCAL UNIFORM SIZE 512K SEGMENT SPACE

(3)创建临时表空间

?使用CREATE TEMPORARY TABLESPACE 语句创建临时表空间,用TEMPFILE子句设置临时数据文件。

?需要注意的是临时表空间中区的分配方式只能是UNIFORM,而不能是AUTOALLOCATE,因为这样才能保证不会在临时段中产生过多的存储碎片。

?示例

?为ORCL数据库创建一个临时表空间ORCLTEMP1。

CREATE TEMPORARY TABLESPACE ORCLTEMP1

TEMPFILE 'D:\ORACLE\PRODUCT\10.2.0\

ORADATA\ORCL\ORCLTEMP1_1.DBF' SIZE 20M

EXTENT MANAGEMENT LOCAL UNIFORM SIZE 16M;

(4)临时表空间组

?将一个或多个临时表空间构成一个表空间组。当将临时表空间组作为数据库或用户的默认临时表空间时,用户就可以同时使用该表空间组中所有的临时表空间,避免了由于单个临时表空间的空间不足而导致数据库运行故障。同时,使用临时表空间组,可以保证在一个简单并行操作中多个并行服务的执行。

?临时表空间组不需要显式创建,为临时表空间组指定第一个临时表空间时隐式创建,

当临时表空间组中最后一个临时表空间删除时而隐式地删除。

?通过在CREATE TEMPORARY TABLSPACE或ALTER TABLESPACE语句中使用

TABLESPACE GROUP短语创建临时表空间组。

?示例

?为ORCL数据库创建一个临时表空间ORCLTEMP2,并放入临时表空间组temp_group1。

同时,将临时表空间ORCLTEMP1也放入该temp_group1中。

CREATE TEMPORARY TABLESPACE ORCLTEMP2 TEMPFILE

'D:\ORACLE\PRODUCT\10.2.0 \

ORADATA\ORCL\ORCLTEMP2_1.DBF' SIZE 20M

EXTENT MANAGEMENT LOCAL UNIFORM SIZE 16M

TABLESPACE GROUP temp_group1;

ALTER TABLESPACE ORCLTEMP1 TABLESPACE GROUP temp_group1;

(5)创建撤销表空间

?在Oracle 10g中引入了撤销表空间的概念,专门用于回滚段的自动管理。如果数据库中没有创建撤销表空间,那么将使用SYSTEM表空间来管理回滚段。

?如果数据库中包含多个撤销表空间,那么一个实例只能使用一个处于活动状态的撤销表空间,可以通过参数UNDO_TABLESPACE来指定;如果数据库中只包含一个撤销表空间,那么数据库实例启动后会自动使用该撤销表空间。

?如果要使用撤销表空间对数据库回滚信息进行自动管理,则必须将初始化参数UNDO_MANAGEMENT=AUTO。

?可以使用CREATE UNDO TABLESPACE语句创建撤销表空间,但是在该语句中只能指定DA TAFILE和EXTENT MANAGEMENT LOCAL两个子句,而不能指定其他子句。

?示例

?为ORCL数据库创建一个撤销表空间。

CREATE UNDO TABLESPACE ORCLUNDO1

DATAFILE 'D:\ORACLE\ORADATA\ORCL\

ORCLUNDO1_1.DBF' SIZE 20M;

?如果要在数据库使用该撤销表空间,需要设置参数

?UNDO_MANAGEMENT=AUTO

?UNDO_TABLESPACE= ORCLUNDO1

8.修改表空间

(1)可以对表空间进行下列修改操作:

?扩展表空间

?修改表空间可用性

?修改表空间读/写性

?设置默认表空间

?表空间重命名

(2)注意

?不能将本地管理的永久性表空间转换为本地管理的临时表空间,也不能修改本地管

理表空间中段的管理方式。

9.扩展表空间

(1)为表空间添加数据文件

?通过ALTER TABLESPACE…ADD DATAFILE语句为永久表空间添加数据文件,通

过ALTER TABLESPACE…ADD TEMPFILE语句为临时表空间添加临时数据文件。

?示例

?为ORCL数据库的ORCLTBS1表空间添加一个大小为10 MB的新数据文件。

ALTER TABLESPACE ORCLTBS1 ADD DATAFILE

'D:\ORACLE\PRODUCT\10.2.0\ORADA TA\

ORCL\ORCLTBS1_2.DBF' SIZE 10M;

?为ORCL数据库的ORCLTEMP1表空间添加一个大小为10 MB的临时数据文件。

ALTER TABLESPACE ORCLTEMP1 ADD TEMPFILE

'D:\ORACLE\PRODUCT\10.2.0\ORADA TA\ORCL\

ORCLTEMP1_2.DBF' SIZE 20M;

(2)改变数据文件的大小

?可以通过改变表空间已有数据文件的大小,达到扩展表空间的目的。

?示例

?将ORCL数据库的ORCLTBS1表空间的数据文件ORCLTBS1_2.DBF大小增加到20 MB。

ALTER DATABASE DATAFILE

'D:\ORACLE\PRODUCT\10.2.0\ORADA TA\

ORCL\ORCLTBS1_2.DBF' RESIZE 20M;

(3)改变数据文件的扩展方式

?如果在创建表空间或为表空间增加数据文件时没有指定AUTOEXTEND ON选项,则该文件的大小是固定的。如果为数据文件指定了AUTOEXTEND ON选项,当数据文件被填满时,数据文件会自动扩展,即表空间被扩展了。

?示例

?将ORCL数据库的ORCLTBS1表空间的数据文件ORCLTBS1_2.DBF设置为自动扩展,每次扩展5 MB空间,文件最大为100 MB。

ALTER DATABASE DATAFILE

'D:\ORACLE\PRODUCT\10.2.0\ORADA TA\ORCL\

ORCLTBS1_2.DBF'

AUTOEXTEND ON NEXT 5M MAXSIZE 100M;

10.修改表空间可用性

?离线状态的表空间是不能进行数据访问的,所对应的所有数据文件也都处于脱机状态。

?一些表空间必须是在线状态:

?SYSTEM表空间

?存放在线回退信息的撤销表空间

?临时表空间

?语法

?ALTER TABLESPACE tablespace_name ONLINE|OFFLINE

?示例

?ALTER TABLESPACE ORCLTBS1 OFFLINE;

?ALTER TABLESPACE ORCLTBS1 ONLINE;

11.修改表空间读写性

?语法

?ALTER TABLESPACE tbs_name

?READ ONL Y|READ WRITE

?表空间只有满足下列要求才可以转换为只读状态:

?表空间处于联机状态;

?表空间中不能包含任何活动的回退段;

?如果表空间正在进行联机数据库备份,不能将它设置为只读状态。因为联机备份结

束时,Oracle更新表空间数据文件的头部信息。

?示例

?ALTER TABLESPACE ORCLTBS1 READ ONLY;

?ALT ER TABLESPACE ORCLTBS1 READ WRITE

12.设置默认表空间

?在Oracle10g数据库中,默认表空间为USERS表空间,默认临时表空间为TEMP表空间。

?设置数据库的默认表空间

?ALTER DATABASE DEFAULT TABLESPACE

?设置数据库的默认临时表空间

?ALTER DATABASE DEFAULT TEMPORARY

?TABLESPACE

?示例

ALTER DATABASE DEFAULT TABLESPACE ORCLTBS1 ;

ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TEMP;

ALTER DATABASE DEFAULT TEMPORARY TABLESPACE temp_group1;

13.表空间重命名

?语句

?ALTER TABLESPACE…RENAME TO

?当重命名一个表空间时数据库会自动更新数据字典、控制文件以及数据文件头部中对该表空间的引用。在重命名表空间时,该表空间ID号并没有修改,如果该表空间是数据库默认表空间,那么重命名后仍然是数据库的默认表空间。

?注意

?不能重命名SYSTEM表空间和SYSAUX表空间

?不能重命名处于脱机状态或部分数据文件处于脱机状态的表空间。

?

14.表空间的备份

?语法

?ALTER TABLESPACE tablespace_name BEGIN|END BACKUP

?在数据库进行热备份(联机备份)时,需要分别对表空间进行备份。基本步骤为:

?使用ALTER TABLESPACE…BEGIN BACKUP语句将表空间设置为备份模式。

?在操作系统中备份表空间所对应的数据文件。

?使用ALTER TABLESPACE…END BACKUP语句结束表空间的备份模式。

?示例

?备份ORCL数据库的ORCLTBS1表空间。

ALTER TABLESPACE ORCLTBS1 BEGIN BACKUP;

复制ORCLTBS1表空间的数据文件ORCLTBS1_1.DBF和RCLTBS1_2.DBF到目标位置。

ALTER TABLESPACE ORCLTBS1 END BACKUP;

15. 删除表空间

?语法

?DROP TABLESPACE tablespace_name

?如果表空间非空,应带有子句INCLUDING CONTENTS

?若要删除操作系统下的数据文件,应带有子句AND DATAFILES

?删除参照完整性约束,应带有子句CASCADE CONSTRAINTS

?示例:

?删除ORCL数据库的ORCLTBS1表空间及其所有内容。

?DROP TABLESPACE ORCLTBS1

?INC LUDING CONTENTS;

?删除ORCL数据库的ORCLUNDO1表空间及其所有内容,同时删除其所对应的数据文件。

?DROP TABLESPACE ORCLUNDO1

?INC LUDING CONTENTS AND DATAFILES;

?删除ORCL数据库的ORCLUNDO1表空间及其所有内容,同时删除其所对应的数据文件,以及其他表空间中与ORCLUNDO1表空间相关的参照完整性约束。

?DROP TABLESPACE ORCLUNDO1

?INCLUDING CONTENTS AND DATAFILES

?CASCADE CON STRAINTS;

16.大文件表空间的管理

?概念

?大文件表空间只包含一个数据文件,减少数据库中数据文件的数量,减少SGA中用

于存放数据文件信息的内存需求,同时减小控制文件。

?通过对大文件表空间的操作可以实现对数据文件的透明操作,简化了对数据文件的

管理。

?大文件表空间只能采用本地管理方式,其段采用自动管理方式。

?如果在数据库创建时设置系统默认的表空间类型为BIGFILE,则使用CREATE

TABLESPACE语句默认创建的就是大文件表空间。如果要创建传统的小文件表空间,

则需要使用CREATE SMALLFILE TABLESPACE语句。

?创建大文件表空间的语句

?CREATE BIGFILE TABLESPACE

?示例

?创建一个大文件表空间ORCLTBS5。

CREATE BIGFILE TABLESPACE ORCLTBS5

DATAFILE 'D:\ORACLE\PRODUCT\10.2.0\

ORADATA\ORCL\ORCLTBS5_1.DBF'

SIZE 20M;

?大文件表空间的操作

将大文件表空间ORCLTBS5的数据文件D:\ORACLE\PRODUCT\10.2.0\ ORADATA\ ORCL\ORCLTBS5_1.DBF 大小修改为30 MB。

ALTER TABLESPACE ORCLTBS5 RESIZE 30M;

?将大文件表空间ORCLTBS5的数据文件D:\ORACLE\PRODUCT\10.2.0\ ORADATA\ ORCL\ORCLTBS5_1.DBF修改为可以自动扩展。

ALTER TABLESPACE ORCLTBS5 AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED;

17.表空间信息查询

?V$TABLESPACE:从控制文件中获取的表空间名称和编号信息。

?DBA_TABLESPACES:数据库中所有表空间的信息。

?DBA_TABLESPACE_GROUPS:表空间组及其包含的表空间信息。

?DBA_SEGMENTS:所有表空间中段的信息。

?DBA_EXTENTS:所有表空间中区的信息。

?DBA_FREE_SPACE:所有表空间中空闲区的信息。

?V$DATAFILE:所有数据文件信息,包括所属表空间的名称和编号。

?V$TEMPFILE:所有临时文件信息,包括所属表空间的名称和编号。

?DBA_DATA_FILES:数据文件及其所属表空间信息。

?DBA_TEMP_FILES:临时文件及其所属表空间信息。

?DBA_USERS:所有用户的默认表空间和临时表空间信息。

?DBA_TS_QUOTAS:所有用户的表空间配额信息。

?V$SORT_SEGMENT:数据库实例的每个排序段信息。

?V$SORT_USER:用户使用临时排序段信息。

?示例

?查询表空间基本信息

SELECT TABLESPACE_NAME, EXTENT_MANAGEMENT,

ALLOCATION_TYPE, CONTENTS

FROM DBA_TABLESPACES;

?查询表空间数据文件信息

SELECT FILE_NAME,BLOCKS,TABLESPACE_NAME

FROM DBA_DATA_FILES;

?查询表空间空闲空间大小

SELECT TABLESPACE_NAME,SUM(BYTES)

FREE_SPACES FROM DBA_FREE_SPACE

GROUP BY TABLESPACE_NAME ;

?统计表空间空闲空间信息

SELECT TABLESPACE_NAME "TABLESPACE",

FILE_ID,COUNT(*) "PIECES",

MAX(blocks) "MAXIMUM",MIN(blocks)"MINIMUM",

A VG(blocks)"A VERAGE",SUM(blocks) "TOTAL"

FROM DBA_FREE_SPACE

GROUP BY TABLESPACE_NAME, FILE_ID;

18.利用OEM管理表空间

(1)主要管理内容

?创建表空间

?编辑表空间

?查看表空间信息

?删除表空间

?临时表空间组的管理

Oracle存储结构

Oracle 存储结构分析 一逻辑结构的层次与种类 1,表(table): 2,分区表(table partition):一个有很大数据量的表;我们可以把表分区,每个分区可以放在不同的段上。以实现对表的优化 3,簇(cluster):将多个表集合在一起,这些表拥有相同的列;这些相同列放在同一个物理的段里面。 4,索引(index): 5,index-organized table(对应sqlserver的群集索引): 这些表中的数据以索引的大小按升序或者降序排列 6,index partition(索引的分区): 关于索引的数据分别存于不同的物理段里面 7,undo segment: 有序循环的方式存储(存放old value;读一致性;rollback ;recovery) 8,temporary: 临时段用来排序 9,LOB segment: 存放大的数据,oracle里面将这些数据并不放在表内部,而 是有专门一个段来存储 10,nested table(嵌套表):一个表中的某个字段的值是另外一个整表! 11,bootstrap segment:初始化我们的实例用的。这个段不需要维护和管理! 二oracle存储参数的设定及继承问题 【记忆】默认为 Oracle default ===》 Tablespace (创建表空间时定义的参数) ====》 Segment(优先级最高)

【理解】初始参数 oracle block 的5倍;意思是说你创建一个表,即使里面没存数据,它已经占用了8k×5=40kB的空间(这里假设oracle block size 为8kB) 三创建表时可以单独为表指定存储参数 SQL> conn hr/123456@kk 已连接。 SQL> create table hello(id int) 2 tablespace bkeep 3 storage(initial 100k 4 next 100k); 【点子】我们来创建一个表空间test11,不带任何存储参数,然后打开oem看看它的存储参数(这些参数就是从oracle default哪里继承过来的!) 四extent的分配和重新分配 -当创建段时就分配空间 -当扩展段时给它分配空间 -强制分配空间给段(段可以跨数据文件,但不可以跨表空间;但是强制的段是不能跨数据文件获取空间的) 创建表时,最初始的空间一定会分配给它!

实验2 Oracle数据库物理存储结构管理

实验2 Oracle数据库物理存储结构管理 1.向BOOKSALES数据库的USERS表空间添加一个大小为10MB的数据文件users0 2.dbf。 2.向BOOKSALES数据库的TEMP表空间添加一个大小为10MB的临时数据文件temp02.dbf。 3. 向BOOKSALES数据库的USERS表空间中添加一个可以自动扩展的数据文件user03.dbf ,大小5M,每次扩展1M,最大容量为100M。 4.取消BOOKSALES数据库数据文件user03.dbf的自动扩展。 5.将BOOKSALES数据库数据文件users02.dbf更名为users002.dbf。

6.查询BOOKSALES数据库当前所有的数据文件的详细信息。 7.为BOOKSALES数据库添加一个多路复用的控制文件control03.ctl。 (过程忘了截图)复制过程没有问题,在文件夹中也能显示出CONTROL03.CTL文件可是在重新startup的时候数据库没有重新运行,出现了错误 查询也有CONTROL03.CTL文件

后来删除了CONTROL03.CTL文件(即10的图)还是启动不了数据库,只在新的例程里,后来重载了oracle。 8.以二进制文件的形式备份BOOKSALES数据库的控制文件。 第一次忘了截图 9.将BOOKSALES数据库的控制文件以文本方式备份到跟踪文件中,并查看备份的内容。

10.删除BOOKSALES数据库的控制文件control03.ctl。 11.查询BOOKSALES数据库当前所有控制文件信息 12.向BOOKSALES数据库添加一个重做日志文件组(组号为4),包含一个成员文件undo04a.log,大小为4M。 13.向BOOKSALES数据库的重做日志组4中添加一个成员文件,名称为undo04b.log。 14.将BOOKSALES数据库的重做日志组4中所有成员文件移植到一个新的目录下。

Oracle体系结构详解

Oracle体系结构就是围绕这张图展开的,要想深入了解oracle,就必须把这张图搞明白。如图: 一、基本组成: Oracle server: 一般情况下是一个instance和一个database组成 1个instance只能对应一个数据库。 特殊:1个数据库可以有多个instance(rac) 一台服务器上同时可装多套版本的数据库软件,每个数据库软件可建多个数据库,但是每个数据库只对应一个instance,也可以理解成每个数据库只有一个SID 。 利用DBCA建出的每个库都是相对独立的,在同一服务器上如果创建多库必须将环境变量的参数文件做区分,并且在对实例切换时需如下操作: connect 用户名/密码@实例的服务名

Oracle Instance: 是由内存(SGA)和后台进程(backupground Process)组成 通过instance来访问database 一个实例只能打开一个数据库 Oracle database: 数据文件(Data files): 数据文件永远存储数据库的数据,包括数据字典、用户数据(表、索引、簇)、undo数据等 重做日志(Redo log): “先记后写” 重做日志用于记录数据库的变化,当进行例程恢复或介质恢复时需要使用重做日志 执行DDL或DML操作时,事物变化会被写到重做日志缓冲区,而在特定的时刻LGWR会将重做日志缓冲区中的内容写入重做日志。 控制文件(Control file) 控制文件用于记录和维护数据库的物理结构,并且每个Oracle数据库至少要包含一个控制文件。 归档日志(Archive log): 是非活动(Inactive)重做日志的备份。 口令文件(Password file): 用于验证特权用户(具有SYSDBA、SYSOPER权限的特殊数据库用户) 参数文件(Parameter file): 用于定义启动实例所需要的初始化参数,包括文本参数文件(pfile)和服务器参数文件(spfile)(二进制文件放入裸设备,引入spfile) User and Server process : 在执行sql语句时产生的进程,每一个连接,oracle server创建一个session,产生一个server process,在client发起一个connection时就产生了一个user process。

Oracle数据库的物理存储结构之数据库控制文件详解

Oracle数据库中,数据库控制文件维护着数据库的全局物理结构,用以支持数据库成功的启动和运行。创建数据库时,同时就提供了与之对应的数据库控制文件。在数据库使用过程中,Oracle不断的更新数据库控制文件,所以只要数据库是打开的,数据库控制文件就必须处于可写状态。如果,犹豫某些原因控制文件不能被访问,那么数据库也就不能正常的工作了。 每一个控制文件只能与一个Oracle数据库相关联。数据库控制文件包含了数据库实例的启动和正常操作时,访问数据库所需的关于数据库的信息。数据库控制文件的内容只有Oralce 可以修改,数据库管理员和用户都不能对其进行编辑。 控制文件包含了以下信息: ?数据库名称 ?数据库创建的时间戳 ?相关的数据文件、重演日志文件的名称和位置 ?表空间信息 ?数据文件脱机范围 ?日志历史 ?归档日志信息 ?备份组和备份块信息 ?备份数据文件和重演日志信息 ?数据文件拷贝信息 ?当前日志序列数 ?检查点(checkpoint)信息 数据库名称和时间戳源自数据库创建之时,数据库名称或是来自DB_NAME初始化从参数,或者来自Cteate Database语句使用的名称。 每当数据文件或重演日志文件被添加内容、重新命名或者直接从数据库删除时,控制文件都要进行更新以反应物理结构的变化。记录下这些变化后,Oracle就可以:在数据库启动的时候,能够确定并打开数据文件和重演日子文件。 在必须要恢复数据库的时候,能够确定哪些文件是必须的、哪些文件是可用的。 PS:如果数据库的物理结构发生了改变(使用了Alert Database语句),用户应该立刻备份控制文件。 控制文件还记录了关于检查点的信息。每3秒,检查点进程(CKPT)就会在控制文件里记录重演日志文件的检查点位置信息。这些信息用于数据库的恢复过程,告诉数据库在这一点之前的已经记录下的重演条目不必进行恢复,因为它们已经被写入数据文件了。 由于控制文件对数据库的至关重要,所以联机存储着多个副本。这些文件一般存储在各个不同的磁盘上,以便将因磁盘试下哦引起的潜在危险降至最低程度。Oracle支持对同一个数据库并发的打开、书写多个相同的控制文件。通过为一个数据库在不同的磁盘上保存多个控制文件,可以幼小的降低对于控制文件可能发生的单点失败。例如,包含一个控制文件的磁盘崩溃了,如果Oracle试图访问这个被破坏的文件,当前实例就会失败,但是如果在不同的磁盘上保存了当前控制文件的复件,就可以重启一个实例而无需进行数据库恢复。

oracle体系结构

Oracle体系结构:物理结构,逻辑结构,内存结构,数据库实例和进程,数据字典 物理结构:数据文件,日志文件,控制文件,配置文件 数据文件用来存储数据库中的全部数据,如数据库表中的数据和索引数据。通常为后缀名为.dbf格式的文件。 日志文件(又称重做日志文件),用于记录数据库所做的全部变更(如增加、删除、修改),以便在系统发生故障时,用它对数据库进行恢复。名字通常为Log*.dbf格式 控制文件每个Oracle数据库都有相应的控制文件,用于打开、存取数据库。它们是较小的二进制文件,其中记录了数据库的物理结构。名字通常为Ctr*.ctl格式 配置文件是一个ASCII文本文件,记录Oracle数据库运行时的一些重要参数。名字通 常为initsid*.ora格式,如:initCIMS.ora,SID相当于它所控制的数据库的标识符。每个Oracle 数据库和实例都有它自己惟一的init.ora文件。 逻辑结构:表空间,段,区,数据库块,模式对象 Oracle中除了用户创建的存放数据对象的数据表空间外,还有以下类型的表空间: (1)System表空间 (2)回滚表空间(RollBack TableSpace) (3)临时表空间(Temp TableSpace) 段:数据段,索引段,临时段,回退段 区是由很多连续的数据块组成的数据库存储空间。缺省情况下,数据库会使用表空间中存储的存储参数来管理他们的区。

Oracle数据库的模式对象包括表、视图、序列、同义词、索引、触发器、存储过程等。内存结构:系统全局区,程序全局区,排序区,软件代码区 系统全局区(SGA,System Global Area.)是内存结构的主要组成部分,是Oracle为一个实例分配的一组共享内存缓冲区,保存着Oracle系统与所有数据库用户的共享信息,包括数据维护、SQL语句分析,重做日志管理等。是实例的主要部分。 数据块缓冲区中存放着Oracle系统最近从数据文件中读取的数据块。数据块缓冲区又称用户数据高速缓冲区,为所有与该实例相链接的用户进程所共享。 在Oracle9i中,数据库缓存的大小可以直接由初始化参数DB_ACHESIZE指定,该参数可以直接以K字节或M字节为单位来设置数据库缓存的大小。 字典缓冲区用于保存数据字典中的行。数据字典缓冲区也通过最近最少使用(LRU)算法来管理。大小由数据库内部管理。字典缓存区是SQL共享池的一部分,共享池的大小(以字节为单位)由数据库文件init.ora中的SHARED_POOL_SIZE参数来设置 对数据库进行修改的任何事务(Transaction)在记录到重做日志之前都必须首先放到重做日志缓冲区(Redo Log Buffer.)中。重做日志缓冲区是专为此开辟的一块内存区域,重做日志缓存中的内容将被LGWR后台进程随时写入重做日志文件 共享SQL池(Shared SQL Pool)相当于程序高速缓冲区,所有的用户程序都存放在共享SQL 池中。SQL共享池包括库高速缓存、数据字典高速缓存和服务器控制结构 Java池为Java命令提供语法分析。 缓冲池把大数据集与其他的应用程序分开,以减少它们争夺数据块缓冲区内相同的资源。可以在SGA中创建多个缓冲池 数据库是指物理上的数据库文件或逻辑上的数据库结构。 基于之上管理和控制物理数据库的软件系统,称为数据库管理系统(DBMS)。 数据库实例和进程 数据库实例是指软件系统中用来访问数据库文件集的存储结构以及后台进程的集合,它是存取和控制数据库的软件机制

Oracle 逻辑存储结构

Oracle 逻辑存储结构 逻辑存储结构是Oracle 数据库存储结构的核心内容,对Oracle 数据库的所有操作都会涉及到其逻辑存储结构。数据库的逻辑结构是从逻辑的角度分析数据库的构成,即创建数据库后形成的逻辑概念之间的关系。在逻辑上,Oracle 将保存的数据划分为一个个小单元来进行存储和维护,高一级的存储单元由一个或多个低一级的存储单元组成。Oracle 的逻辑存储单元从小到大依次为:数据块(DA TA BLOCKS )、盘区(EXTENT )、段(SEGMENTS )和表空间(TABLE SPACES ),图2-2显示了各逻辑单位之间的关系。 数据库 ...表空间 表空间段 段盘区 数据块盘区数据块 段段数据库...表空间表空间段段盘区数据块盘区数据块段 段 图2-2 数据库的逻辑存储组成 由图2-2可知,Oracle 数据库由多个表空间组成,而表空间又由许多段组成,段由多个盘区组成,盘区又由多个数据块组成。 1 数据块 数据块是Oracle 用来管理存储空间的最小单元,也是执行数据库输入输出操作时的最小单位。相对应地,操作系统执行输入输出操作的最小单位为一个操作系统块的大小。在操作系统中,执行I/O 操作是以操作系统块为单位,而在Oracle 中,执行的I/O 操作以Oracle 数据块为单位。 Oracle 块的大小是操作系统块大小的整数倍。以Windows NT 操作系统为例,NTFS 格式的磁盘分区一般为4KB 大小,因此Oracle 块的大小为8KB 等。数据块的标准大小由初始化参数DB_BLOCK_SIZE 确定,具有标准大小的块被称为标准块。Oracle 支持在同一个数据库中使用多种大小的块,与标准块大小不同的块称为非标准块。 可以通过查询V$PARAMETER 数据字典,可以获得参数DB_BLACK_SIZE 的值,该参数值同时也是数据块的尺寸大小。例如: SQL> select name,value 2 from v$parameter where name ='db_block_size'; NAME V ALUE --------------------------- -------------------------- db_block_size 8192 在数据块中可以存储各种类型的数据,如表数据、索引数据、簇数据等。无论数据块中存放何种类型的数据,块都具有相同的结构,图2-3列出一个Oracle 块的基本结构。

Oracle体系结构概述

Oracle 体系结构概述 完整的Oracle 数据库系统通常由两个部分组成:实例(INSTANCE )和数据库(DATABASE )。数据库是由一系列物理文件的集合(数据文件,控制文件,联机日志,参数文件等);实例则是由一组Oracle 后台进程/线程以及在服务器分配的共享内存区。 实例和数据库有时可以互换使用,不过二者的概念完全不同。实例和数据库之间的关系是:数据库可以由多个实例装载和打开,而实例可以在任何时间点装载和打开一个数据库。准确地讲,一个实例在其生存期中最多只能装载和打开一个数据库。如果要想再打开其他数据库,必须先丢弃这个实例,并创建一个新的实例。 数据库的主要功能是保存数据,实际上可以将数据库看作是存储数据的容器。数据库的存储结构也就是数据库存储数据的方式,Oracle 数据库的存储结构分为逻辑存储结构和物理存储结构,这两部分是相互独立但又密切相关的。逻辑存储结构主要用于描述在Oracle 内部的组织和管理数据的方式,而物理存储结构则用于描述在Oracle 外部,即操作系统中组织和管理数据的方式。 Oracle 对逻辑存储结构和物理存储结构的管理是分别进行的,两者之间不直接影响。因此Oracle 的逻辑存储结构能够适用于不同的操作系统平台和硬件平台,而不需要考虑物理实现方式。 在启动Oracle 数据库服务器时,实际上是在服务器的内存中创建一个Oracle 实例(即在服务器内存中分配共享内存并创建相关的后台进程),然后由这个实例来访问和控制磁盘中的数据文件。图2-1以最简单的形式展示了Oracle 实例和数据库。Oracle 有一个很大的内存块,称为系统全局区(SGA )。 文件 文件文件文件 文件数据库 SGA 后台进程后台进程后台进程后台进程后台进程后台进程后台进程 实例 图2-1 Oracle 实例和数据库 当用户连接数据库时,实际上是连接到实例中,由实例负责与数据库通信息,然后再将处理结构返回给用户。 Oracle 数据库服务器的后台进程的数量与其工作模式有密切关系。Oracle 服务器处理请求有两种最常见的方式,分别是专用服务器连接和共享服务器连接。在专用服务器连接下,Oracle 数据库会为每个用户请求分配一个专用服务器进程为其提供服务,当用户请求结束后,对应的服务器进程也相应地被终止。如果同时存在大量的用户请求,则需要同等数量的服务器进程提供服务。 而在共享服务器连接下,Oracle 数据库始终保持一定数量的服务器进程,用户的请求首

Oracle体系结构简要介绍

Oracle体系结构简要介绍 1.o racle数据库软件介绍 oracle数据库包括:oracle数据库和oracle实例两个东西。Oracle实例指的是:oracle 启动后占用的内存和后台进程的总称;oracle数据库是实例和数据文件的总称。数据库关闭后数据库实例就不存在了,数据库文件一直存在。 Oracle是由oracle软件和oracle数据库组成,oracle数据库主要指的是三类文件,分别是控制文件(*.ctl)、日志文件(*.log)、数据文件(*.dbf)。 2.o racle中内存结构介绍 oracle数据库启动起来后有两大内存结构,一是SGA(系统全局区),二是PGA,其中SGA 是用来共享的,PGA是用来给进程使用的。

2.1SGA介绍 Sga是就是oracle系统的全局区,在linux和nuix中用ipcs -m命令来查看占用的共享内存。Sga包括:共享池(shared pool)、stream池(stream pool)、大型池(large pool)、java 池、数据库缓冲区高速缓存(buffer cache)、重做日志缓冲区(log buffer)。 其中主要的缓冲区包括:共享池(shared_pool)、数据库高速缓存区(db_cache)、重做日志缓冲区(log_buffer),最容易出问题的也是这三个。 在plsql中可以通过show parameters sga 或者show sga 来查看sga的参数配置。 2.1.1共享池(shard pool) 共享池(shard pool)主要用来缓存SQL语句以及所对应的SQL执行计划。参数是shared_pool_size。 SQL语句的执行计划存放在shard pool中,下次去执行的时候先到shard pool中去找,这样大大减少资源的消耗。 SQL语句的解析以及执行计划的缓存、shard pool的访问,都是有server process 来做的。 2.1.2数据库缓冲区高速缓存(buffer cache) 数据库缓冲区高速缓存(buffer cache)主要用来缓存DBF的数据,这些数据通过SQL语句的执行计划得来的。参数是db_cache_size 。 数据库缓存区高速缓存对应的是数据库写进程(DBWN),数据库写进程(DBWN)对应的是数据文件和控制文件。 2.1.3重做日志缓冲区(log buffer) 重做日志缓冲区(log buffer)主要用来存放日志的。参数是log_buffer。 重做日志缓冲区对应的是日志写进程(LGWR),日志写进程(LGWR)对应的数据文件是重做日志文件,也就是日志文件。 2.1.4stream 池(stream pool) stream 池(stream pool)是由oracle的stream来使用的。参数是streams_pool_size。 2.1.5大型池(large pool) 大型池(large pool)用于为某些大型的进程提供大量的内存分配,如数据备份等。 参数是:lorge_pool_size

(34) Oracle存储结构管理(3)

6.4 管理数据库存储结构(3) 1.重做日志文件的概念 (1)重做日志文件,保存了用户对数据库所作的更新操作(DDL 、DML ),包含的主要信 息是记录事务的开始和结束、事务中每项操作的对象和类型、更新操作前后的数据值等。 (2)重做日志文件是由重做记录构成的,每个重做记录由一组修改相量组成。 (3)用户对数据库所做的修改都是在数据库的数据高速缓冲区中进行的,同时将产生的重 做记录写入重做日志缓冲区。在一定条件下由DBWR 进程将数据高速缓冲区中修改后的结果成批写回数据文件中,而重做日志缓冲区中的重做记录由LGWR 进程周期性的写入重做日志文件。 (4)利用重做日志文件恢复数据库是通过事务的重做(REDO )或回退(UNDO )实现的。 2.重做日志文件的工作过程 (1)每个数据库至少需要两个重做日志文件,采用循环写的方式进行工作。当一个重做日 志文件写满后,进程LGWR 就会移到下一个日志组,称为日志切换,同时信息会写到控制文件中。 (2)重做日志文件工作流程 日志切换 日志切换 重做日志文件1 日志切换 重做日志文件2 重做日志文件3 1,4,7,… 2,5,8,… 3,6,9,… LGWR 重做日 志缓冲区 (3)为了保证LGWR 进程的正常进行,通常采用重做日志文件组(GROUP),每个组中包 含若干完全相同的重做日志文件成员(MEMBER),这些成员文件相互镜像。 MENBER1_1 MENBER1_2 MENBER2_1 MENBER2_2 MENBER3_1 MENBER3_2 GROUP1 GROUP2 GROUP3 DISK 1 DISK 2 3.重做日志文件的管理 (1)添加重做日志文件组 (2)添加重做日志文件组成员文件 (3)改变重做日志文件组成员文件的名称和位置 (4)删除重做日志文件组成员 (5)删除重做日志文件组 (6)重做日志文件切换 (7)清空重做日志文件组 (8)查看重做日志文件信息

oracle物理结构

oracle物理结构 在一个服务器中,每一个运行的数据库都有一个数据库实例(instancename) 相联系。数据库启动时,系统首先在服务器内存中分配系统全局区(SGA),即构成了oracle的内存结构。然后启动若干个常驻内存的操作系统进程,即组成了oracle的进程结构。除此之外,还有数据库的物理与逻辑结构。数据库体系统结构图可以参考第一篇。在接下来的篇幅中将分五篇来详细说明oracle数据库的体系结构。 ?oracle物理结构 ?oracle逻辑结构 ?oracle内存结构 ?oracle进程结构 ?oracle连接配置结构 本篇说明物理结构。 物理结构,即oracle数据库使用的操作系统文件结构。对于数据库物理结构文件,不同的oracle版本,不同的操作系统平台上有不同的存储目录结构。 ?winnt | d:/oracle/product/10.1.0/oradata/DB_NAME/*.*(oracle 10g);d:/orant/database/*.*(oracle7,oracle8) ?Unix | /home/app/oracle/product/10.1.0/oradata/DB_NAME/*.*(10g);/home/app/oradata/db_name/*. *(8i,9i) 数据库的物理结构文件按其作用可以分为三类: ?数据文件 ?日志文件 ?控制文件 物理存储结构是指从物理角度分析数据库的构成,即Oracle数据库创建后所使用的操作系统文件。从物理存储结构上分析:每一个Oracle数据库是主要由三种类型的文件组成:数据文件、日志文件和控制文件,另外还包括一些参数文件。其中:数据文件的扩展名为.DBF;日志文件的扩展名为.LOG;控制文件的扩展名为.CTL。 一、数据文件 数据文件(Data File)用于存储数据库数据的文件,如表中的记录,索引,数据字典信息等都存储于数据文件中。在存取数据时,Oracle数据库系统首先从数据文件中读取数据,并存储在内存中的数据缓冲区中。当用户查询数据时,如果所要查询的数据不在数据缓冲区中,则这时Oracle数据库进行启动相应的进程从数据文件中读取数据,并保存到数据缓冲区中。当用用户修改数据时,用户对数据的修改保存在数据缓冲区中,再由oracle后台进程DBWR决定如何将其写入到数据文件中。这样的存取方式减少了磁盘的I/O操作,提高了系统的响应性能。 一个Oracle数据库往往有多个数据文件。这里需要注意的是:当向Oracle数据库中某个表添加数据时,输入到表中的数据可能包含在一个数据文件中,也可能包含在多个数据文件中。换句说话,当在Oracle数据库为中创建一个表时,Oracle数据库系统不会为此在磁盘在上创建一个数据文件。

Oracle体系结构简介

Oracle体系结构简介 一、数据库(Database) 数据库是一个数据的集合,不仅是指物理上的数据,也指物理、存储及进程对象的一个组合。Oracle是关系型数据库治理系统(RDBMS)。 二、实例(Instance) 数据库实例(也称为服务器Server)就是用来访问一个数据库文件集的一个存储结构及后台进程的集合。它使一个单独的数据库可以被多个实例访问(也就是ORACLE并行服务器-- OPS)。实例和数据库的关系如下 决定实例的组成及大小的参数存储在init.ora文件中。 三、内部结构 表、列、数据类型(T able、Column、Datatype)Oracle中是以表的形式存储数据的,它包含若干个列;列是表的属性的描述;列由数据类型和长度组成;Oracle中定义的数据类型主要有CHAR、VARCHAR2、NUMBER、DATE、LONG、LOB、BFILE等,具体的数据类型情况将在本栏目的相关文档中具体介绍。 约束条件(Constraint)表中以及表间可以存在一些数据上的逻辑关系、限制,也就是约束。Oracle中的约束主要有主键(PK)、外键(FK)、检查(CHECK)、唯一性(UNIQUE)等几种;拥有约束的表中每条数据均必须符合约束条件。 抽象数据类型(Abstract Datatype)可以利用CREATE TYPE命令创建自定义的抽象数据类型。 分区(Partition)可以利用分区将大表分隔成若干个小的存储单元,逻辑上仍然是一个完整的独立单一实体,以减小访问时数据的查找量,提高访问、存储效率 用户(User)用户不是一个物理结构,但是它与数据库的对象拥有非常重要的关系--用户拥有数据库对象,以及对象的使用权。 模式(Schema)用户帐号拥有的对象集合称为模式。 索引(Index)数据库中每行记录的物理位置并不重要,Oracle为每条记录用一个ROWID来标识,ROWID记录了记录的准确位置。索引是供用户快速查找到记录的数据库结构。ORACLE8中有簇索引、表索引、位图索引三种索引形式。 簇(Cluster)经常被频繁引用的表可以在物理位置上被存储在一起,簇就是用来治理这种集中存储的。集中存储可以减少I/O次数,以达到性能的改善和提高。

ORACLE数据库块的详细存储结构

ORACLE数据库块的详细存储结构 数据库----存储数据的容器 数据库的主要功能是保存数据。 数据库的存储结构---数据库存储数据的方式 oracle数据库的存储结构: 逻辑存储结构:oracle内部的组织和管理数据的方式 物理存储结构:oracle外部(操作系统)组织和管理数据的方式 oracle对逻辑存储结构和物理存储结构的管理是分别进行的。 (一)逻辑存储结构: oracle在逻辑上将保存的数据划分为一个个小单元来进行存储和维护,更高一级的逻辑存储结构都是由这些基本的小单元组成的。 逻辑结构类型:从小到大块-->区-->段-->表空间 (1). 块:Oracle用来管理存储空间的最基本单元,也是最小的逻辑存储结构。Oracle数据库在进行输入输出时,都是以块为单位进行逻辑读写操作的。 块---->操作系统快的整数倍(1、2、4等) Oracle块的大小在数据库创建的时候决定的,以后不能修改。 区:比块高一级的逻辑存储结构由连续的快组成 oracle在进行存储空间的分配和回收是以区为基本单位的 段:多个区组成这些区可以是连续的,也可以是不连续的。当用户在数据库中创建各种具有实际存储结构的对象时(保存有数据的对象),比如表、索引等,Oracle将为这些对象创建“段”。一般一个对象只拥有一个段 表空间:最高级的逻辑存储结构每个数据库都是由一个或多个表空间组成,在创建数据库时会自动创建一个默认的SYSTEM表空间。 通过使用表空间---Oracle将所有相关的逻辑结构和对象组合在一起。 逻辑结构关系: 块--->一张张白纸区--->白纸组成的本子段--->多个本子放到一个文件袋中 表空间--->文件柜(存放多个文件袋) (2)☆. 块的管理:块的可用存储空间进行管理 块结构: 块的头部信息区 快头部:包含块的一般属性信息如块的物理地址、块所属的段的类型 表目录:如果快中存储的数据是表数据则在表目录中保存这个表的相关信息行目录:行记录的相关信息如ROWID 块的存储区: 空闲空间行空间

Oracle体系结构图以及分析

Oracle体系结构 Oracle服务器 –提供一个开放的、全面的、完整的信息管理平台 –Oracle实例和Oracle数据库组成 Oracle实例 ?访问Oracle数据库的一种方法 ?只能是打开一个仅仅只有一个数据库 ?由内存和后台进程组成 Oracle 实例由SGA 内存结构和用于管理数据库的后台进程组成。实例是通过使用对每个操作系统特定的方法来进行标识的。实例一次只能打开和使用一个数据库。

系统全局区 SGA 是用于存储数据库信息的内存区,该信息为数据库进程所共享。它包含Oracle 服务器的数据和控制信息。它是在Oracle 服务器所驻留的计算机的虚拟内存中得以分配。SGA 由几种内存结构组成: ? 共享池用于存储最近执行的SQL 语句和最近使用的数据字典数据。这些SQL 语句可以是用户进程提交的,也可以是从数据字典读取的(在存储过程的情况中)。 ? 数据库缓冲区高速缓存用于存储最近使用的数据。这些数据从数据文件读取,或者写入数据文件。 ? 重做日志缓冲区用于跟踪服务器和后台进程对数据库所做的更改。 在SGA 中还有两种可选的内存结构: ? Java 池:用于存储Java 代码 ? 大型共享池:用于存储并不与SQL 语句处理直接相关的大型内存结构。例如在备份和复原操作过程中复制的数据块。 后台进程 实例中的后台进程执行用于处理并行用户请求所需的通用功能,而不会损害系统的完整性和性能。它们把为每个用户运行的多个Oracle 程序所处理的功能统一起来。后台进程执行I/O 并监控其它Oracle 进程以增加并行性,从而使性能和可靠性更加优越。 根据配置情况,Oracle 实例可以包括多个后台进程,但是每个实例都包括下面五个必需的后台进程: ? 数据库写入程序(DBW0) 负责将更改的数据从数据库缓冲区高速缓存写入数据文件。? 日志写入程序(LGWR) 将重做日志缓冲区中注册的更改写入重做日志文件。 ? 系统监控程序(SMON) 检查数据库的一致性,如有必要还会在数据库打开时启动数据库的恢复。 ? 过程监视器(PMON) 负责在一个Oracle 进程失败时清理资源 ? 检查点进程(CKPT) 负责在每当缓冲区高速缓存中的更改永久地记录在数据库中时,更新控制文件和数据文件中的数据库状态信息。 连接到Oracle Server 1.建立一个用户连接 2.创建一个会话 用于连接例程的进程 用户在给Oracle 提交SQL 语句之前,必须同实例连接起来。 ? 用户启动SQL*Plus 之类的工具,或者运行使用Oracle Forms 之类的工具开发的应用程序。这个应用程序或者工具就在用户进程中执行。 ? 在最基本的配置中,当用户登录到Oracle 服务器时,运行Oracle 服务器的计算机上就会创建一个进程。这个进程称为服务器进程。服务器进程代表在客户机上运行的用户进程与Oracle 实例通信。服务器进程代表用户执行SQL 语句。 连接 连接是用户进程和Oracle 服务器之间的通信路径。数据库用户可以用下面三种方式之一连接到Oracle 服务器: ? 用户登录到运行Oracle 实例的操作系统上,然后启动访问该系统中的数据库的应用程序或工具。通信路径是使用主机操作系统上的交互进程通信机制建立的。 ? 用户在本地计算机上启动应用程序或工具,然后通过网络连接到运行Oracle实例的计算

Oracle 数据库逻辑存储结构管理

一、实验目的: (1)掌握Oracle 数据库表空间的管理。 (2)掌握数据库表空间不同状态时对数据操作的影响。 (3)分别创建永久性表空间、临时性表空间、撤销表空间。 (4)完成表空间的管理操作,包括修改表空间大小、修改表空间的可用性、修改表空间的读写、表空间的备份、表空间信息查询、删除表空间。 二、实验环境: WINDOWS 7、ORACLE 11g 二、实验内容: (1)为BOOKSALES 数据库创建一个名为BOOKTBS1 的永久性表空间,区采用自动扩展方式,段采用自动管理方式。 SQL> create tablespace booktbs1 datafile 2 'D:\app\Administrator\oradata\orcl\hrtbs1_1.dbf' size 50m; Tablespace created (2)为BOOKSALES 数据库创建一个名为BOOKTBS2 的永久性表空间,区采用定制分配,每次分配大小为1M,段采用手动管理方式。 SQL> create tablespace booktbs2 datafile 2 'D:\app\Administrator\oradata\orcl\booktbs2.dbf' size 50m 3 extent management local uniform size 1m 4 segment space management manual; Tablespace created (3)为BOOKSALES 数据库创建一个临时表空间TEMP02。 SQL> create temporary tablespace temp02 tempfile 2 'D:\app\Administrator\oradata\orcl\temp02.dbf' size 20m; Tablespace created (4)将BOOKSALES 数据库临时表空间TEMP 和TEMP02 都放入临时表空间组TEMPGROUP 中。 SQL> alter tablespace temp02 tablespace group tempgroup; Tablespace altered SQL> alter tablespace temp tablespace group tempgroup; Tablespace altered (5)为BOOKSALES 数据库创建一个名为UNDO02 的撤销表空间,并设置为当前数据库的在线撤销表空间。SQL> create undo tablespace undo02 datafile 2 'D:\app\Administrator\oradata\orcl\undo02.dbf' size 20m; Tablespace created (6)为BOOKSALES 数据库的表空间BOOKTBS1 添加一个大小为50M 的数据文件,以改变该表空间的大小。 SQL> alter tablespace booktbs1 add datafile 2 'D:\app\Administrator\oradata\orcl\bookdata01.dbf' size 50m; Tablespace altered (7)将BOOKSALES 数据库的表空间BOOKTBS2 的数据文件修改为可以自动扩展,每次扩展5M,最大容量为100M。 SQL> alter database datafile 2 'D:\app\Administrator\oradata\orcl\booktbs2.dbf' 3 autoextend on next 5m maxsize 100m; Database altered (8)创建一个名为test 的表,存储于BOOKTBS1 表空间中,向表中插入一条记录。 SQL> create table test(id number primary key,name char(20)) tablespace booktbs1; Table created

ORACLE数据库习题

1、ORACLE数据库物理结构包括以下三种文件,以下不属于的就是( ) A.系统文件 B.日志文件 C.数据文件 D.控制文件 2、下列哪个命令就是用于ORACLE中数据导出的 ( ) A.exp B.imp C.input D.output 3、()就是用于控制数据访问的语言。 A.DML B.DDL C.DCL D.DLL 4、NULL表示什么() A.0 B.空格 C.值 D.没有值 5、下面四个语句中哪一个就是正确的?() A.SELECT * , ENAME FROM EMP; B. DELETE * FROM EMP; C. SELECT DISTINCT EMPNO ,HIREDATE FROM EMP; D.SELECT ENAME|SAL AS “name” FROM EMP ; 6、假定有一张表用户表users,其中一身份证字段ID_card。为了维护数据的完整性,在设计数据库时,最好对ID_card字段添加约束,请问应该添加什么约束() A. primary key B.check C.default D.not null 7、下面哪一个like命令会返回名字象HOTKA的行?() A.where ename like ‘_HOT%' B. where ename like ‘H_T%' C. where ename like ‘%TKA_' D. where ename like ‘%TOK%' 8、()操作符只返回由第一个查询选定但就是没有被第二个查询选定的行。 A、UNION B、UNION ALL C、INTERSECT D、MINUS 9.EMPLOYEES表的结构如下:

Oracle数据文件结构

Oracle的数据结构分为物理结构和逻辑结构 物理结构:操作系统的数据块数据文件datafiles 逻辑结构:最小数据库block → extent → segement → tablespace →databases 其中对于一个tablespace可以有多个 datafiles,一个datafiles只能属于一个tablespace 对于segement可以不再一个datafiles文件上,但是对于 extent和blocks 则必须在一个datafiles上面

Oracle的主要数据文件有: 参数文件spfile 密码文件 orapwd 数据文件 datafiles 联机重做日志文件 redo log files 控制文件control files 归档日志文件 archive log files 对于 datafile 数据文件通过 DBWn 进程与 instance 的 db buffer cache 完成通信 对于 redo log file 通过 LGWR进行完成与instance 的 redo log buffer cache 通信 对于redo log file 一般情况是有好几组,当一个文件写满以后会接着写下一个redo log file 如果所有的redo log file都写满了则会从头开始覆盖第一个redo log file 文件中的数据南京宝云ocp课程开课啦!

对于控制文件 control file 一般情况会有三组一样的,如果有一个文件损坏,则会通过其他的两个控制文件进行修复这个损坏的文件,并且启动数据库,建议对于三组控制文件存放到不同的磁盘块。在数据库启动的时候,oracle读取control file中的相关指标完成数据库的初始化配置并且启动oracle 数据库实例。

(36) Oracle存储结构管理(5)

6.6 管理数据库存储结构(5) 1.主要目标 ?掌握Oracle数据库逻辑结构组成 ?掌握表空间的作用及其管理 ?掌握扩展区的结构,了解扩展区的管理 ?掌握段的作用,了解段的管理 2. 逻辑存储结构概述 ?概念 ?逻辑存储结构是从逻辑的角度来分析数据库的构成的,是数据库创建后利用逻辑概 念来描述Oracle数据库内部数据的组织和管理形式。在操作系统中,没有数据库逻 辑存储结构信息,而只有物理存储结构信息。数据库的逻辑存储结构概念存储在数 据库的数据字典中,可以通过数据字典查询逻辑存储结构信息。 ?逻辑结构单元类型 ?数据块:BLOCK ?区:EXTENT ?段:SEGMENT ?表空间:TABLESPAC E ?数据库的存储层次关系 ?数据库逻辑存储结构之间的关系 3.表空间的基本概念 (1)主要内容

?表空间的概念 ?表空间的分类 ?表空间的管理方式 ?表空间的管理策略 (2)表空间概念 ?Oracle数据库在逻辑上可以划分为一系列的逻辑空间,每一个逻辑空间就可以称为一个表空间。 ?一个数据库由有一个或多个表空间构成,不同表空间用于存放不同应用的数据,表空间大小决定了数据库的大小。 ?一个表空间对应一个或多个数据文件,数据文件大小决定了表空间的大小。一个数据文件只能从属于一个表空间。 ?表空间是存储模式对象的容器,一个数据库对象只能存储在一个表空间中(分区表和分区索引除外),但可以存储在该表空间所对应的一个或多个数据文件中。若表空间只有一个数据文件,则该表空间中所有对象都保存在该文件中;若表空间对应多个数据文件,则表空间中的对象可以分布于不同的数据文件中。 ?数据库、表空间、数据文件、数据库对象之间的关系 数据库 表空间1 数据文件1 数据库对象1 数据文件2 数据库对象3 数据库对象2 表空间2 数据文件3 数据库对象4 数据文件4 数据库对象5 数据库对象6 (3)表空间的分类 ?系统表空间 ?SYSTEM 表空间,主要存储: ?数据库的数据字典; ?PL/SQL程序的源代码和解释代码,包括存储过程、函数、包、触发器等; ?数据库对象的定义,如表、视图、序列、同义词等。 ?SYSAUX表空间 ?SYSAUX表空间是Oracle 10g新增的辅助系统表空间,主要用于存储数据库组件等信息,以减小SYSTEM表空间的负荷。 ?在通常情况下,不允许删除、重命名及传输SYSAUX表空间。 ?非系统表空间 ?撤销表空间 ?专门进行回滚信息的自动管理,由UNDO_TABLESPACE参数设置。 ?临时表空间 ?专门进行临时数据管理的表空间 ?在数据库实例运行过程中,执行排序等SQL语句时会产生大量的临时数据,这些临时数据将保存在数据库临时表空间中。 ?默认临时表空间 ?用户表空间

相关主题
文本预览
相关文档 最新文档