实验2 Oracle数据库体系结构_V2013

合集下载

实验2 Oracle数据库体系结构

实验2 Oracle数据库体系结构

实验2_Oracle数据库体系结构【实验目的与要求】熟悉Oracle数据库的物理结构理解Oracle的工作机制理解Oracle的软件结构【实验内容与步骤】2.0实验准备以系统管理员身份登入到数据库。

2.1物理存储结构2.1.1 数据文件给出运行结果截图:练习:用desc命令查看V$datafile视图的结构,并试着查询更详细的信息。

2.1.2 日志文件通过如下方式查看重做日志文件相关信息:给出运行结果截图:练习:用desc命令查看V$log视图的结构,并试着查询控制文件更详细的信息。

2.1.3 控制文件通过如下方式查看控制文件相关信息:给出运行结果截图:练习:用desc命令查看V$controlfile视图的结构,并试着查询更详细的信息。

2.1.4 参数文件通过如下方式查看参数文件相关信息:给出运行结果截图:阅读结果并理解各数据项的含义。

练习:在%oracle_home%(如C:\oracle\product\10.1.0\db_1\database)找到名为SPFileSID.ora(如:SPfileTestdb.ora)和init.ora的文件,此文件即为参数文件,用记事本打开它们,阅读其内容并理解各数据项的作用。

2.2Oracle逻辑存储结构2.2.1查看表空间的名称及大小执行以下语句,并给出运行结果。

给出运行结果截图:2.2.2查看表空间物理文件的名称及大小执行以下语句,并给出运行结果。

给出运行结果截图:2.2.3查看回滚段名称及大小执行以下语句,并给出运行结果。

给出运行结果截图:2.2.4查看所有表空间对应的数据文件名:SQL>select distinct file_name,tablespace_name,AUTOEXTENSIBLE from dba_data_files;给出运行结果截图:2.2.5查看表空间的使用情况:SQL>select sum(bytes)/(1024*1024) as free_space,tablespace_namefrom dba_free_space group by tablespace_name;给出运行结果截图:2.2.6数据库各个表空间增长情况的检查:SQL>select A.tablespace_name,(1-(A.total)/B.total)*100 used_percentFrom (select tablespace_name,sum(bytes) total from dba_free_space group by tablespace_name) A,(select tablespace_name,sum(bytes) total from dba_data_files group by tablespace_name) B whereA.tablespace_name=B.tablespace_name;给出运行结果截图:2.2.7查看各个表空间占用磁盘情况:SQL>col tablespace_name format a20;SQL>select b.file_id file_ID,b.tablespace_name tablespace_nameb.bytes Bytes,(b.bytes-sum(nvl(a.bytes,0))) used,sum(nvl(a.bytes,0)) free,sum(nvl(a.bytes,0))/(b.bytes)*100 Percentfrom dba_free_space a,dba_data_files bwhere a.file_id=b.file_idgroup by b.tablespace_name,b.file_id,b.bytesorder by b.file_id;给出运行结果截图:2.2.8 Oracle所有回滚段状态的检查:SQL>select segment_name,owner,tablespace_name,initial_extent,next_extent,dba_rollback_segs.status from dba_rollback_segs,v$datafilewhere file_id=file#;给出运行结果截图:2.2.9 Oracle回滚段扩展信息的检查:SQL>col name format a10SQL>set linesize 140SQL>select substr(name,1,40) name,extents,rssize,optsize,aveactive,extends,wraps,shrinks,hwmsize from v$rollname rn,v$rollstat rswhere (n=n);给出运行结果截图:2.2.10查看回滚段的使用情况,哪个用户正在使用回滚段的资源:SQL>select ername, from v$transaction t,v$rollstat r,v$rollname u,v$session swhere s.taddr=t.addr and t.xidusn=n and n=n order by ername;给出运行结果截图:2.3Oracle内存与进程结构2.3.1 查看sga情况:SQL>SELECT NAME, BYTESFROM SYS.V_$SGASTAT ORDER BY NAME ASC;给出运行结果截图:2.3.2数据库共享池性能检查:SQL>Select namespace,gets,gethitratio,pins,pinhitratio,reloads,Invalidationsfrom v$librarycachewhere namespace in ('SQLAREA','TABLE/PROCEDURE','BODY','TRIGGER');给出运行结果截图:2.3.3检查共享内存的剩余情况:SQL>select request_misses, request_failuresfrom v$shared_pool_reserved;给出运行结果截图:2.3.4数据高速缓冲区性能检查:SQL>select 1-p.value/(b.value+c.value) "db buffer cache hitratio"from v$sysstat p,v$sysstat b,v$sysstat cWhere ='physical reads' and ='db block gets' and ='consistent gets';给出运行结果截图:2.3.5检查buffer pool HIT_RATIO执行SQL>select name, (physical_reads/(db_block_gets+consistent_gets)) "MISS_HIT_RATIO"FROM v$buffer_pool_statisticsWHERE (db_block_gets+ consistent_gets)> 0;给出运行结果截图:2.3.6查看排序段的性能:SQL>SELECT name, valueFROM v$sysstatWHERE name IN ('sorts (memory)', 'sorts (disk)');给出运行结果截图:2.3.7找到与所连接的会话有关的当前等待事件:SQL>select SW.Sid,ername,SW.Event,SW.Wait_Time,SW.State,SW.Seconds_In_Wait SEC_IN_WAITfrom v$session S,v$session_wait SWwhere ername is not null and SW.Sid=S.Sidand SW.event not like '%SQL*Net%' order by SW.Wait_Time Desc;给出运行结果截图:2.3.8 查看数据库中某用户,正在运行什么SQL语句SQL>SELECT SQL_TEXTFROM V$SQLTEXT T, V$SESSION SWHERE T.ADDRESS=S.SQL_ADDRESSAND T.HASH_value=S.SQL_HASH_value AND S.MACHINE='XXXXX' OR USERN AME='WACOS';给出运行结果截图:2.3.9检查数据重载比率:SQL>select sum(reloads)/sum(pins)*100 "reload ratio"from v$librarycache;给出运行结果截图:2.3.10 检查数据字典的命中率:SQL>select 1-sum(getmisses)/sum(gets) "data dictionary hitratio"from v$rowcache;给出运行结果截图:2.4其他2.4.1 查看数据库库对象:SQL>select owner, object_type, status, count(*) count# from all_objects group by owner, object_type, status;给出运行结果截图:2.4.2查看数据库的创建日期和归档方式:SQL>Select Created, Log_Mode, Log_Mode From V$Database;给出运行结果截图:2.4.3查看还没提交的事务:SQL>select * from v$locked_object;给出运行结果截图:2.4.5等待时间最多的5个系统等待事件的获取:SQL>select * from (select * from v$system_eventwhere event not like 'SQL%' order by total_waits desc)where rownum<=5;给出运行结果截图:2.4.6 查看当前SQL*PLUS用户的sid和serial#:SQL>select sid, serial#, status from v$session where audsid=userenv('sessionid');给出运行结果截图:2.4.7 查看当前数据库的字符集:SQL>select userenv('language') from dual;给出运行结果截图:2.4.8 查看客户端登陆的IP地址:SQL>select sys_context('userenv','ip_address') from dual;给出运行结果截图:2.5作业与思考练习题I.管理控制文件1、现有控制文件的位置及其名称是什么?提示:查询动态性能视图V$CONTROLFILE。

第2章 Oracle数据库的体系结构

