资源预览内容
第1页 / 共7页
第2页 / 共7页
第3页 / 共7页
第4页 / 共7页
第5页 / 共7页
第6页 / 共7页
第7页 / 共7页
亲,该文档总共7页全部预览完了,如果喜欢就下载吧!
资源描述
实验二 oracle 数据库管理 一、实验目的(1)熟悉ORACLE的环境,使用SQL*Plus与ORACLE进行交互;(2)掌握数据库管理的方法;(3)建立基本的文件以及文件管理;(4)掌握对数据文件、表空间、日志文件、控制文件的常用命令(5)掌握SQL*Plus;二、实验步骤2.1 数据文件的管理(1)在安装完毕之后,在INITsid.ORA参数文件有一个DB_FILES 参数,用于设置当前实例的数据外文件的个数。如:db_files = 80如果在INITsid.ORA文件没有该参数,则可以用下面查询语句从视图中查到。如:SQL select name,value from v$parameter where name = db_files;(2)行命令建立表空间:CREATE TABLESPACE user_stuDATAFILE D:/oracle/oradata/orcl/user_stu.dat SIZE 20MDEFAULT STORAGE( INITIAL 10KNEXT 50KMINEXTENTS 1MAXEXTENTS 99PCTINCREASE 10 )ONLINE ;(3)对一个已存在的表空间追加新数据文件:例1 ALTER TABLESPACE user_stu Add datafile D:/oracle/oradata/orcl/user_stu01.dbf size 30M;例2 为表空间增加数据文件ALTER TABLESPACE users ADD DATAFILE userora1.dbf SIZE 10M ;(4)数据文件更名ALTER TABLESPACE users RENAME DATAFILE filename1, filename2 TO filename3, filename4 ;(5)变更数据文件大小在创建表空间时,可以将表空间说明为自动扩展或固定大小。因而管理员的一项工作就是查看系统所有的表空间对应的数据文件情况。看是否为自动扩展。如:SQL 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 D:ORACLEORADATAORCLUSER_STU01.DBF AUTOEXTEND ON NEXT 10m MAXSIZE 60M;(7)行命令修改表空间:ALTER TABLESPACE USER_STU ONLINE ;(8)请回答下面语句是做什么用的?ALTER TABLESPACE accounting OFFLINE NORMAL;(9)写出下面语句:采用行命令删除表空间accounting:(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(a.cnt) 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;(1)请回答下面语句是做什么用的?Alter system switch logfile; (2)检测点(checkpoint):请回答下面语句是做什么用的?SQL select group#,bytes from v$log;show parameter log_checkpoint_interval(3)添加日志组。建立一个新组4,组内有两个成员ALTER DATABASE ADD LOGFILE GROUP 4 (D:/oracle/oradata/orcl/redo0401.log, D:/oracle/oradata/orcl/redo0402.log) size 10m;(4)为日志组增加成员ALTER DATABASE ADD LOGFILE MEMBER log22.log TO GROUP 2 ;(5)日志删除a删除日志组成员:在下面情况下可能需要删除重做日志文件,如日志文件个数太多(超出需要);日志文件的大小不一致等。这样的情况可以删除日志组成员。b当日志组损坏时,就删除日志组,但必须满足:a) 删除一个日志组后,系统中至少还有两个其它的日志组;b) 被删除的日志组必须是不需要存档;c) 不是正在使用的日志组。2.3、控制文件的管理(1) 查询控制文件的信息show parameters;select * from v$controlfile;desc V$CONTROLFILE_RECORD_SECTIONv$datafiledb_data_filesv$logfile
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号