1 实验目的
- 掌握使用DBCA创建数据库和ONCA进行网络配置的方法。
- 熟悉Oracle数据库的表空间管理。
- 了解数据库表空间处于不同状态时对数据操作的影响。
2 实验要求
- 使用DBCA创建数据库,并使用ONCA配置本地网络访问名。
- 分别创建永久性、临时、撤销表空间
- 完成表空间的管理操作,包括修改表空间大小、修改表空间的可用性、修改表空间的读/写、表空间的备份、表空间信息查询、删除表空间。
3 实验步骤
- 使用DBCA工具创建一个名为BOOKSALES的数据库,其SGA为1G,字符编码为UTF-8。
- 使用ONCA为数据库BOOKSALES配置一个本地网络服务名为BSALES。
- 使用SQL Plus或SQL Developer工具连接数据库,并执行下面的操作。
- 为BOOKSALES数据库创建一个名为BOOKBS1的永久表空间,区采用自动扩展方式,段采用自动管理方式。
CREATE TABLESPACE BOOKBS1 DATAFILE
'E:\oracle\oradata\BOOKSALES\BOOKSK1_1.DBF' SIZE 50M;
- 为BOOKSALES数据库创建一个名为BOOKBS2的永久表空间,区采用定制分配,每次分配大小为1MB,段采用手动管理方式。
CREATE TABLESPACE BOOKBS2 DATAFILE
'E:\oracle\oradata\BOOKSALES\BOOKSK2_1.DBF' SIZE 50M
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1024K
SEGMENT SPACE MANAGEMENT MANUAL;
- 为BOOKSALES数据库创建一个临时表空间TEMP02。
CREATE TEMPORARY TABLESPACE TEMP02 TEMPFILE
'E:\oracle\oradata\BOOKSALES\TEMP02_1.DBF' SIZE 20M
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 15M;
- 将BOOKSALES数据库临时表空间TEMP和TEMP02都放入临时表空间组TEMPGROUP中。
ALTER TABLESPACE TEMP TABLESPACE GROUP TEMPGROUP
ALTER TABLESPACE TEMP02 TABLESPACE GROUP TEMPGROUP;
- 为BOOKSALES数据库创建一个名为UNDO02的撤销表空间,并设置为当前数据库的在线撤销表空间
CREATE UNDO TABLESPACE UNDO02 DATAFILE
'E:\oracle\oradata\BOOKSALES\UNDO02_1.DBF' SIZE 20M;
ALTER SYSTEM SET UNDO_MANAGEMENT=AUTO SCOPE=SPFILE;
ALTER SYSTEM SET UNDO_TABLESPACE=UNDO02;
- 为BOOKSALES数据库的表空间BOOKTBS1添加一个大小为50MB的数据文件,以改变该表空间的大小。
ALTER TABLESPACE BOOKBS1 ADD DATAFILE
'E:\oracle\oradata\BOOKSALES\BOOKSK1_2.DBF' SIZE 50M;
- 将BOOKSALES数据库的表空间BOOKTBS2的数据文件修改为可以自动扩展,每次扩展5MB,最大容量为100MB。
ALTER DATABASE DATAFILE
'E:\oracle\oradata\BOOKSALES\BOOKSK2_1.DBF'
AUTOEXTEND ON NEXT 5M MAXSIZE 100M;
8)创建一个名为test的表,存储与BOOKTBS1表空间中,向表中插入一条记录。
CREATE TABLE TEST (ID NUMBER PRIMARY KEY, NAME CHAR (20)) TABLESPACE BOOKBS1;
INSERT INTO TEST VALUES(2,'SENCOND ROW');
SELECT * FROM TEST;
9)将BOOKSALES数据库的BOOKTBS1表空间设置为脱机状态,测试该表空间是否可以使用。
ALTER TABLESPACE BOOKBS1 OFFLINE;
10)将BOOKSALES数据库的BOOKTBS1表空间设置为联机状态,测试该表空间是否可以使用。
ALTER TABLESPACE BOOKBS1 ONLINE;
SELECT * FROM TEST;
11)将BOOKSALES数据库的BOOKTBS1表空间设置为只读状态,测试该表空间是否可以进行数据读/写操作。
ALTER TABLESPACE BOOKBS1 READ ONLY;
INSERT INTO TEST VALUES(1,'FIRST ROW');
SELECT * FROM TEST;
12)将BOOKSALES数据库的BOOKTBS1表空间设置为读/写状态,测试该表空间是否可以进行数据读/写操作。
ALTER TABLESPACE BOOKBS1 READ WRITE;
INSERT INTO TEST VALUES(1,'FIRST ROW');
SELECT * FROM TEST;
13)将BOOKSALES数据库的BOOKTBS1表空间设置为数据库默认表空间,将临时表空间组TEMPGROUP设置为数据库的默认临时表空间。
ALTER DATABASE DEFAULT TABLESPACE BOOKBS1;
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TEMPGROUP;
14)分别备份BOOKSALES数据库的USERS和BOOKTBS1、BOOKTBS3三个表空间。
USERS:
ALTER TABLESPACE USERS BEGIN BACKUP;
HOST COPY
E:\oracle\oradata\BOOKSALES\USERS01.DBF E:\oracle\oradata\USERS01.DBF;
ALTER TABLESPACE USERS END BACKUP;
BOOKTBS1:
ALTER TABLESPACE BOOKBS1 BEGIN BACKUP;
HOST COPY
E:\oracle\oradata\BOOKSALES\BOOKBS1_1.DBF E:\oracle\oradata\BOOKBS1_1.DBF;
ALTER TABLESPACE BOOKBS1 END BACKUP;
BOOKTBS2:
ALTER TABLESPACE BOOKBS2 BEGIN BACKUP;
HOST COPY
E:\oracle\oradata\BOOKSALES\BOOKBS12_1.DBF E:\oracle\oradata\BOOKBS2_1.DBF;
ALTER TABLESPACE BOOKBS2 END BACKUP;
15)查询BOOKSALES数据库所有表空间及其状态信息。
SELECT TABLESPACE_NAME,EXTENT_MANAGEMENT,ALLOCATION_TYPE,CONTENTS FROM DBA_TABLESPACES;
16)查询BOOKSALES数据库所有表空间及其数据文件信息。
SELECT TABLESPACE_NAME,FILE_NAME FROM DBA_DATA_FILES;
17)删除BOOKSALES数据库BOOKTBS2表空间及其所有内容,同时删除操作系统上的数据文件。
DROP TABLESPACE BOOKBS2 INCLUDING CONTENTS AND DATAFILES;
4 实验总结
遇到的问题:copy文件时,无法备份。
解决的办法:名字写错了,修改之后即可复制。
总结:通过本次实验,我学会了如何创建永久,临时,撤销表空间。把临时表空间加到一个组中,并设置为数据库的默认临时表空间;对永久表空间进行备份;创建数据库的表存储在表空间内;并了解其表空间的联机、脱机、只读、读/写操作对表的影响以及删除表空间的操作。