Oracle-创建表空间与用户
一、查看表空间及datafile文件名
SELECT tablespace_name, file_id, file_name, round(bytes / (1024 * 1024), 0) total_space
FROM dba_data_files
ORDER BY tablespace_name;
二、创建表空间
create tablespace CDR --空间名
datafile 'D:\APPHIS\ADMINISTRATOR\ORADATA\ORCL\CDR.DBF' --路径
size 20m --初始大小
autoextend on; --表空间每次增长大小
三、创建用户
create user CDR identified by XXX
default tablespace CDR
temporary tablespace TEMP;
四、授权
grant create session,connect,resource,dba to CDR;
到此为止,表空间和用户就已经创建好了,就可以连接使用了,下面是一些常用的一些命令。
五、常用语句
5.1、修改表空间的语句 解决表空间不足问题
ALTER TABLESPACE CDR --空间名
ADD DATAFILE 'E:\APP\ADMINISTRATOR\ORADATA\JCPT\CDR10.DBF' --路径
SIZE 10M --大小
AUTOEXTEND ON --表空间每次增长大小
NEXT 50M
MAXSIZE UNLIMITED; --最大限制
5.2、查看表空间下的表
select OWNER,TABLE_NAME,TABLESPACE_NAME
from dba_tables
where TABLESPACE_NAME='CDR';
5.3、查看各个用户下分配的表空间/物理文件占用情况(常用)
select b.file_name 物理文件名,
b.tablespace_name 表空间,
b.bytes / 1024 / 1024 大小M,
(b.bytes - sum(nvl(a.bytes, 0))) / 1024 / 1024 已使用M,
substr((b.bytes - sum(nvl(a.bytes, 0))) / (b.bytes) * 100, 1, 5) 利用率
from dba_free_space a,dba_data_files b
where a.file_id = b.file_id
group by b.tablespace_name,b.file_name,b.bytes
order by b.tablespace_name;
5.4、查询表空间分配情况
SELECT T.TABLESPACE_NAME,
D.FILE_NAME,
D.AUTOEXTENSIBLE,
D.BYTES,
D.MAXBYTES,
D.STATUS
FROM DBA_TABLESPACES T, DBA_DATA_FILES D
WHERE T.TABLESPACE_NAME = D.TABLESPACE_NAME
ORDER BY TABLESPACE_NAME, FILE_NAME;
5.5、变更索引对应的表空间
alter index PK_CDR_OIS_PRESCRIPTION rebuild tablespace CDR;
5.6、查询用户所使用的临时表空间
select username,default_tablespace,temporary_tablespace from dba_users
5.7、查询临时表空间大小以及使用率
select tablespace_name, bytes, user_bytes,
user_bytes/bytes,file_name from dba_temp_files;
5.8、添加文件
ALTER TABLESPACE TEMP
ADD tempfile '+DATA/jcpt/tempfile/temp02.dbf'
size 1024m
AUTOEXTEND ON