Oracle 11g学习笔记(二)

创建表空间的语法如下:

CREATE [SMALLFILE/BIGFILE] TABLESPACE tablespace_name
DATAFILE '/path/filename' SIZE integer [k/m] REUSE
    [,'/path/filename' SIZE integer [k/m] REUSE]
[AUTOEXTEND [OFF/ON] NEXT integer [k/m]]
[MAXSIZE [UNLIMTED /integer [k/m]]]
[MINIMUN EXTENT integer[k/m]]
[default storage storage]
[logging /nologging]
[permanent/temporary]
[extent management
[DICTIONARY/LOCAL [AUTOALLOCATE|UNFORM SIZE integer[k/m]]]]

其中:
tablespace-name:要创建的表空间名字;
SMALLFILE/BIGFILE:表示创建的是小文件表空间还是大文件表空间;
‘/path/filename’:数据文件路径与名字;REUSE表示若该文件存在,则清除该文件再重新建立该文件,若该文件不存在,则建立该文件;
AUTOEXTEND OFF/ON:表示数据文件为自动扩展或者非自动扩展,如果是自动扩展,则要设置NEXT的值;
MAXSIZE;表示当数据文件自动扩展时,允许数据文件扩展的最大长度字节数;
MINMUN EXTENT:指定最小的长度,默认由操作系统和数据库决定;
DEFAULT STOREAGE storage:指定以后要创建的表、索引及簇的存储参数值,这些参数将影响以后表等的存储参数值;
ONLINE/OFFLINE:创建表空间时可以指定为在线或者离线;
[PERMANENT|TEMPORARY]:创建的表空间为永久或临时表空间,默认为永久表空间;
LOGGING/NOLOGGING:该表空间内的表在数据加载操作时是否产生日志,默认为产生日志(LOGGING);
DICTIONARY/LOCAL:数据字典管理表空间还是本地化管理表空间,默认为本地化管理表空间。Oracle不推荐使用字典管理的表空间。
如果采用本地化管理表空间,则会有以下两个选项
AUTOALLOCATE:指表空间扩展时,每次扩展时盘区的大小的系统自动指定。
UNIFORM SIZE:指定表空间扩展时,盘区按照等同大小进行,默认为1MB。
只有对于数据加载和部分DDL语句,Oracle的NOLOGGING选项才起作用,即:
SQL*LOAD的直接数据加载。
对于CREATE TABLE...AS SELECT, CREATE INDEX, ALTER INDEX...REBUILD,ALTER INDEX...REBULD PARTITION... ALTER INDEX...等,普通的DML依然会产生日志,即虽然被设置为NOLOGGING,但在进行一般的INSERT,UPDATE和DELETE操作是仍要将操作系统信息记录到Redo Log Buffer中。

设置表空间为只读,需要满足下列条件

  • 该表空间必须为ONLINE;
    该表空间不能包含任何回滚段;
    在归档模式或数据发行中,不能设置表空间为只读。
    示例:将FLIGHT表空间设置为只读

alter tablespace flights read only

示例:将SALE表空间设置为可读写方式,斌查询表空间状态

alter tablespace sale read write

DBA只能对一般的表空间更名,不能对SYSTEM和SYSAUX表空间进行更名,也不能对已经处于OFFLINE状态的表空间进行更名。
对一般表空间更名的详细过程
(1)查询表空间和对应的数据文件。

clo tablespace_name for a16
col file_name for a60
select tablespace_name, file_name from dba_data_files

(2)查询TAB1表空间下对存放的对象,对TAB1表空间进行更名。

alter talespace old_name rename to new_name

(3)查询表空间TAB1中的对象是否存在。
(4)存放在旧表空间TAB2中的对象也自动更名为新的表空间中。
设置默认临时表空间

alter database default temprory tablespace TEMP2

设置默认表空间

alter database default tablespace users;
select property_value from database_properties where property_name='DEFAULT_PERMANENT_TABLESPACE'

DROP TABLESPACE命令语法:

DROP TABLESPACE tablespace_name [INCLUDING CONTENTS] [CASCADE CONSTRAINTS]

  • 其中:
    tablespace_name:表示要删除的表空间的名字;
    INCLUDING CONTENTS:表示在删除表空间的同时删除表空间中的数据。如果不指定INCLUDING CONTENTS参数,而该表空间又是非空时,则提示错误;
    CASCADE CONSTRAINTS:表示当前删除表空间是也删除相关的完整性限制。完整性限制包括主键及唯一索引等。如果完整性存在,而没有CASCADE CONSTRAINTS参数。则Oracle会返回一个错误,并且不会删除表空间。

你可能感兴趣的:(Oracle 11g学习笔记(二))