oracle 数据文件、表空间、日志文件、控制文件数据库管理.doc_第1页
oracle 数据文件、表空间、日志文件、控制文件数据库管理.doc_第2页
oracle 数据文件、表空间、日志文件、控制文件数据库管理.doc_第3页
oracle 数据文件、表空间、日志文件、控制文件数据库管理.doc_第4页
oracle 数据文件、表空间、日志文件、控制文件数据库管理.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验四 oracle 数据库管理一、试验目的掌握对数据文件、表空间、日志文件、控制文件的常用命令,作为DBA的必要准备。二、实验内容2.1 数据文件的管理(1)在安装完毕之后,在INITsid.ORA参数文件有一个DB_FILES 参数,用于设置当前实例的数据外文件的个数。如:db_files = 80如果在INITsid.ORA文件没有该参数,则可以用下面查询语句从视图中查到。如:SQL col name for a20SQL col value for a50SQL set lin 100SQL select name,value from v$parameter where name = db_files;NAME VALUE- -db_files 1024(2)行命令建立表空间:例1 CREATE TABLESPACE user_stuDATAFILE h:/oracle/oradata/orcl/user_stu.dat SIZE 20MDEFAULT STORAGE( INITIAL 10KNEXT 50KMINEXTENTS 1MAXEXTENTS 99PCTINCREASE 10 )ONLINE ;例2:建立一个新的表空间,具有两个数据文件:CREATE TABLESPACE CRM_TAB DATAFILE h:/oracle/oradata/orcl/crm01.dbf size 10 MB,h:/oracle/oradata/orcl/crm02.dbf size 10 MB;(3)对一个已存在的表空间追加新数据文件:例1 ALTER TABLESPACE user_stu Add datafile H:/oracle/oradata/orcl/user_stu01.dbf size 30M;例2 为表空间增加数据文件ALTER TABLESPACE usersADD DATAFILE userora1.dbf SIZE 10M ;(4)数据文件更名ALTER TABLESPACE usersRENAME DATAFILE? filename1, filename2TO filename3, filename4 ;(5)变更数据文件大小在创建表空间时,可以将表空间说明为自动扩展或固定大小。因而管理员的一项工作就是查看系统所有的表空间对应的数据文件情况。看是否为自动扩展。如:SQL col tablespace_name for a12SQL col file_name for a48SQL select tablespace_name,file_name,AUTOEXTENSIBLE ,bytes from dba_data_files (6)数据文件的自动扩展与调整。重新调整数据文件大小的命令如下:ALTER DATABASE DATAFILE datafile_name RESIZE new_size;当我们发现数据文件过大而不可能用完时,可以用上面命令将数据文件调小。对于设置数据文件的自动扩展问题,可用下面命令来达到:ALTER DATABASE DATAFILE file_spec AUTOEXTEND ON NEXT increment_size MAXSIZE max_size, UNLIMITED;如:ALTER DATABASE DATAFILE H:ORACLEORADATAORCLUSER_STU01.DBFAUTOEXTEND ON NEXT 10m MAXSIZE 60M;(7)行命令修改表空间:ALTER TABLESPACE USER_STUONLINE ;(8)ALTER TABLESPACE accountingOFFLINE NORMAL;(9)行命令删除表空间:DROP TABLESPACE 表空间名INCLUDING CONTENTS CASCADE CONSTRAINTS(10)、与数据文件有关的视图select file_name from dba_data_files;select * from v$datafile;DBA_DATA_FILESDBA_EXTENTSDBA_FREE_SPACEV$DATAFILEV$DATAFILE_HEADER(11)、为了保证表空间的可用,除了掌握表空间的创建外,还应该查看dba_free_space中表空间的信息,以确保系统正常运行。一般管理员应该关心的内容有:表空间共有多少个;总共有多少自由空间;最大的自由空间是什么;下面例子是一个经常使用的脚本,可以查出数据文件和表空间的可用情况。clear bufferclear columnsclear breakscolumn a1 heading Tablespace format a15column a2 heading data File format a45column a3 heading Total|Space format 999,999.99column a4 heading Free|Space format 999,999.99column a5 heading Free|perc format 999,999.99break on a1 on reportcompute sum of a3 on a1compute sum of a4 on a1compute sum of a3 on reportcompute sum of a4 on reportset linesize 120select a.tablespace_name a1, a.file_name a2, a.avail a3, nvl(b.free,0) a4,nvl(round(free/avail)*100),2),0) a5from (select tablespace_name, substr(file_name,1,45) file_name,file_id, round(sum(bytes/(1024*1024),3) availfrom sys.dba_data_filesgroup by tablespace_name, substr(file_name,1,45),file_id) a,(select tablespace_name, file_id,round(sum(bytes/(1024*1024),3) freefrom sys.dba_free_spacegroup by tablespace_name, file_id) bwhere a.file_id = b.file_id (+)order by 1, 2;(12) 查询是否存在表的扩展超出表空间可用大小一般在系统使用较长时间后,表空间的连续块被多次的修改与删除等操作后出现了许多的不连续的块(叫碎片)。这样就有可能出现表的扩展所需要的连续块不能满足的情况。为了避免这样的情况发生而导致扩展失败,管理员要经常查询系统的表空间情况。下面就是这样的一个脚本:Col segment_name for a20Select segment_name, segment_type, owner, a.tablespace_name tablespace,Initial_extent, next_extent, pct_increase,b.bytes max_bytesFrom dba_segments a,( select tablespace_name, max(bytes) bytes from dba_free_spacegroup by tablespace_name ) bwhere a.tablespace_name=b.tablespace_name and next_extent b.bytes ;(13) 查询表空间自由、最大及碎片其实,平常管理最关系就是表空间的总量、最大字节、使用多少、碎片多少等。下面脚本可以查询出所有表空间的自由空间、总空间数、已用空间、自由百分比及最大块的字节数。set pau off col free heading Free(Mb) format 99999.9col total heading Total(Mb) format 999999.9col used heading Used(Mb) format 99999.9col pct_free heading Pct|Free format 99999.9col largest heading Largest(Mb) format 99999.9compute sum of total on reportcompute sum of free on reportcompute sum of used on reportbreak on reportselect substr(a.tablespace_name,1,13) tablespace,round(sum(a.total1)/1024/1024, 1) Total,round(sum(a.total1)/1024/1024, 1)-round(sum(a.sum1)/1024/1024, 1) used,round(sum(a.sum1)/1024/1024, 1) free,round(sum(a.sum1)/1024/1024, 1)*100/round(sum(a.total1)/1024/1024, 1) pct_free,round(sum(a.maxb)/1024/1024, 1) largest,max(t) fragmentfrom(select tablespace_name, 0 total1, sum(bytes) sum1, max(bytes) MAXB,count(bytes) cntfrom dba_free_spacegroup by tablespace_nameunionselect tablespace_name, sum(bytes) total1, 0, 0, 0 from dba_data_filesgroup by tablespace_name) agroup by a.tablespace_name2.2 日志文件的管理(0)日志查询select group#,bytes from v$log;? select group#,bytes from v$logfile;(1)实现强行的日志切换Alter system switch logfile; (2)检测点(checkpoint)Oracle为了在出现故障后能退回去重演原来的信息,就需要一个叫开始点。在这个开始点时刻,数据和事务是已知的。这样的开始点就叫检测点。在Oracle里,只要检查点一到(出现)。Oracle就强行将当前的SGA中的redo区的改动过的块写入重做日志文件中。这个步骤完成后,在重做日志文件中放入一个特殊的检测点标志记录。如果在下一个检测点完成前出现失败,恢复操作进程就会在日志文件和数据文件前一个检测点同步(改回去)。检测点检查完成后,对数据块的任何改动都记录在其检测点标志后写入重做日志项中。因此,恢复也就只能从最近的检测点标志记录开始。Oracle在INITsid.ORA文件中给出LOG_CHECKPOINT_INTERVAL参数可以设置检测点的数目。比如 日志文件大小为1000块,而设置检查点间隔LOG_CHECKPOINT_INTERVAL为250,则文件写达到 1/4、2/4、3/4及4/4时产生检测点(250块、500块、750块和1000块处)。可用下面命令来查日志文件大小:SQL select group#,bytes from v$log;show parameter log_checkpoint_interval(3)添加日志组建立一个新组4,组内有两个成员ALTER DATABASE ADD LOGFILEGROUP 4 (H:/oracle/oradata/orcl/redo0401.log,H:/oracle/oradata/orcl/redo0402.log) size 10m;=当添加一个日志组时,可以不给出组号,有系统自动分配一个组号=ALTER DATABASE ADD LOGFILE(H:/oracle/oradata/orcl/redo0501.log,H:/oracle/oradata/orcl/redo0502.log) size 10m;此时添加的组号为5 (4)为日志组增加成员ALTER DATABASEADD LOGFILE MEMBER log22.log TO GROUP 2 ;=添加成员时,可以不给定成员的大小,因为oracle要求组内的所有成员的大小一律相等。 (5)如果将一个日志成员从一个硬盘移到另一个硬盘,就需要重新命名日志成员名字。需要进行下面步骤:1 关闭数据库,并进行完全备份;2 使用操作系统命令拷贝原来的日志文件到新的地方;3 用startup mount 启动数据库;4 用ALTER DATABASE RENAME FILE TO ;5 用ALTER DATABASE OPEN 打开数据库;6 备份控制文件。为文件更名ALTER DATABASERENAME FILE filename1, filename2TO filename3, filename4 ; (6)日志删除a删除日志组成员:在下面情况下可能需要删除重做日志文件,如日志文件个数太多(超出需要);日志文件的大小不一致等。这样的情况可以删除日志组成员。b当日志组损坏时,就删除日志组,但必须满足:a) 删除一个日志组后,系统中至少还有两个其它的日志组;b) 被删除的日志组必须是不需要存档;c) 不是正在使用的日志组。删除日志文件的语法:ALTER DATABASE database_nameDROP LOGFILEGROUP group_number | file_name | (file_name,file_name(,.) )删除日志成员的语法:ALTER DATABASE database_nameDROP LOGFILE MEMBER file_name;c.联机重做日志的紧急替换:当一个重做日志组偶而被损坏使数据库不能继续使用时,不能直接删除它们,而是要用一个干净的文件或一组成员去替代这个损坏的日志组。联机重做日志的紧急替换命令语法如下:ALTER DATABASE database_nameCLEARUNARCHIVED LOGFILE group_identifierUNRECOVERABLE DATAFILE如果该文件正在等待存档(归档模式),就需要UNARCHIVED。如果需要脱机恢复一个数据文件,就用UNRECOVERABLE DATAFILE。d了解重做日志的当前状态:V$LOGFILEV$LOGV$THREADV$LOG_HISTORYe.例子:删除一个组3:ALTER DATABASE DROP LOGFILE GROUP 3;删除一个成员:ALTER DATABASE DROP? LOGFILE MEMBER/orant/oradatamydb02redo02.log ;4了解重做日志的当前状态的视图主要有:V$LOGFILEV$LOGV$THREADV$LOG_HISTORY5.例子:察看是否归档ARCHIVE? LOG? LIST 日志归档alter database noarchivelog;3、控制文件的管理(1) 关于控制文件控制文件存放有数据库的结构信息,包括数据文件、日志文件。控制文件是一个二进制文件,它是在数据库建立时自动被建立。控制文件可以在当你改变文件名或移动文件时而被更新。在任何时候,你都不能编辑控制文件。控制文件的内容包括:1 数据库名字(控制文件只能属于一个数据库)。2 数据库建立时的邮戳。3 数据文件-名字,位置及联机/脱机。4 重做日志文件-名字及位置。5 表空间名字。6 当前日志序列号。7 最近检查点信息。8 恢复管理器信息(RMAN)。(2) 控制文件信息在spfile.ora的配置文件中 有:control_files = (/home/oracle/app/oracle/oradata/s450/control01.ctl, /home/oracle/app/oracle/oradata/s450/control02.ctl, /home/oracle/app/oracle/oradata/s450/control03.ctl)(3) 查询控制文件的信息show parameters;select * from v$controlfile;desc V$CONTROLFILE_RECORD_SECTIONv$datafiledb_data_filesv$logfilev$logv$controlfileshow parameter control_files 其中,RECORD_SIZE NUMBER 记录字节大小RECORDS_TOTAL NUMBER 段的记录数RECORDS_USED NUMBER 段中已使用的记录数FIRST_INDEX NUMBER 第一个记录索引位置LAST_INDEX NUMBER 最后一个记录索引位置LAST_RECID NUMBER 最后一个记录ID号select * from V$CONTROLFILE_RECORD_SECTION;7.6.4 控制文件信息的更改需要在spfile.ora中做出相应的更改。建立控制文件的步骤1. 建立控制文件准备。必须有数据文件(查DBA_DATA_FILES数据字典)、日志文件(查V$LOGFILE数据字典)的详细列表。下面是创建控制文件的命令:CREATE CONTROLFILE SET DATABASE ORACLENORESETLOGS NOARACHIVELOGMAXLOGFILES 32MAXLOGMEMBERS 2MAXDATAFILES 32MAXINSTANCES 1MAXLOGHISTORY 1630LOGFILEGROUP 1 C:ORACLEDATABASELOG1ORCL.LOG SIZE 200K,GROUP 2 C:ORACLEDATABASELOG2ORCL.LOG SIZE 200K,DATAFILEC:ORACLEDATABASESYS1ORCL.ORA,C:ORACLEDATABASEUSER1ORCL.ORA,C:ORACLEDATABASERBS1ORCL.ORA,C:ORACLEDATABASETMP1ORCL.ORA,C:O

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论