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

Author Avatar
Euan 9月 26, 2019
  • 在其它设备中阅读本文章

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;

KozNcV.png

1.2 创建永久性的表空间MYTBS,并查询确认

SQL> CREATE TABLESPACE MYTBS DATAFILE ‘D:/1759116/MYTBS01.DBF’ SIZE 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 512K SEGMENT SPACE MANAGEMENT MANUAL;

KozYpq.png

KozGhn.png

Kozl7Q.png

1.3 为表空间MYTBS添加一个大小为10M数据文件MYTBS02.DBF,并通过查询视图检查是否添加成功;

SQL> ALTER TABLESPACE MYTBS ADD DATAFILE ‘D:\1759116\MYTBS02.DBF’ SIZE 10M;

Koz3kj.png

KozdnU.png

1.4 修改自动增长方式

SQL> ALTER DATABASE DATAFILE ‘D:\1759116\MYTBS01.DBF’ AUTOEXTEND ON NEXT 1M MAXSIZE UNLIMITED;

KozUXT.png

SQL> ALTER DATABASE DATAFILE ‘D:\1759116\MYTBS02.DBF’ RESIZE 30M;

Koz074.png

1.5 移动表空间到“D:\zhongyuhang\MYTBS01.DBF”下;并通过视图查询确认是否成功。

SQL> ALTER TABLESPACE MYTBS OFFLINE;

KozDAJ.png

SQL> HOST COPY D:\1759116\MYTBS01.DBF D:\zhongyuhang\MYTBS01.DBF;

SQL> ALTER TABLESPACE MYTBS ONLINE;

Koz691.png

Kozc1x.png

1.6 将MYTBS备份到“D:\1759116\表空间备份\”下;并检查备份是否成功;

SQL> ALTER TABLESPACE MYTBS BEGIN BACKUP

Koz2jK.png

出错后通过网上寻找错误原因:

在noarchive模式下不能做alter tablespace XXX begin backup,联机备份只有在数据库位于archivelog模式中才能进行。

后进行下列操作

①查看归档情况:

SQL> ARCHIVE LOG LIST;

KozWnO.png

②以archive模式启动数据库:

SQL> shutdown immediate

KozhHe.png

SQL> startup mount

Koz5AH.png

SQL> alter database archivelog;

KTHbM4.png

③查看归档情况:

SQL> archive log list

KTHjd1.png

④开启数据库

SQL> alter database open;

KTHqsJ.png

⑤开启联机备份模式

SQL> alter tablespace users begin backup;

KTHLL9.png

host copy D:\1759116\MYTBS01.DBF D:\1759116\表空间备份

KTH7zF.png

SQL> alter tablespace users end backup;

KTHXZR.png

KTHvIx.png

1.7 删除表空间MYTBS及其包含的所有数据文件;检查是否删除成功

SQL> drop tablespace MYTBS including contents;

KTHzi6.png

KTbSJK.png

2.1 查询控制文件信息

SQL> SELECT NAME FROM V$CONTROLFILE;

KTbpRO.png

2.2 添加控制文件到“D:\1551137\”下,并查询确认

①查看原有控制文件副本:

SQL> show parameter control_files;

KTb9zD.png

②关闭数据库:

SQL> shutdown immediate;

KTbPQe.png

③复制控制文件并赋权限:

copy D:\software\oracle\oradata\orcl\CONTROL01.CTL D:\1759116\CONTROL04.CTL

KTbisH.png

copy D:\software\oracle\oradata\orcl\CONTROL01.CTL D:\software\oracle\oradata\orcl\CONTROL02.CTL

KTbFLd.png

④SQL> startup nomount;

KTbAeA.png

⑤修改参数文件,指定多路复用控制文件路径:

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;

KTbEdI.png

⑥关闭数据库

SQL> shutdown immediate;

KTbVot.png

⑦重新启动数据库:

SQL> startup;

KTbeFP.png

⑧查看参数文件:

SQL> show parameter control_files;

KTbmJf.png

2.3 删除并查询确认

①关闭数据库:

SQL> shutdown immediate;

KTbnW8.png

②重启数据库

SQL> startup;

KTbKSS.png

③查看参数文件:

SQL> show parameter control_files;

KTbMQg.png

④删除物理文件

SQL> host del D:\1759116\CONTROL04.CTL;

KTbQyQ.png

重启Sqlplus

KTblLj.png

依然是这样不知道,可以删除,但是暴力删除怕是会影响数据库及其文件,所以暂时留着

3.1 查询当前数据库的重做日志日志文件组的信息

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

KTb3es.png

3.2 创建一个包括两个成员文件的重做日志文件组置于“C:\1759116\”并查询确认

SQL> alter database add logfile group 4 (‘D:\1759116\redo04a.log’,’D:\1759116\redo04b.log’) size 10m;

KTb8wn.png

KTbGoq.png

3.3 添加成员文件并查询确认

SQL> alter database add logfile member ‘D:\1759116\redo04c.log’ to group 4;

KTbYF0.png

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

KTbtYV.png

3.4 查询重做日志组号并收手动切换,查询确认

SQL> alter system switch logfile;

KTbNWT.png

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

KTbaSU.png

3.5 将(3)中添加的成员文件删除,检查是否成功;将重做日志文件组GROUP4删除,检查是否成功;

①alter database drop logfile group 4;

KTbdlF.png

②查询

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

KTbwy4.png

③查看日志组

select GROUP#,status from v$log;

KTb0OJ.png

④查看日志文件

select GROUP#,MEMBER from v$logfile order by 1,2;

KTbDm9.png

⑤删除日志文件

alter database drop logfile member

KTbrwR.png

‘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/