版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第5章物理存储结构本章内容Oracle数据库系统结构数据文件控制文件重做日志文件归档重做日志文件本章要求理解Oracle数据库的系统结构掌握数据文件的管理掌握控制文件的作用及其管理掌握重做日志文件的工作方式及其管理掌握数据库归档模式设置及归档管理
5.1Oracle数据库系统结构Oracle数据库系统结构由数据库实例和物理存储结构组成。在Oracle数据库的存储结构包括物理存储结构和逻辑存储结构。物理存储结构主要用于描述Oracle数据库外部数据的存储,即在操作系统中如何组织和管理数据,与具体的操作系统有关;逻辑存储结构主要描述Oracle数据库内部数据的组织和管理方式,与操作系统没有关系。物理存储结构是逻辑存储结构在物理上的、可见的、可操作的、具体的体现形式。Oracle数据库物理存储结构数据文件:用于存储数据库中的所有数据;控制文件:用于记录和描述数据库的物理存储结构信息;重做日志文件:用于记录外部程序(用户)对数据库的改变操作;归档文件:用于保存已经写满的重做日志文件;初始化参数文件:用于设置数据库启动时的参数初始值;跟踪文件:用于记录用户进程、数据库后台进程等的运行情况;口令文件:用于保存具有SYSDBA,SYSOPER权限的用户名和SYS用户口令;警告文件:用于记录数据库的重要活动以及发生的错误;备份文件:用于存放数据库备份所产生的文件。5.2数据文件及其管理数据文件概述数据文件的管理5.2.1数据文件概述数据文件的内容用于保存数据库中所有数据的文件。临时数据文件是一种特殊的数据文件,其存储内容是临时性的,在一定条件下自动释放。Oralce数据库中的每个数据文件都具有两个文件号,称为绝对文件号和相对文件号,用于唯一地确定一个数据文件。其中,绝对文件号用于在整个数据库范围内唯一标识一个数据文件;相对文件号用于在表空间范围内唯一标识一个数据文件。数据文件与表空间的关系一个表空间可以包含几个数据文件一个数据文件只能从属于一个表空间数据文件的管理策略由于对数据库的操作最终转换为对数据文件的操作,因此在数据库运行过程中对数据文件进行频繁的读写操作。为了提搞I/O效率,应该合理的分配数据文件的存储位置。把不同存储内容的数据文件放置在不同的硬盘上,可以并行访问数据,提高系统读写的效率。初始化参数文件、控制文件、重做日志文件最好不要与数据文件存放在同一个磁盘上,以免数据库发生介质故障时,无法恢复数据库。5.2.2数据文件的管理创建数据文件修改数据文件的大小改变数据文件的可用性改变数据文件的名称或位置删除数据文件查询数据文件的信息利用OEM管理数据文件(1)创建数据文件数据文件依附于表空间而存在,创建数据文件就是向表空间添加文件在创建数据文件时应该根据文件数据量的大小确定文件的大小以及文件的增长方式。语法ALTERTABLESPACE…ADDDATAFILEALTERTABLESPACE…ADDTEMPFILE向ORCL数据库的USERS表空间中添加一个大小为10MB的数据文件。ALTERTABLESPACEUSERSADDDATAFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS02.DBF'SIZE10M;向ORCL数据库的TEMP表空间中添加一个大小为5MB的临时数据文件。ALTERTABLESPACETEMPADDTEMPFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TEMP02.DBF'SIZE5M;(2)修改数据文件大小方法设置数据文件为自动增长方式。手工改变数据文件的大小。设置数据文件为自动增长方式创建时设置数据文件为自动增长创建后修改数据文件为自动增长AUTOEXTENDONNEXT…MAXSIZE…|UNLIMITED手工改变数据文件的大小ALTERDATABASEDATAFILE…RESIZE…为ORCL数据库的USERS表空间添加一个自动增长的数据文件。ALTERTABLESPACEUSERSADDDATAFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS03.DBF'SIZE10MAUTOEXTENDONNEXT512KMAXSIZE50M;修改ORCL数据库USERS表空间的数据文件USERS02.DBF为自动增长方式。ALTERDATABASEDATAFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS02.DBF'AUTOEXTENDONNEXT512KMAXSIZEUNLIMITED;取消ORCL数据库USERS表空间的数据文件USERS02.DBF的自动增长方式。ALTERDATABASEDATAFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS02.DBF'AUTOEXTENDOFF;将ORCL数据库USERS表空间的数据文件USERS02.DBF大小设置为8MB。ALTERDATABASE
DATAFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS02.DBF'RESIZE8M;(3)改变数据文件的可用性概念可以通过将数据文件联机或脱机来改变数据文件的可用性。在下面几种情况下需要改变数据文件的可用性:要进行数据文件的脱机备份时,需要先将数据文件脱机;需要重命名数据文件或改变数据文件的位置时,需要先将数据文件脱机;如果Oracle在写入某个数据文件时发生错误,会自动将该数据文件设置为脱机状态,并且记录在警告文件中。排除故障后,需要以手动方式重新将该数据文件恢复为联机状态。数据文件丢失或损坏,需要在启动数据库之前将数据文件脱机。归档模式下数据文件可用性的改变数据文件可用性的改变ALTERDATABASEDATAFILE…
ONLINE|OFFLINE临时数据文件可用性的概念改变ALTERDATABASETEMPFILE…
ONLINE|OFFLINE在数据库处于归档模式下,将ORCL数据库USERS表空间的数据文件USERS02.DBF脱机。ALTERDATABASEDATAFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS02.DBF'OFFLINE;将ORCL数据库USERS表空间的数据文件USERS02.DBF联机。ALTER
DATABASE
DATAFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS02.DBF'ONLINE;非归档模式下数据文件可用性的改变
在非归档模式下,通常不能将数据文件脱机。如果由于数据文件的损坏,需要将数据文件脱机,然后重新启动数据库,需要使用ALTERDATABASEDATAFILE…OFFLINEFORDROP语句。例如:ALTER
DATABASE
DATAFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS02.DBF'OFFLINEFORDROP;改变表空间中所有数据文件的可用性在归档模式下,将表空间脱机或联机ALTERTABLESPACE...DATAFILEONLINE|OFFLINE在归档模式下,将临时表空间联机或脱机ALTERTABLESPACE...TEMPFILEONLINE|OFFLINE在归档模式下,将USERS表空间中所有的数据文件脱机,但USERS表空间不脱机。然后再将USERS表空间中的所有数据文件联机。ALTERTABLESPACEUSERSDATAFILEOFFLINE;RECOVERTABLESPACEUSERS;ALTERTABLESPACEUSERSDATAFILEONLINE;(4)改变数据文件的名称或位置
改变同一个表空间中的数据文件的名称或位置ALTERTABLESPACLE…RENAMEDATAFILE…TO改变多个表空间中的数据文件的名称或位置ALTERDATABASERENAMEFILE…TO注意改变数据文件的名称或位置时,Oracle只是改变记录在控制文件和数据字典中的数据文件信息,并没有改变操作系统中数据文件的名称和位置,因此需要DBA手动更改操作系统中数据文件的名称和位置。改变同一个表空间中的数据文件的名称或位置更改ORCL数据库USERS表空间的USERS02.DBF和USERS03.DBF文件名为USERS002.DBF和USERS003.DBF。将包含数据文件的表空间置为脱机状态。ALTERTABLESPACEUSERSOFFLINE;在操作系统中重命名数据文件或移动数据文件到新的位置。分别将USERS02.DBF和USERS03.DBF文件重命名为USERS002.DBF和USERS003.DBF。使用ALTERTABLESPACE…RENAMEDATAFILE…TO语句进行操作ALTERTABLESPACEUSERSRENAMEDATAFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS02.DBF','D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS03.DBF'TO'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS002.DBF','D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS003.DBF';将表空间联机。ALTERTABLESPACEUSERSONLINE;改变多个表空间中的数据文件的名称或位置更改ORCL数据库USERS表空间中的USERS002.DBF文件位置和修改TOOLS表空间中的TOOLS01.DBF文件名关闭数据库。SHUTDOWN在操作系统中,将USERS表空间中的USERS002.DBF文件复制到一个新的位置,如D:\ORACLE\PRODUCT\10.2.0\ORADATA,修改TOOLS表空间的数据文件TOOLS01.DBF的名为TOOLS001.DBF。启动数据库到MOUNT状态。STARTUPMOUNT执行ALTERDATABASERENAMEFILE…TO语句更新数据文件名称或位置。ALTERDATABASERENAMEFILE
'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS002.DBF',
'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TOOLS01.DBF'TO
'D:\ORACLE\PRODUCT\10.2.0\ORADATA\USERS002.DBF',
'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TOOLS001.DBF';打开数据库。ALTERDATABASEOPEN;(5)删除数据文件
删除某个表空间中的某个空数据文件ALTERTABLESPACE…DROPDATAFILE删除某个临时表空间中的某个空的临时数据文件ALTERTABLESPACE…DROPTEMPFILEALTERDATABASETEMPFILE…DROP所谓的空数据文件或空临时数据文件是指为该文件分配的所有区都被回收。删除数据文件或临时数据文件的同时,将删除控制文件和数据字典中与该数据文件或临时数据文件的相关信息,同时也将删除操作系统中对应的物理文件。删除USERS表空间中的数据文件USERS03.DBF和删除TEMP临时表空间中的临时数据文件TEMP03.DBF。ALTERTABLESPACEUSERSDROPDATAFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS03.DBF';ALTERTABLESPACETEMPDROPTEMPFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TEMP03.DBF';删除临时数据文件TEMP03.DBF还可以表示为ALTERDATABASETEMPFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TEMP02.DBF'DROPINCLUDINGDATAFILES;删除数据文件或临时数据文件时受到以下约束:数据库运行在打开状态数据文件或临时数据文件必须是空的不能删除表空间的第一个或唯一的一个数据文件或临时数据文件不能删除只读表空间中的数据文件不能删除SYSTEM表空间的数据文件不能删除采用本地管理的处于脱机状态的数据文件。(6)查询数据文件信息DBA_DATA_FILES:包含数据库中所有数据文件的信息,包括数据文件所属的表空间、数据文件编号等。DBA_TEMP_FILES:包含数据库中所有临时数据文件的信息。DBA_EXTENTS:包含所有表空间中已分配的区的描述信息。USER_EXTENTS:包含当前用户所拥有的对象在所有表空间中已分配的区的描述信息。DBA_FREE_SPACE:包含表空间中空闲区的描述信息。USER_FREE_SPACE:包含当前用户可访问的表空间中空闲区的描述信息。V$DATAFILE:包含从控制文件中获取的数据文件信息。V$DATAFILE_HEADER:包含从数据文件头部获取的信息。V$TEMPFILE:包含所有临时文件的基本信息。查询数据文件动态信息SELECTNAME,FILE#,STATUS,CHECKPOINT_CHANGE#FROMV$DATAFILE查询数据文件的详细信息SELECTTABLESPACE_NAME,AUTOEXTENSIBLE,FILE_NAMEFROMDBA_DATA_FILES;查询数据文件的增长方式SELECTTABLESPACE_NAME,BYTES,AUTOEXTENSIBLE,FILE_NAMEFROMDBA_DATA_FILES查询临时数据文件信息SELECTTABLESPACE_NAME,FILE_NAME,AUTOEXTENSIBLEFROMDBA_TEMP_FILES;(7)利用OEM管理数据文件创建数据文件编辑数据文件查看数据文件信息删除数据文件5.3控制文件控制文件概述控制文件管理5.3.1控制文件概述控制文件的性质控制文件是一个很小的二进制文件。控制文件描述了整个数据库的结构。在加载数据库时,实例必须首先通过初始化参数文件找到数据库的控制文件。在数据库运行期间,控制文件始终在不断更新,以便记录数据文件和重做日志文件的变化每个数据库至少拥有一个控制文件。一个数据库也可以同时拥有多个控制文件。分配在不同的物理硬盘中,以免数据库或硬盘损坏时,能够利用备份的控制文件启动数据库实例,可以提高数据库的可靠性。控制文件的内容数据库名称和标识;数据库创建的时间;表空间名称;数据文件和重做日志文件的名称和位置;当前重做日志文件序列号;数据库检查点的信息;回退段的开始和结束;重做日志的归档信息;备份信息;数据库恢复所需要的同步信息。控制文件中的最大化参数包括:MAXLOGFILES:最大重做日志文件组数量;MAXLOGMEMBERS:重做日志文件组中最大成员数量;MAXLOGHISTORY:最大历史重做日志文件数量;MAXDATAFILES:最大数据文件数量;MAXINSTANCES:可同时访问的数据库最大实例个数。控制文件管理策略Oracle建议最少有两个控制文件,通过多路镜像技术,将多个控制文件分散到不同的磁盘中。在数据库运行过程中,始终读取CONTROL_FILES参数指定的第一个控制文件,并同时写CONTROL_FILES参数指定的所有控制文件。如果其中一个控制文件不可用,则必须关闭数据库并进行恢复。每次对数据库结构进行修改后(添加、修改、删除数据文件、重做日志文件),应该及时备份控制文件。5.3.2控制文件的管理创建控制文件实现多路镜像控制文件备份控制文件删除控制文件查看控制文件的信息利用OEM管理控制文件(1)创建控制文件创建控制文件的情形控制文件全部丢失或损坏;需要修改数据库名称;在Oracle10.2.0之前的版本中,需要修改某个最大化参数。CREATECONTROLFILE语句CREATECONTROLFILE[REUSE][SET]DATABASEdatabase[LOGFILElogfile_clause]RESETLOGS|NORESETLOGS[DATAFILEfile_specification][MAXLOGFILES][MAXLOGMEMBERS][MAXLOGHISTORY][MAXDATAFILES][MAXINSTANCES][ARCHIVELOG|NOARCHIVELOG][FORCELOGGING][CHARACTERSETcharacter_set]创建控制文件的基本步骤制作数据库中所有的数据文件和重做日志文件列表SELECTMEMBERFROMV$LOGFILE;SELECTNAMEFROMV$DATAFILE;SELECTVALUEFROMV$PARAMETERWHERENAME='CONTROL_FILES';如果数据库仍然处于运行状态,则关闭数据库SHUTDOWN在操作系统级别备份所有的数据文件和联机重做日志文件启动实例到NOMOUNT状态STARTUPNOMOUNT利用前面得到的文件列表,执行CREATECONTROLFILE创建一个新控制文件。在操作系统级别对新建的控制文件进行备份如果数据库重命名,则编辑DB_NAME参数来指定新的数据库名称如果数据库需要恢复,则进行恢复数据库操作如果创建控制文件时指定了NORESTLOGS,可以完全恢复数据库。RECOVERDATABASE;如果创建控制文件时指定了RESETLOGS,则必须在恢复时指定USINGBACKUPCONTROLFILE。RECOVERDATABASEUSINGBACKUPCONTROLFILE;打开数据库如果数据库不需要恢复或已经对数据库进行了完全恢复,则可以正常打开数据库。ALTERDATABASEOPEN;如果在创建控制文件时使用了RESETLOGS参数,则必须指定以RESETLOGS方式打开数据库。ALTERDATABASEOPENRESETLOGS;(2)实现多路镜像控制文件
编辑初始化参数CONTROL_FILESALTERSYSTEMSETCONTROL_FILES=…SCOPE=SPFILE;关闭数据库SHUTDOWNIMMEDIATE;拷贝一个原有的控制文件到新的位置,并重新命名重新启动数据库
STARTUP编辑初始化参数CONTROL_FILES。ALTERSYSTEMSETCONTROL_FILES='D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL01.CTL','D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL02.CTL','D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL03.CTL','D:\ORACLE\PRODUCT\10.2.0\ORADATA\CONTROL04.CTL'SCOPE=SPFILE;注意:前3个控制文件是原有的控制文件,最后一个控制文件是将要添加的。关闭数据库SHUTDOWNIMMEDIATE;拷贝一个原有的控制文件到新的位置,并重新命名。拷贝D:\ORACLE\ORADATA\CONTROL01.CTL到D:\ORACLE\ORADATA目录下,并重命名为CONTROL04.CTL。重新启动数据库STARTUP(3)备份控制文件将控制文件备份为二进制文件ALTERDATABASEBACKUPCONTROLFILETO…将控制文件备份为文本文件ALTERDATABASEBACKUPCONTROLFILETOTRACE将控制文件备份到<ORACLE_BASE>\admin\<SID>\udump目录下的跟踪文件中
将控制文件备份为二进制文件。ALTERDATABASEBACKUPCONTROLFILETO'D:\ORACLE\CONTROL.BKP';将控制文件备份为文本文件。ALTERDATABASEBACKUPCONTROLFILETOTRACE;(4)删除控制文件编辑CONTROL_FILES初始化参数,使其不包含要删除的控制文件;关闭数据库;在操作系统中删除控制文件;重新启动数据库。(5)查询控制文件的信息V$DATABASE:从控制文件中获取的数据库信息;V$CONTROLFILE:包含所有控制文件名称与状态信息;V$CONTROLFILE_RECORD_SECTION:包含控制文件中各记录文档段信息;V$PARAMETER:可以获取初始化参数CONTROL_FILES的值。(6)利用OEM管理控制文件查看控制文件信息备份控制文件5.4重做日志文件重做日志文件概述重做日志文件的管理5.4.1重做日志文件概述重做日志文件的概念重做日志文件,保存了用户对数据库所作的更新操作(DDL、DML),包含的主要信息是记录事务的开始和结束、事务中每项操作的对象和类型、更新操作前后的数据值等。重做日志文件是由重做记录构成的,每个重做记录由一组修改相量组成。用户对数据库所做的修改都是在数据库的数据高速缓冲区中进行的,同时将产生的重做记录写入重做日志缓冲区。在一定条件下由DBWR进程将数据高速缓冲区中修改后的结果成批写回数据文件中,而重做日志缓冲区中的重做记录由LGWR进程周期性的写入重做日志文件。
利用重做日志文件恢复数据库是通过事务的重做(REDO)或回退(UNDO)实现的。重做日志文件的工作过程每个数据库至少需要两个重做日志文件,采用循环写的方式进行工作。当一个重做日志文件写满后,进程LGWR就会移到下一个日志组,称为日志切换,同时信息会写到控制文件中。重做日志文件工作流程为了保证LGWR进程的正常进行,通常采用重做日志文件组(GROUP),每个组中包含若干完全相同的重做日志文件成员(MEMBER),这些成员文件相互镜像。5.4.2
重做日志文件的管理
添加重做日志文件组
添加重做日志文件组成员文件
改变重做日志文件组成员文件的名称和位置
删除重做日志文件组成员删除重做日志文件组
重做日志文件切换
清空重做日志文件组查看重做日志文件信息利用OEM管理重做日志文件(1)添加重做日志文件组语法ALTERDATABASEADDLOGFILE……示例ALTERDATABASEADDLOGFILEGROUP4('D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO04a.LOG','D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO04b.LOG')SIZE4M;REDO2b.LOGREDO1b.LOGGroup1Group2Group3REDO3b.LOGREDO2a.LOGREDO3a.LOGREDO1a.LOGGroup4REDO4b.LOGREDO4a.LOG注意:分配给每个重做日志文件的初始空间至少为4MB。如果没有使用GROUP子句指定组号,则系统会自动产生组号,为当前重做日志文件组的个数加1。在Oracle10.2.0之前的版本中,数据库最多允许的重做日志文件组的数量由控制文件中的MAXLOGFILES参数决定。在Oracle10.2.0之前的版本中,每个重做日志文件组中最多成员文件数量由控制文件中的MAXLOGMEMBERS参数决定。(2)添加重做日志文件组成员语法ALTERDATABASEADDLOGFILEMEMBER…TOGROUP…示例ALTERDATABASEADDLOGFILEMEMBER'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01C.LOG'TOGROUP1,'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO04C.LOG'TOGROUP4;注意:同一个重做日志文件组中的成员文件存储位置应尽量分散。不需要指定文件大小。新成员文件大小由组中已有成员大小决定。(3)改变重做日志文件组成员名称或位置语法ALTERDATABASERENAMEFILE…TO注意只能更改处于INACTIVE或UNUSED状态的重做日志文件组的成员文件的名称或位置。示例将重做日志文件REDO01C.LOG重命名为REDO01B.LOG,将REDO04C.LOG移到D:\ORACLE\PRODUCT\10.2.0\ORADATA目录下。检查要修改的成员文件所在的重做日志文件组状态SELECTgroup#,statusFROMv$log;如果要修改的日志文件组不是处于INACTIVE或UNUSED状态,则需要进行手动日志切换。重命名重做日志文件或将重做日志文件移到新位置打开D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL文件夹,将REDO01C.LOG更名为REDO01B.LOG,同时将REDO04C.LOG移到D:\ORACLE\PRODUCT\10.2.0\ORADATA文件夹下。执行ALTERDATABASERENAMEFILE…TO语句ALTERDATABASERENAMEFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01C.LOG','D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO4C.LOG'TO'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO001B.LOG','D:\ORACLE\PRODUCT\10.2.0\ORADATA\REDO04C.LOG';(4)删除重做日志文件组成员
语法ALTERDATABASEDROPLOGFILEMEMBER注意事项只能删除状态为INACTIVE或UNUSED的重做日志文件组中的成员;若要删除状态为CURRENT的重做日志文件组中的成员,则需执行一次手动日志切换。如果数据库处于归档模式下,则在删除重做日志文件之前要保证该文件所在的重做日志文件组已归档。每个重做日志文件组中至少要有一个可用的成员文件,即VALID状态的成员文件。如果要删除的重做日志文件是所在组中最后一个可用的成员文件,则无法删除。ALTERDATABASEDROPLOGFILEMEMBER'D:\ORACLE\PRODUCT\10.2.0\ORADATA\REDO4c.LOG';Group4REDO4a.LOGREDO4b.LOGREDO4c.LOG(5)删除重做日志文件组语法ALTERDATABASEDROPLOGFILEGROUP注意事项无论重做日志文件组中有多少个成员文件,一个数据库至少需要使用两个重做日志文件组。如果数据库处于归档模式下,则在删除重做日志文件组之前,必须确定该组已经被归档。只能删除处于INACTIVE状态或UNUSED状态的重做日志文件组,若要删除状态为CURRENT的重做日志文件组,则需要执行一次手动日志切换。示例ALTERDATABASEDROPLOGFILEGROUP4;REDO2a.LOGREDO1a.LOGGroup1Group2Group3REDO3a.LOGGroup4REDO4a.LOGREDO4b.LOG(6)重做日志文件组切换当LGWR进程结束对当前重做日志文件组的使用,开始写入下一个重做日志文件组时,称为发生了一次“日志切换”。通常,只有当前的重做日志文件组写满后才发生日志切换,但是可以通过设置参数ARCHIVE_LAG_TARGET控制日志切换的时间间隔,在必要时也可以采用手工强制进行日志切换。如果需要将当前处于CURRENT状态的重做日志组立即切换到INACTIVE状态,必须进行手工日志切换。手动日志切换的语法ALTERSYSTEMSWITCHLOGFILE查看日至切换状态SELECT*FROMV$LOGFILE;当发生日志切换时,系统将为新的重做日志文件产生一个日志序列号,在归档时该日志序列号一同被保存。日志序列号是在线日志文件和归档日志文件的唯一标识。(7)清除重做日志文件组基本概念在数据库运行过程中,联机重做日志文件可能会因为某些原因而损坏,导致数据库最终由于无法将损坏的重做日志文件归档而停止,此时可以在不关闭数据库的情况下,手工清除损坏的重做日志文件内容,避免出现数据库停止运行的情况。清除重做日志文件就是将重做日志文件中的内容全部清除,相当于删除该重做日志文件,然后再重新建立它。清除重做日志文件组是将该文件组中的所有成员文件全部清空。语句ALTERDATABASECLEARLOGFILEGROUP…在下列两种情况下,清除重做日志文件组的操作将无法进行。数据库只有两个重做日志文件组;需要清除的重做日志文件组处于CURRENT状态。如果要清空的重做日志文件组尚未归档,则必须使用UNARCHIVED子句,以避免对这个重做日志文件组进行归档。ALTERDATABASECLEARUNARCHIVEDLOGFILEGROUP4;(8)查看重做日志文件信息
数据字典视图V$LOG:包含从控制文件中获取的所有重做日志文件组的基本信息。V$LOGFILE:包含重做日志文件组及其成员文件的信息。V$LOG_HISTORY:包含关于重做日志文件的历史信息。查询重做日志文件组的信息SELECTGROUP#,SEQUENCE#,MEMBERS,STATUS,ARCHIVEDFROMV$LOG;
查询重做日志文件的信息SELECTGROUP#,TYPE,MEMBERFROMV$LOGFILEORDERBYGROUP#;(9)利用OEM管理重做日志文件创建重做日志组编辑重做日志组查看重做日志组5.5归档重做日志文件重做日志文件归档概述数据库归档模式管理5.5.1重做日志文件归档概述基本概念Oracle数据库能够把已经写满了的重做日志文件保存到指定的一个或多个位置,被保存的重做日志文件的集合称为归档重做日志文件,这个过程称为归档。根据是否进行重做日志文件归档,数据库运行可以分为归档模式或非归档模式。
归档模式与非归档模式比较在归档模式下,数据库中历史重做日志文件全部被保存,因此在数据库出现故障时,即使是介质故障,利用数据库备份、归档重做日志文件和联机重做日志文件也可以完全恢复数据库。在非归档模式下,由于没有保存过去的重做日志文件,数据库只能从实例崩溃中恢复,而无法进行介质恢复。在非归档模式下不能执行联机表空间备份操作,不能使用联机归档模式下建立的表空间备份进行恢复,而只能使用非归档模式下建立的完全备份来对数据库进行恢复。在归档模式和非归档模式下进行日志切换的条件也不同。在非归档模式下,日志切换的前提条件是已写满的重做日志文件在被覆盖之前,其所有重做记录所对应的事务的修改操作结果全部写入到数据文件中。在归档模式下,日志切换的前提条件是已写满的重做日志文件在被覆盖之前,不仅所有重做记录所对应的事务的修改操作结果全部写入到数据文件中,还需要等待归档进程完成对它的归档操作。5.5.2数据库归档模式管理数据库归档/非归档模式设置归档模式下归档方式的选择归档路径的设置设置可选或强制归档目标
查询归档信息(1)设置归档/非归档模式关闭数据库SHUTDOWNIMMEDIATE启动数据库到MOUNT状态STARTUPMOUNT使用ALTERDATABASEARCHIVELOG语句将数据库设置为归档模式。ALTERDATABASEARCHIVELOG;或使用ALTERDATABASENOARCHIVELOG语句将数据库设置为非归档模式。ALTERDATABASENOARCHIVELOG;打开数据库ALTERDATABASEOPEN;(2)归档模式下归档方式的选择数据库在归档模式下运行时,可以采用自动或手动两种方式归档重做日志文件。如果选择自动归档方式,那么在重做日志文件被覆盖之前,ARCH进程自动将重做日志文件内容归档;如果选择了手动归档,那么在重做日志文件被覆盖之前,需要DBA手动将重做日志文件归档,否则系统将处于挂起状态。自动归档方式的设置启动归档进程ALTERSYSTEMARCHIVELOGSTART;关闭归档进程ALTERSYSTEMARCHIVELOGSTOP;手动归档对所有已经写满的重做日志文件(组)进行归档:ALTERSYSTEMARCHIVELOGALL;对当前的联机日志文件(组)进行归档:ALTERSYSTEMARCHIVELOGCURRENT;(3)归档路径设置
使用初始化参数LOG_ARCHIVE_DEST和LOG_ARCHIVE_DUPLEX_DEST设置归档路径LOG_ARCHIVE_DEST参数指定本地主归档路径LOG_ARCHIVE_DUPLEX_DEST指定本地次归档路径。使用初始化参数LOG_ARCHIVE_DEST_n设置归档路径最多可以指定10个归档路径,其归档目标可以是本地系统的目录,也可以是远程的数据库系统。注意这两组参数只能使用一组设置归档路径,而不能两组同时使用。ALTERSYSTEMSETLOG_ARCHIVE_DEST='D:\ORACLE\BACKUP'SCOPE=SPFILE;SQL>ALTERSYSTEMSETLOG_ARCHIVE_DUPLEX_DEST='E:\ORACLE\BACKUP'SCOPE=SPFILE;ALTERSYSTEMSETLOG_ARCHIVE_DEST_1='LOCATION=D:\BACKUP\ARCHIVE';ALTERSYSTEMSETLOG_ARCHIVE_DEST_2='SERVICE=STANDBY1';
设置归档文件命名方式设置参数LOG_ARCHIVE_FORMAT指定归档文件命名方式ALTERSYSTEMSETLOG_ARCHIVE_FORMAT='arch_%t_%s_%r.arc'SCOPE=SPFILE;
%s:代表日志文件序列号(LogSequencesNumber);
%S:代表日志文件序列号,不足3位的以0补齐;
%t:代表线程号(ThreadNumber);
%T:代表线程号,不足3位的以0补齐;
%r:代表重做日志的ID(ResetlogsID);
%R:代表重做日志的ID,不足3位的以0补齐。(4)设置可选或强制归档目标
设置最小成功归档目标数LOG_ARCHIVE_MIN_SUCCESS_DEST设置启动最大归档进程数
LOG_ARCHIVE_MAX_PROCESSES
设置强制归档目标和可选归档目标使用LOG_ARCHIVE_DEST_n参数时通过使用OPTIONAL或MANDATORY关键字指定可选或强制归档目标。ALTERSYSTEMSETLOG_ARCHIVE_DEST_1='LOCATION=D:\BACKUP\ARCHIVE'MANDATORY;ALTERSYSTEMSETLOG_ARCHIVE_DEST_2='SERVICE=STANDBY1'OPTIONAL;(5)归档信息查询执行ARCHIVELOGLIST命令查询数据字典视图或动态性能视图V$DATABASE:用于查询数据库是否处于归档模式;V$ARCHIVED_LOG:包含从控制文件中获取的所有已归档日志的信息。V$ARCHIVE_DEST:包含所有归档目标信息,如归档目标的位置、状态等。V$ARCHIVE_PROCESSES:包含已启动的ARCH进程的状态信息。V$BACKUP_REDOLOG:包含已备份的归档日志信息。例如,查询数据库所有归档路径信息。SELECTDESTINATION,BINDINGFROMV$ARCHIVE_DEST;总结Oracle数据库体系结构及存储结构数据库物理结构的组成数据文件的作用及其管理控制文件的作用以及管理重做日志文件的作用及其管理归档日志文件的作用及其管理演讲完毕,谢谢观看!附录资料:不需要的可以自行删除oracle数据库培训内容*基本概念*Oracle的体系结构SQL*Plus的使用及常用命令*SQL*NET的配置和使用数据库的备份(exp/imp)其它常见问题一、基本概念什么是数据库:是存储在一起的相关数据的集合。这些数据无有害或不必要的冗余,为多种应用服务。数据的存储独立于使用它的应用程序。对数据库插入新数据、修改和检索原有数据均能用一种公用的和可控的方法进行。数据库能做什么:数据库的基本功能就是存储数据,而且能够为用户提供便捷、快速的查找、修改、添加和删除数据等功能。什么是SQL语言:是运用于数据库的语言。它除了具有数据库查询、插入、删除、修改等功能外,可以独立使用,也可以嵌入其它主语言中使用。它的语法类似于英语。什么是oracle:oracle是以高级结构化查询语言(SQL)为基础的大型关系数据库,通俗地讲它是用方便逻辑管理的语言操纵大量有规律数据的集合。是目前最流行的客户/服务器(CLIENT/SERVER)体系结构的数据库之一。二、Oracle的体系结构(1)物理结构
ORACLE数据库在物理上是存储于硬盘的各种文件。它是活动的,可扩充的,随着数据的添加和应用程序的增大而变化。datafilesredologfilescontrolfilesparameterfile
数据文件日志文件控制文件参数文件
datafilesredologfilescontrolfileparameterfiles*.dbf*.logInitoraid.ora*.ctl(2)session(连接)
Oracle是多用户、多任务、可分布式管理的数据库,同
时可有许多个用户对数据库操作。oracleuseruserusersession……
ORACLE数据库在逻辑上是由许多表空间构成。主要分为系统表空间和非系统表空间。非系统表空间内存储着各项应用的数据、索引、程序等相关信息。我们准备上马一个较大的ORACLE应用系统时,应该创建它所独占的表空间,同时定义物理文件的存放路径和所占硬盘的大小。Oracle数据存储单位a、block数据块:2k最小的I-O单位,伴随database产生而产生,不可变b、extent一组连续的数据块:是用户所能分配存储的最小单位c、segment段:有共同结构的一个或几个区域(extent)d、tablespace表空间:一组物理数据的逻辑组合,(象逻辑间数据仓库)e、file文件:属于某个表空间的物理文件f、database数据库:一组表空间所构成的逻辑的可共享的数据。(3)存储结构表空间tablespacesystemRBSnosystem把system表空间单独放在一个硬盘上做成一组镜像toolsuserstempapplicationdataapplicationindex分开存放减少争用segment段的分类data数据段存储对象object(table,view,index,sequence...)index索引段temporary临时段用做(join,groupby,orderbysorting操作)rollback回滚段用于记录修改前后信息bootstrap启动段存储数据字典系统信息不能读写,放在系统表空间内,约占40几个blockdatasegment中可能有十种不同类型的存储对象(1)table(2)view实为一个select语句(3)index(一个表不多于3个)(4)cluster(簇)(5)sequence序列(6)synonyms用于定义某个远程数据库同义词,实现分式数据库管理透明(7)snapsot快照(8)storedprocedure(function)(9)package程序包(10)dbtrigger数据触发器,处理updata,delete,insert中可能出现的问题常用的ORACLE的数据库字段类型字段类型中文说明限制条件其它说明CHAR固定长度字符串最大长度2000bytesVARCHAR2可变长度的字符串最大长度4000bytes可做索引的最大长度749DATE日期(日-月-年)LONG超长字符串最大长度2G(231-1)足够存储大部头著作RAW固定长度的二进制数据最大长度2000bytes可存放多媒体图象声音等LONGRAW可变长度的二进制数据最大长度2G同上NUMBER(P,S)数字类型P为整数位,S为小数位INTEGER整数类型小的整数FLOAT浮点数类型NUMBER(38),双精度REAL实数类型NUMBER(63),精度更高……三、SQL*Plus的使用及常用命令进入sql*plus;数据查询操作(select);改变数据操作(insert、update、delete);其它常用sql和sql*plus命令(spool、create、drop、desc、connect、grant……)。数据查询操作简单查询select列名1,列名2,列名3……from表名where条件orderby列名1,列名2……;逻辑运算符>>=<<=<>或!=其它(not)inis(not)betweenandandor单值函数nvl----空值替换函数abs---绝对值函数mod---求模函数power---求幂函数sqrt-----平方根函数exp,ln,log----对数函数sin,cos等----三角函数唯一性查询关键字:distinctselectdistinct列名from表名where条件;模糊查询select列名1,列名2,列名3……from表名where列名1like‘_%mm’orderby列名1,列名2……;关键字:(not)like通配符:%_联接查询select表名1.列名1,表名2.列名2,列名3……from表名1,表名2……where条件orderby表名1.列名1,表名2.列名2……;子查询单值子查询
多值子查询select列名1,列名2,列名3……from表名1where列名1=(select列名1from表名2where条件)orderby列名1,列名2……;select列名1,列名2,列名3……from表名1where列名1in(select列名1from表名2where条件)orderby列名1,列名2……;组值函数avg---平均值函数count---非空值数目max---最大值函数min---最小值函数sum---求和函数distinct---唯一性函数分组查询select列名1,列名2,sum(列名3)……from表名where条件groupby列名1,列名2……;关键字:groupby改变数据操作Insert插入操作insertinto表名1(列名1,列名2……)values(值1,值2……);注意:⑴值表中的数据用逗号间隔;⑵字符型和日期型要用单引号括起来;⑶缺省的日期格式为dd-man-yy。insertinto表名1usingselect列名1,列名2……from表名2where条件;Update修改操作可修改单个字段、修改多行、修改单个列。update表名set列名=值或表达式where条件;Delete删除deletefrom表名where条件;注意⑴不能只删除行的一部分⑵where子句决定哪一行将被删除。如里省略了where子句,则所有的行都将被删除。其它常用sql命令Createtable---创建表;例子Droptable---删除表,sql同时自动删除该表上的索引、特权,但并不删除相关的视图或同义词;Grant---授权Connect-----连上Oracle,做最基本操作resource----具有程序开发最基本的权限dba----------数据库管理员所有权限@-------运行指定的命令文件,作用等价于start命令;/---------运行sql缓冲区的命令,与run命令等价;Connect---退出当前账号,向指定的用户帐号登录;Desc-----显示指定表的结构;Exit-----中止sql*plus,返回操作系统;Spool---将屏幕显示内容输出到一个文件上;Spooloff--输出文件结束;其它常用sql*plus命令四、SQL*NET的配置和使用1配置网络协议TCP/IP
2测试网络是否连通3在Windows95上选择“开始”按钮,选定“程序”中的“OracleforWindows95”下的“SQL*NetEasyConfiguration”,在“SQL*NetEasyConfiguration”窗口中选择“AddDatabaseAlias”,在“ChooseDatabaseAlias”对话框中“DatabaseAlias”项中键入数据库别名,按“OK”按钮确认。
在“ChooseTCP/IPHostNameandDatabase”对话框中的TCP/IPHostname项中键入SERVER的IP地址,在“DatabaseInstance”项中键入Oracle的实例名。在“ConfirmAddingDatabaseAlias”对话框中可以看到你新增加的数据库别名。按“YES”按钮,按“OK”,退出“SQL*NetEasyConfiguration”。五、数据库备份(exp/imp)EXPORT将数据库中数据备份成一个二进制系统文件称为“导出转储文件”(EXPORTDUMPFILE),并将重新生成数据库写入文件中。它有三种模式:a.用户模式:导出用户所有对象以及对象中的数据;b.表模式:导出用户所有表或者指定的表;c.整个数据库:导出数据库中所有对象。IMPORT导入:导入的过程是导出的逆过程,这个命令先读取导出来的导出转储二进制文件,并运行文件,恢复对象用户和数据。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年安徽大学集成电路学院王翊课题组科研助理招聘备考题库带答案详解
- 2026年中能建(北京)绿色能源科技有限公司招聘备考题库附答案详解
- 2026年保山市隆阳区瓦房彝族苗族乡中心卫生院乡村医生招聘备考题库及一套参考答案详解
- 2026年中国电力工程顾问集团西南电力设计院有限公司招聘备考题库及完整答案详解一套
- 2025年舟山医院公开招聘编外人员招聘备考题库参考答案详解
- 保密内控制度
- 未建立内控制度
- 旅行社质量内控制度
- 医疗保险内控制度
- 工会未建立内控制度
- 【高三上】广东省华师联盟2026届高三12月质量检测语文试题含答案
- 2025年广州市花都区花东镇人民政府公开招聘执法辅助工作人员备考题库带答案详解
- 小学生用电安全知识课件
- 2025-2030中国海洋产业市场深度研究及发展方向与投资潜力分析报告
- 2026年收益分成协议
- 2025黑龙江牡丹江林口县招聘公益性岗位人员补充考试核心试题及答案解析
- 2025年嘉兴市经英人才发展服务有限公司城南分公司招录法律专业人才及法律辅助人员16人笔试重点题库及答案解析
- 医学生物化学学习指导与习题集
- 保育员考试:中级保育员题库
- GB 14746-2006儿童自行车安全要求
- GA/T 594-2006保安服务操作规程与质量控制
评论
0/150
提交评论