目录
实验目的
- 掌握Ocacle数据库表空间的管理。
- 数据库表空间不同状态时对数据操作的影响
实验设备及器材
1.仪器设备:PC机;
2.环境:操作系统,Oracle。
实验内容
- 管理表空间;
- 观察表空间的状态。
实验要求
- 管理Ocacle数据库表空间;
- 观察数据库表空间的各种不同状态。
实验过程
1.为orcl数据库创建一个名orcl的永久性表空间,区采用自动扩展方式,段采用自动管理方式。
SQL>CREATE TABLESPACE ORCL DATAFILE 'C:\oracle\product\10.2.0\oradata\orcl\orcl.DBF' SIZE 50M;
2.为ORCL数据库创建一个名为BOOKTBS2的永久性表空间,区采用定制分配,每次分配大小为1MB,段采用手动管理方式。
SQL>CREATE TABLESPACE BOOKTBS2 DATAFILE 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\BOOKTBS2.DBF' SIZE 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M SEGMENT SPACE MANAGEMENT MANUAL;
3.为ORCL数据库创建一个临时表空间TEMP02。
SQL>CREATE TEMPORARY TABLESPACE TEMP02 TEMPFILE 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TEMP02.DBF' SIZE 20M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 16M;
4. 将ORCL数据库临时表空间TEMP和TEMP02都放入临时表空间组TEMPGROUP中。
SQL>ALTER TABLESPACE TEMP TABLESPACE GROUP TEMPGROUP;
SQL>ALTER TABLESPACE TEMP02 TABLESPACE GROUP TEMPGROUP;
5.为ORCL数据库创建一个名为UNDO02的撤销表空间,并设置为当前数据库的在线撤销表空间。
SQL>CREATE UNDO TABLESPACE UNDO02 DATAFILE 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDO02.DBF' SIZE 20M;
SQL>ALTER TABLESPACE UNDO02 ONLINE;
6.为ORCL数据库的表空间ORCL添加一个大小为50MB的数据文件,以改变该表空间的大小。
SQL>ALTER TABLESPACE ORCL ADD DATAFILE 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ORCL13.DBF' SIZE 50M;
7.将ORCL数据库的表空间BOOKTBS2的数据文件修改为可以自动拓展,每次拓展5MB,最大容量为100MB。
SQL>ALTER DATABASE DATAFILE 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\BOOKTBS2.DBF' AUTOEXTEND ON NEXT 5M MAXSIZE 100M;
8.创建一个名为test的表,存储于ORCL表空间中,向表中插入一条记录。
SQL>CREATE TABLE test(
id number(2) primary key,
name varchar(10) not NULL
);
//创建
ALTER TABLE test move TABLESPACE ORCL;//把表转移到ORCL表空间
insert into test values(13,'科尔'); //插入一条记录
9.将ORCL数据库的ORCL表空间设置为脱机状态,测试该表空间是否可以使用。
SQL>ALTER TABLESPACE ORCL OFFLINE; //设置ORCL为脱机状态
SELECT * FROM test; //测试读,结果失败
insert into test values(25,'穆勒'); //测试写,结果失败
结论:当表空间要进行备份,重命名,移植的时候可以把表空间脱机限制用户操作,此时表空间所有数据文件也是在脱机状态,被限制了,不可以正常使用。
10.将orcl数据库的orcl表空间设置为联机状态,测试该表空间是否可以使用。
SQL>ALTER TABLESPACE ORCL ONLINE; //设置ORCL为联机状态
insert into test values(25,'穆勒'); //测试写,结果成功
SELECT * FROM test; //测试读,结果成功
结论:联机状态的时候可以正常操作使用
11. 将ORCL数据库的orcl表空间设置为只读状态,测试该表空间是否可以进行数据写入操作。
SQL>ALTER TABLESPACE orcl READ ONLY; //修改为只读状态
insert into test values(10,'mes'); //尝试写入数据
//插入失败
12. 将orcl数据库的orcl表空间设置为读写状态,测试该表空间是否可以进行数据读写操作。
SQL>ALTER TABLESPACE orcl READ WRITE; //修改为读写状态
insert into test values(10,'mes');
select * from test; //尝试读写
//读写正常
13. 将orcl数据库的orcl设置为数据库默认表空间,将临时表空间tempgroup设置为数据库的默认临时表空间。
SQL>ALTER DATABASE DEFAULT TABLESPACE orcl;
SQL>ALTER DATABASE DEFAULT TEMPORARY TABLESPACE tempgroup;
14. 分别备份orcl数据库的users和orcl,booktbs3三个表空间。
SQL>ALTER TABLESPACE users BEGIN BACKUP;
复制orcl的数据文件到目标位置
SQL>ALTER TABLESPACE users END BACKUP;
SQL>ALTER TABLESPACE orcl BEGIN BACKUP;
复制orcl的数据文件到目标位置
SQL>ALTER TABLESPACE orcl END BACKUP;
SQL>ALTER TABLESPACE booktbs3 BEGIN BACKUP;
复制orcl的数据文件到目标位置
SQL>ALTER TABLESPACE booktbs3 END BACKUP;
15. 查询orcl数据库所有表空间及其状态信息。
SQL>SELECT TABLESPACE_NAME,EXTENT_MANAGEMENT,ALLOCATION_TYPE,CONTENTS FROM DBA_TABLESPACES;
16. 查询orcl数据库所有表空间及其数据文件信息。
SQL>SELECT FILE_NAME,BLOCKS,TABLESPACE_NAME FROM DBA_DATA_FILES;
17. 删除orcl数据库booktbs2表空间及其所有内容,同时删除操作系统上的数据文件。
SQL>DROP TABLESPACE booktbs2 INCLUDING CONTENTS AND DATAFILES;
实验小结
初步掌握了oracle数据库逻辑存储结构管理,熟悉了各种语句的操作。oracle比较复杂,中途有遇到问题,百度解决了。
比如:无法启动联机备份,未启用介质恢复。解决这个问题需要设置为归档模式:
connect sys/hope as sysdba
shutdown immediate
startup mount
alter database archivelog;
alter database noarchivelog;
alter database open;