管理表空间和数据文件

来源:互联网 发布:淘宝开店年龄有限制吗 编辑:程序博客网 时间:2024/05/31 04:03
1.创建表空间
CREATE SMALLFILE/BIGFILE TABLESPACE TABLESPACE_NAME
DATAFILE 'PATH/FILENAME'
SIZE 500M
AUTOEXTEND ON/OFF
NEXT 100M
DEFAULT STORAGE XX
ONLINE/OFFLINE
LOGGING/NOLOGGING
PERMANENT/TEMPORARY
EXTENT MANAGEMENT DICTIONARY |LOCAL 指定使用本地管理还是数据字典管理,默认本地
AUTOALLOCATE/UNIFORM SIZE 指定使用本地管理时,表空间在扩展时是自动还是按照同等大小指定
通过本地化管理创建一个大小10M,扩展大小为256KB的表空间
CREATE TABLESPACE TB_TEST
DATAFILE 'E:\TABLESPACE\TB_TEST.DBF'
SIZE 10M
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K
扩展大小为自动管理的表空间
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
2.通过段空间管理方式创建表空间
段空间管理基于本地化管理,只有采用本地化管理才可使用段空间管理
SEGMENT SPACE MANAGEMENT MANUAL 手动管理、
SEGMENT SPACE MANAGEMENT AUTO 自动管理
CREATE TABLESPACE TB_TEST
DATAFILE 'E:\TABLESPACE\TB_TEST.DBF'
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
SEGMENT SPACE MANAGEMENT AUTO

3.修改表空间大小
ALTER TABLESPACE TB_TEST RESIZE 1G;
修改数据文件大小
ALTER DATABASE DATAFILE ' 'E:\TABLESPACE\TB_TEST.DBF''
RESIZE 100M
4.设置默认表空间
ALTER DATABASE DEFAULT TABLESPACE TB_TEST;
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TE_TEMP;

5.修改表空间状态
ALTER TABLESPACE TB_TEST READ ONLY;
ALTER TABLESPACE TB_TEST READ WRITE

6.重命名表空间
ALTER TABLESPACE TB_TEST RENAME TO TB_TEST_NEW

7.删除表空间
DROP TABLESAPCE TB_TEST
INCLUDING CONTENTS(删除表空间数据)
CASCADE CONSTRAINTS;(删除完整性约束)

8.向表空间添加删除数据文件
ALTER TABLESPACE USERS ADD DATAFILE ' 'E:\TABLESPACE\TB_TEST.DBF''
SIZE 100M AUTOEXTEND ON NEXT 5M
MAXSIZE UNLIMITED

ALTER TABLESPACE USERS DROP DATAFILE 'E:\TABLESPACE\TB_TEST.DBF'

9.UNDO表空间基本操作
CREATE UNDO TABLESPACE UNDO_TB
DATAFILE 'E:\TABLESPACE\UNDO_TB.DBF'
SIZE 100M
设置默认UNDO表空间
ALTER SYSTEM SET UNDO_TABLESPACE=UNDO_TB
DROP TABLESPACE UNDO_TB;

10.临时表空间
CREATE TEMPORARY TABLESPACE TEMP_TB TEMPFILE
'E:\TABLESPACE\TEMP_TB.TPF'
SIZE 100M

SELECT * FROM DBA_TEMP_FILES;

11.将表从一个表空间移动到另一个表空间
ALTER TABLE TAB_NAME MOVE TABLESPACE TB_TEST;

12.删除大表的列
先将列标记为不可用
alter table tab_name set unused column col_name cascade constraints
空闲后删除列
alter table tab_name drop usused columns checkpoint 1000
SELECT * FROM dba_unused_col_tabs;

如何查看各个表空间占用磁盘情况?
SQL> col tablespace format a20
SQL> select b.file_id 文件号, b.tablespace_name 表空间名, b.bytes 字节数, (b.bytes-sum(nvl(a.bytes,0))) 已使用, sum(nvl(a.bytes,0)) 剩余空间, sum(nvl(a.bytes,0))/(b.bytes)*100 剩余百分比 from dba_free_space a,dba_data_files b where a.file_id=b.file_id group by b.tablespace_name,b.file_id,b.bytes order by b.file_id


启用约束
DISABLE NOVALIDATE
DISABLE VALIDATE
ENABLE NOVALIDATE
ENABLE VALIDATE
可以采用下列两种方法之一来启用当前禁用的约束: ENABLE NOVALIDATE 或
ENABLE VALIDATE
ALTER TABLE [ schema. ] table
ENABLE NOVALIDATE {CONSTRAINT constraint
| PRIMARY KEY
| UNIQUE ( column [, column ] ... ) }
[ USING INDEX index_clause ]



原创粉丝点击