一、实验目的
(1)掌握 Oracle数据库表空间的管理
(2)掌握数据库表空间不同状态时对数据操作的影响。
二、实验要求
(1)分别创建永久性表空间、临时性表空间、撤销表空间
(2)完成表空间的管理操作,包括修改表空间大小、修改表空间的可用性、修改表空间的读写、表空间的备份、表空间信息查询、删除表空间
三、实验内容
(1) 为 BOOKSALES 数据库创建一个名为 BOOKTBS1 的永久性表空间, 区采用自动扩展方式, 段采用自动管理方式。
(2) 为 BOOKSALES 数据库创建一个名为 BOOKTBS2 的永久性表空间, 区采用定制分配,每次分配大小为 1M, 段采用手动管理方式。
(3) 为 BOOKSALES 数据库创建一个临时表空间 TEMP02。
(4) 将 BOOKSALES 数据库临时表空间 TEMP 和 TEMP02 都放入临时表空间 组
TEMPGROUP 中。
(5) 为 BOOKSALES 数据库创建一个名为 UNDO02 的撤销表空间, 并设置为当前数据库的在线撤销表空间。
(6) 为 BOOKSALES 数据库的表空间 BOOKTBS1 添加一个大小为 50M 的数据文件, 以改变该表空间的大小。
(7) 将 BOOKSALES 数据库的表空间 BOOKTBS2 的数据文件修改为可以自动扩展, 每次扩展 5M, 最大容量为 100M。
(8) 创建一个名为 test 的表, 存储于 BOOKTBS1 表空间中, 向表中插入一条记录。
SQL>CREATE TABLE test(ID NUMBER PRIMARY KEY,name CHAR(20)) TABLESPACE booktbs1;
SQL> INSERT INTO test VALUES(1,‘FIRST ROW’);
(9) 将 BOOKSALES 数据库的 BOOKTBS1 表空间设置为脱机状态, 测试该表空间是否可以使用。
(10) 将 BOOKSALES 数据库的 BOOKTBS1 表空间设置为联机状态, 测试该表空间是否可以使用。
(11) 将 BOOKSALES 数据库的 BOOKTBS1 表空间设置为只读状态, 测试该表空间是否可以进行数据写入操作。
(12) 将 BOOKSALES 数据库的 BOOKTBS1 表空间设置为读写状态, 测试该表空间是否可以进行数据读写操作。
(13) 将 BOOKSALES 数据库的 BOOKTBS1 设置为数据库默认表空间, 将临时表空间组TEMPGROUP 设置为数据库的默认临时表空间。
(14) 分别备份 BOOKSALES 数据库的 USERS 和 BOOKTBS1、 BOOKTBS3 三个表空间。
(15) 查询 BOOKSALES 数据库所有表空间及其状态信息。
(16) 查询 BOOKSALES 数据库所有表空间及其数据文件信息。
(17) 删除 BOOKSALES 数据库 BOOKTBS2 表空间及其所有内容, 同时删除操作系统上的数据文件。
四.问题解答及实验结果
(1)为 BOOKSALES 数据库创建一个名为 BOOKTBS1 的永久性表空间, 区采用自动扩展方式, 段采用自动管理方式。
SQL> create tablespace BOOKTBS1 datafile ‘/home/oracle/app/oracle/oradata/helowin/BOOKTBS1_1.DBF’ SIZE 50M;
(2)为 BOOKSALES 数据库创建一个名为 BOOKTBS2 的永久性表空间, 区采用定制分配,每次分配大小为 1M, 段采用手动管理方式。
SQL> create tablespace BOOKTBS2 datafile ‘/home/oracle/app/oracle/oradata/helowin/BOOKTBS2_1.DBF’ SIZE 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M;
(3)为 BOOKSALES 数据库创建一个临时表空间 TEMP02。
SQL> CREATE TEMPORARY TABLESPACE TEMP02 TEMPFILE ‘/home/oracle/app/oracle/oradata/helowin/TEMP02_1.DBF’ SIZE 20M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 15M;
(4)将 BOOKSALES 数据库临时表空间 TEMP 和 TEMP02 都放入临时表空间 组
TEMPGROUP 中。
SQL> alter tablespace temp tablespace group tempgroup;
SQL> alter tablespace temp02 tablespace group tempgroup;
(5)为 BOOKSALES 数据库创建一个名为 UNDO02 的撤销表空间, 并设置为当前数据库的在线撤销表空间。
SQL> CREATE UNDO TABLESPACE UNDO02 DATAFILE ‘/home/oracle/app/oracle/oradata/helowin/UNDO02_1.DBF’ SIZE 20M;
(6)为 BOOKSALES 数据库的表空间 BOOKTBS1 添加一个大小为 50M 的数据文件, 以改变该表空间的大小。
SQL> ALTER TABLESPACE BOOKTBS1 ADD DATAFILE ‘/home/oracle/app/oracle/oradata/helowin/BOOKTBS1_2.DBF’ SIZE 50M;
(7)将 BOOKSALES 数据库的表空间 BOOKTBS2 的数据文件修改为可以自动扩展, 每次扩展 5M, 最大容量为 100M。
SQL> ALTER DATABASE DATAFILE ‘/home/oracle/app/oracle/oradata/helowin/BOOKTBS2_1.DBF’ SQL> SQL> AUTOEXTEND ON NEXT 5M MAXSIZE 100M;
(8)创建一个名为test的表,存储于BOOKTBS1表空间中,向表中插入一条记录
SQL> create table test( name char(20), phone int)tablespace BOOKTBS1;
SQL> insert into test values(‘ylh’,666666);
SQL> select * from test;
(9)将BOOKSALES数据库的BOOKTBS1表空间设置为脱机状态,测试该表空间是否可以使用。
SQL> alter tablespace BOOKTBS1 offline;
SQL> select * from test;
(10)将BOOKSALES数据库的BOOKTBS1表空间设置为联机状态,测试该表空间是否可以使用。
SQL> alter tablespace BOOKTBS1 online;
SQL> select * from test;
(11)将BOOKSALES数据库的BOOKTBS1表空间设置为只读状态,测试该表空间是否可以进行数据写入操作。
SQL> alter tablespace BOOKTBS1 read only;
SQL> insert into test values(‘小小’,1234);
(12)将BOOKSALES数据库的BOOKTBS1表空间设置为读写状态,测试该表空间是否可以进行数据读写操作。
SQL> alter tablespace BOOKTBS1 read write;
SQL> insert into test values(‘小小’,1234);
(13)将BOOKSALES数据库的BOOKTBS1设置为数据库默认表空间,将临时表空间组TEMPGROUP设置为数据库的默认临时表空间。
SQL> alter database default tablespace BOOKTBS1;
SQL> alter database default temporary tablespace TEMPGROUP;
(14)分别备份BOOKSALES数据库的USERS和BOOKTBS1、BOOKTBS3三个表空间。
SQL> host cp /home/oracle/app/oracle/oradata/helowin/users01.dbf /home/oracle/app/oracle/oradata/backup/users01.dbf
SQL> host cp /home/oracle/app/oracle/oradata/helowin/BOOKTBS1_1.DBF /home/oracle/app/oracle/oradata/backup/BOOKTBS1_1.DBF
SQL> host cp /home/oracle/app/oracle/oradata/helowin/BOOKTBS2_1.DBF /home/oracle/app/oracle/oradata/backup/BOOKTBS2_1.DBF
(15)查询BOOKSALES数据库所有表空间及其状态信息。
SQL> SELECT TABLESPACE_NAME,EXTENT_MANAGEMENT,ALLOCATION_TYPE,CONTENTS FROM DBA_TABLESPACES;
(16)查询BOOKSALES数据库所有表空间及其数据文件信息。
SQL> SELECT TABLESPACE_NAME,FILE_NAME FROM DBA_DATA_FILES;
(17)删除BOOKSALES数据库BOOKTBS2表空间及其所有内容,同时删除操作系统上的数据文件。
SQL> DROP TABLESPACE BOOKTBS2 INCLUDING CONTENTS AND DATAFILES;