第2章 Oracle数据库的体系结构
数据库是存储数据的多个物理文件的集合 ,它 是静态的、永久的。 数据库实例是用户访问数据库的中间层,是使 用数据库的手段,它为用户访问数据库提供了 必要的内存空间和多个Oracle进程,它是动态 的、临时的。
因此,Oracle实例是由内存空间和Oracle 进程两部分组成。
Oracle实例结构图
1.系统全局区SGA
数据缓存区(database buffer cache) :最近 使用过的数据 。 重做日志缓冲区(redo log buffer) :记录了 用户对数据库执行的操作,被循环使用 。 共享池(shared pool) :包含了库缓存区( library cache)、数据字典缓存区(dictionary cache)、并行执行消息缓冲区(buffers for parallel execution messages),以及用于系 统控制的各种内存结构。
数据文件又可以分为以下几种:
系统数据文件 回滚数据文件 临时数据文件 用户数据文件 系统辅助数据文件 示例数据文件
2.1.2 日志文件
日志文件记录了用户对数据库的修改信息( 如增加、删除、修改),名字通常为 REDO*.LOG格式。
日志文件也叫重做日志文件或重演日志文件 (Redo Log Files)。 日志组是日志文件的逻辑组织单元,每个日志 组中有一个或多个日志文件。 同一个日志组中的多个日志文件具有相同的信 息,它们是镜相关系
用户进程和服务进程之间的对应关系是由 Oracle数据库的工作模式决定的。数据库通 常有两种工作模式:
专用服务器模式 共享服务器模式
3.后台进程(background process)
Oracle实例启动时,为了保证该实例的正常使 用,系统将为该实例启动一些后台进程。 这些进程是操作数据库的基础,不管有没有用 户连接数据库,这些进程都会被启动。

描述oracle数据库体系结构的组成及其关系。

描述oracle数据库体系结构的组成及其关系。

描述oracle数据库体系结构的组成及其关系。

Oracle数据库体系结构由以下几个部分组成:1. 实例(Instance):实例是在计算机内存中运行的一个进程,负责管理数据库的操作。

每个实例都有自己的内存空间和进程,可以同时运行多个实例。

2. 数据库(Database):数据库是一个存储数据的容器,包含了表、视图、索引等对象。

一个实例可以管理多个数据库,每个数据库由一个或多个数据文件组成。

3. 数据文件(Data File):数据文件是用来存储数据库的实际数据的文件,包含了表、索引等对象的数据。

一个数据库可以有多个数据文件,每个数据文件具有独立的文件名和路径。

4. 控制文件(Control File):控制文件是用来记录数据库的结构和状态信息的文件,包括数据库名、数据文件的路径、表空间的信息等。

一个数据库通常有一个或多个控制文件。

5. 日志文件(Redo Log File):日志文件是用来记录数据库的变化操作的文件,包括数据更改、事务回滚等。

日志文件用于实现数据库的恢复和数据的一致性。

每个数据库通常有多个日志文件。

6. 表空间(Tablespace):表空间是数据库中逻辑数据存储的单位,用来管理和组织对象。

每个表空间由一个或多个数据文件组成,不同表空间可以包含不同的数据对象。

7. 段(Segment):段是逻辑存储结构的基本单位,是指数据库中的一个连续空间。

每个表、索引等对象都占用一个或多个段。

8. 区(Extent):区是段的扩展单位,是一组连续的数据块。

一个段由多个区组成。

9. 块(Data Block):块是数据库存储的最小单位,通常是8KB大小。

每个数据文件由多个块组成。

以上组成部分之间的关系如下:- 实例与数据库:一个实例可以管理多个数据库,每个数据库都有自己的实例。

- 数据库与数据文件:一个数据库可以由一个或多个数据文件组成,每个数据文件存储数据库的实际数据。

- 实例与控制文件:一个实例通常有一个或多个控制文件,控制文件记录了数据库的结构和状态信息。

Oracle数据库体系结构

Oracle数据库体系结构

Oracle数据库体系结构⼀、oracle数据库体系结构基本组成:Oracle server:⼀般情况下是⼀个instance和⼀个database组成⼀般:1个instance只能对应⼀个数据库。

特殊:1个数据库可以有多个instance(RAC)⼀台服务器上同时可装多套版本的数据库软件,每个数据库软件可建多个数据库,但是每个数据库只对应⼀个instance,也可以理解成每个数据库只有⼀个SID 。

利⽤DBCA建出的每个库都是相对独⽴的,在同⼀服务器上如果创建多库必须将环境变量的参数⽂件做区分,并且在对实例切换时需如下操作:connect ⽤户名/密码@实例的服务名1.1 oracle服务器和实例1.1.1实例由内存区和后台进程组成①内存区:数据库⾼速缓存、重做⽇志缓存、共享池、流池以及其它可选内存区(如Java池),这些池也称为数据库的内存结构②后台进程:包括系统监控进程(SMON)、进程监控(PMON)、数据库写进程(DBWR)、⽇志写进程(LGWR)、检验点进程(CKPT)、其它进程(SMON,如归档进程、RECO进程等)③注:要访问数据库必须先启动实例,实例启动时先分配内存区,然后再启动后台进程,后台进程执⾏库数据的输⼊、输出以及监控其它Oracle进程。

在数据库启动过程中有五个进程是必须启动的,它们是系统监控进程(SMON)、进程监控(PMON)、数据库写进程(DBWR)、⽇志写进程(LGWR)、检验点进程(CKPT),否则实例⽆法创建。

1.1.2服务器Oracle服务器由数据库实例和数据⽂件组成,也就是我们常说的数据库管理系统。

数据库服务器除了维护实例和数据库⽂件之外,还在⽤户建⽴与服务器的连接时启动服务器进程并分配PGA1.2 oracle数据库逻辑结构表空间:据库的基本逻辑结构,是⼀系列数据⽂件的集合;段:不同类型数据在数据库中占⽤的空间,有许多区组合⽽成;区:由连续的块组成,⽬的是为数据⼀次性预留⼀个较⼤的空间,oracle为存储空间进⾏分配回收都是以区为单位的;块:最⼩的存储单位,在创建数据库时指定,不能修改。

2_ORACLE数据库体系结构

2_ORACLE数据库体系结构
系统结构决定数据库是如何使用计算机内存、硬件和网络,以及 哪个进程或程序运行在哪台机器上。 ORACLE系统由ORACLE物理文件、内存结构、ORACLE进程三部分组 成,如下图:
服务器
内存结构 ORACLE进程
内存
数据库
物理文件
磁盘
ORACLE数据库系统结构
2.2.1 内存结构
ORACLE使用机器内存来存放常用信息和所有 运行在该机器上的ORACLE程序。ORACLE能用的内 存越多,速度就越快。如有可能,ORACLE使用机 器的虚拟内存。再操作系统级别上,内存的 ORACLE数据结果和程序被交换到磁盘上。 ORACLE把内存分为系统全局区(SGA)和程序 全局区(PGA)
ORACLE数据库逻辑结构___表空间(续) 续
任何数据库至少有一个表空间(称为SYSTEM表空间)它在建立数 据库时自动建立。其它表空间必须用CREATE TABLESPACE命令建立, 或使用ALTER TABLESPACE修改已经存在的表空间。 逻辑上讲,表空间又是由段、区间和数据块组成的。
表空间、数据文件的关系
每个表空间由一个或多个文件组成。这些文件称为数据 文件。一个数据文件一旦加入到一个表空间中,就不能再从 这个表空间移走,也不能再加入到其它表空间中。 数据库、表空间、数据文件三者之间的关系可用图表示如下: System 表空间
表空间2 表空间3 表空间4
ORACLE数据库系统结构
ORACLE物理文件
物理文件是数据库的基础。ORACLE把数据库的数据都放在物理文 件中。这些文件分为三类:数据文件、控制文件、日志文件和初始化文 件。 数据文件:ORACLE把用户信息存储在物理文件中。如,表、索引、 数据字典等等。ORACLE有一个或多个数据文件组成。这些文件被ORACLE 格式化为块(ORACLE块)来管理文件的存储空间,这些文件逻辑上存于表 空间中。V$DATAFILE和DBA_DATA_FILES中记录了数据文件的信息。 控制文件:包含关于数据库的物理结构和状态的有关信息,包括数 据库名、数据库文件总数和名称、日志文件名、同步信息等。ORACLE通 过控制文件保持数据库的完整性,决定恢复时使用那些日志文件。一个 数据库至少有一个控制文件,为了保证数据库的安全通常在不同的设备 上建立多个控制文件。控制文件由数据库自动维护,更新数据库的状态 变化信息。

