**实验目的:**理解Oracle表空间的作用,掌握Oracle数据库永久、临时和还原表空间,以及数据文件的管理方法。
实验要求:
- 查询Oracle数据库内现有表空间信息,以及各个表空间使用的数据文件信息。
查询数据库各个表空间及其相应的ID:
select ts#,name from v$tablespace;
查看数据库内各个表空间及其类型,以及它们区的管理方式、分配类型和段空间管理方法:
select tablespace_name,contents,extent_management,allocation_type,segment_space_management from dba_tablespaces;
查询各个表空间的状态:
select tablespace_name,status from dba_tablespaces;
查询数据库永久表空间和还原表空间所包含的数据文件:
select tablespace_name,file_name from dba_data_files;
- 创建一个非标准数据块永久表空间,它由两个数据文件组成,数据文件可自动扩展,区采用本地管理方式,该表空间的其它属性自定。
默认情况下创建的表空间使用的数据块大小是8K,数据库默认的数据块大小由db_block_size参数决定。
如果我们想要创建的表空间超过8K,首先需要调整数据库的参数db_nk_cache_size。
alter system set db_16k_cache_size=40M;
创建表空间
create tablespace ts1
datafile 'D:\oracle\oradata\users01.dbf' size 5M reuse autoextend on next 1280K maxsize unlimited,'D:\oracle\oradata\users02.dbf' size 5M reuse autoextend on next 1280K maxsize unlimited
blocksize 16k
extent management local autoallocate;
- 创建一个临时表空间,并把它指定为scott用户的默认临时表空间。
创建临时表(创建前请确认是否有该路径)
create temporary tablespace usrtemp
tempfile 'D:\oracle\oradata\orcl\usrtemp01.dbf' size 10M;
把它指定为scott用户的默认临时表空间
alter user scott temporary tablespace usrtemp;
查询检验
select username,temporary_tablespace from dba_users where username='SCOTT';
- 创建一个还原表空间,并把它指定为数据库的当前还原表空间。
创建还原表
create undo tablespace undotbs2 datafile 'D:\oracle\oradata\orcl\undotbs02.dbf' size 100M;
把它指定为数据库的当前还原表空间
alter system set undo_tablespace = undotbs2;
查看当前还原表空间
show parameter undo_tablespace
- 再次查询数据库内的各个表空间及其对应的数据文件信息。
select ts#,name from v$tablespace;
select tablespace_name,contents,extent_management,allocation_type,segment_space_management from dba_tablespaces;
select tablespace_name,status from dba_tablespaces;
select tablespace_name,file_name from dba_data_files;