ORACLE实验报告完结版

  • 格式:pdf
  • 大小:3.83 MB
  • 文档页数:50

实验报告(三)院系:信息学院课程名称:日期:

班级姓名

专业信息管理与信息系统学号实验室

实验名称Oracle的存储管理与分析(1)成绩评定

教师签名

实验目的索引

实验内容一、请写三个表明oracle读取数据所用的三种方式的SQL语句,并列出它们的执行

计划

二、以emp为原型,创建一个test表,在test的empno列上创建索引

三、分析索引,通过index_stats查看的索引高度,结构等信息

四、往test表中删除,插入,更新3-5条记录,再分析索引,查看三所列的索引结

构的信息

五、往test表中插入600条记录,查看索引结构

六、删除500条记录,查看索引结构

七、对索引进行合并,查看索引变化

八、重构索引,查看索引变化

一、请写三个表明oracle读取数据所用的三种方式的SQL语句,并列出它们的执行计划

1.全表扫描(fulltablescan--fts)

并行查询可能会使得我们的路径选择采用全表扫描

2.通过行ID(ROWID)

向表中插入对象时隐含会创建改行ROWID,它是数据行所存储的数据块地址,这样可以以

最快的速度找到该行数据,是oracle中读取单行数据最快的方法。

3.使用索引

(1)使用索引找到相应ROWID

(2)通过找到的ROWID从表中读取相应的数据

二、以emp为原型,创建一个test表,在test的empno列上创建索引

三、分析索引,通过index_stats查看的索引高度,结构等信息

四、往test表中删除,插入,更新3-5条记录,再分析索引,查看三所列的索引结构的信息

五、往test表中插入600条记录,查看索引结构

这样依次插入到表test中600条记录,再查看索引结构有如下变化:

六、删除500条记录,查看索引结构;

按照这样删除的方法把插入的600记录删除500条后在查看索引结构:七、对索引进行合并,查看索引变化;

八、重构索引,查看索引变化;

实验报告(三)院系:信息学院课程名称:日期:

班级姓名专业信息管理与信息系统学号实验室

实验名称oracle存储管理与优化(2)成绩评定

教师签名

实验目的日志管理

实验内容1查看日志组和日志文件的相关信息(v$log,v$logfile)了解日志组状态真正涵义;

2切换日志组,跟踪日志切换的时间频率;

3往数据里增加两个日志组,再删除其中的一个,结合日志组的状态,分析哪些类

型的日志组不能删除

4.往日志组里增加日志成员,再删除添加的日志成员,分析哪些类型的日志文件不

能删除;

5日志文件的恢复:1.nactive日志损坏清洗日志

2.active日志损坏,只要数据库是一致性关闭,与1的恢复一样

3.current日志损坏不完全恢复

1查看日志组和日志文件的相关信息(v$log,v$logfile)了解日志组状态真正涵义;

v$log记录了当前数据库的日志组号、日志序列号、每个日志文件的大小、以字节为单位、

每个日志组的成员数量,以及日志组的当前状态。

v$logfile记录了当前日志的日志组号、该日志组的状态、类型和日志成员信息。

2切换日志组,跟踪日志切换的时间频率

3往数据里增加两个日志组,再删除其中的一个,结合日志组的状态,分析哪些类型的日志

组不能删除

1>日志组的状态有四种:active、inactive、unused、current;

2>可以删除的日志组有:unused和inactive;

3>不能删除的有:active和current。

4.往日志组里增加日志成员,再删除添加的日志成员,分析哪些类型的日志文件不能删除;

1>当日志组中只有一个成员的时候,不能删除;

2>当日志组正在使用,在日志切换前不能删除该组中的成员;

3>数据库为归档模式,并且要删除的日志成员所属的日志组没有被归档,改组中的日志成

员不能被删除。

5日志文件的恢复:1.nactive日志损坏清洗日志

日志损坏之前的v$log:

日志损坏之后,清洗inactive日志组:(日志组1被误删除,与本题无关)

2.active日志损坏,只要数据库是一致性关闭,与1的恢复一样

3.current日志损坏不完全恢复

实验报告(三)院系:信息学院课程名称:日期:

班级姓名

