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表的间接方式也能实现。

浙公网安备 33010602011771号