微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Oracle数据库物理存储结构管理

1、实验目的

(1)掌握Oracle数据库数据文件的管理。

(2)掌握Oracle数据库控制文件的管理。

(3)掌握Oracle数据库重做日志文件的管理。

(4)掌握Oracle数据库归档管理。

2、实验环境

Windows 7家庭普通版。

Oracle 11g

3、实验要求

(1)完成数据文件的管理操作,包括数据文件的创建、修改重命名、移植及查询等操作。

(2)完成控制文件的管理操作,包括控制文件添加、备份、删除以有查询操作。

(3)完成重做日志文件的管理操作,包括重做日志文件组及其成员文件添加删除查询等操作,以及重做日志文件重命名、移植、日志切换等操作。

(4)完成数据库归档模式设置、归档路径设置。

4、实验内容

(1)向BOOKSALES数据库的USERS表空间添加一个大小为10MB的数据文件users02.dbf。

(2)向BOOKSALES数据库的TEMP表空间添加一个大小为10MB的临时数据文件temp02.dbf。

(3)向BOOKSALES数据库的USERS表空间中添加一个可以自动扩展的数据文件user03.dbf,大小5MB,每次扩展1MB,最大容量为100MB。

(4)取消BOOKSALES数据库数据文件user03.dbf的自动扩展。

(5)将BOOKSALES数据库数据文件users02.dbf更名为users002.dbf。

(6)查询BOOKSALES数据库当前所有的数据文件的详细信息。

(7)为BOOKSALES数据库添加一个多路复用的控制文件control03.ctl。

(8)以二进制文件的形式备份BOOKSALES数据库的控制文件

(9)将BOOKSALES数据库的控制文件以文本方式备份到跟踪文件中,并查看备份的内容

(10)删除BOOKSALES数据库的控制文件control03.ctl。

(11)查询BOOKSALES数据库当前所有控制文件信息。

(12)向BOOKSALES数据库添加一个重做日志文件组(组号为4),包含一个成员文件undo04a.log,大小为4MB。

(13)向BOOKSALES数据库的重做日志组4中添加一个成员文件名称为undo04b.log。

(14)将BOOKSALES数据库的重做日志组4中所有成员文件移植到一个新的目录下。

(15)查询BOOKSALES数据库中所有重做日志文件组的状态。

(16)查询BOOKSALES数据库中所有重做日志文件成员的状态。

(17)删除BOOKSALES数据库的重做日志组4中的成员文件undo04b.log。

(18)删除BOOKSALES数据库的重做日志组4。

(19)查看BOOKSALES数据库是否处于归档模式。

(20)将BOOKSALES数据库设置为归档模式。

(21)为BOOKSALES数据库设置3个归档目标,其中一个为强制归档目标。

(22)对BOOKSALES数据库进行5次日志切换,查看归档日志信息。

 

5、实验过程与结果

1)   向BOOKSALES数据库的USERS表空间添加一个大小为10MB的数据文件users02.dbf。

ORACLE语句:

sql> ALTER TABLESPACE USERS ADD DATAFILE

  2  ‘C:\ORACLEsql\ORADATA\ORAL\USERS02.DBF‘ SIZE 10M;

 

 

查询语句:

sql> SELECT T.TABLESPACE_NAME,ROUND(SUM(BYTES / (1024 * 1024)),0) TS_SIZE

  2  FROM DBA_TABLESPACES T,DBA_DATA_FILES D

  3  WHERE T.TABLESPACE_NAME = D.TABLESPACE_NAME

  4  GROUP BY T.TABLESPACE_NAME;

 

修改前:

 

分享图片

 修改后:

 

分享图片

 

 

2)   向BOOKSALES数据库的TEMP表空间添加一个大小为10MB的临时数据文件temp02.dbf。

ORACLE语句:

sql> ALTER TABLESPACE TEMP ADD TEMPFILE

  2  ‘C:\ORACLEsql\ORADATA\ORAL\TEMP02.DBF‘ SIZE 10M;

 

 

查询语句:

sql> SELECT TABLESPACE_NAME,FREE_SPACE/1024/1024 AS "FREE SPACE(M)"

  2  FROM DBA_TEMP_FREE_SPACE

  3  WHERE TABLESPACE_NAME = ‘TEMP‘;

 

修改前:

 

分享图片

修改后:

 

分享图片

 

 

3)   向BOOKSALES数据库的USERS表空间中添加一个可以自动扩展的数据文件user03.dbf,大小5MB,每次扩展1MB,最大容量为100MB。

