一、表空间自动扩展的好处
1.数据文件自动扩展的好处
1)不会出现因为没有剩余空间可以利用到数据无法写入
2)尽量减少人为的维护
二、设置表空间自动扩展的方法
1、查看表空间情况
SQL>select tablespace_name,file_name,autoextensible from dba_data_files where tablespace_name = '表空间名称';
2、修改表空间数据文件,使其达到表空间自动扩展
SQL>alter database datafile '/u01/app/oracle/oradata/orcl/user01.dbf' autoextend on;
3、对修改结果进行验证
SQL>select tablespace_name,file_name,autoextensible from dba_data_files where tablespace_name = '表空间名称';
三、语法总结
开启自动扩展功能语法:
alter database datafile '对应的数据文件路径信息' autoextend on;
关闭自动扩展功能语法:
alter database datafile '对应的数据文件路径信息' autoextend off;
四、创建临时表空间
create temporary tablespace ***_temp tempfile '***/TEMPFILE/***_temp.dbf' size 1024m autoextend on next 500m maxsize unlimited extent management local;
五、创建表空间
create tablespace ***_tablespace logging datafile '***/DATAFILE/***_tablespace.dbf' size 30720m autoextend on next 500m maxsize unlimited extent management local;
六、创建用户及
create user ****** identified by ***** default tablespace ***_tablespace temporary tablespace ***_temp;
七、授权
grant connect,resource,dba to *****;
--数据文件位置
select file_name FROM dba_data_files
--数据文件位置2
select * from v$datafile
--查看控制文件
select * from v$controlfile
--查看归档日志文件
select * from v$archived_log
--查看闪回文件位置
select * from v$flashback_database_logfile
--临时表空间
select name from v$tempfile;
--查看分区和段空间管理方式
select tablespace_name, segment_space_management from dba_tablespaces;
--查询用户
select username,t.CREATED from all_users t order by t.CREATED desc;
-- 查询表空间是否设置了自增
SELECT FILE_NAME,TABLESPACE_NAME,AUTOEXTENSIBLE FROM dba_data_files where TABLESPACE_NAME='KPIDBS';
--查询表空间
SELECT TABLESPACE_NAME "表空间",
To_char(Round(BYTES / 1024, 2), '99990.00') || '' "实有",
--To_char(Round(FREE / 1024, 2), '99990.00') || 'G' "现有",
To_char(Round((BYTES - FREE) / 1024, 2), '99990.00') || 'G' "使用",
To_char(Round(10000 * USED / BYTES) / 100, '99990.00') || '%' "比例"
FROM (SELECT A.TABLESPACE_NAME TABLESPACE_NAME,
Floor(A.BYTES / (1024 * 1024)) BYTES,
Floor(B.FREE / (1024 * 1024)) FREE,
Floor((A.BYTES - B.FREE) / (1024 * 1024)) USED
FROM (SELECT TABLESPACE_NAME TABLESPACE_NAME, Sum(BYTES) BYTES
FROM DBA_DATA_FILES
GROUP BY TABLESPACE_NAME) A,
(SELECT TABLESPACE_NAME TABLESPACE_NAME, Sum(BYTES) FREE
FROM DBA_FREE_SPACE
GROUP BY TABLESPACE_NAME) B
WHERE A.TABLESPACE_NAME = B.TABLESPACE_NAME)
WHERE TABLESPACE_NAME ='xxxx' --这一句用于指定表空间名称
ORDER BY Floor(10000 * USED / BYTES) DESC;