oracle体系结构

oracle体系结构

实验二:oracle体系结构*注意:将你做的实验代码及结果都粘贴在文档中。

* 实验内容:(使用SQL *Plus环境)一、逻辑存储结构1.显示参数文件SQL> show parameter spfile2.查看数据块的大小Show parameter db_block_sizeSQL> select tablespace_name from dba_tablespaces;4.查看SCOTT用户的段类型及名称SQL> select segment_type,segment_name 2 from dba_segments3 where owner='SCOTT';5.查看表空间名称desc dba_tablespaces6.查看表空间对应的数据文件名SQL> select file_name,tablespace_name2from dba_data_files;1.查看SGA信息desc v$sga2.查看数据缓冲区的大小Show parameter db_cache_size3.查看日志缓冲区的大小1.show parameter log_buffer (两种方法)2.Select name,value from v$parameterWhere name like ‘%buffer’;4. 查看共享池的大小Show parameter shared_pool_sizeShow parameter large_pool_size6. 查看JA V A池的大小Show parameter java_pool_sizeShow parameter sort_area_size三、Oracle的后台进程1.用Windows管理助手查看当前的进程信息。

P38图2. 查看启动的后台进程名称SQL> select name,description from v$bgprocess2 where paddr!='00';四、补充内容1.查看数据库的创建日期和归档方式: V$Database SQL> Select Created, Log_Mode2 From V$Database;select host_name from v$instance;五、修改数据库为归档模式的方法:1.登录数据库SQL> connect/as sysdba2.关闭数据库SQL> shutdown immediate3.启动装载数据库SQL> startup mount4.修改数据库为归档模式SQL> alter database archivelog;5.打开数据库SQL> alter database open;6.查看归档模式列表SQL> archive log list。

Oracle数据库系统结构

Oracle数据库系统结构

Oracle数据库系统结构Oracle数据库系统结构有数据库结构和物理存储结构组成。

数据库:实例●SGA数据高速缓冲区、日志缓冲区、共享池、大型池、Java池、流池、其它●后台进程SMON、PMON、DBWR、CKPT、LGWR、ARCH、其它数据文件、控制文件、重做日志文件、归档文件Oracle数据库的存储结构包括物理存储结构和逻辑存储结构物理存储结构主要描述Oracle数据库外部的存储,即在操作系统中如何组织和管理数据,与具体的操作系统有关。

逻辑存储结构主要描述Oracle数据库内部数据的组织和管理,与操作系统没有关系。

物理存储结构是逻辑存储结构在物理上的、可见的、可操作的、具体的体现形式。

