实验2-Oracle数据库物理存储结构管理
oracle数据库 物理储存结构和原理

oracle数据库物理储存结构和原理
数据文件是Oracle数据库中存储实际数据的文件,其包含数据库的所有表、索引和其他对象的数据。
控制文件是Oracle数据库中的元数据文件,其记录了数据库的结构和配置信息。
日志文件则用于记录数据库操作和变更的历史记录,以便在出现故障时进行恢复。
表空间是Oracle数据库中的逻辑存储结构,用于管理数据文件的物理存储。
表空间中可以包含一个或多个数据文件,并与数据库中的表和索引相关联。
表空间的创建和管理可以提高数据库的性能和可靠性。
Oracle数据库的物理储存原理主要包括数据块、数据页和数据行。
数据块是数据库中的最小存储单位,通常为8KB。
数据页是数据块的一部分,通常为4KB。
数据行则是数据页中存储的实际数据,其大小可以根据列的数据类型和长度进行调整。
Oracle数据库的物理储存结构和原理是数据库管理员必须熟悉的内容。
了解和掌握这些知识可以帮助管理员有效地管理和维护数据库,确保其性能和可靠性。
- 1 -。
实验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数据库的体系结构

因此,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 数据 库至少要包含一个数据文件,并且数据文件是表 空间的物理组成元素,一个表空间可以包含多个 数据文件,并且每个数据文件只能惟一地属于某 个表空间。 关于“表空间”在后面会给大家详细介绍。
但如果执行介质恢复(例如数据文件意外丢失) ,则必须要用到归档日志。归档日志是非活 动重做日志的备份,数据库只有处于 ARCHIVELOG 模式时才会生成归档日志,并且 每次日志切换都会生成归档日志。
如图所示:
假定数据库只包含两个日志组,并且处于 ARCHIVELOG 模式。初始阶段LGWR 会将事务 变化写入到日志组一,当日志组一写满之后 ,LGWR 会将事务变化写入到日志组二中, 并且会促使ARCn 进程将日志组一的内容保存 到归档日志中,依此类推。
2.6.1 连接和建立会话
当客户应用需要执行SQL 语句时,首先要建立用户进程 ,同时在服务器端会自动为该用户进程派生一个新的 服务进程。默认情况下,用户进程与服务器进程是一 一对应的关系。 当客户端运行SQL 语句时,用户进程会通过网络将该 SQL 语句发送到对应的服务进程,并且由服务进程执行 该SQL 语句,服务器进程在执行了SQL 语句之后,会将 SQL 语句的结果通过网络返回到用户进程。
2.5.3 区(Extents)
数据区间简称为区,区是为段分配空间的逻辑单位 ,Oracle 在分配空间时,并不是以块为单位进行的 ,而是将多个连续的块一次性的分配给数据库对象 。这些连续的块在回收存储
空间时,也一起回收。这些连续的数据块就是数据 区间。 当创建一个数据库对象时,Oracle为这些对象创建一 个段,并分配初始区。当段中的初始区的存储空间 使用完毕后,Oracle会为段自动分配新的区,每个区 的大小不要求相同
2.物理存储结构(吴俊杰)

计科141 吴俊杰 14401010110Oracle实验报告二:物理存储结构一、数据文件及其管理1.打开数据库2.创建数据文件手动创建数据库结束后有如下文件:现在添加几个数据文件,其中USERS03.DBF为一个自动增长的数据文件。
添加后现多了如下3个文件:3.修改数据文件大小。
修改USERS02.DBF为自动增长方式,取消自动增长方式,更改大小设置为8MB。
4.改变数据文件的可用性,先启动数据库实例到mount状态,再在归档模式下进行文件脱机操作。
对users02.dbf进行脱机与联机和recover操作。
在非归档模式下不允许脱机,提到错误如下:将USERS表空间中所有的数据文件脱机,但USERS表空间不脱机,再将USERS表空间中所有的数据文件联机5.改变数据文件的名称或位置1)改变同一个表空间的数据文件名称和位置。
在CMD执行操作命令之前需先在文件管理进行相应的重命名或移动文件位置操作,否则失败。
2)改变属于多个表空间的数据文件。
之前还没建TOOLS表空间,这里要用到,在此补上操作成功,最后打开数据库6.删除数据库文件实验结果:7.查询数据文件信息查询数据文件动态信息查询数据文件的详细信息查询临时数据文件详细信息二、控制文件1.查询获得数据文件和重做日志文件信息。
2.实现多路镜像控制文件,编辑初始化CONTROL_FILES。
关闭数据库,在添加控制文件的路径下,手动增加控制文件,重新启动数据库。
再次查询,控制文件比之前多了一份3.备份控制文件备份控制文件时出现莫名错误搞了半天最后发现我一直在对实例neworal操作,难怪老报错,怎么刚才启动的时候启动的不是MYNEWDB这个实例,我也搞不清楚。
重新启动这个实例就解决问题了,操作不在报错。
4.删除控制文件执行set control_files命令时不包含要删除的控制文件信息,关闭数据库后在文件管理中上次该控制文件即可。
5.查看控制文件信息三、重做日志文件1.添加重做日志文件组。
2 班级学号姓名 实验报告2--Oracle数据库体系结构(模板)

