Oracle数据库物理存储结构管理
Oracle数据库物理存储结构管理
一、实验目的
1掌握Oracle数据库表空间及数据文件的管理;
2掌握Oracle数据库控制文件的管理;
3掌握Oracle数据库重做日志文件的管理
二、实验要求(具体步骤进行截屏展示并配以文字说明)
1完成表空间及文件的管理操作;包括表空间的创建,修改表空间大小;修改表空间的可用性;修改表空间的读写性;查询表空间信息;删除表空间。
(1)通过相关视图(V$TABLESPACE, DBA_TABLESAPCES, DAB_TABSPACE_GROUPS, DBA_DATA_FILES, DBA_TMP_FILES, V$DATAFILE, V$TEMPFILE)查询当前数据库的表空间信息。(表空间的数目、名字、状态、以及其数据文件的数目和存储位置)
(2)创建一个永久性的表空间MYTBS(数据文件MYTBS01.DBF存于D:\学号\),区定制分配,段采用手动管理方式,并通过查询相关视图确认是否创建成功。
(3)为表空间MYTBS添加一个大小为10M数据文件MYTBS02.DBF,并通过查询视图检查是否添加成功;
(4)修改表空间MYTBS中MYTBS01.DBF为自动增长方式且无上限;将表空间MYTBS中MYTBS02.DBF的大小改为30M。
(5)将表空间MYTBS中MYTBS01.DBF移动到D:\姓名\目录中;并通过视图查询确认是否成功。
(6)将表空间MYTBS联机备份到D:\学号\表空间备份;并检查备份是否成功;
(7)删除表空间MYTBS及其包含的所有数据文件;检查是否删除成功;
2完成控制文件相关操作
(1)通过相关视图(V$CONTROLFILE, V$CONTROLFILE_RECORD_SECTION, V$PARAMETER)查询当前数据库的控制文件信息。(控制文件的名称、状态、以及控制文件的数目和存储位置)
(2)为当前数据库再添加一个名为CONTROL04.CTL的控制文件。存放于D:\学号\,通过查询相关视图检查多路复用控制文件是否成功(无权限关闭数据库,不做)。
(3)删除控制文件CONTROL04.CTL,通过查询相关视图检查是否成功。(无权限关闭数据库,不做)。
3 重做日志文件的设置与管理
(1)首先通过相关视图(V$LOG, V$LOGFILE, V$LOG_HISTORY)查询当前数据库的重做日志文件组的信息。(重做日志文件组数目、每个重做组中的成员数及其存储位置、重做日志文件组的状态)
(2)为当前数据库创建一个包括两个成员文件的重做日志文件组(GROUP4存放于D:\学号)并通过视图查询确认是否成功。
(3)为重做日志文件组GROUP4,添加一个成员文件;并通过视图查询操作是否成功。
(4)查询当前重做日志组的组号;并手动切换,并检查切换是否成功。
(5)将(3)中添加的成员文件删除,检查是否成功;将重做日志文件组GROUP4删除,检查是否成功;
三、实验步骤和结果
终端使用sqlplus登录system账号后
1.1查表空间信息
SQL> SELECT TABLESPACE_NAME, EXTENT_MANAGEMENT, ALLOCATION_TYPE, CONTENTS FROM DBA_TABLESPACES;
1.2 创建永久性的表空间MYTBS,并查询确认
SQL> CREATE TABLESPACE MYTBS DATAFILE ‘D:/1759116/MYTBS01.DBF’ SIZE 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 512K SEGMENT SPACE MANAGEMENT MANUAL;
1.3 为表空间MYTBS添加一个大小为10M数据文件MYTBS02.DBF,并通过查询视图检查是否添加成功;
SQL> ALTER TABLESPACE MYTBS ADD DATAFILE ‘D:\1759116\MYTBS02.DBF’ SIZE 10M;
1.4 修改自动增长方式
SQL> ALTER DATABASE DATAFILE ‘D:\1759116\MYTBS01.DBF’ AUTOEXTEND ON NEXT 1M MAXSIZE UNLIMITED;
SQL> ALTER DATABASE DATAFILE ‘D:\1759116\MYTBS02.DBF’ RESIZE 30M;
1.5 移动表空间到“D:\zhongyuhang\MYTBS01.DBF”下;并通过视图查询确认是否成功。
SQL> ALTER TABLESPACE MYTBS OFFLINE;
SQL> HOST COPY D:\1759116\MYTBS01.DBF D:\zhongyuhang\MYTBS01.DBF;
SQL> ALTER TABLESPACE MYTBS ONLINE;
1.6 将MYTBS备份到“D:\1759116\表空间备份\”下;并检查备份是否成功;
SQL> ALTER TABLESPACE MYTBS BEGIN BACKUP
出错后通过网上寻找错误原因:
在noarchive模式下不能做alter tablespace XXX begin backup,联机备份只有在数据库位于archivelog模式中才能进行。
后进行下列操作
①查看归档情况:
SQL> ARCHIVE LOG LIST;
②以archive模式启动数据库:
SQL> shutdown immediate
SQL> startup mount
SQL> alter database archivelog;
③查看归档情况:
SQL> archive log list
④开启数据库
SQL> alter database open;
⑤开启联机备份模式
SQL> alter tablespace users begin backup;
host copy D:\1759116\MYTBS01.DBF D:\1759116\表空间备份
SQL> alter tablespace users end backup;
1.7 删除表空间MYTBS及其包含的所有数据文件;检查是否删除成功
SQL> drop tablespace MYTBS including contents;
2.1 查询控制文件信息
SQL> SELECT NAME FROM V$CONTROLFILE;
2.2 添加控制文件到“D:\1551137\”下,并查询确认
①查看原有控制文件副本:
SQL> show parameter control_files;
②关闭数据库:
SQL> shutdown immediate;
③复制控制文件并赋权限:
copy D:\software\oracle\oradata\orcl\CONTROL01.CTL D:\1759116\CONTROL04.CTL
copy D:\software\oracle\oradata\orcl\CONTROL01.CTL D:\software\oracle\oradata\orcl\CONTROL02.CTL
④SQL> startup nomount;
⑤修改参数文件,指定多路复用控制文件路径:
alter system set
control_files=”D:\software\oracle\oradata\orcl\CONTROL01.CTL”,”D:\software\oracle\oradata\orcl\CONTROL02.CTL”,”D:\1759116\CONTROL04.CTL” scope=spfile;
⑥关闭数据库
SQL> shutdown immediate;
⑦重新启动数据库:
SQL> startup;
⑧查看参数文件:
SQL> show parameter control_files;
2.3 删除并查询确认
①关闭数据库:
SQL> shutdown immediate;
②重启数据库
SQL> startup;
③查看参数文件:
SQL> show parameter control_files;
④删除物理文件
SQL> host del D:\1759116\CONTROL04.CTL;
重启Sqlplus
依然是这样不知道,可以删除,但是暴力删除怕是会影响数据库及其文件,所以暂时留着
3.1 查询当前数据库的重做日志日志文件组的信息
SQL> select group#, sequence#, members, archived, status from v$log;
3.2 创建一个包括两个成员文件的重做日志文件组置于“C:\1759116\”并查询确认
SQL> alter database add logfile group 4 (‘D:\1759116\redo04a.log’,’D:\1759116\redo04b.log’) size 10m;
3.3 添加成员文件并查询确认
SQL> alter database add logfile member ‘D:\1759116\redo04c.log’ to group 4;
select group#, sequence#, members, archived, status from v$log;
3.4 查询重做日志组号并收手动切换,查询确认
SQL> alter system switch logfile;
select group#, sequence#, members, archived, status from v$log;
3.5 将(3)中添加的成员文件删除,检查是否成功;将重做日志文件组GROUP4删除,检查是否成功;
①alter database drop logfile group 4;
②查询
select group#, sequence#, members, archived, status from v$log;
③查看日志组
select GROUP#,status from v$log;
④查看日志文件
select GROUP#,MEMBER from v$logfile order by 1,2;
⑤删除日志文件
alter database drop logfile member
‘D:\SOFTWARE\ORACLE\ORADATA\ORCL\REDO01’;,’D:\SOFTWARE\ORACLE\ORADATA\ORCL\REDO02.’,’D:\SOFTWARE\ORACLE\ORADATA\ORCL\REDO03.LOG’;
无法删除…问了其他同学都是一个命令删除,不知道是哪里出问题,网上也找不到适合的方法
本文使用 CC BY-NC-SA 3.0 中国大陆 协议许可
具体请参见 知识共享协议
本文链接:https://zyhang8.github.io/2019/09/26/oracle-exp1/