ORACLE 表空间

创建表空间(带参数):
CREATE Tablespace zfmi logging datafile 'D:oracleoradatazfmizfmi.dbf'
size 100m
autoextend on next 32m
maxsize 2048m extent
management local;

创建临时表空间(带参数):
CREATE Temporary tablespace zfmi_temp tempfile 'D:oracleoradatazfmizfmi_temp.dbf'
size 100m
autoextend on next 32m
maxsize 2048m extent
management local;

参数说明:
Size:指定表空间数据库文件的初始大小
Autoextend:表空间自动增长的大小
Maxsize:表空间最大的大小
UNIFORM SIZE:指定区尺寸, 默认为64k
Pctfree:用于控制数据块中空闲空间
Initrans:用于控制访问数据块的事务数量,也会影响数据块头部空间的使用情况
Maxtrans:用于决定数据块的事务总数
Management local:默认的管理方式

使表空间脱机:
ALTER TABLESPACE table_space name OFFLINE;
使表空间联机
ALTER TABLESPACE table_space name ONLINE;
使数据文件脱机
ALTER DATABASE datafile name OFFLINE;
使数据文件联机
ALTER DATABASE datafile name ONLINE;
使表空间只读
ALTER TABLESPACE table_space name READ ONLY;
使表空间可读写
ALTER TABLESPACE table_space name READ WRITE;

删除表空间:
DROP TABLESPACE table_space name INCLUDING CONTENTS AND DATAFILES;

创建用户
CREATE USER user
IDENTIFIED BY password;


修改表空间的两种方法:

方法1:修改数据文件的扩展性

1
alter database datafile '文件路径' autoextend on next 100m maxsize 4000M;

方法2:给表空间增加新的数据文件

1
alter tablespace 表空间名 add datafile '数据文件路径' size 1000m autoextend on next 100m maxsize 4000M;

1、查看表空间的名称及大小 
SELECT t.tablespace_name, round(SUM(bytes / (1024 * 1024)), 0) ts_size 
FROM dba_tablespaces t, dba_data_files d 
WHERE t.tablespace_name = d.tablespace_name 
GROUP BY t.tablespace_name; 
--2、查看表空间物理文件的名称及大小 
SELECT tablespace_name, 
file_id, 
file_name, 
round(bytes / (1024 * 1024), 0) total_space 
FROM dba_data_files 
ORDER BY tablespace_name; 
--3、查看回滚段名称及大小 
SELECT segment_name, 
tablespace_name, 
r.status, 
(initial_extent / 1024) initialextent, 
(next_extent / 1024) nextextent, 
max_extents, 
v.curext curextent 
FROM dba_rollback_segs r, v$rollstat v 
WHERE r.segment_id = v.usn(+) 
ORDER BY segment_name; 
--4、查看控制文件 
SELECT NAME FROM v$controlfile; 
--5、查看日志文件 
SELECT MEMBER FROM v$logfile; 
--6、查看表空间的使用情况 
SELECT SUM(bytes) / (1024 * 1024) AS free_space, tablespace_name 
FROM dba_free_space 
GROUP BY tablespace_name; 
SELECT a.tablespace_name, 
a.bytes total, 
b.bytes used, 
c.bytes free, 
(b.bytes * 100) / a.bytes "% USED ", 
(c.bytes * 100) / a.bytes "% FREE " 
FROM sys.sm$ts_avail a, sys.sm$ts_used b, sys.sm$ts_free c 
WHERE a.tablespace_name = b.tablespace_name 
AND a.tablespace_name = c.tablespace_name; 
--7、查看数据库库对象 
SELECT owner, object_type, status, COUNT(*) count# 
FROM all_objects 
GROUP BY owner, object_type, status; 
--8、查看数据库的版本  
SELECT version 
FROM product_component_version 
WHERE substr(product, 1, 6) = 'Oracle'; 
--9、查看数据库的创建日期和归档方式 
SELECT created, log_mode, log_mode FROM v$database; 

 

 

可以通过alter方法,将一个表移动到另外一个表空间中:
sql: alter table spaceOne.tablename move tablespace spaceTwo;
解释:以上语句就是把tablename表从spaceOne移动到spaceTwo中。
备注一:
当前的用户必须对spaceTwo、spaceOne都有操作权限才可以。
备注二:
其实如果对两个表空间都有权限的话,可以通过
create spaceTwo.tablename as select * from spaceOne.tablename;
之后再删除spaceOne中tablename表的间接方式也能实现。

 

posted @ 2016-10-10 16:16  啊朋  阅读(236)  评论(0)    收藏  举报