数据库
Oracle数据库的物理结构有哪些?
一、Oracle数据库的物理结构有哪些?
物理存储结构简介
Oracle的物理存储结构与逻辑存储结构是分离的,因此你可以在不影响逻辑结构访问的情况下对物理存储结构进行管理。Oracle数据库可以看作是持久化存储上保存有数据的文件集合。当你执行 CREATE DATABASE 时,会生成以下数据库文件:
数据文件和临时文件:数据文件(data file)是Oracle数据库在持久化存储中生成的物理文件,其中包含有表、索引等数据结构。临时文件(temp file)是属于临时表空间的数据文件。Oracle会以其他软件无法读取的专有格式向这些文件写入数据。
控制文件(control file):是追踪数据库物理组成的二进制文件。没有控制文件数据库就无法启动。
在线重做日志(online redo log):是记录对数据库操作的日志文件。
数据库实例(database instance)是管理数据库文件的内存结构的集合。
数据库文件的存储机制
Oracle数据库常见的管理物理文件存储的机制包括:
Oracle自动存储管理(Automatic Storage Management, ASM):Oracle ASM 是专门为 Oracle 数据库设计的一种文件系统。
操作系统的文件系统(Operating system file system):大多数 Oracle 数据将文件存储在文件系统中。所有的操作系统都有在文件系统中给文件分配和释放磁盘空间的文件管理器。文件系统通常建立在逻辑卷管理器(Logical volume manager, LVM)创建的逻辑卷上。
集群文件系统(Cluster file system):集群文件系统是一个分布式的文件系统,通常用于对客户提供高性能服务的服务器集群。集群中的一个节点失败不会使整个文件系统不可用。
在实际应用中,Oracle数据库可以组合使用以上存储机制。比如,可以将控制文件和在线 redo 日志存储在传统的文件系统中,用户的某些数据文件存储在裸分区(raw partitions)中,其他的数据文件存储在 ASM 中,而归档的 redo 日志文件存储到集群文件系统中。
Oracle ASM
自动存储管理是一个高性能、易于管理的 Oracle 数据库文件存储解决方案。Oracle ASM 也是一个专门为 Oracle 数据库提供文件系统的卷管理器(volume manager)。相对于传统的文件系统和存储管理器,ASM 具有如下优点:
简化了存储相关的任务,例如创建和布局(lay out)数据库、管理磁盘空间;
在物理磁盘上分布数据,解决了热点(hot spots)问题,同时提供了一致的性能;
在存储结构发生变化后自动再平衡(rebalance)数据。
要使用Oracle ASM,你需要为Oracle数据库分配已分区的磁盘,并具有条带化(Striping)和镜像(Mirroring)的首选项。Oracle ASM 管理磁盘空间,在所有可用资源之间分配 I/O 负载,以优化性能,同时消除了手动 I/O 调整的需要。
ASM 存储结构
Oracle 可以将数据文件存储为 ASM 磁盘组(ASM disk group)中的一个 ASM 文件(也可以存储其他类型的数据库文件)。
以下重要概念:
ASM磁盘:是分配给 ASM 磁盘组的存储设备。ASM 磁盘可以是一个物理磁盘,也可以是一个分区、存储阵列(storage array)中的一个逻辑单元号(Logical unit number, LUN)、一个逻辑卷、或者一个网络附属文件(network-attached file)。
ASM磁盘组:是 ASM 作为一个逻辑单元来管理的一个 ASM 磁盘的集合。在磁盘组内,Oracle ASM 会为数据库文件暴露一个文件系统接口。磁盘组内存储的文件内容是均匀分布或者条带化的,以解决热点问题并提供一致的性能。
ASM文件:是存储在磁盘组中的文件。可以将 Oracle 中的数据文件、控制文件、在线重做日志等其它类型的文件存储为 ASM 文件。ASM 文件名以加号和ASM 磁盘组文件名开头,例如 +DISKGROUP/DB_INSTANCE/DATAFILE/tablepsace.256.167523。
ASM区(ASM extents):是 ASM 文件的一部分。一个 ASM 文件由一个或多个 ASM 区组成。每个 ASM 区由一个磁盘上的一个或多个分配单元组成。(注意:这里的ASM 区与逻辑存储结构中的区不一样。)
ASM分配单元(allocation units):是 ASM 磁盘组内的基本分配单元。分配单元是 Oracle ASM 分配的最小的邻近的磁盘空间。一个或多个分配单元组成一个 ASM区。
ASM 实例
ASM 实例是仅用于管理 ASM 磁盘的特殊 Oracle 实例。Oracle 数据库实例和 ASM 实例都需要共享访问 ASM磁盘组中的磁盘。ASM 实例管理磁盘组的元数据,并向数据库实例提供文件布局信息。数据库实例不需要经过 ASM 实例就能直接向 ASM 磁盘进行 I/O 操作。
Oracle 使用相同的技术建立 ASM 实例与数据库实例。例如,与数据库实例类似,ASM 实例也有一个系统全局区(System global area, SGA)和后台进程。但是,ASM 实例不能挂载数据库,功能也比数据库实例少很多。
Oracle管理的文件 vs 用户管理的文件
Oracle 管理的文件(Oracle managed files)是一个允许你使用数据库对象(而不是文件名)来说明操作的文件命名策略。例如,你可以创建一个表空间而无需注明它的数据文件。Oracle 管理的文件使得数据库管理员无需直接管理数据库中的操作系统文件。Oracle ASM 需要使用 Oracle 管理的文件。
另一方面,通过用户管理的文件(user-managed files),你可以直接管理数据库中的操作系统文件。你需要自主决定文件结构和命名。比如,创建一个表空间时指定其他名字和其中数据文件的路径。
数据文件(data files)
在操作系统层面,Oracle 数据库将数据存储在数据文件中。Oracle 数据库必须至少有一个数据文件。
数据文件的用途
每个未分区的 schema 对象(比如表、索引)、对象的每个分区都存储在自己的段(segment)中。每个段都只属于一个表空间(tablespace)。表空间和数据文件存在以下重要区别:
每个表空间由一个或多个数据文件组成;
一个数据库的所有数据都存储在数据库表空间的数据文件中;
一个段可以跨越一个或多个数据文件,但是不能跨越多个表空间;
一个Oracle数据库必须有 SYSTEM 和 SYSAUX 这两个表空间。在数据库创建时,Oracle 会自动为 SYSTEM 表空间分配第一批数据文件。SYSTEM 表空间中存有数据字典(data dictionary),即包含数据库元数据的表的一个集合。通常,Oracle 数据库还会有一个 undo 表空间和一个临时表空间(一般命名为 TEMP)。
二、oracle数据库应用结构?
1.客户/服务器结构
客户/服务器(Client/Server,C/S)结构是两层结构,在C/S结构中,需要在前端客户机上安装应用程序,通过网络连接访问后台数据库服务器。用户信息的输入、逻辑的处理和结果的返回都在客户端完成,后台数据库服务器接收客户端对数据库的操作请求并执行。
C/S结构的优点是客户机与服务器可采用不同软、硬件系统,这样做的好处是应用与服务分离,安全性高,执行速度快;缺点是维护、升级不方便。
2.终端/服务器结构
终端/服务器结构类似于客户/服务器结构。与客户/服务器结构不同之处在于,其所有的软件安装、配置、运行、通信、数据存储等都在服务器端完成,终端只作为输入和输出的设备,直接运行服务器上的应用程序,而没有处理能力。终端把鼠标和键盘输入传递到服务器上集中处理,服务器把信息处理结果传回终端。
终端/服务器结构的优点是便于实现集中管理,系统安全性高,网络负荷低,对终端设备的要求低;缺点是对服务器性能的要求较高。
3.浏览器/服务器结构
浏览器/服务器(Browser/Server,B/S)结构是3层结构,在B/S结构中,客户端只需要安装浏览器就可以了,不需要安装具体的应用程序;中间的Web服务器层是连接前端客户机与后台数据库服务器的桥梁,所有的数据计算和应用逻辑处理都在此层实现。用户通过浏览器输入请求,传到Web服务器进行处理。如果需要,Web服务器与数据库服务器进行交互,再将处理结果返回给用户。
B/S结构的优点是通过Web服务器处理应用程序逻辑,这样方便了应用程序的维护和升级。通过增加Web服务器的数量可以增加支持客户机的数量。其缺点是增加了网络连接环节,降低了执行效率,同时也降低了系统的安全性。
4. 分布式数据库的系统结构
数据库系统按数据分布方式的不同可以分为集中式数据库和分布式数据库。集中式数据库是将数据库集中在一台数据库服务器中,而分布式数据库是由分布于计算机网络上的多个逻辑相关的数据库所组成的集合,每个数据库都具有独立的处理能力,可以执行局部应用,也可以通过网络执行全局应用
三、oracle数据库应用结构包括?
Oracle数据库的体系结构包括四个方面:数据库的物理结构、逻辑结构、内存结构及进程。
1. 物理结构
物理数据库结构是由构成数据库的操作系统文件所决定,Oracle数据库文件包括:
数据文件(Data File)
数据文件用来存储数据库中的全部数据,例如数据库表中的数据和索引数据.通常以为*.dbf格式,例如:userCIMS.dbf 。
日志文件(Redo Log File)
日志文件用于记录数据库所做的全部变更(如增加、删除、修改)、以便在系统发生故障时,用它对数据库进行恢复。名字通常为Log*.dbf格式,如:Log1CIMS.dbf,Log2CIMS.dbf 。
控制文件(Control File)
每个Oracle数据库都有相应的控制文件,它们是较小的二进制文件,用于记录数据库的物理结构,如:数据库名、数据库的数据文件和日志文件的名字和位置等信息。用于打开、存取数据库。名字通常为Ctrl*ctl 格式,如Ctrl1CIMS.ctl。
配置文件
配置文件记录Oracle数据库运行时的一些重要参数,如:数据块的大小,内存结构的配置等。名字通常为init*.ora 格式,如:initCIMS.ora 。
2 逻辑结构
Oracle数据库的逻辑结构描述了数据库从逻辑上如何来存储数据库中的数据。逻辑结构包括表空间、段、区、数据块和模式对象。数据库的逻辑结构将支配一个数据库如何使用系统的物理空间.模式对象及其之间的联系则描述了关系数据库之间的设计.
一个数据库从逻辑上说是由一个或多个表空间所组成,表空间是数据库中物理编组的数据仓库,每一个表空间是由段(segment)组成,一个段是由一组区(extent)所组成,一个区是由一组连续的数据库块(database block)组成,而一个数据库块对应硬盘上的一个或多个物理块。一个表空间存放一个或多个数据库的物理文件(即数据文件).一个数据库中的数据被逻辑地存储在表空间上。
表空间(tablespace)
Oracle数据库被划分为一个或多个称为表空间的逻辑结构,它包括两类表空间,System表空间和非System表空间,其中,System表空间是安装数据库时自动建立的,它包含数据库的全部数据字典,存储过程、包、函数和触发器的定义以及系统回滚段。除此之外,还能包含用户数据。。
一个表空间包含许多段,每个段有一些可以不连续的区组成,每个区由一组连续的数据块组成,数据块是数据库进行操作的最小单位。
每个表空间对应一个或多个数据文件,每个数据文件只能属于一个表空间。
数据库块(database block)
数据库块也称逻辑块或ORACLE块,它对应磁盘上一个或多个物理块,它的大小由初始化参数db-block-size(在文件init.ora中)决定,典型的大小是2k。Pckfree 和pctused 两个参数用来优化数据块空间的使用。
区(extent)
区是由一组连续的数据块所组成的数据库存储空间分配的逻辑单位。
段(segment)
段是一个或多个不连续的区的集合,它包括一个表空间内特定逻辑结构的所有数据,段不能跨表空间存放。Oracle数据库包括数据段、索引段、临时段、回滚段等。
模式对象(schema object)
Oracle数据库的模式对象包括表、视图、序列、同意词、索引、触发器、存储.过程等,关于它们将重点在后面章节介绍。
3.Oracle Server系统进程与内存结构
当在计算机服务器上启动Oracle数据库后,称服务器上启动了一个Oracle实例(Instance)。ORACLE 实例(Instance)是存取和控制数据库的软件机制,它包含系统全局区(SGA)和ORACLE进程两部分。SGA是系统为实例分配的一组共享内存缓冲区,用于存放数据库实例和控制信息,以实现对数据库中数据的治理和操作。
进程是操作系统中一个极为重要的概念。一个进程执行一组操作,完成一个特定的任务.对ORACLE数据库治理系统来说,进程由用户进程、服务器进程和后台进程所组成。
当用户运行一个应用程序时,系统就为它建立一个用户进程。服务器进程处理与之相连的用户进程的请求,它与用户进程相通讯,为相连的用户进程的ORACLE请求服务。
为了提高系统性能,更好地实现多用户功能,ORACLE还在系统后台启动一些后台进程,用于数据库数据操作。
系统进程的后台进程主要包括:
SMON 系统监控进程:(system monitor)负责完成自动实例恢复和回收分类(sort)表空间。
PMON 进程监控进程:(PRocess monitor)实现用户进程故障恢复、清理内存区和释放该进程所需资源等。
DBWR 数据库写进程:数据库缓冲区的治理进程。
在它的治理下,数据库缓冲区中总保持有一定数量的自由缓冲块,以确保用户进程总能找到供其使用的自由缓冲块。
LGWR 日志文件写进程:是日志缓冲区的治理进程,负责把日志缓冲区中的日志项写入磁盘中的日志文件上。每个实例只有一个LGWR进程。
ARCH 归档进程:(archiver process)把已经填满的在线日志文件拷贝到一个指定的存储设备上。仅当日志文件组开关(switch)出现时,才进行ARCH操作。ARCH不是必须的,而只有当自动归档可使用或者当手工归档请求时才发出。
RECO 恢复进程:是在具有分布式选项时使用的一个进程,主要用于解决引用分布式事务时所出现的故障。它只能在答应分布式事务的系统中出现。
LCKn 封锁进程:用于并行服务器系统,主要完成实例之间的封锁。
内存结构(SGA)
SGA是Oracle为一个实例分配的一组共享内存缓冲区,它包含该实例的数据和控制信息。SGA在实例启动时被自动分配,当实例关闭时被收回。数据库的所有数据操作都要通过SGA来进行。
SGA中内存根据存放信息的不同,可以分为如下几个区域:Buffer Cache:存放数据库中数据库块的拷贝。它是由一组缓冲块所组成,这些缓冲块为所有与该实例相链接的用户进程所共享。缓冲块的数目由初始化参数DB_BLOCK_BUFFERS确定,缓冲块的大小由初始化参数DB_BLOCK_SIZE确定。大的数据块可提高查询速度。它由DBWR操作。
b. 日志缓冲区Redo Log Buffer:存放数据操作的更改信息。它们以日志项(redo entry)的形式存放在日志缓冲区中。当需要进行数据库恢复时,日志项用于重构或回滚对数据库所做的变更。日志缓冲区的大小由初始化参数LOG_BUFFER确定。大的日志缓冲区可减少日志文件I/O的次数。后台进程LGWR将日志缓冲区中的信息写入磁盘的日志文件中,可启动ARCH后台进程进行日志信息归档。
c. 共享池Shared Pool:包含用来处理的SQL语句信息。它包含共享SQL区和数据字典存储区。共享SQL区包含执行特定的SQL语句所用的信息。数据字典区用于存放数据字典,它为所有用户进程所共享。
四、数据库物理结构?
数据库的物理结构是由数据库的操作系统文件所决定,每一个Oracle数据库是由三种类型的文件组成:数据文件、日志文件和控制文件。数据库的文件为数据库信息提供真正的物理存储。
每一个Oracle数据库有一个或多个物理的数据文件(data file)。一个数据库的数据文件包含全部数据库数据。逻辑数据库结构(如表、索引等)的数据物理地存储在数据库的数据文件中。数据文件通常为*.dbf格式
五、请问oracle数据库如何导出数据库的表结构?
oracle数据库导出数据库的表结构,使用sql查询将查到的数据复制到Excel表中保存中即可。查询代码:
SELECT t.table_name,
t.colUMN_NAME,
t.DATA_TYPE || '(' || t.DATA_LENGTH || ')',
t1.COMMENTS
FROM User_Tab_Cols t, User_Col_Comments t1
WHERE t.table_name = t1.table_name
AND t.column_name = t1.column_name;
六、Oracle导出数据库PLSQL怎样导出表结构?
PLSQL导出oracle表结构的具体步骤如下: 我们需要准备的材料分别是:电脑、PL/SQL Developer软件。
1、首先我们打开需要编辑的oracle数据库,点击打开“tools”。
2、然后我们在弹出来的窗口中点击打开“export user objects”。
3、然后我们在弹出来的窗口中设置用户、导出对象、导出路径等参数,之后单击导出(Export)即可。
七、oracle数据库是b/s结构还是c/s?
B/S和C/S是基于数据库的应用程序的部署架构,Oracle是支持B/S和C/S架构的数据库管理系统.
八、Oracle数据库中表结构与表数据的区别?
表结构就是定义一个表的字段、类型、主键、外键、索引,这些基本的属性组成了数据库的表结构例如:createtablestudent(idintprimarykey,namevarchar,sexvarchar,agevarchar)id、name、sex这些就是字段,intvarchar就是数据类型,primarykey为设置主键表数据就是表里存放的具体数据内容啦如student表中具体的数据张三,男,15王丽,女,22
九、oracle 数据库性能?
一、数据库性能指标
数据库性能一般用两个方面的指标来衡量:响应时间和吞吐量。响应越快,吞吐量越大,数据库性能越好。
1. 操作系统有关的指标:CPU平均利用率、内存平均占用率、硬盘占用率、I/O数量、网络时延
2. 数据库有关的指标:I/Owait、Mem平均使用率、cpu平均使用率、在一次I/O操作中所读的最大BLOCKS数、Log的增长情况、数据库的访问速度、数据库能支持的最大用户数、数据库CACHE命中率、不同数据库参数下的性能情况、锁的处理
二、Oracle
注:以下指标取自Oracle的性能分析工具Statspack所提供的性能分析指标。
1.关于实例效率(Instance Efficiency Percentages)的性能指标
(1)缓冲区未等待率(Buffer Nowait %)
指在缓冲区中获取Buffer的未等待比率。该指标的值应接近100%,如果该值较低,则可能要增大buffer cache。
(2)Redo缓冲区未等待率(Redo NoWait %)
指在Redo缓冲区获取Buffer的未等待比率。该指标的值应接近100%,如果该值较低,则有2种可能的情况:
1.online redo log没有足够的空间;
2.log切换速度较慢。
(3)缓冲区命中率(Buffer Hit %)
指数据块在数据缓冲区中的命中率。
(4)内存排序率(In-memory Sort %)
指排序操作在内存中进行的比率。当查询需要排序的时候,数据库会话首先选择在内存中进行排序,当内存大小不足的时候,将使用临时表空间进行磁盘排序,但磁盘排序效率和内存排序效率相差好几个数量级。
(5)共享区命中率(Library Hit%)
该指标主要代表sql在共享区的命中率。
(6)软解析的百分比(Soft Parse %)
该指标是指Oracle对sql的解析过程中,软解析所占的百分比。软解析(soft parse)是指当Oracle接到Client提交的Sql后会首先在共享池(Shared Pool)里面去查找是否有之前已经解析好的与刚接到的这一个Sql完全相同的Sql。当发现有相同的Sql就直接用之前解析好的结果,这就节约了解析时间以及解析时候消耗的CPU资源。
(7)闩命中率(Latch Hit%)
指获得Latch的次数与请求Latch的次数的比率。
十、Oracle数据库安装?
oracle分为客户端和服务端,顾名思义,客户端只能访问服务器上的数据库,而服务端功能则更加强大,在提供远程访问功能的同时,能够在本地还原数据库并访问,那么今天主要讲一下服务端的安装,这里以oracle11g_R2为例。
1、先从oracle官网下载oracle11g_R2_database安装包,这里需要根据你电脑系统选择window、linux或者其它类型,再选择64位还是32位,我的电脑是window10 32位的。
2、下载完成后一共有俩个压缩包:win32_11gR2_database_1of2.zip和win32_11gR2_database_2of2.zip,把这俩个压缩包解压到同一个目录,然后右击以管理员身份运行setup.exe
3、邮箱可填可不填,下面的勾选要去掉,然后点击“下一步”
4、选择“配置和创建数据库”,并点击“下一步”
5、因为我们是安装在本地电脑上的,所以选择“桌面类”,如果是安装在服务器上,则选择“服务器类”,再点击“下一步”
6、选择数据库的安装目录,一般选择剩余空间比较大的盘,不建议放在系统盘,然后设置管理口令,我这边简单起见设置了“1234”,点击“下一步”,他会提示你口令不符合标准,可以不用管,直接继续
7、开始检测你的环境是否满足安装要求,假如满足直接跳到如下页面,点击“完成”,就会开始安装了
8、等一段时间,出现如下页面,那么就表示你的数据库安装成功啦
以上为个人观点,欢迎在评论中发表自己不同的观点,喜欢的加个关注,谢谢。
热点信息
-
在Python中,要查看函数的用法,可以使用以下方法: 1. 使用内置函数help():在Python交互式环境中,可以直接输入help(函数名)来获取函数的帮助文档。例如,...
-
一、java 连接数据库 在当今信息时代,Java 是一种广泛应用的编程语言,尤其在与数据库进行交互的过程中发挥着重要作用。无论是在企业级应用开发还是...
-
一、idea连接mysql数据库 php connect_error) { die("连接失败: " . $conn->connect_error);}echo "成功连接到MySQL数据库!";// 关闭连接$conn->close();?> 二、idea连接mysql数据库连...
-
要在Python中安装modbus-tk库,您可以按照以下步骤进行操作: 1. 确保您已经安装了Python解释器。您可以从Python官方网站(https://www.python.org)下载和安装最新版本...