Oracle数据库物理存储结构数据库包括:数据文件、控制文件、重做日志文件、归档文件、初始化参数文件、跟踪文件、口令文件、警告文件、备份文件、其他文件数据文件:用于存储数据库中的所有数据控制文件:用于记录和存储数据库的物理存储结构信息重做日志文件:用于记录外部程序多数据库的改变操作归档文件:用于保存已经写满的重做日志文件初始化参数文件:用于设置数据库启时的参数初始值跟踪文件:用于记录用户进程、数据库后台进程等的运行情况口令文件:用于保存具有SYSDBA、SYSOPER权限的用户名和SYS用户口令警告文件:用于记录数据库的重要活动以及发生的错误备份文件:用于存放数据库备份所产生的文件数据文件及管理数据文件的内容用于保存数据库中所有数据的文件临时数据文件是一种特殊的数据文件,起存储内容是临时性的,在一定条件下自动释放 Oracle数据库中的每个数据文件都具有两个文件号,称为绝对文件号和相对文件号,用于唯一的确定一个数据文件,其中绝对文件号用于在数据库范围内唯一标志一个数据文件;相对文件号用于在表空间范围内唯一标识一个数据文件数据文件与表空间的关系一个表空间可以包含几个数据文件一个数据文件只能从属于一个表空间数据文件的管理策略由于对数据库的操作最终转换为对数据文件的操作,因此在数据库运行过程中对数据文件频繁的读写操作,为了提高I/O效率,应该合理的分配数据文件的存贮位置把不同存储内容的数据文件放在不同的磁盘上,可以并行访问数据,提高系统读写的效率初始化参数文件,控制文件,重做日志文件做好不要与数据文件存放在同一个磁盘上,以免数据库发生介质故障是,无法恢复数据库数据文件的管理创建数据文件修改数据文件的大小改变数据文件的可用性改变数据文件的名称和位置删除数据文件查询数据文件的信息利用OEM管理数据文件创建数据文件数据文件依存于表空间而存在,创建数据文件就是像表空间添加数据文件在创建数据文件时应该根据数据文件的大小确定文件的大小以及文件的增长方式语法:●ALTER TABLESPACE …… ADD DATAFILE●ALTER TABLESPACE …… ADD TEMPFILE向ORCL数据库的USERS表空间里添加一个大小为10MB的数据文件ALTER TABLESPACE USERS ADD DATAFILE ‘…./USER02.DBF’ SIZE 10MB;想ORCL数据库的TEMP表空间中添加一个大小为5MB的临时数据文件ALTER TABLESPACE TEMP ADD ‘……/TEMP01.DBF’ SIZE 5MB;修改数据文件大小修改数据文件大小●设置数据文件为自动增长方式●手工改变数据文件大小设置数据文件为自动增长方式●创建时设置数据文件为自动增长●创建后修改数据文件为自动增长方式AUTO EXTEND ON NEXT *** MAXSIZE|UNLIMITED手工改变数据文件大小ALTER DATABASE DATAFILE ‘******’ RESIZE ;为ORCL数据库的USERS表空间添加一个自动增长的数据文件ALTER TABLESPACE USERS ADD DATAFILE ‘********/***.DBF’ SIZE 10MB AUTOEXTEND ON NEXT 512 K MAXSIZE 50MB;修改ORCL数据库USERS表空间的数据文件ALTER DATABASE DATAFILE ‘******.DBF’ AUTOEXTEND ON NEXT 512K MAXSIZE UNLIMITED; 取消ORCL数据库USERS表空间数据文件的自动增长方式ALTER DATABASE DATAFILE ‘******.DBF’ AUTOEXTEND OFF;将ORCL数据库USERS表空的数据文件大小设置8MBALTER DATABASE DATAFILE ‘******.DBF’ RESIZE 8MB;改变数据文件的可用性可以通过将数据文件联机或者脱机来改变数据文件的可用性在下面几种情况下需要改变数据文件的可用性●要进行数据文件的脱机备份时,需要先将数据文件脱机●需要重命名数据文件或者该百年数据文件的位置时,需要先将数据文件脱机●如果Oracle在写入某个数据文件时发生错误,会自动将数据文件设置为脱机状态,并且记录在告警文件中。

Oracle数据库体系结构

Oracle数据库体系结构

Oracle数据库体系结构一.Oracle数据库体系结构1.实例:一组用于管理数据库文件的内存结构,实例对应着数据库;RAC/CDB CDB:CDB为数据库容器,PDB插拔数据库。

在ORACLE 12C之前,实例与数据库是一对一或多对一关系(RAC),即一个实例只能与一个数据库相关联,数据库可以被多个实例所加载。

而实例与数据库不可能是一对多的关系。

当进入ORACLE 12C后,实例与数据库可以是一对多的关系。

RAC:允许多个Oracle数据库实例在多台服务器上共享同一个数据库存储空间,并通过集群来保证高可用性和容错性。

简单来说,RAC就是将多个数据库实例连接起来,形成一个“集群”。

2.ShardingSphere:中间件,不同的数据库对应不同的实例,中间有一个中间件,使用者连接中间件;数据库中间件可以简化对读写分离以及分库分表的操作,并隐藏底层实现细节,可以像操作单库单表那样操作多库多表。

常见的中间件有MyCat,Mysql-Proxy,DRDS,Atlas,Zebra二.Orcal数据库体系结构:Orcal服务器=数据库+实例1.实例是暂时的,它只不过是一组逻辑划分的内存结构和进程结构,它会随着数据的关闭而消失数据库它就是一堆物理文件(控制文件、数据文件、日志文件等等)它呢是永久存在的数据库和实例是一对一的,这种结构我们一般称为单实例体系结构;既然有一对一,那就会有一对多,在复杂的分布式结构中,一个数据库可以对多个实例,多个实例之间可以通过网络来进行数据的一个交互或着交换2.PGA:程序全局区,为单独的服务器进程存储私有数据的内存区域(SAG属于公共资源,PAG是私有的)3.SGA:系统全局区,所有用户都可以访问的共享内存区域启动Oracle数据库时,系统先在内存内规划一个固定区域,用来储存用户需要的数据,以及Oracle运行时必备的系统信息4.后台进程结构,此处只罗列必须启动的5个后台进程系统监控器SMON:负载检查数据库一致性,有必要会在数据库打开时启动数据库恢复进程监视器PMON:负责一个Orcal数据库进程失败时清理资源,会定期唤醒或者被其他主动事务主动唤醒数据库写进程DBWR:负责将更改的数据从“数据库高速缓冲区”写入“数据文件”日志写进程LGWR:负载把日志数据写到练级日志文件检查点进程SKPT:负责检查点操作,主要检查数据库状态一致性和记录系统变更时间5.三个文件1)控制文件:存储数据库结构,一个控制文件只属于一个数据库,包含数据文件日志文件信息及相关状态归档信息,2)数据文件:存储数据,xxx.dbf文件存储着系统数据,数据字典数据,索引数据及用户存储的数据3)日志文件:存储与事务有关的重做日志三.逻辑存储结构1.块是Oracle用来管理存储的最小单元,也是最小的逻辑存储结构2.区是Oracle数据库分配空间的最小单位3.段由多个区组成,这些区可以是连续的,也可以是不连续的4.表空间是Oracle数据库的最大逻辑划分区域,通常用来存放数据表、索引、回滚段等数据对象。

Oracle数据库体系结构

Oracle数据库体系结构

数据库高速缓冲区分为默认缓冲区、保留缓冲 区和循环缓冲区3 个子缓冲区,由以下参 数决定每部分的大小: • DB_CACHE_SIZE 默认缓冲区的大小 • DB_KEEP_CACHE_SIZE,保留缓冲区的大小, 用来保留在内存中最有可能重用的数据块。 • DB_RECYCLE_CACHE_SIZE,循环缓冲区的大 小,用来消除在内存中很少有机会 重用的数据块。
而“忙缓冲区”是指服务器进程正在访问的缓 冲区。 “脏列表”的作用就是记录脏缓冲区的情况。 如果某些缓冲区中的数据块被修改,就会加入 该列表,只有脏列表中的缓冲区数据块需要写 回数据库文件, 一旦写回数据库文件,缓冲区就会从脏列表中 清除。
Oracle 用LRU(Least Recently Used)算法来管 理数据高速缓冲区。该算法将最近使用的数据 块按照使用时间的早晚排成队列,当缓冲区占 满后,调入新的数据块时,必须清除已有的数 据块,来获得空闲数据块空间,那么,最合理 的选择就是清除最早没有使用数据块,因为使 用该块的概率相对比较小。 通过规划SGA 时合理地设置数据高速缓存的尺 寸,尽量的避免缓冲区占满的情况发生,否则 就会降低系统的效率。
【实例2-1】动态的重新设置数据库 高速缓冲区的大小。
2.重做日志缓冲区(Redo Log Buffer)
当运行Oracle 服务器的时候,如果突然断电 或系统瘫痪,会不会造成数据的丢失?Oracle 提供了一套复杂的机制来维护数据完整性, 并最终确保数据不会丢失。
这就是重做日志文件的作用。 重做日志缓冲区用来记录对数据缓冲区数 据进行的修改,可以循环使用。
1.数据高速缓冲区(Database Buffer Cache)
在Oracle 中无论是读取还是修改数据,都是由服务器 进程在数据高速缓冲区中完成的。 数据高速缓冲区的作用就是用来缓存最近从数据库 中读出的数据块,并可供其他客户进程共享

Oracle数据库体系结构

Oracle数据库体系结构
(1)PFILE
在Oracle 9i之前,初始化参数都是以文本格式存放 的。在Windows平台上,建议将PFILE文件存放在 %ORACEL_HOME%\database目录中,文件名为 initSID.ora,其中SID为实例名。
(2)SPFILE
SPFILE是以二进制格式存放的。在Window 平台上,Oracle建议将SPFILE存放在 %ORACLE_HOME%\dbs 目录中。文件名为sp。
2.4.2 段
• 段是用户建立的数据库对象(如:表,索引, 簇等)的存储表示。它是有一个或多个区组 成的。
• 当建立表、索引、簇时,Oracle会为这些对 象分配段,以存放它们的数据信息,并且段 名与对象名完全相同。
• 用户建立的每一个表都会有一个在表空间中 存储的逻辑段。为用户所建立的对象生成的 段都要在磁盘上占用空间。
• 日志文件主要用于数据库恢复。
• 查看重做日志文件
SQL> select member from v$logfile;
MEMBER -------------------------------------------------E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO03.LOG E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO02.LOG E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01.LOG
db_block_size 指定标准oracle块的尺寸
db_cache_size 指定标准数据高速缓存的尺寸
share_pool_size 指定共享池的尺寸
常用初始化参数(一)
参数名 log_buffer sga_max_size java_pool_size large_pool_size

1-2、Oracle数据库体系结构

1-2、Oracle数据库体系结构

Oracle数据库体系结构一、填空题1.Oracle数据库系统的物理存储结构主要由3类文件组成,分别为数据文件、日志文件、控制文件。

2.用户对数据库的操作如果产生日志信息,则该日志信息首先被存储在日志缓冲区中,随后由LGWR 进程保存到日志文件中。

3.一个表空间物理上对应一个或多个数据文件。

4.在Oracle的逻辑存储结构中,根据存储数据类型,可以将段分为数据段、索引段、回退段、LOB段或临时段。

5.在Oracle的逻辑存储结构中,数据块是最小的I/O单元。

6. 表空间的管理类型可以分为本地管理和字典管理.7. ORACLE中,为了实现对表,视图和索引等数据库对象进行了管理,ORACLE采用模式实现。

8.一个模式只能够被一个数据库用户所拥有,其创建的所有模式对象都保存在自己的模式中。

9.如果定义了CHAR数据类型的字段,并且向其赋值时,字符串的长度小于定义的长度,则使用空格填充;而V ARCHAR2类型的字段用于存储变长的字符串,即如果向该列赋的字符长度小于定义时的长度,该列的字符长度只会是实际字符数据的长度,系统不会用空格填充。

10.ROWID实际上保存的是记录的物理地址,因此通过ROWID来访问记录可以获得最快的访问速度。

11.在创建表空间命令的STORAGE子句中可以设置6个存储参数。

其中,INITIAL指定为表中的数据分配的第一个盘区大小;NEXT指定为存储表中的数据分配的第二个盘区大小;PCTINCREASE指定从第二个盘区之后,每个盘区相对于上一个盘区的增长百分比;MINEXTENTS指定允许为表中的数据所分配的最小盘区数目;MAXEXTENTS指定允许为表中的数据所分配的最大盘区数目。

12.通过数据块空间管理参数可以控制数据块中空闲空间的使用方法,其中PCTFREE用于控制数据块的更新预留的空间,而PCTUSED用于控制数据块在删除时释放空间的门槛。

13、如果出现了失败故障,用户修改的数据没有永久地写到数据文件里,那么就可以利用(控制文件)找到数据的更改,这样做过的工作就不会丢失了.14、(控制文件)是一个小的二进制文件,它维护着数据库的全局物理结构,用以支持数据库成功地启动和运行.15、表空间是Oracle数据库中数据的逻辑组织,每个数据库至少有一个(SYSTEM系统)表空间.16、(DBWR)进程把修改过的数据块从内存写回到数据库的数据文件中.17、当用户进程出错,PMON后台进程负责清理它18、创建数据库时自动建立的tablespace名称SYSTEM tablespace19、数据库表空间一般分为永久性表空间、还原表空间、临时表空间二、选择题1.下列选项中,哪一部分不是Oracle实例的组成部分? CA.系统全局区SGAB.PMON后台进程C.控制文件D.Dnnn调度进程2.在全局存储区SGA中,哪部分内存区域是循环使用的? BA.数据缓冲区B.日志缓冲区C.共享池D.大池3.解析后的SQL语句在SGA的哪个区域中进行缓存? CA.数据缓冲区B.日志缓冲区C.共享池D.大池4.如果一个服务器进程非正常终止,Oracle系统将使用下列哪一个进程来简介释放它所占用的资源? DA.DBWRB.LGWRC.SMOND.PMON5.如果服务器进程无法在数据缓冲区中找到空闲缓存块,以添加从数据文件中读取的数据块,则将启动如下哪一个进程? DA.CKPTB.SMONC.LGWRD.DBWR6.下列关于共享服务器模式的叙述哪一项不正确? AA.在共享服务器操作模式下,每一个用户进程必须对应一个服务器进程B.一个数据库实例可以启动多个调度进程C.在共享服务器操作模式下,Oracle实例将启动调度Dnnn为用户进程分配服务进程D.共享服务器操作模式可以实现少量服务器进程为大量用户进程提供服务7.当数据块运行在归档下时,如果发生日志切换,为了保证不覆盖旧的日志信息,系统将启动如下哪一个进程? D A.DBWR B.LGWR C.SMON D.ARCH8.下列哪一个进程和数据库部件可以保证用户对数据库所做的修改在没有保存的情况下,不会发生丢失修改数据? BA.DBWR和数据文件B.LGWR和日志文件组C.CKPT和控制文件D.ARCH和归档日志文件9.下列哪一个进程用于将修改过的数据从内存保存到磁盘数据文件中? A A.DBWR B.LGWR C.RECO D.ARCH10.如果要查询数据库中所有表的信息,应当使用下列哪种数据字典视图? AA.DBA视图B.ALL视图C.USER视图D.动态性能视图11.下列哪一项是Oracle数据库中最小的存储分配单元? CA.表空间B.段C.盘区D.数据块12.下面的各选项中哪一个正确描述了Oracle数据块的逻辑储存结构? AA.表空间由段组成,段由盘区组成,盘区由数据块组成B.段由表空间组成,表空间由盘区组成,盘区由数据块组成C.盘区由数据块组成,数据块由段组成,段由表空间组成D.数据块由段组成,段由盘区组成,盘区由表空间组成13. 在创建表空间时, 可以指定表空间中存储对象的默认存储参数, 其中_____A______参数用于设置分配给每一个对象的初始区大小.A. INITIALB. NEXTC. PCTINCREASED. MINEXTENTS14.下列哪个对象属于模式对象?C A.数据段 B.盘区 C.表 D.表空间15.关于模式的描述下列哪一项不正确?CA.表或索引等模式对象一定属于某一个模式B.在ORACLE数据库中,模式与数据库用户是一一对应的C.一个表可以属于多个模式D.一个模式可以拥有多个表16.如果一个表中某条记录的一个字段暂时不具有任何值,那么在其中将保存什么内容?DA.空格字符B.数字0C.NULLD.该字段数据类型的默认值17. 下列哪一项不是伪列ROWID的作用?DA.保存记录的物理地址B.快速查询指定的记录C.标识各条记录D.保存记录的头信息18.为了减少表中的迁移记录,应该增大表的哪一个存储参数?AA.PCTFREEB.PCTUSEDCC.MAXEXTENTSD.PCTINCREASE第5章oracle基本对象一、填空题1. 在B树索引中,通过在索引中保存排过序的索引列值与相对应记录的ROWID 来实现快速查找。

Oracle数据库的体系结构介绍

Oracle数据库的体系结构介绍

Oracle数据库的体系结构介绍Oracle数据库是目前世界领先的企业级关系数据库管理系统,其卓越的性能、可靠性以及安全性被广泛地应用于企业级应用系统中。

本文将详细介绍Oracle数据库的体系结构,帮助读者更好地了解Oracle数据库。

一、概述Oracle数据库的体系结构分为三层:物理层、逻辑层和视图层。

物理层描述了数据在物理介质上的存储方式和管理方式;逻辑层主要由Oracle数据库的核心服务组成,该层体现了Oracle数据库的最核心功能;视图层则提供给应用程序用户和管理员使用,是Oracle数据库的最外层。

二、物理层Oracle数据库的物理层包括数据文件、控制文件和重做日志文件。

其中,数据文件用于存储数据表、索引和其他对象的数据;控制文件则记录了数据库的结构信息和操作日志,是维护数据库一致性和恢复数据的关键元素;重做日志文件用于记录正在进行的操作和已经完成的操作,以便在系统崩溃或停机时进行恢复。

三、逻辑层Oracle数据库的逻辑层包括多个服务组件,如SQL解析器、优化器、缓存池、锁管理器、存储管理器等。

其中,SQL解析器用于解析SQL语句,将其转换成可执行的优化器,并进行语法和语义检查;优化器则负责分析并优化SQL执行计划,以提高查询效率;缓存池用于存储查询结果和表空间等数据对象,提高查询响应速度;锁管理器则负责管理并发访问,防止数据冲突,保证数据库的一致性和稳定性。

四、视图层Oracle数据库的视图层提供了多种视图和接口,包括SQL*Plus、SQL Developer、Toad等。

其中,SQL*Plus是Oracle自带的命令行工具,提供简单的SQL语句执行和结果输出;SQL Developer是Oracle 提供的图形化界面工具,提供更为便捷的数据库管理和开发支持;Toad则是第三方软件,提供了更为强大和灵活的数据库管理和开发支持。

五、总结Oracle数据库作为目前世界领先的企业级关系数据库管理系统,其体系结构设计合理,层次清晰,提供了完备的物理、逻辑和视图三层管理机制,为企业级应用系统提供了高效、可靠、稳定的运行环境和数据服务。

oracle实验2 oracle数据体系结构

oracle实验2 oracle数据体系结构

oracle实验2 oracle数据体系结构一、实验目的1.了解数据库的物理存储结构和逻辑结构。

2.了解数据库的进程结构和内存结构。

3.了解客户端和服务端配置文件的内容,并能够根据实际需要修改配置文件。

二、实验内容1.分别使用SQL命令和OEM图形化工具查看本地数据库物理文件,并使用OEM 工具在现有的usrs表空间中添加user02.dbf数据文件。

2.使用OEM图形化工具查看本地数据库的表空间,并尝试创建一个新的表空间及其数据文件。

三、实验环境Windows xp , Oracle 10g四、实验步骤分别使用SQL命令和OEM图形化工具查看本地数据库物理文件,并使用OEM工具在现有的usrs表空间中添加user02.dbf数据文件1、查看数据文件:(1)SQL命令(2)oem工具2查看日志组: (1)SQL命令(2)oem工具3、查看控制文件(1)SQL命令(2)oem工具4、添加数据文件user2.dbf添加成功2.使用OEM图形化工具查看本地数据库的表空间,并尝试创建一个新的表空间及其数据文件。

(1)查看本地数据库的表空间(2)创建空间(3)添加数据(4)成功创建二、习题1.Oracle数据库的物理存储文件主要包括4类文件,分别(数据文件)(日志文件)(控制文件)(初始化参数文件),其中(数据文件)是存储用户数据的地方,(控制文件)存储数据库的结构,(初始化参数文件)在启动数据库时最先被访问。

2.数据库的逻辑存储结构从大到小包括(表空间)(段)(盘区)(数据块),其中(盘区)是最小的磁盘空间分配单元,(数据块)是数据存取的最小单元。

3.一个表空间物理上对应一个或多个(数据)文件,表空间中的某个(用户表)可以被包括在两个数据文件中,但是它里面的每个(索引)只能属于一个数据文件。

4.Oracle进程结构包括(用户进程)(服务进程)(后台进程)。

当在客户端运行一个程序或Oracle工具时,系统将为用户运行的应用程序建立一个(用户进程)进程,在服务器端(服务进程)进程将为它服务。

Oracle数据库体系结构(详细版)

Oracle数据库体系结构(详细版)

Oracle体系结构Oracle核心竞争力可扩充性:Oracle系统有能力承担增长的工作符合,并且相应的扩充系统资源利用情况。

可靠性:无论出现系统资源崩溃,电源断电还是系统故障的时候,我们都可以对Oracle进行配置。

以保证检索用户数据事务处理的时候,不受到影响。

可管理性:数据库管理员可以微调Oracle使用内存的方式,以及Oracle向磁盘写入数据的频率。

并且管理可以调整,数据库为连接到数据库的用户分配操作系统进程的方式。

Oracle总体结构分为三个部分第一部分:系统全局区(SGA)第二部分:程序全局区和后台进程第三部分:Oracle的文件如果从功能上划分的话:存储结构:由这些文件就构成了Oracle的物理存储结构。

内存结构:使用内存最多的是SGA,也是影响数据库系统性能最大的一个参数。

进程结构:前台进程服务进程和用户进程,是根据实际需要而运行的,并在需要结束后立刻结束。

后台进程是指Oracle数据库启动后自动启动的几个操作系统进程。

存储结构包括物理结构和逻辑结构,既独立又相互联系的。

物理结构:是和操作系统平台有关的。

逻辑结构:逻辑存储结构是和操作系统平台无关的。

_______________________________________________________________________________这个图是两种存储结构中的对应关系表空间包括系统表空间和用户表空间。

表空间也是最大的逻辑单位。

块是最小的一个逻辑单位。

逻辑结构的表空间对应着物理结构的数据文件,也就是创建表空间的时候要给它指定数据文件,但是一个表空间可以对应多个数据文件。

表空间的大小也就是他包含的数据文件大小的总和。

数据文件呢同时又对应着操作系统中的数据块,数据文件也是以数据块的形式,存在于操作系统中。

逻辑结构中的块也对应着操作系统的数据块。

——————————————————————————————————————— 物理存储结构Oracle的物理存储结构,也就是Oracle的数据库文件数据库文件又分为主要文件和其他文件主要文件:首先来看数据文件:就是物理存储Oracle数据库数据的文件有一下特点:◆每一个数据文件,只与一个数据库相关联。

Oracle数据库体系结构图

Oracle数据库体系结构图

画出Oracle的体系结构图,并解释箭头得到含义,写在纸上。

SGA 是包含实例的数据和控制信息的内存区。

SGA 包含以下数据结构:数据库缓冲区高速缓存:用于缓存从数据库中检索到的数据块,数据库缓冲区高速缓存是SGA 的一部分,用于存放从数据文件读取的数据块的副本。

并行连接到实例的所有用户共享对数据库缓冲区高速缓存的访问。

重做日志缓冲区:用来缓存用于实例恢复的重做信息,直到可以将其写入磁盘中存储的物理重做日志文件。

重做日志缓冲区是SGA 中的循环缓冲区,用于存放有关对数据库所做更改的信息。

此信息存储在重做条目中。

共享池:用于缓存可在用户间共享的各种结构,SGA 的共享池部分包含库高速缓存、数据字典高速缓存、SQL 查询结果高速缓存、PL/SQL 函数结果高速缓存、并行执行消息的缓冲区以及控制结构。

大型池:为某些大型进程(例如Oracle 备份和恢复操作)和I/O 服务器进程提供大型内存分配的可选区域。

Java 池:用于Java 虚拟机(JVM) 中特定于会话的所有Java 代码和数据流池:Oracle Streams 使用它来存储捕获和应用操作所需的信息程序全局区(PGA) 是一个内存区,其中包含每个服务器进程的数据及控制信息①系统监视进程SMON->系统全局区SGA (System Global Area)恢复实例或者释放空间;②PMON进程->系统全局区SGA监视进程,恢复强制挂掉的进程或者释放空间;③RECO进程->系统全局区SGA负责在分布式数据库环境中自动恢复那些失败的分布式事务,保证分布式事务的一致性,在分布式事务中,要么同时commit,要么同时rollback;④其他->系统全局区SGA⑤数据库缓冲区高速缓存(db buffer cache)->数据库写进程(DBWn)用于存放从数据文件读取的数据块的副本,;缓存数据⑥数据库写进程(DBWn)->数据文件缓冲数据写到数据文件;⑦数据库写进程(DBWn)->重做日志缓冲区(log buffer)用户进程每次修改内存数据块时,都会在日志缓冲区(redo buffer)中构造一个相应的重做条目(redo entry),该重做条目描述了被修改的数据块在修改之前和修改之后的值;⑧检查点进程(CKPT) ->数据文件(datefile)CKPT快速的确定哪些脏数据块已经被写入了数据文件,而哪些还没有写入数据文件,更新数据文件中的数据库状态信息,用来保证数据库中的数据一致性;⑨.检查点进程(CKPT) ->控制文件(controlfile)CKPT找出当前检查点队列上的第一个buffer header,并将该buffer header中所记录的LRBA(这个LRBA也就是checkpoint position了)记录到控制文件中,更新控制文件中的数据库状态信息,用来保证数据库中的数据一致性;CKPT用来协调DBWn和LGWR进程的工作,并更新控制文件和数据文件,来保证数据库中数据的一致性。

Oracle数据库应用技术2Oracle数据库的体系结构

Oracle数据库应用技术2Oracle数据库的体系结构
第 30 页
• 与数据库组件相关的数据字典
数据库组件 数据字典中的表或视图
说明
数据库
v$datafile
表空间
dba_tablespaces
dba_free_space
• 常用的动态性能视图
记录系统的运行情况 记录系统表空间的基本信息 记ext v$stsstat
第 11 页
3)控制文件
• Oracle中,控制文件(Control File)很重要,用于存放数据文 件和日志文件信息;同时,控制文件是一个很小的二进制 文件,它用于描述和维护数据库的物理结构;
• 数据控制文件一般在安装Oracle系统时自动创建,并且其 存放路径由服务器参数文件SPFILEsid.ora的CONTROL_FILES 参数值来确定;
第 16 页
第 17 页
第 18 页
1)表空间(Tablespace)
• 表空间是Oracle数据库中最大的逻辑存储单元,与物理上 的一个或多个数据文件相对应;
• 用于存储用户在数据库中创建的所有内容,如表、索引、 视图等;
• 在安装Oracle时,系统会自动创建一系列表空间(如 system),可通过数据字典dba_tablespaces查看表空间的 信息。
Oracle数据库 应用技术
第二章
Oracle数据库的体系结构
主讲内容:Oracle数据库组成和工作过程
第2 页
主要内容
一.Oracle数据库结构 二.Oracle进程结构 三.数据字典
第3 页
二、Oracle数据库结构
• 数据库的体系结构是从某一角度来分析数据库的组成、 工作过程和原理,以及数据库如何管理和组织数据。因 此,在开始对Oracle进行操作之前,用户还需要理解 Oracle数据库的体系结构。 1. 物理存储结构 2. 逻辑存储结构

Oracle的体系结构

Oracle的体系结构
当一个段中的所有空间被使用完后,系统将自动 为该段分配一个新的盘区。
2.逻辑存储结构
2.3段
段是由一系列盘区组成,它也不再是存储空间的 分配单位,而是一个独立的逻辑存储结构。
对于具有独立存储结构的对象,它的数据全部存 储在保存它的段中。一个段只属于一个特定的数 据库对象,每当创建一个具有独立段的数据库对 象时,Oracle将为它创建一个段。
(1). SYSTEM表空间(SYSAUX表空间加以辅 助),用于存储:
数据字典、内部系统表基表 PL/SQL程序的源代码和解析代码 数据库对象的定义
2.逻辑存储结构
2.4表空间
(2). 撤销表空间,专门用来在自动撤销 管理方式下存储撤销信息,即回退信息。
(3).临时表空间。在实例运行过程中, Oracle使用一些临时空间来保存SQL语句执 行过程中所产生的临时数据。
4.实例的内存结构
Oracle的2个主要的内存结构
系统全局区(System Global Area,SGA) 程序全局区(Program Global Area,PGA)
4.实例的内存结构
4.1系统全局区SGA
位于系统的共享内存段中,SGA区中的数据可以被所有的 服务和后台进程共享。
如果多个用户连接到同一个数据库实例,则实例的SGA区 中的数据可被多个用户共享。在数据库实例启动时,SGA 的内存被自动分配;当数据库实例关闭时,SGA被回收。
段 段
数据库的逻辑存储组成
2.逻辑存储结构
2.1数据块(Data Blocks)
数据块是Oracle用来管理存储空间的最小单元, 也是执行数据库输入输出操作时的最小单位。
SQL> select name,value from V$parameter where name='db_block_size';

Oracle数据库体系结构

Oracle数据库体系结构

Oracle体系结构详解(上)一、oracle数据库的整体架构由上图可知,oracle数据库由实例和数据库组成。

二、数据库存储结构:2.1数据库存储结构Oracle数据库有物理结构和逻辑结构。

数据库的物理结构是数据库中的操作系统文件的集合。

数据库的物理结构由数据文件、控制文件和重做日志文件组成。

数据文件:数据文件是数据的存储仓库。

联机重做日志文件:联机重做日志文件包含对数据库所做的更改记录,在发生故障时能够恢复数据。

重做日志按时间顺序存储应用于数据库的一连串的变更向量。

其中仅包含重建(重做)所有已完成工作的最少限度信息。

如果数据文件受损,则可以将这些变更向量应用于数据文件备份来重做工作,将它恢复到发生故障的那一刻前的状态。

重做日志文件包含联机重做日志文件(对于连续的数据库操作时必须的)和归档日志文件(对于数据库操作是可选的,但对于时间点恢复是必须的)。

查看系统的redo log的信息SQL> select group#,sequence#,bytes,members,status from v$log;GROUP# SEQUENCE# BYTES MEMBERS STATUS---------- ---------- ---------- ---------- ----------------1 22 52428800 1 INACTIVE2 23 52428800 1 CURRENT3 21 52428800 1 INACTIVESQL> select member from v$logfile;MEMBER/u01/app/oracle/oradata/hnzk/redo03.log/u01/app/oracle/oradata/hnzk/redo02.log/u01/app/oracle/oradata/hnzk/redo01.log控制文件:控制文件包含维护和验证数据库完整性的必要的信息。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验2 Oracle数据库体系结构【实验目的与要求】⏹熟悉Oracle数据库的物理结构⏹理解Oracle的工作机制⏹理解Oracle的软件结构【实验内容与步骤】2.0 实验准备以系统管理员身份登入到数据库。

2.1 物理存储结构2.1.1 获取Oracle数据库各类物理文件信息1.数据文件数据文件的详细信息记录在数据字典视图V$DataFile中,可通过查询语句获取数据文件相关信息。

查看数据文件名称:可通过如下查询语句查看数据文件名称和存放位置请给出运行结果截图:练习:用desc命令查看V$datafile视图的结构,并试着查询更详细的信息。

2.操作数据文件(1) 创建数据文件Oracle中,创建数据文件即是借用Alter Tablespace…ADD…语句,将数据文件添加挂接到指定的表空间中。

为USERS表空间添加一个数据文件,名称为USERS_XX.DBF(XX为学号最后两位),大小为20MB。

如:请给出运行结果截图:打开指定目录(即C:\),查看是否存在文件USERS_XX.DBF?请给出结果截图:查询V$datafile视图,获取数据文件USERS_XX.DBF大小、位置等相关信息。

请给出结果截图:(2) 创建数据文件修改数据文件使用Alter Database Datafile…命令。

修改USERS表空间中的USERS_XX.DBF为自动扩展方式,每次扩展5MB,最大为100MB。

如:请给出结果截图:查询V$datafile视图,获取数据文件USERS_XX.DBF大小、扩展方式、位置等相关信息。

确定数据文件是否修改。

请给出结果截图:(3) 重命名数据文件:重命名数据文件使用alter tablespace …Rename datafile…命令。

将表空间USERS中的数据文件USERS_XX.DBF更名为UserData_XX.dbf。

重命名数据文件时,需遵循以下步聚:a.将表空间脱机:b.操作系统拷贝数据文件到指定的位置,并将数据文件命名为指定名称,如:C:\ UserData.dbf。

(即对原文件作一个拷贝,再重新命名。

注意:不要改动原文件名)c.执行改名命令,示例如下:注意:其中的users01.DBF应为上面创建的USERS_XX.DBF请给出结果截图:d.挂接表空间:使表空间联机(4) 移除数据文件:移除表空间的某个数据文件命令: alter database datafile 'file_name' offline drop;将前面命建并改名后的数据文件userData.dbf移除。

请给出结果截图:注:(1) 该命令不会删除数据文件,只是将数据文件的状态更改为recover,数据文件的相关信息还会存在数据字典和控制文件中。

(2)Oracle 10G R2后还可使用alter tablespace tablespace_name drop datafile file_name命令来删除数据文件。

2.1.2 日志文件1.获取日志文件信息日志文件信息记录在数据字典视图V$Log中,可通过类似如下方式查看重做日志文件相关信息:请给出运行结果截图:练习:用desc命令查看V$log视图的结构,并试着查询控制文件更详细的信息。

2.操作日志文件(1) 模拟日志文件丢失按以下步骤模拟日志文件丢失的处理。

a.关闭数据库: 建议使用shutdown immediate命令,关闭数据库b.模拟删除找到数库主目录(如:C:\oracle\product\10.1.0\db_1\TestDB),把日志文件REDO02.log的名称修改为REDO02.log.bak,重新启动数据库,如何报错?请给出运行结果截图:c.文件名称恢复后,再次启动数据库。

(2) 添加重做日志文件组:a.添加日志组为数据库添加一个重做日志文件组(组4),组内包含两个成员文件,分别为redo4a.log 和redo4b.log,大小分别为5MB。

请给出运行结果截图:b.添加日志组成员为上面新建的重做日志文件组添加一个成员文件,名称为redo4c.log,存放于C:\Temp 目录下。

完成后,查看Temp中是否有日志文件。

请给出运行结果截图:c.删除日志组删除日志文件组可用DROP命令。

请执行如下命令,删除前面创建的日志文件组4。

2.1.3 控制文件1.获取控制文件信息控制文件信息记录在数据字典视图V$Controlfile中,可通过类似如下方式查看重做日志文件相关信息:请给出运行结果截图:练习:用desc命令查看V$controlfile视图的结构,并试着查询更详细的信息。

2.操作控制文件a.控制文件丢失。

关闭数据库,将控制文件CONTROL03.CTL移动到其他文件夹,模拟控制文件丢失。

b.重新启动数据库,查看报错信息。

请给出结果截图:c.查看警告文件,得到更详细的错误信息。

警告文件位于%ORACLE_BASE%\admin\%ORACLE_SID%\bdump下.trc文件。

d.用复制控制文件,使得数据库可以正常启动。

2.1.4 参数文件通过如下方式查看参数文件相关信息:请给出运行结果截图:阅读结果,并理解各数据项的含义。

练习:在%oracle_home%(即数据库主目录,如C:\oracle\product\10.1.0\db_1\database)找到名为SPFileSID.ora(如:SPfileTestdb.ora)和init.ora的文件,此文件即为参数文件,用记事本打开它们,阅读其内容并理解各数据项的作用。

2.2 Oracle逻辑存储结构2.2.1 获取存储结构基础数据. 1. 查看表空间的名称及大小执行以下语句,并给出运行结果。

给出运行结果截图:2.查看表空间物理文件的名称及大小执行以下语句,并给出运行结果。

给出运行结果截图:2.2.2 管理表空间1.创建与使用永久表空间(1)创建表空间以下是示例:请根据示例,创建一个表空间名为TBL+学号后两位,空间的大小为5M,表空间包括1个数据文件:TBL+学号后两位,数据文件存放在C:\ORACLE 下。

各存储参数均采用默认值。

(2) 表空间设置为联机状态。

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

示例:请为前面创建的表空间添加两个两个数据文件:TBL+学号后两位+01(3M)和TBL+学号后两位+02(2M),数据文件均存放在C:\ORACLE 下。

请给出运行结果截图:2.3 Oracle内存与进程结构2.3.1 查看sga情况:SQL>SELECT NAME, BYTESFROM SYS.V_$SGASTA T ORDER BY NAME ASC;给出运行结果截图:2.3.2 查看数据库中某用户,正在运行什么SQL语句SQL>SELECT SQL_TEXTFROM V$SQLTEXT T, V$SESSION SWHERE T.ADDRESS=S.SQL_ADDRESSAND T.HASH_value=S.SQL_HASH_value AND S.MACHINE='XXXXX' OR USERNAME='WACOS';注意:红色字体部分(wacos)应改为相应的用户名,如:SCOTT。

给出运行结果截图:2.3.3检查共享内存的剩余情况:SQL>select request_misses, request_failuresfrom v$shared_pool_reserved;给出运行结果截图:2.3.4数据高速缓冲区性能检查:SQL>select 1-p.value/(b.value+c.value) "db buffer cache hitratio"from v$sysstat p,v$sysstat b,v$sysstat cWhere ='physical reads' and ='db block gets' and ='consistent gets';给出运行结果截图:2.3.6查看排序段的性能:SQL>SELECT name, valueFROM v$sysstatWHERE name IN ('sorts (memory)', 'sorts (disk)');给出运行结果截图:2.3.7找到与所连接的会话有关的当前等待事件:SQL>select SW.Sid,ername,SW.Event,SW.Wait_Time,SW.State,SW.Seconds_In_Wait S EC_IN_W AITfrom v$session S,v$session_wait SWwhere ername is not null and SW.Sid=S.Sidand SW.event not like '%SQL*Net%' order by SW.Wait_Time Desc;给出运行结果截图:2.4数据字典数据字典是oracle数据库用来存贮数据库结构信息的地方,用来描述数据库数据的组织方式的,由表和视图组成。

Oracle中有一个关于数据字典的元数据表,其名称为DICTIONARY(也可写为DICT),该表中存在所有数据字典名称和相关说明。

若在具体使用中,不知某一数据字典的具体名称,可通过该表查询得到。

查找控制文件相关数据字典:请给出运行结果截图:练习:请查找与数据文件相关的数据字典,并据此获取数据文件相关信息。

2.5作业与思考练习题I.管理控制文件1、现有控制文件的位置及其名称是什么?提示:查询动态性能视图V$CONTROLFILE。

注:您还可以使用 V$PARAMETER,或者执行 SHOW PARAMETER命令以显示控制文件的名称和位置。

给出运行结果截图:2、控制文件中数据文件部分的初始大小是多少?提示:查询动态性能视图V$CONTROLFILE_RECORD_SECTION。

给出运行结果截图:II.维护重做日志文件1、列出现有日志文件的数量和位置,并显示您的数据库所拥有的重做日志文件组及成员数量。

提示:–查询动态视图 V$LOGFILE。

–使用动态视图 V$LOG。

给出运行结果截图:2、您的数据库是在哪种数据库模式下配置的?是否启用了归档?提示:–查询动态性能视图V$DATABASE。

–查询动态性能视图V$INSTANCE。

给出运行结果截图:III.用户相关信息--查看当前用户的缺省表空间select username,default_tablespace from user_users;--查看当前用户的角色select * from user_role_privs;--查看当前用户的系统权限和表级权限select * from user_sys_privs;select * from user_tab_privs;--显示指定用户所具有的系统权限select * from dba_sys_privs where grantee='GAME';--查看用户下所有的表select * from user_tables;--查询表信息SELECT * FROM ALL_OBJECTS WHERE OWNER ='SCOTT' AND OBJECT_NAME='EMP';。

相关文档
最新文档