1、ORACLE 1、ORACLE概述概述 2、ORACLE的体系结构的体系结构 3、ORACLE的物理结构的物理结构 4、ORACLE的逻辑结构的逻辑结构 1 Oracle概述概述数据库系统的发展数据库系统的发展第一代数据库:第一代数据库:20世纪世纪70年代广为流行的是层次和网状数据库年代广为流行的是层次和网状数据库,层次数据库按层次组织数据。只能处理,层次数据库按层次组织数据。只能处理1:1和和1:N的关系。代的关系。代表产品是表产品是IBM在在1969年研制的年研制的IMS。第二代数据库:第二代数据库:20世纪世纪80年代是关系数据库发展的鼎盛时期。年代是关系数据库发展的鼎盛时期。代表产品
2、是代表产品是IBM的的DB2,Oracle公司的公司的Oracle,第三代数据库:第三代数据库:20世纪世纪80年代以来,从不同的计算机应用领域年代以来,从不同的计算机应用领域对数据库提出了许多非传统的应用,如对数据库提出了许多非传统的应用,如CAD等,计算机辅助软等,计算机辅助软件工程(件工程(CASE)等,这些应用领域要求)等,这些应用领域要求DBMS能存储多媒体能存储多媒体数据,时态数据,复杂对象,图形图像等。数据,时态数据,复杂对象,图形图像等。ORACLE概述概述七十年代初七十年代初IBM研究人员研究人员E F Code发表了一篇里程碑的论文,发表了一篇里程碑的论文,“R系统系统:数
3、据库关系理论:数据库关系理论”,介绍了关系数据库理论和查询语言,介绍了关系数据库理论和查询语言SQL,这是第一,这是第一次有人用全面一致的方案管理数据信息。次有人用全面一致的方案管理数据信息。根据这篇论文,根据这篇论文,1977年,年,33岁的埃里森岁的埃里森(Larry Ellison)与与Bob Miner,Ed Oates创立创立“软件开发实验室软件开发实验室”(Software Development Labs),埃里森以此造出可商用的关系型数据库管理系统),埃里森以此造出可商用的关系型数据库管理系统(RDBMS新数据库,新数据库,1983年更名为年更名为Oracle。ORACLE(字
4、典里的解释有“神谕,预言”之意)是一切智慧的源泉。Oracle公司简介公司简介Oracle公司是全球最大和最成功的数据库软件公司之一,总部公司是全球最大和最成功的数据库软件公司之一,总部位于美国加州的红木滩(位于美国加州的红木滩(Redwood Shores),),2013年收入年收入278亿美元。亿美元。目前,目前,Oracle公司是业界领先的数据库企业和世界第二大独立软件公公司是业界领先的数据库企业和世界第二大独立软件公司,仅次于司,仅次于Microsoft,是世界软件企业排名前,是世界软件企业排名前5名的国际大企业,向名的国际大企业,向世界世界145个国家和地区销售其产品和服务。个国家和
5、地区销售其产品和服务。Oracle数据库产品是当前市场占有率最高的数据库产品,约为数据库产品是当前市场占有率最高的数据库产品,约为34%。Oracle数据库客户遍布于工业、金融、商业、保险等各个领域。数据库客户遍布于工业、金融、商业、保险等各个领域。在当今世界在当今世界500强企业中,强企业中,70%企业使用的是企业使用的是Oracle数据库。数据库。财富财富100强企业中有强企业中有98家使用家使用Oracle产品。产品。Oracle数据库发展史数据库发展史从从1978年年Oracle数据库产品数据库产品Oracle2的发布,到今天的发布,到今天Oracle12C的推出,的推出,Oracle
6、功能不断完善和发展,性能不断提高,其安全性、功能不断完善和发展,性能不断提高,其安全性、稳定性也日趋完善。稳定性也日趋完善。特别是从特别是从Oracle8开始使用开始使用Java语言作为开发语言,使得语言作为开发语言,使得Oracle数据库产品具有优良的跨平台特性,可以适用于各种不同的操作数据库产品具有优良的跨平台特性,可以适用于各种不同的操作系统,这也是系统,这也是Oracle数据库产品比数据库产品比IBM DB2、Microsoft SQL Server应用更广泛的原因之一。应用更广泛的原因之一。Oracle数据库发展史数据库发展史1.1979年,年,Oracle公司推出了世界上第一个基于
7、公司推出了世界上第一个基于SQL标准的关系数据库系统标准的关系数据库系统Oracle2,它是基于汇编语言开发的,当时并没有引起太多的关注。,它是基于汇编语言开发的,当时并没有引起太多的关注。2.1983年年3月,月,Oracle公司发布了公司发布了Oracle3,该版本采用,该版本采用C语言开发。语言开发。4.1985年,年,Oracle公司发布了公司发布了Oracle55.1988年,年,Oracle公司发布了公司发布了Oracle66.1992年,年,Oracle公司发布了基于公司发布了基于Unix版本的版本的Oracle7,Oracle正式向正式向Unix进军进军7.1997年年6月,月
8、,Oracle公司发布了基于公司发布了基于Java的的Oracle88.1998年年8月,月,Oracle公司正式发布了公司正式发布了Oracle8i9.2000年年12月,月,Oracle公司发布了公司发布了Oracle9i10.2004年年1月,月,Oracle公司发布了基于网格计算的公司发布了基于网格计算的Oracle10g11.2007年年7月,月,Oracle公司发布了公司发布了Oracle11g,根据用户的需求实现了信息生命周期根据用户的需求实现了信息生命周期管理(管理(Information Lifecycle Management)等多项创新。)等多项创新。12.2013年年6
9、月月26日,日,Oracle 12c版本正式发布版本正式发布 Oracle系统的特点系统的特点支持大数据库、多用户的高性能的事务处理。支持大数据库、多用户的高性能的事务处理。ORACLE支持大数据库,支持大量用支持大数据库,支持大量用户同时在同一数据上执行各种数据应用,并使数据争用最小,保证数据一致性。系户同时在同一数据上执行各种数据应用,并使数据争用最小,保证数据一致性。系统维护具有高的性能,统维护具有高的性能,ORACLE每天可连续每天可连续24小时工作,正常的系统操作(后备或小时工作,正常的系统操作(后备或个别计算机系统故障)不会中断数据库的使用。个别计算机系统故障)不会中断数据库的使用
10、。ORACLE遵守数据存取语言、操作系统、用户接口和网络通信协议的工业标准。遵守数据存取语言、操作系统、用户接口和网络通信协议的工业标准。美美国标准化和技术研究所(国标准化和技术研究所(NIST)对)对ORACLE7 SERVER进行检验,进行检验,100%地与地与ANSI/ISO SQL89标准的二级相兼容。标准的二级相兼容。实施安全性控制和完整性控制。实施安全性控制和完整性控制。ORACLE为限制各监控数据存取提供系统可靠的安为限制各监控数据存取提供系统可靠的安全性。全性。ORACLE实施数据完整性,为可接受的数据指定标准。实施数据完整性,为可接受的数据指定标准。支持分布式数据库和分布处理
11、。支持分布式数据库和分布处理。分布式系统像集中式数据库一样具有透明性和数据分布式系统像集中式数据库一样具有透明性和数据一致性。一致性。具有可移植性、可兼容性和可连接性。具有可移植性、可兼容性和可连接性。由于由于ORACLE软件可在许多不同的操作系统软件可在许多不同的操作系统上运行,以致上运行,以致ORACLE上所开发的应用可移植到任何操作系统,只需很少修改或不上所开发的应用可移植到任何操作系统,只需很少修改或不需修改。需修改。ORACLE软件同工业标准相兼容,包括许多工业标准的操作系统,所开发软件同工业标准相兼容,包括许多工业标准的操作系统,所开发应用系统可在任何操作系统上运行。应用系统可在任
12、何操作系统上运行。2 2 OracleOracle系统的体系结构系统的体系结构 实例实例 数据缓冲区数据缓冲区 日志缓冲区日志缓冲区 共享池共享池 大型池大型池 Java池池 其他其他 SGA 后台进程后台进程 数据文件数据文件 控制文件控制文件 重做日志文件重做日志文件 归档文件归档文件 LGWR CKPT ARCH 数据库数据库 用户进程用户进程 服务器进程服务器进程 SMON PMON DBWR 其它其它 Oracle体系结构体系结构Oracle体系结构体系结构Oracle服务器由服务器由Oracle实例(实例(instance)和)和Oracle数据库(数据库(database)组成。
13、一)组成。一个实例只对应一个数据库,但是一个数据库可以对应多个实例(在集群环境下)。个实例只对应一个数据库,但是一个数据库可以对应多个实例(在集群环境下)。所谓实例是一种存取和控制数据库的机制,它由内存结构和一些后台进程组成。它所谓实例是一种存取和控制数据库的机制,它由内存结构和一些后台进程组成。它的内存结构也称为系统全局区(的内存结构也称为系统全局区(system global area,SGA),后台进程中有五个),后台进程中有五个是必需的是必需的,分别是分别是SMON,PMON,DBWR,LGWR和和CKPT。每一次在数据库服务器上。每一次在数据库服务器上启动一数据库时,一块系统全局区(
14、启动一数据库时,一块系统全局区(SGA)内存区(简称)内存区(简称SGA)被分配,有一个或)被分配,有一个或多个多个ORACLE进程被启动。进程被启动。启动数据库时,启动数据库时,Oracle首先要在内存中获取,划分,保留各种用途的区域,运行各首先要在内存中获取,划分,保留各种用途的区域,运行各种用途的后台进程,即创建一个实例(种用途的后台进程,即创建一个实例(instance),然后再由该实例装载(),然后再由该实例装载(mount),打开(),打开(open)数据库,最后由这个实例来访问和控制数据库的各种物理结构)数据库,最后由这个实例来访问和控制数据库的各种物理结构当用户连接到数据库并使
15、用数据库时,实际上是连接到该数据库的实例,通过实例当用户连接到数据库并使用数据库时,实际上是连接到该数据库的实例,通过实例来连接,使用数据库所以,来连接,使用数据库所以,实例是用户和数据库之间的中间层实例是用户和数据库之间的中间层Oracle的内存结构的内存结构ORACLE在内存存储下列信息:在内存存储下列信息:执行的程序代码。执行的程序代码。连接的会话信息连接的会话信息程序执行期间所需数据和共享的信息程序执行期间所需数据和共享的信息存储在外存储上的缓冲信息。存储在外存储上的缓冲信息。ORACLE具有下列基本的内存结构:具有下列基本的内存结构:软件代码区软件代码区系统全局区系统全局区(SGA)
16、,包括数据库缓冲存储区、日志缓冲区和共包括数据库缓冲存储区、日志缓冲区和共享池享池.程序全局区程序全局区(PGA),包括栈区和数据区包括栈区和数据区.SGA(1)共享池()共享池(Shared Pool)(2)数据库高速缓存()数据库高速缓存(Database Buffer Cache)(3)重做日志缓存()重做日志缓存(Redo Log Buffer Cache)(4)Java池(池(Java Pool)(5)大池()大池(Lager Pool)主要由五部分组成:主要由五部分组成:共享池共享池存储了最近使用并且执行的存储了最近使用并且执行的SQL语句和最近使用的数据定义,语句和最近使用的数据
17、定义,包含库高速缓存器和数据字典缓存器这两个性能相关的内存结包含库高速缓存器和数据字典缓存器这两个性能相关的内存结构。其大小通过初始化参数文件(构。其大小通过初始化参数文件(init.ora)中的中的SHARED_POOL_SIZE决定。决定。共享池是活动非常频繁的内存结构,设置不当会产生大量的内共享池是活动非常频繁的内存结构,设置不当会产生大量的内存碎片,所以必须确保它尽可能大。存碎片,所以必须确保它尽可能大。数据库高速缓存数据库高速缓存(1)包含共享)包含共享SQL区和共享区和共享PL/SQL区两个组件区区两个组件区(2)在提交)在提交SQL时,利用最近最少使用(时,利用最近最少使用(LR
18、U)(Least recently used)算法检查缓存中是否存在相同的内容,若有则算法检查缓存中是否存在相同的内容,若有则使用原有的分析树和执行路径。使用原有的分析树和执行路径。(3)可以有效的改善响应时间,它的大小由共享池的大小决定。)可以有效的改善响应时间,它的大小由共享池的大小决定。(4)其大小主要由)其大小主要由DB_BLOCK_SIZE决定。决定。(5)由)由DB_CACHE_SIZE,DB_KEEP_CACHE_SIZE,DB_RECYCLE_CACHE_SIZE独立的子缓存器构成,同时它能动独立的子缓存器构成,同时它能动态地增长或收缩。态地增长或收缩。重做日志缓存重做日志缓存
19、(1)当执行)当执行INSERT,UPDATE,DELETE语句对表进行修改时语句对表进行修改时,或执或执行行CREATE,ALTER,DROP等语句创建方案对象时等语句创建方案对象时,Oracle都会为都会为这些操作生成重做记录这些操作生成重做记录.重做日志高速缓存就是用于重做记录缓重做日志高速缓存就是用于重做记录缓存存.(2)大小由)大小由LOG_BUFFER参数决定参数决定JAVA池池安装使用安装使用JAVA后,才出现的一个组件,可选的。后,才出现的一个组件,可选的。其大小由其大小由JAVA_POOL_SIZE初始化参数决定。初始化参数决定。大池大池1、大池用于为需要大内存的操作提供相对
20、独立的内存空间、大池用于为需要大内存的操作提供相对独立的内存空间,以便提高这些操作的性能以便提高这些操作的性能.大池是一个可选的内存结构大池是一个可选的内存结构,DBA可以根据实际需要来决定是否在可以根据实际需要来决定是否在SGA区中创建大池区中创建大池.需要大内存的操作需要大内存的操作:1,数据库备份和恢复数据库备份和恢复2,具有大量排序操作的具有大量排序操作的SQL语句语句3,并行化的数据库操作并行化的数据库操作2、由、由large_pool_size 参数参数程序全局区程序全局区PGA保存每一个用户连接到数据库的信息,保存每一个用户连接到数据库的信息,包括:会话信息、排序信息和游标信息。
21、包括:会话信息、排序信息和游标信息。分为:分为:排序区、排序区、会话区、会话区、游标区、游标区、堆栈区堆栈区进程结构进程结构用户进程用户进程启动客户端连接创建一个用户进程启动客户端连接创建一个用户进程Oracle进程进程1.服务进程服务进程 解析并执行用户所提交的解析并执行用户所提交的SQL语句语句 搜索搜索SGA区的数据库缓存区的数据库缓存,决定时候读取数据文件决定时候读取数据文件 将查询或执行后形成的数据返回给用户将查询或执行后形成的数据返回给用户2.后台进程后台进程1、写数据、写数据DatabaseWriter(DBWN)2、写日志、写日志LogWriter(LGWR)3、检查点、检查点
22、Checkpoint(CKPT)4、系统监视、系统监视SystemMonitor(SMON)5、进程监视、进程监视ProcessesMonitor(PMON)6、归档、归档Archive(ARCn)7、恢复、恢复Recover(RECO)8、锁管理服务、锁管理服务LockManagerServer(LMS)9、队列监视、队列监视QueueMonitor(QMNn)10、调度、调度Dispatcher(Dnnn)11、服务、服务Server(Snnn)Oracle的进程结构的进程结构写数据(写数据(DBWN)负责将数据从数据高速缓存写入磁盘上。写数据进程活动的条件如下:1、服务进程无法发现可用缓
23、存。2、检查点出现。3、重写块到达极限。4、超时。5、表空间脱机。6、表空间只读。7、表丢弃或表截断。8、表空间开始备份。用参数DB_WRITER_PROCESSES指定DBWN进程的序号,最大值为20。写日志(写日志(LGWR)将日志从缓存区写到磁盘日志文件中。写日志在下列条件下活动:1、在COMMIT中2、缓存器使用达到三分之一的时候3、缓存器使用达到1MB时4、每隔3秒5、在DBWN活动之前。检查点进程(检查点进程(CKPT)1、负责向DBWN发送信号,并用检查点的信息更新数据文件头和控制文件信息。2、该进程可以减少LGWR的工作量。3、通过初始化参数CHECKPOINT_PROCESS
24、为TRUE或FALSE来确定是否使用检查点进程。4、通过LOG_CHECKPOINT_INTERVAL和LOG_CHECKPOINT_TIMEOUT来改变检查点出现的频率。系统监视进程(系统监视进程(SMON)具有一定的周期性,作用如下:1、在实例启动中视需要执行恢复。2、重新分配临时段。3、每隔3秒合并表空间中相邻的自由区。4、根据需要将表空间或数据文件恢复到联机状态。5、对于应用集群系统,执行恢复一个失败的CPU或Oracle实例。系统监视进程在数据库系统实例启动时如果出现故障,那么数据库系统将无法开始工作。进程监视进程(进程监视进程(PMON)负责在下列过程失败后释放相关对象:1、事务回
25、退。2、释放相关锁。3、释放相关资源。4、重新分配发生错误的调度。周期性地检查调度状态和服务进程,并重新使除Oracle有意终止以外的已停止的进程运行。如果这个进程出现故障,则数据库系统无法工作。归档进程(归档进程(ARCn)1、可选的后台进程,在实例运行在归档模式时出现。2、负责在日志文件切换时将所有重做日志信息复制到指定的设备文件中。3、一个ORACLE数据库实例最多可以拥有10个(ARC0和ARC9)归档进程。恢复进程(恢复进程(RECO)恢复进程负责自动解决分布式数据库系统中陷于失败的分布式事务。(分布式数据库系统由分布于多个计算机结点上的若干个数据库系统组成,并提供了有效的存取手段来
26、操纵这些结点上的子数据库。分布式数据库在使用上可视为一个完整的数据库,而实际上它分布在地理分散的各个结点上。)3 Oracle的物理结构的物理结构Oracle的体系结构的体系结构Oracle数据库数据库 拥有者模式模式1表表视图视图123序序列列用户视图用户视图 物理文件物理文件 表空间表空间 逻辑结构逻辑结构 数据段数据段区间区间 数据块数据块 物理块 物理结构物理结构数据文件控制文件联机日志文件 索引段索引段段数据库存储结构数据库存储结构 物理存储结构的构成物理存储结构的构成 数据文件:用于存储数据库中所有数据;数据文件:用于存储数据库中所有数据;控制文件:用于记录和描述数据库的物理存储结
27、构信息;控制文件:用于记录和描述数据库的物理存储结构信息;重做日志文件:用于记录外部程序(用户)对数据库的修改操重做日志文件:用于记录外部程序(用户)对数据库的修改操作;作;初始化参数:用于设置数据库启动时参数初始值;初始化参数:用于设置数据库启动时参数初始值;跟踪文件:用于记录用户进程、数据库后台进程的运行情况;跟踪文件:用于记录用户进程、数据库后台进程的运行情况;归档文件:用于保存已经写满的重做日志文件;归档文件:用于保存已经写满的重做日志文件;口令文件:用于保存具有口令文件:用于保存具有SYSDBA,SYSOPER权限的用户名权限的用户名和和SYS用户口令。用户口令。数据文件数据文件 .
28、DBF控制文件控制文件 .CTL重做日志文件重做日志文件 .LOG参数文件:参数文件:.ORA归档文件:归档文件:.ARC数据文件及其管理数据文件及其管理数据文件概述数据文件概述 数据文件的管理数据文件的管理 数据文件概述数据文件概述数据文件的内容数据文件的内容 用于保存数据库中数据的文件 系统数据、数据字典数据、临时数据、索引数据、应用数据等都物理的存储在数据文件中。数据文件与表空间的关系数据文件与表空间的关系 一个表空间可以包含几个数据文件 一个数据文件只能对应一个表空间数据文件的存储策略数据文件的存储策略 由于对数据库的操作最终转换为对数据文件的操作,因此在数据库运行过程中对数据文件进行
29、频繁的读写操作。为了提供I/O效率,应该合理的分配数据文件的存储位置。把不同存储内容的数据文件放置在不同的硬盘上,可以并行访问数据,提高系统读写的效率。初始化参数文件、控制文件、重做日志文件最好不要与数据文件存放在同一个磁盘上,以免数据库发生介质故障时,无法恢复数据库。数据文件的管理数据文件的管理创建数据文件创建数据文件修改数据文件的大小修改数据文件的大小改变数据文件的可用性改变数据文件的可用性改变数据文件的名称和位置改变数据文件的名称和位置查询数据文件的信息查询数据文件的信息创建数据文件创建数据文件数据文件依附于表空间而存在,创建数据文件就是向表空间数据文件依附于表空间而存在,创建数据文件就
30、是向表空间添加文件添加文件在创建数据文件时应该根据文件数据量的大小确定文件的大在创建数据文件时应该根据文件数据量的大小确定文件的大小以及文件的增长方式。小以及文件的增长方式。语法语法 ALTER TABLESPACEADD DATAFILE ALTER TABLESPACEADD TEMPFILE向向ORCL数据库的数据库的USERS表空间中添加一个大小为表空间中添加一个大小为10MB的数的数据文件。据文件。ALTER TABLESPACE USERS ADD DATAFILE D:Oracleoradataorcluserdata02.dbf SIZE 10M;向向ORCL数据库的数据库的T
31、EMP表空间添加一个大小为表空间添加一个大小为5MB的临时数的临时数据文件。据文件。ALTER TABLESPACE TEMP ADD TEMPFILE D:Oracleoradataorcltemp02.dbf SIZE 5M;修改数据文件大小修改数据文件大小方法方法 设置数据文件为自动增长方式。手工改变数据文件的大小。设置数据文件为自动增长方式设置数据文件为自动增长方式 创建时设置数据文件为自动增长 创建后修改数据文件为自动增长 AUTOEXTEND ON NEXT MAXSIZE|UNLIMITED手工改变数据文件的大小手工改变数据文件的大小 ALTER DATABASE DATAFIL
32、ERESIZE 为为ORCL数据库的数据库的USERS表空间添加一个自动增长的数表空间添加一个自动增长的数据文件。据文件。ALTER TABLESPACE USERS ADD DATAFILE D:Oracleoradataorcluserdata03.dbf SIZE 10M AUTOEXTEND ON NEXT 512K MAXSIZE 250M;修改修改ORCL数据库数据库USERS表空间的数据文件表空间的数据文件userdata02.dbf为自动增长。为自动增长。ALTER DATABASE DATAFILE D:Oracleoradataorcluserdata02.dbf AUTO
33、EXTEND ON NEXT 512K MAXSIZE UNLIMITED;取消取消ORCL数据库数据库USERS表空间的数据文件表空间的数据文件userdata02.dbf的的自动增长。自动增长。ALTER DATABASE DATAFILE D:Oracleoradataorcluserdata02.dbf AUTOEXTEND OFF;将将ORCL数据库数据库USERS表空间的数据文件表空间的数据文件userdata02.dbf大小大小设置为设置为8MB。ALTER DATABASE DATAFILE D:Oracleoradataorcluserdata02.dbfRESIZE 8M
34、改变数据文件的可用性改变数据文件的可用性ALTER DATABASE DATAFILEONLINE|OFFLINE改变数据文件的状态时,数据库必须运行在归档模式下改变数据文件的状态时,数据库必须运行在归档模式下改变同一个表空间的数据文件改变同一个表空间的数据文件Step1.表空间脱机表空间脱机 ALTER TABLESPACE tablespace_name OFFLINEStep2.修改操作系统中文件名称或位置修改操作系统中文件名称或位置Step3.执行执行ALTER语句语句 ALTER TABLESPACE tablespace_nameRENAME DATAFILETOStep4.表空间
35、联机表空间联机 ALTER TABLESPACE tablespaceONLINE 更改更改ORCL数据库数据库USERS表空间的表空间的userdata02.dbf和和userdata03.dbf文件名为文件名为userdata002.dbf和和userdata003.dbf 将包含数据文件的表空间置为脱机状态。ALTER TABLESPACE USERS OFFLINE;在操作系统中重命名数据文件或移动数据文件到新的位置。分别将userdata02.dbf和userdata03.dbf文件重命名为userdata002.dbf和userdata003.dbf。重新连接数据库,使用ALTER
36、 TABLESPACERENAME DATAFILETO语句进行操作。CONNECT sys/sys ORCL AS SYSDBAALTER TABLESPACE USERS RENAME DATAFILE D:Oracleoradataorcluserdata02.dbf,D:Oracleoradataorcluserdata03.dbf TO D:Oracleoradataorcluserdata002.dbf,D:Oracleoradataorcluserdata003.dbf;将表空间联机将表空间联机ALTER TABLESPACE users ONLINE;改变属于多个表空间的数据文
37、件改变属于多个表空间的数据文件 Step1.关闭数据库关闭数据库 SHUTDOWN IMMEDIATE Step2.修改操作系统文件名称或位置修改操作系统文件名称或位置 Step3.启动数据库到启动数据库到MOUNT状态状态 STARTUP MOUNT Step4.执行执行ALTER 语句语句 ALTER DATABASE RENAME FILETO Step5.打开数据库打开数据库 ALTER DATABASE OPNE 更改更改ORCL数据库数据库USERS表空间的表空间的userdata002.dbf文件文件位置和修改位置和修改TOOLS表空的表空的tools01.dbf文件名文件名 关
38、闭数据库关闭数据库 SHUTDOWN 在操作系统中,将要改动的数据文件复制到新位置或改变在操作系统中,将要改动的数据文件复制到新位置或改变它们名称。它们名称。将USERS表空间的userdata002.dbf文件复制到一个新的位置,如D:Oracleoradatauserdata002.dbf;修改TOOLS表空间的数据文件tools01.dbf名为tools001.dbf启动数据库到启动数据库到MOUNT状态状态STARTUP MOUNT执行执行ALTER DATABASE RENAME FILETO语句更新语句更新数据文件名称或位置。数据文件名称或位置。ALTER DATABASE REN
39、AME FILE D:Oracleoradataorcluserdata02.dbf,D:Oracleoradataorcltools01.dbf TO D:Oracleoradatauserdata02.dbf,D:Oracleoradataorcltools001.dbf;打开数据库。打开数据库。ALTER DATABASE OPEN;查询数据文件信息查询数据文件信息数据文件信息数据文件信息 DBA_DATA_FILES V$DATAFILE临时文件信息临时文件信息 DBA_TEMP_FILES V$TEMPFILE 查询数据文件动态信息查询数据文件动态信息 SELECT NAME,FIL
40、E#,STATUS,CHECKPOINT_CHANGE#FROM V$DATAFILE 查询数据文件的增长方式查询数据文件的增长方式 SELECT TABLESPACE_NAME,BYTES,AUTOEXTENSIBLE,FILE_NAME FROM DBA_DATA_FILES 查询临时数据文件信息查询临时数据文件信息 SELECT TABLESPACE_NAME,FILE_NAME,AUTOEXTENSIBLE FROM DBA_TEMP_FILES;利用利用OEM管理数据文件管理数据文件查询数据文件信息查询数据文件信息创建数据文件创建数据文件修改数据文件修改数据文件控制文件控制文件控制文
41、件概述控制文件概述 控制文件管理控制文件管理控制文件概述控制文件概述 控制文件的性质控制文件的性质 控制文件是一个很小的二进制文件 在加载数据库时,实例必须首先通过初始化参数文件找到数据库的控制文件。控制文件描述了整个数据库的结构。控制文件主要包括数据文件和重做日志文件的位置、数据库名称、需要恢复的信息等内容。控制文件是不需DBA编辑的二进制文件。在数据库运行期间,控制文件始终在不断更新,以便记录数据文件和重做日志文件的变化 每个数据库至少拥有一个控制文件。一个数据库也可以同时拥有多个控制文件。复合控制文件,Oracle同时维护多个控制文件,这些文件之间是镜像的。分配在不同的物理硬盘中,以免数
42、据库或硬盘损坏时,能够利用备份的控制文件启动数据库实例,可以提高数据库的可靠性。show parameter control;show parameter pfile;控制文件的内容控制文件的内容 数据库名称和标识 数据库创建的时间 表空间名称 数据文件和重做日志文件的名称和位置 当前重做日志文件的序号 检查点的信息 回退段的开始和结束 重做日志的归档信息 备份信息 数据库恢复所需要的同步信息控制文件的管理控制文件的管理创建控制文件创建控制文件备份控制文件备份控制文件查看控制文件的信息查看控制文件的信息创建控制文件创建控制文件创建控制文件的情形创建控制文件的情形 创建数据库时,需要创建控制文件
43、;控制文件全部丢失或损坏;需要修改某个永久性数据库结构参数,如数据库名称、MAXLOGFILES、MAXLOGMEMBERS、MAXDATAFILES、MAXINSTANCES等。创建控制文件的基本步骤创建控制文件的基本步骤 列出数据库中所有的数据文件和重做日志文件的名称和路径 如果数据库仍然处于运行状态,则关闭数据库 在操作系统级别备份所有的数据文件和联机重做日志文件 启动实例,STARTUP NOMOUNT 利用前面得到的文件列表,执行CREATE CONTROLFILE创建一个新控制文件。在操作系统级别对新建的控制文件进行备份 修改初始化的参数文件中CONTROL_FILES参数,指向新
44、的控制文件。如果需要,对数据库进行恢复;重新打开数据库 编辑初始化参数编辑初始化参数CONTROL_FILES ALTER SYSTEM SET CONTROL_FILES=SCOPE=SPFILE;关闭数据库关闭数据库 SHUTDOWN IMMEDIATE;拷贝一个原有的控制文件到新的位置,并重新命名拷贝一个原有的控制文件到新的位置,并重新命名 重新启动数据库重新启动数据库 STARTUP 编辑初始化参数编辑初始化参数CONTROL_FILES。ALTER SYSTEM SET CONTROL_FILES=D:ORACLEORADATAORCLCONTROL01.CTL,D:ORACLEOR
45、ADATAORCLCONTROL02.CTL,D:ORACLEORADATAORCLCONTROL03.CTL,D:ORACLEORADATACONTROL04.CTL SCOPE=SPFILE;注意:前注意:前3个控制文件是原有的控制文件,最后一个控制文件是将要添个控制文件是原有的控制文件,最后一个控制文件是将要添加的。加的。关闭数据库关闭数据库 SHUTDOWN IMMEDIATE;拷贝一个原有的控制文件到新的位置,并重新命名。拷贝一个原有的控制文件到新的位置,并重新命名。拷贝D:ORACLEORADATACONTROL01.CTL文件到D:ORACLEORADATA目录下,并重命名为CO
46、NTROL04.DBF。重新启动数据库重新启动数据库 STARTUP备份控制文件备份控制文件将控制文件备份为二进制文件将控制文件备份为二进制文件 ALTER DATABASE BACKUP CONTROLFILE TO 将控制文件备份为文本文件将控制文件备份为文本文件 ALTER DATABASE BACKUP CONTROLFILE TO TRACE (ORACLE_BASEadminudump)将控制文件备份为二进制文件。将控制文件备份为二进制文件。ALTER DATABASE BACKUP CONTROLFILE TO D:ORACLEORADATACONTROL.BKP;将控制文件备份
47、为文本文件。将控制文件备份为文本文件。ALTER DATABASE BACKUP CONTROLFILE TO TRACE;查询控制文件的信息查询控制文件的信息 V$CONTROLFILE 列出了与实例有关的所有控制文件的名称和状态 V$PARAMETER 列出了所有参数的状态和位置.V$CONTROLFILE_RECORD_SECTION 提供控制文件记录区的信息.SHOW PARAMETERS CONTROL_FILES 列出控制文件的名称、状态和位置利用利用OEM管理控制文件管理控制文件 查看控制文件信息查看控制文件信息备份控制文件备份控制文件 重做日志文件重做日志文件重做日志文件概述重
48、做日志文件概述 重做日志文件的管理重做日志文件的管理 重做日志文件概述重做日志文件概述重做日志文件的概念重做日志文件的概念 重做日志文件,保存了用户对数据库所作的更新操作(插入、删除或修改),包含的主要信息是记录事务的开始和结束、事务中每项操作的对象和类型、更新操作前后的数据值等。重做日志文件是由重做记录构成的,每个重做记录由一组修改相量组成。用户对数据库所做的修改都是在数据库的数据高速缓冲区中进行的,同时将产生的重做记录写入重做日志缓冲区。在一定条件下由DBWR进程将数据高速缓冲区中修改后的结果成批写回数据文件中,而重做日志缓冲区中的重做记录由LGWR进程周期性的写入重做日志文件。利用重做日
49、志文件恢复数据库是通过事务的重做(REDO)或回退(UNDO)实现的。重做日志文件的工作过程重做日志文件的工作过程 每个数据库至少需要两个重做日志文件,采用循环写的方式进行工作。当一个重做日志文件写满后,进程LGWR就会移到下一个日志组,称为日志切换,同时信息会写到控制文件中。重做日志文件工作流程 为了保证LGWR进程的正常进行,通常采用重做日志文件组(GROUP),每个组中包含若干完全相同的重做日志文件成员(MEMBER),这些成员文件相互镜像。重做日志文件的管理重做日志文件的管理 添加重做日志文件组添加重做日志文件组 添加重做日志文件组成员文件添加重做日志文件组成员文件 改变重做日志文件组
50、成员文件的名称和位置改变重做日志文件组成员文件的名称和位置 删除重做日志文件组成员删除重做日志文件组成员 删除重做日志文件组删除重做日志文件组 重做日志文件切换重做日志文件切换 清空重做日志文件组清空重做日志文件组 查看重做日志文件信息查看重做日志文件信息 添加重做日志文件组添加重做日志文件组语法语法 ALTER DATABASE ADD LOGFILE 示例示例 ALTER DATABASE ADD LOGFILE GROUP 4(D:ORACLEORADATAORCLREDO4a.LOG,D:ORACLEORADATAORCLREDO4b.LOG)SIZE 1M;REDO2b.LOGRED