• 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:ORACLESQLORADATAORALUSERS02.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:ORACLESQLORADATAORALTEMP02.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:ORACLESQLORADATAORALUSER03.DBF' SIZE 5M

      3  AUTOEXTEND ON NEXT 1M MAXSIZE 100M;

    查询语句:

    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;

    截图:

     

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

    ORACLE语句:

    SQL> ALTER DATABASE DATAFILE 'C:ORACLESQLORADATAORALUSER03.DBF' AUTOEXTEND OFF;

    查询语句:

    SQL> SELECT FILE_NAME,AUTOEXTENSIBLE FROM DBA_DATA_FILES WHERE FILE_NAME='C:ORACLESQLORADATAORALUSER03.DBF';

    修改前:

     

    修改后:

     

      

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

    ORACLE语句:

    SQL> ALTER TABLESPACE USERS OFFLINE;

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

    SQL> ALTER TABLESPACE USERS RENAME DATAFILE

      2  'C:ORACLESQLORADATAORALUSERS02.DBF' TO

      3  'C:ORACLESQLORADATAORALUSERS002.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:ORACLESQLORADATAORALCONTROL01.CTL',

      3  'C:ORACLESQLORADATAORALCONTROL03.CTL' SCOPE=SPFILE;

    SQL> CONN /AS SYSDBA

    SQL> SHUTDOWN IMMEDIATE

    SQL> HOST COPY C:ORACLESQLORADATAORALCONTROL01.CTL C:ORACLESQLORADATAORALCONTROL03.CTL

    SQL> STARTUP

    查询语句:

    SQL> SELECT * FROM V$controlfile;

    截图:

     

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

    ORACLE语句:

    SQL> alter database backup controlfile to 'C:ORACLE_LOGCONTROL01.BKP';

    SQL> alter database backup controlfile to 'C:ORACLE_LOGCONTROL03.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:ORACLESQLORADATAORALCONTROL01.CTL' SCOPE=SPFILE;

    SQL> SHUTDOWN IMMEDIATE

    SQL> HOST DEL C:ORACLESQLORADATAORALCONTROL03.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:ORACLESQLORADATAORALUNDO04A.LOG') SIZE 4M;

    查询语句:

    SQL> SELECT * FROM v$logfile;

    截图:

     

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

    ORACLE语句:

    SQL> alter database add logfile member 'C:ORACLESQLORADATAORALUNDO04B.LOG' TO GROUP 4;

    查询语句:

    SQL> SELECT * FROM v$logfile;

    截图:

     

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

    ORACLE语句:

    SQL> HOST MOVE C:ORACLESQLORADATAORALUNDO04A.LOG C:ORACLE_LOGUNDO04A.LOG

    SQL> HOST MOVE C:ORACLESQLORADATAORALUNDO04B.LOG C:ORACLE_LOGUNDO04B.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:ORACLESQLORADATAORALUNDO04B.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_LOGaarchive mandatory';

    SQL> alter system set log_archive_dest_2='location=C:ORACLE_LOGarchive 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内存储的逻辑路径,直接删除原路径即可。

  • 相关阅读:
    socket server的N种并发模型
    进程、线程以及Goroutine的区别
    分布式从ACID、CAP、BASE的理论推进
    epoll的理论与IO阻塞机制
    golang面试题知识点总结
    golang中如何进行项目模块及依赖管理
    面对golang中defer,要注意什么?
    Kaggle 学习之旅
    推荐在线学习读书网站
    k8s 的 dashboard 的实践
  • 原文地址:https://www.cnblogs.com/NamingException/p/10891976.html
Copyright © 2020-2023  润新知