1、14管理数据库的各种文件管理数据库的各种文件参数文件参数文件 作用 保存数据库运行参数,如数据块大小 数据库启动时,读取参数文件,确定各个参数值 两种参数文件 pfile,文本,可以用编辑工具修改 spfile,二进制,使用命令修改 两种文件优先选用spfile 存储位置%ORACLE_HOME%databasespfilesid.ora2015-814-2Oracle数据库系统原理数据库系统原理-第第14章章 管理数据库的各种文件管理数据库的各种文件与参数文件有关的常用命令与参数文件有关的常用命令 查看是否使用spfile show parameter spfile 查看参数值 show p
2、arameter xxx 修改参数值 alter system set xxx=yyy scope=spfile spfile和pfile的相互生成 create spfie from pfile create pfile from spfile2015-814-3Oracle数据库系统原理数据库系统原理-第第14章章 管理数据库的各种文件管理数据库的各种文件参数文件丢失或损坏参数文件丢失或损坏 数据库不能启动 解决方法 通过备份恢复 通过alter_sid.log重建pfile,然后生成spfile2015-814-4Oracle数据库系统原理数据库系统原理-第第14章章 管理数据库的各种文
3、件管理数据库的各种文件什么是跟踪文件什么是跟踪文件 是在数据库运行过程中,由Oracle产生的一些文本文件。数据库管理员可以通过查看跟踪文件了解数据库运行状态、诊断错误。广义的跟踪文件还包括转储文件之 跟踪文件是较为连续的输出(如打开SQL跟踪时)转储文件是为了响应事件(如意外事件或某个命令)而进行的一次性输出 内核转储文件是特定于端口的二进制内存转储。2015-814-5Oracle数据库系统原理数据库系统原理-第第14章章 管理数据库的各种文件管理数据库的各种文件跟踪文件的位置跟踪文件的位置SQL select name,value from v$diag_info;NAME VALUE-
4、Diag Enabled TRUEADR Base D:APPORACLEADR Home D:APPORACLEdiagrdbmslaw12law12Diag Trace D:APPORACLEdiagrdbmslaw12law12traceDiag Alert D:APPORACLEdiagrdbmslaw12law12alertDiag Incident D:APPORACLEdiagrdbmslaw12law12incidentDiag Cdump d:apporaclediagrdbmslaw12law12cdumpHealth Monitor D:APPORACLEdiagrdbm
5、slaw12law12hmDefault Trace File D:APPORACLEdiagrdbmslaw12law12tracelaw12_ora_4968.trcActive Problem Count 0Active Incident Count 02015-814-6Oracle数据库系统原理数据库系统原理-第第14章章 管理数据库的各种文件管理数据库的各种文件跟踪文件的种类跟踪文件的种类 跟踪文件 存储于adr hometrace。警告文件 文本形式的警告文件存储于adr hometrace目录下,XML格式的警告文件存储于adr homealert目录下。内核转储文件 存储于a
6、dr homecdump目录下。意外事件转储文件 存储于adr homeincidentincdit_n目录下。2015-814-7Oracle数据库系统原理数据库系统原理-第第14章章 管理数据库的各种文件管理数据库的各种文件警告文件警告文件 警告文件是诊断各种数据库运行问题最常用到的跟踪文件。警告文件(alert file)是数据库整个生命期的记录 包括每次启动及关闭的时刻、启动过程、日志切换、创建表空间操作、各种错误发生的时刻与原因等信息。位置和名称 Diag Tracealert_sid.log2015-814-8Oracle数据库系统原理数据库系统原理-第第14章章 管理数据库的各种
7、文件管理数据库的各种文件使用使用adrci查看警告文件内容查看警告文件内容adrci set home diagrdbmslaw12law12adrci show alert-tail 12015-08-26 12:10:39.799000+08:00Archiving is disabled2015-08-26 12:10:41.887000+08:00ARCH:Archival disabled due to shutdown:1089Shutting down archive processesStopping background process VKTMArchiving is di
8、sabled2015-08-26 12:10:44.411000+08:00Instance shutdown complete2015-814-9Oracle数据库系统原理数据库系统原理-第第14章章 管理数据库的各种文件管理数据库的各种文件确认当前转储文件确认当前转储文件SQL select value from v$diag_info 2 where name=Default Trace File 3 /VALUE-D:APPORACLEdiagrdbmslaw12law12tracelaw12_ora_6892.trc2015-814-10Oracle数据库系统原理数据库系统原理-第第
9、14章章 管理数据库的各种文件管理数据库的各种文件控制文件控制文件 位置 由参数control_files指定 作用 存储数据库的物理文件信息和RMAN备份信息等数据。控制文件损坏的后果 数据库不能正常启动,不能以普通方式恢复数据库。作用 保存数据文件和重做文件的信息2015-814-11Oracle数据库系统原理数据库系统原理-第第14章章 管理数据库的各种文件管理数据库的各种文件控制文件的镜像控制文件的镜像 控制文件一般有多个,在写入数据时,同时写入这多个文件,其内容完全相同 丢失部分控制文件的解决方法 修改参数文件的control_files参数 复制当前现存的控制文件2015-814-
10、12Oracle数据库系统原理数据库系统原理-第第14章章 管理数据库的各种文件管理数据库的各种文件控制文件内容控制文件内容 控制文件是二进制数据文件,不超过64MB。其数据可以分为不可覆盖与可覆盖重用两部分。不可覆盖部分包括数据文件、重做文件等物理文件的位置信息,还包括数据文件和重做文件的文件头、数据库名称、发生过的检查点等数据。可覆盖重用部分包括归档日志文件历史以及RMAN备份历史等信息。参数control_file_record_keep_time指定可覆盖数据保存的天数,默认值为7。2015-814-13Oracle数据库系统原理数据库系统原理-第第14章章 管理数据库的各种文件管理数
11、据库的各种文件查看控制文件各部分内容的大小查看控制文件各部分内容的大小SQL select type,record_size from v$controlfile_record_section;TYPE RECORD_SIZE-DATABASE 316CKPT PROGRESS 8180REDO THREAD 256REDO LOG 72DATAFILE 520FILENAME 524TABLESPACE 68.PDBINC RECORD 144已选择 41 行。2015-814-14Oracle数据库系统原理数据库系统原理-第第14章章 管理数据库的各种文件管理数据库的各种文件导出控制文件内
12、容导出控制文件内容 导出其内容为可读的文本文件:SQL alter session set events 2 immediate trace name controlf level 3 3/然后,执行下面查询确定当前会话的跟踪文件:SQL select name,value from v$diag_info 2 where name=Default Trace File 3 /NAME VALUE-Default Trace File D:APPORACLEdiagrdbmslaw12law12tracelaw12_ora_6892.trc2015-814-15Oracle数据库系统原理数据库
13、系统原理-第第14章章 管理数据库的各种文件管理数据库的各种文件控制文件的安全性保证措施控制文件的安全性保证措施 对控制文件镜像 用RMAN备份控制文件 单独备份其二进制文件 SQL alter database backup controlfile to d:control.bak;备份重建控制文件的命令SQL alter database backup controlfile to trace as d:recreateCtl.sql;2015-814-16Oracle数据库系统原理数据库系统原理-第第14章章 管理数据库的各种文件管理数据库的各种文件重做文件重做文件 大型数据库要保证数据
14、库出现故障时,可以把丢失的数据恢复回来。在恢复操作中,起关键作用的是重做文件。2015-814-17Oracle数据库系统原理数据库系统原理-第第14章章 管理数据库的各种文件管理数据库的各种文件重做文件的内容重做文件的内容 保存 DML DDL DCL 不保存 数据文件操作,如建表空间,修改数据文件属性2015-814-18Oracle数据库系统原理数据库系统原理-第第14章章 管理数据库的各种文件管理数据库的各种文件DML语句产生的重做数据语句产生的重做数据 操作类型 操作发生的scn号(system change number)操作数据所占用的rowid 操作产生的新数据insert,u
15、pdate 若涉及分配空间,还会记录空间分配信息2015-814-19Oracle数据库系统原理数据库系统原理-第第14章章 管理数据库的各种文件管理数据库的各种文件实例恢复与介质恢复实例恢复与介质恢复 实例恢复 因为停电或死机,导致修改的数据尚未写入磁盘,从而造成数据不一致。数据库重启时,Oracle会利用联机重做日志自动恢复。介质恢复 因为磁盘损坏,即存储介质损坏,导致数据丢失。需要使用以前的数据库备份及联机、归档重做文件来恢复数据库。这种情况需要用户干预。2015-814-20Oracle数据库系统原理数据库系统原理-第第14章章 管理数据库的各种文件管理数据库的各种文件重做文件组重做文
16、件组 重做文件分为联机和归档两类。联机重做文件按分组管理。重做文件组由相互镜像的若干个重做文件构成。数据库正常运行至少需要两个重做文件组。重做文件组从1开始编号,其组号不再发生变化。Oracle对重做文件组循环使用。日志文件大小固定,不能改变。重做数据从第1组开始填充,填满后,切换至第2组,填满再切换至第3组,若数据库有3组重做日志,则第3组填满后,再切换至第1组,依此类推。2015-814-21Oracle数据库系统原理数据库系统原理-第第14章章 管理数据库的各种文件管理数据库的各种文件重做文件的序列号重做文件的序列号 在恢复数据库时,对备份文件要从旧至新依次应用重做文件中的数据。为了区分
17、重做数据产生的先后顺序,会按照写入数据的顺序,依次对重做文件组编序列号。新建数据库中的重做文件组序列号都为0,第一个被写入数据的重做文件组序列号设置为1,发生日志切换时,LGWR把前一组的序列号加1后的值作为切换至的重做文件组序列号。2015-814-22Oracle数据库系统原理数据库系统原理-第第14章章 管理数据库的各种文件管理数据库的各种文件查询重做文件组信息查询重做文件组信息SQL select sequence#,group#,bytes/1024/1024 as size(MB),members 2 from v$log 3 order by sequence#4 /SEQUEN
18、CE#GROUP#size(MB)MEMBERS-60 3 50 2 61 1 50 2 62 2 50 22015-814-23Oracle数据库系统原理数据库系统原理-第第14章章 管理数据库的各种文件管理数据库的各种文件查询所有查询所有日志文件信息日志文件信息SQL select member,group#,status from v$logfile 2 order by group#3 /MEMBER GROUP#STATUS-D:APPADMINISTRATORORADATAORCLREDO01.LOG 1D:APPADMINISTRATORORADATAORCLREDO02.LOG
19、 2D:APPADMINISTRATORORADATAORCLREDO03.LOG 3D:APPREDO4.LOG 4D:APPREDO5_01.LOG 52015-814-24Oracle数据库系统原理数据库系统原理-第第14章章 管理数据库的各种文件管理数据库的各种文件添加添加和删除和删除重做重做文件文件组组 组号为4,包括两个日志成员,大小为50MBSQL alter database add logfile group 4 2 (d:appredo4_01.log,d:appredo4_02.log)3 size 50m 4 /也可以去除组号,重做文件组依序自动编号SQL alter
20、database add logfile 2 (d:appredo5_01.log,d:appredo5_02.log)3 size 50m 4 /删除组号为4的重做文件组SQL alter database drop logfile group 4;2015-814-25Oracle数据库系统原理数据库系统原理-第第14章章 管理数据库的各种文件管理数据库的各种文件添加和删除日志成员添加和删除日志成员 对5号重做文件组添加新的日志成员SQL alter database 2 add logfile member d:appredo5_03.log 3 to group 5 4 /删除5号重做
21、文件组中的日志成员SQL alter database 2 drop logfile member d:appredo5_02.log 3 /2015-814-26Oracle数据库系统原理数据库系统原理-第第14章章 管理数据库的各种文件管理数据库的各种文件删除重做文件组的删除重做文件组的注意事项注意事项 一个实例最少要有两个重做文件组。只能删除处于inactive或unused状态的日志组。要保证删除的重做文件组已经被归档。重做文件组的成员文件不会被自动删除,需要用户在操作系统上手工删除。2015-814-27Oracle数据库系统原理数据库系统原理-第第14章章 管理数据库的各种文件管理
22、数据库的各种文件删除日志成员的注意事项删除日志成员的注意事项 因为文件损坏或磁盘故障删除日志成员后,要立刻添加日志成员以保证镜像关系。不能删除重做文件组中的最后一个正常可用日志成员。不能删除处于current状态的重做文件组中的日志成员。删除日志成员后,其物理文件并未自动删除,需要在操作系统上手工删除。2015-814-28Oracle数据库系统原理数据库系统原理-第第14章章 管理数据库的各种文件管理数据库的各种文件移动重做文件移动重做文件 关闭数据库,将其重启至mount状态SQL shutdown immediateSQL startup mount 在操作系统上移动重做文件SQL ho
23、st move D:apporacleoradataorclredo01.log d:appredo01.log 在Oracle中执行重命名命令SQL alter database rename file 2 d:apporacleoradataorclredo01.log 3 to 4 d:appredo01.log 5 /打开数据库,结束移动文件操作:SQL alter database open;2015-814-29Oracle数据库系统原理数据库系统原理-第第14章章 管理数据库的各种文件管理数据库的各种文件数据库归档模式数据库归档模式 若数据库处于归档模式,发生日志切换时,Orac
24、le会把联机日志文件中的数据复制到归档目录成为归档文件,从而使归档重做文件与联机重做文件保持一个连续的链条,可以在恢复数据库时,把相应重做数据应用到备份,使得数据库数据不丢失。2015-814-30Oracle数据库系统原理数据库系统原理-第第14章章 管理数据库的各种文件管理数据库的各种文件手工切换重做日志组手工切换重做日志组SQL alter system switch logfile;2015-814-31Oracle数据库系统原理数据库系统原理-第第14章章 管理数据库的各种文件管理数据库的各种文件查看数据库是否处于归档模式查看数据库是否处于归档模式SQL conn/as sysdba
25、已连接。SQL archive log list;archive log list;数据库日志模式 非存档模式自动存档 禁用存档终点 USE_DB_RECOVERY_FILE_DEST最早的联机日志序列 20当前日志序列 232015-814-32Oracle数据库系统原理数据库系统原理-第第14章章 管理数据库的各种文件管理数据库的各种文件设置归档模式设置归档模式 设置归档文件名称的格式SQL alter system set log_archive_format=%s_%r_%t.arc scope=scope=spfilespfile;设置一个或多个归档路径SQL alter syste
26、m set log_archive_dest_1=location=location=d:arch;SQL alter system set log_archive_dest_2=locationlocation=d:app;重启数据库至mount状态SQL shutdown immediateSQL startup mount 把数据库切换至归档模式SQL alter database archivelog;打开数据库至正常状态SQL alter database open;2015-814-33Oracle数据库系统原理数据库系统原理-第第14章章 管理数据库的各种文件管理数据库的各种文件
27、归档路径使用归档路径使用快速闪回恢复区快速闪回恢复区 查询闪回恢复区所在位置SQL select value from v$parameter 2 where name=db_recovery_file_dest 3 /VALUE-D:appAdministratorflash_recovery_area 归档路径设置为快速闪回恢复区SQL alter system set log_archive_dest_1 =location=use_db_recovery_file_dest 可以通过修改db_recovery_file_dest参数设置快速闪回恢复区位置2015-814-34Oracl
28、e数据库系统原理数据库系统原理-第第14章章 管理数据库的各种文件管理数据库的各种文件查询归档查询归档日志文件所属重做文件组信息日志文件所属重做文件组信息SQL select recid,sequence#,first_change#,next_change#2 from v$log_history 3 /RECID SEQUENCE#FIRST_CHANGE#NEXT_CHANGE#-1 2 2108519 2109695 2 3 2109695 2137899 3 4 2137899 2165921 4 5 2165921 2191276 5 6 2191276 2212777 6 7 2
29、212777 2233030 7 8 2233030 22545082015-814-35Oracle数据库系统原理数据库系统原理-第第14章章 管理数据库的各种文件管理数据库的各种文件查询归档日志文件信息查询归档日志文件信息SQL select recid,name,applied,deleted,dest_id 2 from v$archived_log 3 /RECID NAME APPLIED DEL DEST_ID-1 NO YES 2 2 NO YES 2 3 NO YES 2 16 NO YES 2 17 D:ARCHARC0000000493_0785365191.0001 NO NO 2 18 D:ARCHARC0000000494_0785365191.0001 NO NO 2 19 D:ARCHARC0000000495_0785365191.0001 NO NO 2说明:name列为空的行表示归档文件已经被rman删除2015-814-36Oracle数据库系统原理数据库系统原理-第第14章章 管理数据库的各种文件管理数据库的各种文件