您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > ORACLE体系结构-数据库篇
第5章ORACLE体系结构-数据库篇工作第n天今天早上项目经理找到你,说以前存在一个数据库系统是你的前任工程师安装维护的,需要你对其进行相关的健康检查,如果有问题必须对其进行相应处理从而避免故障的发生。在你检查后发现了很多问题,数据库正运行在危险的情况下,你必须对其进行下面的处理:•为了避免控制文件与日志文件单点故障造成数据库无法使用,你必须为oracle添加额外的控制与日志文件。•由于日志文件组数量过少造成的性能问题,日志组不能快速切换。–此性能问题将造成数据库无法正常使用。•在数据库可使用空间不足时利用不同手段对现有数据库进行扩容。–数据库可使用空间不足数据库将无法正常使用。•IO系统存在性能问题,公司采购了新的盘阵并挂载到服务器上,数据库可以直接使用,你需要将一部分IO压力分担到新的盘阵中并且不能影响在线系统的正常使用•数据库使用的都是系统默认的临时表空间难以满足数据库的实际需要。–创建并指定合理的临时表空间•表空间已删除但是物理存储空间并未释放,请你解决此问题。•对现有数据文件进行物理位置迁移以满足实际工作需要。–提升性能–磁盘扩容学习目标•冷备份整个数据库•控制文件管理•在线日志文件管理•数据文件管理控制文件管理通过本节课程的学习,我们应该掌握以下内容:•解释控制文件的用途•列出控制文件的内容•多路复用控制文件•获得控制文件信息控制文件控制文件为二进制文件,用于定义当前数据库的物理结构等信息。•控制文件丢失需要恢复•数据库启动到mount状态读取控制文件,确定数据与日志文件位置•对于oracle运行是必须的•一组控制文件只能与一个数据库相关联•建议控制文件多路复用(镜像)•初始大小由创建数据库时决定控制文件内容控制文件中包含下列内容:•数据库名称与标识•数据库创建时间•表空间名称•数据文件与日志文件位置与名称•当前日志文件序列号•检查点信息•UNDO段的开始与结束•日志文件归档信息•备份信息多路复用控制文件•方法一:spfile–sqlaltersystemsetcontrol_files='$home/oradata/u01/ctrl01.ctl','$home/oradata/u02/ctrl02.ctl'scope=spfile;•方法二:init.ora–control_files=(/disk1/control01.ctl,/disk3/control02.ctl)•关闭数据库•拷贝现有的控制文件并改名•启动数据库•在一个oracle数据库中至少保证一个控制文件可用•如果条件允许最好将其存放到不同的物理存储设备中,避免存储设备硬件故障•多路复用控制文件数过多将影响数据库的性能查询控制文件信息通过查询数据字典获取控制文件相关信息•v$controlfile显示控制文件的状态与名称•v$controlfile_record_section显示控制文件内容•showparameterscontrol_files显示控制文件参数配置完成你的工作•为了避免单点故障,你需要将目前oracle系统的控制文件增加一个,放到不同的路径下(模拟将控制文件放到不同的物理存储设备上)完成你的临时工作•临时接到电话,公司的某个移动数据库系统出现了问题,请你马上处理一下:实际案例:控制文件损坏在线日志文件管理通过本节课程的学习,我们应该掌握以下内容:•理解在线日志文件的作用•清楚在线日志文件的结构•控制在线日志文件的切换与检查点触发•多路复用与管理在线日志文件•归档日志文件的作用使用在线日志文件在线日志文件记录所有数据变化信息,为系统与介质失败提供恢复机制•在线日志文件组成日志组•Oracle数据库至少需要两组日志组•日志组内的在线日志文件被叫做日志成员(日志文件)在线日志文件结构在线日志文件工作原理•在线日志文件以日志文件组的循环方式使用•当某个日志文件写满时,LGWR将移动到下一个日志组–此步骤称为日志切换–同时触发检查点操作–日志切换与检查点信息被写入控制文件强制在线日志文件切换与触发检查点•强制执行日志切换–altersystemswitchlogfile;•强制检查点触发,同步内存数据到硬盘–fast_start_mttr_target参数设置:在其规定的时间内执行检查点,单位s–手动执行检查点altersystemcheckpoint;添加在线日志组•alterdatabaseaddlogfilegroup3('$home/oradata/u01/log3a.rdo','$home/oradata/u02/log3b.rdo')size1m;添加在线日志成员•在现有日志组中添加日志文件alterdatabaseaddlogfilemember'$home/oradata/u04/log1c.rdo'togroup1,'$home/oradata/u04/log2c.rdo'togroup2,'$home/oradata/u04/log3c.rdo'togroup3;删除在线日志组•不能删除当前日志组alterdatabasedroplogfilegroup3;在线日志文件清除、重新定位、命名、修改大小•清除在线日志文件–(1)alterdatabaseclearlogfilegroupn;直接修复已归档的日志文件–(2)alterdatabaseclearunarchivedlogfilegroupn;修复未归档的日志文件–日志成员损坏情况:•当前日志组成员损坏,但必须保证组内一个日志成员可用•非当前日志组成员部分或全部损坏–上述两种情况均可使用上述命令进行修复•被破坏的日志组已归档则使用命令(1)•被破坏的日志组未归档则使用命令(2)•在线日志文件重新定位物理位置、修改名称、修改大小–创建新的日志组–删除旧的日志组–必须注意先后顺序在线日志文件配置•一个oracle数据库必须保证至少两个日志组。建议:添加更多的日志组可以避免切换等待。•每个日志组中可以包含一个或多个日志文件。建议:每个日志组保证两个日志文件及以上可以避免单点故障。获得在线日志组与日志成员信息上述信息可以通过查询数据字典获得:•v$log•v$logfile完成你的工作1、现有数据库的每个日志组中只存在一个日志文件,对生产数据库是一个极大的风险,如果某个日志文件损坏,则数据库将无法使用,恢复十分复杂更容易丢失数据,你必须完成以下工作:•冷备份数据库(关闭数据库拷贝所有控制文件、数据文件、日志文件),RM某个日志组内的日志文件,强行切换日志观察其现象,日志文件损坏,数据库将无法正常工作。•恢复冷备份•给每个日志组添加一个日志文件•直接rm掉日志组中的一个日志文件并保证组内至少有一个日志文件存在,执行DML语句观察其现象。•观察alert.log日志文件信息2、由于日志文件组数量过少造成的性能问题,日志组不能快速切换。实际案例:日志切换等待归档日志文件在线日志被写满时触发归档•为什么要归档–恢复:数据库备份,归档日志、在线日志能够保证恢复需要的所有信息。–备份:在数据库打开时可以直接进行备份•默认环境下数据库处于非归档模式归档日志文件•归档在线日志文件通过ARCn或手动完成•归档信息将被记录在控制文件中•如果在线日志写满并未执行归档操作那么数据库将停止使用•归档日志文件可以被多路复用•归档日志文件必须由DBA来维护小节通过本节课程的学习,我们应该掌握以下内容:•理解在线日志文件的作用•清楚在线日志文件的结构•控制在线日志文件的切换与检查点触发•多路复用与管理在线日志文件•归档日志文件的作用管理表空间与数据文件通过本节课程的学习,我们应该掌握以下内容:•描述数据库的逻辑结构•创建表空间•改变表空间大小•为临时段分配空间•改变表空间状态•修改表空间存储设置概览数据库存储层次结构系统与非系统表空间•系统表空间:–SYSTEM与SYSAUX–创建数据库时自动创建–包含数据字典–包含系统回滚段•非系统表空间:–存放不同的段–便于空间管理与提升性能–控制用户的空间配额•3种表空间类型–永久:存放数据表以及索引–UNDO:存放执行DML语句时自动生成的回滚段–临时:存放排序数据(orderby)创建永久表空间•创建普通永久表空间createtablespaceuserdatadatafile'/u01/oradata/userdata01.dbf'size100mautoextendonnext5mmaxsize200m;•创建大文件表空间createbigfiletablespaceuserdatadatafile'/u01/oradata/userdata01.dbf'size100mautoextendonnext5mmaxsize200m;大文件表空间只能有一个数据文件表空间空间管理•本地管理表空间–空闲扩展区以位图形式记录–每个位图相当于一个块或一组块–位图值指定已使用或空闲块•数据字典管理表空间–空闲扩展区以数据字典形式记录本地管理表空间•创建本地管理表空间createtablespaceuserdatadatafile'/u01/oradata/userdata01.dbf'size500mextentmanagementlocal;•本地管理表空间优越性–减少数据字典表的争用–当产生空间分配与回收时无回滚段的产生UNDO表空间•用于存储回滚段(运行DML语句自动产生回滚段)•不能包含其他对象(数据表以及索引等)•区扩展必须本地管理•创建命令createundotablespaceundo1datafile'/u01/oradata/undo101.dbf'size40m;临时表空间•用于数据排序操作:存放排序数据(orderby)•不能包含其他对象(数据表以及索引等)•区扩展必须使用统一大小•创建命令createtemporarytablespacetemptempfile'/u01/oradata/temp01.dbf'size500mextentmanagementlocaluniformsize10m;管理临时表空间•默认临时表空间–允许指定数据库默认的临时表空间–避免使用系统默认临时表空间进行数据的排序操作–通过alterdatabasedefaulttemporarytablespacetemp_tbsv;命令修改数据库的默认临时表空间•默认临时表空间限制–新的默认临时表空间生效之前旧的不能被删除–当前默认临时表空间不能offline(脱机)–默认临时表空间不能使用永久表空间完成你的工作•数据库使用的都是系统默认的临时表空间难以满足数据库的实际需要,请你创建合适的临时表空间。表空间Offline状态•offline表空间不能提供数据访问•下面表空间不能够offline–system–临时表空间•表空间offline–altertablespaceuserdataoffline;–此表空间上的数据不能被访问•表空间online–altertablespaceuserdataonline;只读表空间设置表空间只读altertablespaceuserdatareadonly;设置表空间读写altertablespaceuserdatareadwrite;•只读表空间只能提供读服务而不能提供写服务•对象可以被删除,例如删除表–droptabletab_name;删除表空间•表空间信息从数据字典删除,例如dba_tablespaces中的信息•表空间包含的内容从数据字典删除,例如user_tables中的信息•通过选项直接删除表空间里面的内容以及对应的操作系统文件droptablespaceuserdataincludingcontentsanddatafiles;修改表空间大小•添加数据文件•直接改变数据文件大小手动修改数据文件大小直接修改表空间中现有数据文件大小alterdatabasedatafile‘/u03/oradata/userdata02.dbf’resize200m;添加数据文件向表空间中添加新的数据文件alterta
本文标题:ORACLE体系结构-数据库篇
链接地址:https://www.777doc.com/doc-11136 .html