ORACLE语句:

sql> ALTER TABLESPACE USERS ADD DATAFILE

  2  ‘C:\ORACLEsql\ORADATA\ORAL\USER03.DBF‘ SIZE 5M

  3  AUTOEXTEND ON NEXT 1M MAXSIZE 100M;

 

 

查询语句:

sql> SELECT T.TABLESPACE_NAME,DBA_DATA_FILES D

  3  WHERE T.TABLESPACE_NAME = D.TABLESPACE_NAME

  4  GROUP BY T.TABLESPACE_NAME;

 

截图:

 

分享图片

 

 

 

4)   取消BOOKSALES数据库数据文件user03.dbf的自动扩展。

ORACLE语句:

sql> ALTER DATABASE DATAFILE ‘C:\ORACLEsql\ORADATA\ORAL\USER03.DBF‘ AUTOEXTEND OFF;

 

 

查询语句:

sql> SELECT FILE_NAME,AUTOEXTENSIBLE FROM DBA_DATA_FILES WHERE FILE_NAME=‘C:\ORACLEsql\ORADATA\ORAL\USER03.DBF‘;

 

修改前:

 

分享图片

修改后:

 

分享图片

 

  

5)   将BOOKSALES数据库数据文件users02.dbf更名为users002.dbf。

ORACLE语句:

sql> ALTER TABLESPACE USERS OFFLINE;

 

(然后手动去资源管理器修改其路径下数据文件名称

 

sql> ALTER TABLESPACE USERS RENAME DATAFILE

  2  ‘C:\ORACLEsql\ORADATA\ORAL\USERS02.DBF‘ TO

  3  ‘C:\ORACLEsql\ORADATA\ORAL\USERS002.DBF‘;

 

sql> ALTER TABLESPACE USERS ONLINE;

 

 

查询语句:

sql> SELECT FILE_NAME FROM DBA_DATA_FILES;

 

修改前:

 

分享图片

 修改后:

 

分享图片

 

 

 

6)   查询BOOKSALES数据库当前所有的数据文件的详细信息。

ORACLE语句:

sql> SELECT * FROM DBA_DATA_FILES;

 

 

截图:

 

分享图片

分享图片

分享图片

分享图片

分享图片

 

 

 

7)   为BOOKSALES数据库添加一个多路复用的控制文件control03.ctl。

ORACLE语句:

sql> ALTER SYstem SET CONTROL_FILES=

  2  ‘C:\ORACLEsql\ORADATA\ORAL\CONTROL01.CTL‘,

  3  ‘C:\ORACLEsql\ORADATA\ORAL\CONTROL03.CTL‘ ScopE=SPFILE;

 

sql> CONN /AS SYSDBA

sql> SHUTDOWN IMMEDIATE

sql> HOST copY C:\ORACLEsql\ORADATA\ORAL\CONTROL01.CTL C:\ORACLEsql\ORADATA\ORAL\CONTROL03.CTL

sql> STARTUP

查询语句:

sql> SELECT * FROM V$controlfile;

 

截图:

 

分享图片

 

 

8)   以二进制文件的形式备份BOOKSALES数据库的控制文件

ORACLE语句:

sql> alter database backup controlfile to ‘C:\ORACLE_LOG\CONTROL01.BKP‘;

sql> alter database backup controlfile to ‘C:\ORACLE_LOG\CONTROL03.BKP‘;

 

 

截图:

 

分享图片

 

分享图片

 

 

 

 

 

9)   将BOOKSALES数据库的控制文件以文本方式备份到跟踪文件中,并查看备份的内容

ORACLE语句:

sql> alter database backup controlfile to trace;

 

 

查询语句:

sql> SHOW ParaMETER USER_DUMP;

 

 

截图:

 

分享图片

分享图片

分享图片

 

   

10) 删除BOOKSALES数据库的控制文件control03.ctl。

ORACLE语句:

sql> ALTER SYstem SET CONTROL_FILES=‘C:\ORACLEsql\ORADATA\ORAL\CONTROL01.CTL‘ ScopE=SPFILE;

sql> SHUTDOWN IMMEDIATE

sql> HOST DEL C:\ORACLEsql\ORADATA\ORAL\CONTROL03.CTL

sql> STARTUP

 

查询语句:

sql> SELECT * FROM V$controlfile;

 

截图:

 

分享图片

 

 

 

11) 查询BOOKSALES数据库当前所有控制文件信息。

ORACLE语句:

sql> SELECT * FROM V$controlfile;

 

 

截图:

分享图片

 

 

 

