表空间与数据文件的关系
1-创建表空间需要创建数据文件么?为什么?
必须要创建数据文件。Oracle磁盘空间管理中的最高逻辑层是表空间(TABLESPACE),它的下一层是段(SEGMENT) ,并且一个段只能驻留在一个表空间内。段的下一层就是盘区,一个或多个盘区(EXTENT) 可以组成一个段,并且每个盘区只能驻留在一个数据文件中。也就是一个表空间包含一个或多个数据文件。
2- dba_data_files 代码编写并每行加注释
--对列进行格式化,设置列宽
SQL> col tablespace_name for a10
SQL> col file_name for a50
--对bytes字节格式化,表空间占据的磁盘空间大小
SQL> col bytes for 999,999,999
--查询dba_data_files表空间和包含的数据文件内容以及占的大小
SQL> select tablespace_name,file_name,bytes from dba_data_files order by tablespace_name;
TABLESPACE FILE_NAME BYTES
---------- -------------------------------------------------- ------------
EXAMPLE D:\APP\LENOVO\ORADATA\JQWLDB\EXAMPLE01.DBF 104,857,600
SYSAUX D:\APP\LENOVO\ORADATA\JQWLDB\SYSAUX01.DBF 587,202,560
SYSTEM D:\APP\LENOVO\ORADATA\JQWLDB\SYSTEM01.DBF 723,517,440
UNDOTBS1 D:\APP\LENOVO\ORADATA\JQWLDB\UNDOTBS01.DBF 104,857,600
USERS D:\APP\LENOVO\ORADATA\JQWLDB\USERS01.DBF 5,242,880
创建表空间
3
(1)local1 代码编写并每行加注释
--创建表空间,新建的数据文件地址、表空间的大小
SQL> create tablespace tbs_test_1 datafile 'D:\app\Lenovo\oradata\JQWLDB\datafile1.dbf'
2 size 10m
--本地化自动扩展管理模式
3 extent management local uniform size 256k;
表空间已创建。
(2)local2 代码编写并每行加注释
--创建表空间,新建的数据文件地址。
SQL> create tablespace tbs_test_2 datafile 'D:\app\Lenovo\oradata\JQWLDB\datafile2.dbf'
2 size 10m --表空间的大小
3 extent management local autoallocate; --本地扩展大小,256k
表空间已创建。
管理撤销表空间
4-show parameter undo_tablespce;代码是什么意思?
undo_tablespce该初始化参数用于指定例程所要使用的UNDO表空间,使用自动UNDO管理模式时,通过配置该参数可以指定例程所要使用的UNDO表空间显示。
显示当前实例设置的undo表空间参数undo_tablespce
SQL> show parameter undo_tablespace;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_tablespace string UNDOTBS1
5-[管理撤销表空间] create_undo_tbs 代码编写并每行加注释
--创建表空间,新建数据文件的位置、大小
SQL> create undo tablespace undo_tbs_1
2 datafile 'D:\app\Lenovo\oradata\undotbs1.dbf'
3 size 3g;
表空间已创建。
6-[管理撤销表空间] Amend_tbs 代码编写并每行加注释
--通过添加数据文件修改表空间
SQL> alter tablespace undo_tbs_1
2 add datafile 'D:\app\Lenovo\oradata\undotbs_add.dbf'
3 size 1g;
表空间已更改。
7-写出删除表空间的SQL语句,是物理删除还是文件磁盘删除?
SQL> drop tablespace undo_tbs_1;
表空间已删除。
是逻辑上的删除,undo表空间实际上还存在于磁盘上
8-dba_tablespaces 存放的是什么信息?有哪些字段?每个字段类型是什么?
存放的信息是数据库表空间信息,字段有name,type,value
SQL> show parameter undo_tablespace;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_tablespace string UNDOTBS1
管理临时表空间
9-列举几个会用到临时表空间的操作SQL。
临时表空间主要用于临时段,而临时段是由数据库根据需要创建、管理和删除的,这些临时段的生成通常与排序之类的操作有关,下面的几种操作经常会用到临时表空间。
(1) SELECT DISTINCT不重复检索
(2) UNION联合查询
(3) MINUS计算
(4) ANALYZE分析
(5)连接两个没有索引的表
10- create temptbs 代码编写并每行加注释
--创建临时表空间,大小300m
SQL> create temporary tablespace tem_01 tempfile 'D:\app\Lenovo\oradata\temp_01.tpf'
2 size 300m;
表空间已创建。
11-dba_temp_files 存放的是什么信息?有哪些字段?每个字段类型是什么?
存放的是临时表空间
SQL> select file_name,bytes,tablespace_name from dba_temp_files;
FILE_NAME BYTES TABLESPACE
-------------------------------------------------- ------------ ----------
D:\APP\LENOVO\ORADATA\TEMP_01.TPF 314,572,800 TEM_01
12-临时表空间文件名是以什么后缀结尾的?
temp_01.tpf是一个临时表空间文件,后缀是.tpf
13-撤销表空间的作用是什么?
(1)使读写一致
在不同的进程或用户模式下检索数据时,Oracle只能给用户提供被提交的数据,这样可以确保数据的一致性。
(2)可以回退事务
当执行修改(UPDATE)数据操作时,旧的数据(即UNDO数据)被存放到UNDO段,而新的数据则被存放到数据段中。
(3)事务恢复
事务恢复是例程恢复的一部分,它是由Oracle服务器自动完成的,如果在数据库运行过程中出现例程失败(如断电、内存故障等),那么当重启Oracle 服务器时,后台进程SMON会自动执行例程恢复。
(4)闪回操作
Oracle 11g新增了强大的闪回功能,其中,很多闪回技术都是基于UNDO段实现的,比如,闪回表,闪回事务查询,闪回版本查询等。
维护表空间与数据文件
14-insert、update、delete 是DDL操作还是DML操作?
insert、update、delete是DML操作
15-写出更改表空间读写状态SQL
SQL> alter tablespace tbs_test_2 read only;
表空间已更改。
SQL> alter tablespace tbs_test_2 read write;
表空间已更改。
16-写出表空间重命名SQL
SQL> alter tablespace tbs_test_2 rename to tbs_test_3;
表空间已更改。
17- 向已有数据文件的表空间增加数据文件 add_datafile 代码编写并每行加注释
--向指定路径添加表空间,10M大小,每5M自扩展,最大不限
SQL> alter tablespace tbs_test_3 add datafile 'D:\app\Lenovo\oradata\users02.dbf'
2 size 10m autoextend on next 5m maxsize unlimited;
表空间已更改。
18-表空间可以跨磁盘是什么意思?
在C盘创建的表空间里的数据文件可以存在D盘下里
19-如何设置表空间数据文件为自动库扩展?写出SQL,且说明为什么要这么设置?
Oracle数据库的数据文件可以设置成具有自动扩展的功能,当数据文件剩余的自由空间不足时,它会按照设定的扩展量自动扩展到指定的值。这样可以避免由话剩余表空间不足而导致数据对象需求空间扩展失败的现象。
SQL> alter tablespace tbs_test_3 add datafile 'D:\app\Lenovo\oradata\users02.dbf'
2 size 10m autoextend on next 5m maxsize unlimited;
到92数据库查看临时表空间大小以及文件所在位置.
到92数据库查看系统表空间大小以及数据文件所在位置