《Oracl数据库系统》电子实验报告(2)题目:Oracle数据库体系结构日期201 . . 姓名实验环境:Windows或linux,Oracle 11g 2实验目的:1.熟悉Oracle数据库体系结构的组成部分2.熟悉oracle实例instance的组成部分(sga和常用后台进程)3.明确Oracle的工作原理4.Oracle内存结构的查看和设置实验内容:1.Oracle数据库体系结构(补充文字说明)2.oracle实例instance的组成Oracle实例是内存结构和后台进程的集合2.1 内存结构包括***,各部分的作用是****:1)共享池share_pool:(作用)2)数据缓冲区(data_cache):(作用)3)……2.2 后台进程包括:1)系统监控进程smon:(作用)2)进程监控进程pmon:(作用)3)…3.Oracle的工作原理1)、在数据库服务器上启动Oracle实例;2)、应用程序在客户端的用户进程中运行,启用Oracle网络服务驱动器与服务器建立连接;3)、服务器运行Oracle网络服务驱动器,建立专用的服务器进程执行用户进程;4)、客户端提交事务;5)、服务器进程获取sql语句并检查共享池中是否有相似的sql语句,如果有,服务器进程再检查用户的访问权限;否则分配新的sql共享区分析并执行sql语句;6)、服务器从实际的数据文件或SGA中取得所需数据;7)、服务器进程在SGA中更新数据,进程DBWN在特定条件下将更新过的数据块写回磁盘,进程LGWR在重做日志文件中记录事务;8)、如果事务成功,服务器进程发送消息到应用程序中。
4.oracle数据库结构1)Oracle数据库物理结构由操作系统文件组成,这些文件为数据库信息提供实际物理存储区。
2)Oracle 数据库包括逻辑结构和物理结构;3)物理结构包含数据库中的一组操作系统文件;4)逻辑结构指数据库创建之后形成的逻辑概念之间的关系。
Oracle数据库实验报告

Oracle数据库实验报告目录实验一安装和使用Oracle数据库.................................................. - 2 - 实验二体系结构、存储结构与各类参数..................................... - 13 - 实验三Oracle数据库的创建和管理............................................. - 22 - 实验四SQL语言 ............................................................................ - 33 - 实验五PL/SQL编程 ....................................................................... - 41 - 实验六模式对象管理与安全管理 ................................................ - 50 -实验一安装和使用Oracle数据库【实验目的】1.掌握Oracle软件安装过程,选择安装组件2.掌握建立Oracle数据库,配置网络连接3.掌握Oracle企业管理器的基本操作4.使用SQL*Plus,登录到实例和数据库5.掌握命令方式的关闭和启动实例及数据库【实验内容】1.查看已安装的Oracle组件2.查看服务,记录下和数据库有关的服务名,将他们设为手动方式,启动相关服务。
3.配置监听器,查看是否在服务中有LISTENER,是否能启动。
4.配置本地net服务,提示:设置正确的服务器地址和端口号。
5.打开SQL*Plus,用SYS和SYSTEM用户名和密码登录。
6.思考题:有几种打开SQL*Plus的方法?分别是什么?7.用命令关闭实例和数据库,记录命令8.用命令以NOMOUNT的方式启动实例,再加载数据库,打开数据库。
Oracle物理存储结构

盘块类型
数据盘块
用于存储表数据、索引数据等实际数据。
回滚盘块
用于存储回滚段中的数据,以便在事 务回滚时能够恢复到事务开始之前的
状态。
临时盘块
用于存储临时表空间中的临时数据, 如排序操作、分组操作等中间结果。
重做日志缓冲区
用于存储重做日志记录,以便在数据 库发生故障时能够通过重做日志恢复 数据。
盘块存储
3
大对象区
用于存储大型数据对象,如BLOB、CLOB等。
区存储
区的大小
01
区的大小通常由Oracle数据库管理员根据需要设置。
区的分配
02
当需要存储数据时,Oracle会根据数据的大小和区的类型来分
配相应的区。
区的回收
03
当数据被删除或不再需要时,Oracle会回收相应的区,以便重
新利用。
区操作
区的创建
在Oracle数据库中,可以通过CREATE TABLESPACE语句来创建 新的区。
区的扩展
如果现有的区不足以存储数据,可以通过ALTER TABLESPACE 语句来扩展区的大小。
区的收缩
在某些情况下,可能需要收缩区的大小以释放空间。Oracle提 供了相应的工具和命令来实现这一操作。
04 盘块
oracle物理存储结构
目录
• 数据文件 •段 •区 • 盘块
01 数据文件
数据文件类型
数据文件
存储数据库表、索引等数据的物理文件。
控制文件
存储数据库物理结构信息的文件,包括数据 文件、重做日志文件的位置等信息。
重做日志文件
用于记录数据库所有更改的日志文件,在数 据库恢复时用于重新构造数据。
归档日志文件
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验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中所有成员文件移植到一个新的目录下。
15.查询BOOKSALES数据库中所有重做日志文件组的状态。
16.查询BOOKSALES数据库中所有重做日志文件成员的状态。
17.删除BOOKSALES数据库的重做日志组4中的成员文件undo04b.log。
18.删除BOOKSALES数据库的重做日志组4。
19.查看BOOKSALES数据库是否处于归档模式。
20.将BOOKSALES数据库设置为归档模式。
21.为BOOKSALES数据库设置3个归档目标,其中一个为强制归档目标。
22.对BOOKSALES数据库进行5次日志切换,查看归档日志信息。
第五章实训
(13)为数据库添加一个重做日志文件组,组内包含两个成员文件,分别为redo5a.log和redo5b.log,大小分别为5MB。
(14)为新建的重做日志文组件添加一个成员文件,名称为
redo5c.log。
(15)将数据库设置为归档模式,并采用自动归档方式。
(16)设置数据库归档路径为D:\ORACLE\BACKUP。