12) 向BOOKSALES数据库添加一个重做日志文件组(组号为4),包含一个成员文件undo04a.log,大小为4MB。

ORACLE语句:

sql> alter database add logfile group 4(‘C:\ORACLEsql\ORADATA\ORAL\UNDO04A.LOG‘) SIZE 4M;

 

 

查询语句:

sql> SELECT * FROM v$logfile;

 

截图:

 

分享图片

 

 

 

13) 向BOOKSALES数据库的重做日志组4中添加一个成员文件名称为undo04b.log。

ORACLE语句:

sql> alter database add logfile member ‘C:\ORACLEsql\ORADATA\ORAL\UNDO04B.LOG‘ TO GROUP 4;

 

 

查询语句:

sql> SELECT * FROM v$logfile;

 

截图:

 

分享图片

分享图片

 

 

 

 

 

14) 将BOOKSALES数据库的重做日志组4中所有成员文件移植到一个新的目录下。

ORACLE语句:

sql> HOST MOVE C:\ORACLEsql\ORADATA\ORAL\UNDO04A.LOG C:\ORACLE_LOG\UNDO04A.LOG

 

sql> HOST MOVE C:\ORACLEsql\ORADATA\ORAL\UNDO04B.LOG C:\ORACLE_LOG\UNDO04B.LOG

 

 

截图:

 

分享图片

分享图片

 

 

 

 

15) 查询BOOKSALES数据库中所有重做日志文件组的状态。

ORACLE语句:

sql> select group#,sequence#,members,archived,status from v$log;

            

 

截图:

 

分享图片

 

 

16) 查询BOOKSALES数据库中所有重做日志文件成员的状态。

ORACLE语句:

sql> select group#,status,member from v$logfile;

 

 

截图:

 

分享图片

 

 

 

17) 删除BOOKSALES数据库的重做日志组4中的成员文件undo04b.log。

ORACLE语句:

sql> ALTER DATABASE DROP LOGFILE MEMBER ‘C:\ORACLEsql\ORADATA\ORAL\UNDO04B.LOG‘;

 

 

查询语句:

sql> SELECT * FROM v$logfile;

 

截图:

 

分享图片

分享图片

 

 

 

 

18) 删除BOOKSALES数据库的重做日志组4。

ORACLE语句:

sql> alter database drop logfile group 4;

 

 

查询语句:

sql> SELECT * FROM v$logfile;

 

截图:

 

分享图片

 

 

 

19) 查看BOOKSALES数据库是否处于归档模式。(因为第一次实验时已经切换成了归档模式,所以这次操作实际上没有改变什么)

ORACLE语句:

sql> archive log list

 

截图:

 

分享图片

 

 

20) 将BOOKSALES数据库设置为归档模式。

ORACLE语句:

sql> SHUTDOWN IMMEDIATE

sql> STARTUP MOUNT

sql> ALTER DATABASE ARCHIVELOG;

sql> ALTER DATABASE OPEN;

 

 

查询语句:

sql> archive log list

 

截图:

 

分享图片

 

 

 

21) 为BOOKSALES数据库设置3个归档目标,其中一个为强制归档目标。

ORACLE语句:

sql> alter system set log_archive_dest_1=‘location=C:\ORACLE_LOG\a\archive mandatory‘;

 

sql> alter system set log_archive_dest_2=‘location=C:\ORACLE_LOG\b\archive mandatory‘;

 

sql> alter system set log_archive_dest_3=‘service=standby1‘;

 

 

 

截图:

 

分享图片

分享图片

分享图片

 

 

 

 

 

22) 对BOOKSALES数据库进行5次日志切换,查看归档日志信息。

ORACLE语句:

sql> alter system switch logfile;

 

 

查询语句:

sql> select sequence#,first_change#,next_change# from V$archived_log;

 

 

截图:

 

分享图片

分享图片

分享图片

分享图片

分享图片

分享图片

 

 

6、实验遇到的问题及解决办法

  1. 在对USER02.DBF重命名的时候提示错误内容为未找到新文件

解决方法:先将USERS表脱机后再操作文件,可以正常更改表空间。

  1. 在备份控制文件时输入路径后执行会报“操作将重用当前已装载的控制文件名称”的错误

解决方法:将备份路径换到其他与oracle不相干的文件夹内可以正常备份。

  1. 删除重做日志组文件时输入移动后的日志组文件路径并删除提示错误为“非日志文件成员”。

解决方法:移动日志组文件不会改变Oracle内存储的逻辑路径,直接删除原路径即可。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