Oracle对表空间操作的sql
2016-03-24 16:35
459 查看
管理员给用户增加不限制表空间权限
grant unlimited tablespace to 用户;
查看表空间使用情况
登入某个用户,查看某个用户在哪个表空间下:
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、扩展表空间
注:50m,是表空间大小,可以根据实际需要加大,但最大不得超过32G
2、自动增长
【解决办法-原因二】2016-03-24用这个方法解决的
因为表空间中的数据文件已经足够大(达到32G),所以,这时仅仅增加表空间大小是不行的。
这个时候,我们可以增加该表空间的数据文件,这样表空间的大小即变为64G了。
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 500mmaxsize 是每次增加最大500m的数据块
【解决办法-原因二】2016-03-24用这个方法解决的
因为表空间中的数据文件已经足够大(达到32G),所以,这时仅仅增加表空间大小是不行的。
这个时候,我们可以增加该表空间的数据文件,这样表空间的大小即变为64G了。
ALTER TABLESPACE aaa ADD DATAFILE 'E:\APP\ORACLE11GR2\ORADATA\ORCL\aaa_DATA02.DBF' SIZE 32767M;
相关文章推荐
- Oracle-01-学习内容&安装遇到的问题记录
- Oracle varchar转clob
- Oracle一些基本系统表解释
- oracle 12c code based access control
- Java 和Oracle的数据类型
- Oracle附加数据库
- oracle sql 优化大全
- Oracle SQL性能优化
- 查看Oracle性能差的SQL
- oracle函数自己总结
- Oracle查看允许的最大连接数和当前连接数
- 在Ubuntu上安装Oracle Java 8, Java 7或者Java 6
- Oracle学习笔记(2)
- 零基础准备ocp第一天
- oracle性能优化(一)
- 关于win10X64 连接oracle
- oracle ceil和floor函数
- php 连接oracle
- [转] Oracle数据库备份与恢复 - 增量备份
- Oracle删除用户及表空间