专业信息管理与信息系统学号实验室

实验名称oracle存储管理与优化(3)成绩评定

教师签名

实验目的归档日志管理

实验内容1.查看数据库的存档状态

2.将数据库切换到归档状态(写出步骤)

3.修改存档的位置,给数据库设两个存档路径

4.修改归档日志文件的格式

5.请利用日志挖掘将已经删除且提交的数据恢复回来

1.查看数据库的存档状态

2.将数据库切换到归档状态(写出步骤)

SYS@beijing>shutimmediate(必须一致停库)

SYS@beijing>startupmount

SYS@beijing>alterdatabasearchivelog;

《变为非归档alterdatabasenoarchivelog》

SYS@beijing>alterdatabaseopen;

SYS@beijing>archiveloglist;

3.修改存档的位置,给数据库设两个存档路径

4.修改归档日志文件的格式

从10g开始,配置归档日志文件格式时,必须带有%s,%t和%r匹配符,配置了归档文件格式后,

必须重启数据库.

5.请利用日志挖掘将已经删除且提交的数据恢复回来

1.修改追加日志数据模式

1)利用scott用户下的emp表建立一个test表:createtabletestasselect*fromemp;

2)查询test表中的数据:select*fromtest;

3)删除4条记录:

SQL>deletefromtestwhereempno='7370';

SQL>deletefromtestwhereempno='7522';

SQL>deletefromtestwhereempno='7500';

SQL>deletefromtestwhereempno='7567';

4)提交:commit

5)将数据库改变成追加日志模式:alterdatabaseaddSUPPLEMENTALlogdata;

6)查看当前日志组:select*fromv$log;

7)查看当前日志组的日志文件的存储位置:select*fromv$logfile;

8)添加要挖掘的日志文件:exec

dbms_logmnr.add_logfile(‘D:\APP\GATEWAY\ORADATA\ORCL\REDO03.LOG’);

9)执行日志挖掘命令:exec

dbms_logmnr.start_logmnr(options=>dbms_logmnr.dict_from_online_catal

og);

10)找到delete语句的redo条目:selectsql_redofromv$logmnr_contentswhere

lower(sql_redo)like'%update%'andseg_name=’TEST’;

11)找到delete语句的undo条目:selectsql_undofromv$logmnr_contentswhere

lower(sql_redo)like'%update%'andseg_name=’TEST’;

12)结束挖掘:EXECUTEDBMS_LOGMNR.END_LOGMNR;

13)利用11)中找到的undo语句执行一遍,就可以将删除的数据找回了(下面的是简化

的undo语句):

insertintoTESTvalues('7370','SMITH','CLERK','7902',TO_DATE('17-12

月-80','DD-MON-RR'),'800',NULL,'20');

insertintoTESTvalues('7522','WARD','SALESMAN','7698',TO_DATE('22-2

月-81','DD-MON-RR'),'1250','500','30');

insertintoTESTvalues

('7500','ALLEN','SALESMAN','7698',TO_DATE('20-2月-81',

'DD-MON-RR'),'1600','300','30');

insertintoTESTvalues('7567','JONES','MANAGER','7839',TO_DATE('02-4

月-81','DD-MON-RR'),'2975',NULL,'20');

实验报告(三)院系:信息学院课程名称:日期:

班级姓名

专业信息管理与信息系统学号实验室

实验名称oracle存储管理与优化(4)成绩评定

教师签名

实验目的永久表空间管理

实验内容1.查看当前数据库表空间的基本信息

2.往当前数据库中增加一个名为mytbs的表空间

3.修改表空间的状态(read,offline)

总结表空间状态发生变化之后,存储在这个表空间中的数据库对象的操作所受的

影响

4.将mytbs表空间的数据文件移动到另外一个地方,并改名,用两种方法实现

5.往mytbs表空间中增加一个数据文件,并修改这文件的属性为自动增长

6.删除mytbs表空间

7,将当前数据库某个用户表空间做只读处理之后,做控制文件的文本备份,然后用

该备份重建控制文件,通过实验将数据库的表空间调整为正常状态

1.查看当前数据库表空间的基本信息

2.往当前数据库中增加一个名为mytbs的表空间