实验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数据库系统结构有数据库结构和物理存储结构组成。

数据库:实例●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数据库体系结构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数据库体系结构


数据库高速缓冲区分为默认缓冲区、保留缓冲 区和循环缓冲区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数据库体系结构

(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. 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';。

相关文档
最新文档