管理员给用户增加不限制表空间权限
grant unlimited tablespace to 用户;
查看表空间使用情况
SELECT a.tablespace_name "表空间名",
total "表空间大小",
free "表空间剩余大小",
(total - free) "表空间使用大小",
total / (1024 * 1024 * 1024) "表空间大小(G)",
free / (1024 * 1024 * 1024) "表空间剩余大小(G)",
(total - free) / (1024 * 1024 * 1024) "表空间使用大小(G)",
round((total - free) / total, 4) * 100 "使用率 %"
FROM (SELECT tablespace_name, SUM(bytes) free
FROM dba_free_space
GROUP BY tablespace_name) a,
(SELECT tablespace_name, SUM(bytes) total
FROM dba_data_files
GROUP BY tablespace_name) b
WHERE a.tablespace_name = b.tablespace_name;
select username,default_tablespace from user_users;
查看该用户下所有的表:
select * from user_tables;
查看所有表 名称、路径、是否自动增长:
select tablespace_name,file_name,autoextensible from dba_data_files;
修改表空间自动增长属性:
alter database datafile '表空间路径' autoextend on;
可以再次执行前一个查询,是否成功;表空间自增长的优劣,各位自查。
修改大小:
Alter database datafile ‘表空间路径’resize 2000m;
查看当前的连接数:
SQL> select count(*) from v$session;
查看最大的进程数:
SQL> show parameter processes;
查看最大连接数:
SQL> show parameter sessions;
--删除空的表空间,但是不包含物理文件
drop tablespace tablespace_name;
--删除非空表空间,但是不包含物理文件
drop tablespace tablespace_name including contents;
--删除空表空间,包含物理文件
drop tablespace tablespace_name including datafiles;
--删除非空表空间,包含物理文件
drop tablespace tablespace_name including contents and datafiles;
--如果其他表空间中的表有外键等约束关联到了本表空间中的表的字段,就要加上CASCADE CONSTRAINTS
drop tablespace tablespace_name including contents and datafiles CASCADE CONSTRAINTS;
----------------如果表空间不足的解决方法--------
【解决办法-原因一】
只要将表空间设置为足够大,并设置为自增长即可。
1、扩展表空间
alter database datafile 'D:\ORACLE\PRODUCT\ORADATA\TEST\USERS01.DBF' resize 50m;
注:50m,是表空间大小,可以根据实际需要加大,但最大不得超过32G
2、自动增长
alter database datafile 'D:\ORACLE\PRODUCT\ORADATA\TEST\USERS01.DBF' autoextend on next 50m maxsize 500m
maxsize 是每次增加最大500m的数据块
【解决办法-原因二】2016-03-24用这个方法解决的
因为表空间中的数据文件已经足够大(达到32G),所以,这时仅仅增加表空间大小是不行的。
这个时候,我们可以增加该表空间的数据文件,这样表空间的大小即变为64G了。
ALTER TABLESPACE aaaADD DATAFILE 'E:\APP\ORACLE11GR2\ORADATA\ORCL\aaa_DATA02.DBF'SIZE 32767M;