admin 管理员组

文章数量: 887021

PLSQL

查看表空间信息--查看表空间信息SELECT TABLESPACE_NAME,STATUS,CONTENTS,LOGGINGFROM DBA_TABLESPACES;--查看数据文件信息SELECT TABLESPACE_NAME,'PERMANENT' TABLESPACE_KIND,FILE_NAME,STATUS,AUTOEXTENSIBLE,BYTES/1024/1024 CURR_BYTES_M,ONLINE_STATUSFROM DBA_DATA_FILES --永久表空间(含撤销表空间)UNION ALLSELECT TABLESPACE_NAME,'TEMPORARY' TABLESPACE_KIND,FILE_NAME,STATUS,AUTOEXTENSIBLE,BYTES/1024/1024 CURR_BYTES_M,'ONLINE' ONLINE_STATUSFROM DBA_TEMP_FILES; --临时表空间查看用户默认表空间信息SELECT USERNAME 用户名,DEFAULT_TABLESPACE 默认表空间,TEMPORARY_TABLESPACE 默认临时表空间FROM DBA_USERS;创建表空间
CREATE TABLESPACE tbs_name --指定新表空间的名字
DATAFILE '/path/filename' SIZE num[K/M] --映射的数据文件路径及初始大小
[AUTOEXTEND [ON|OFF] NEXT num[K/M] MAXSIZE num[K/M]] --是否自动扩展及自动扩展时每次扩展的大小和最大值
[ONLINE|OFFLINE] --表空间在线或离线
[LOGGING|NOLOGGING]; --该空间下对象加载时是否记录日志修改表空间增加数据文件--非自动扩展ALTER TABLESPACE tbs_name ADD DATAFILE '/path/filename' SIZE 10M AUTOEXTEND OFF ;--自动扩展ALTER TABLESPACE tbs_name ADD DATAFILE '/path/filename' SIZE 10M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED;修改数据文件扩展和缩小ALTER DATABASE DATAFILE '/path/filename' RESIZE num[K/M];修改自动扩展属性ALTER DATABASE DATAFILE '/path/filename' AUTOEXTEND ON NEXT num[K/M] MAXSIZE UNLIMITED;ALTER DATABASE DATAFILE '/path/filename' AUTOEXTEND OFF;删除数据文件ALTER TABLESPACE tbs_name DROP DATAFILE '/path/filename';重命名表空间ALTER TABLESPACE tbs_name_old RENAME TO tbs_name_new;SYSTEM、SYSAUX表空间及处于OFFLINE状态的表空间不能重命名。
删除表空间
DROP TABLESPACE tbs_name INCLUDING CONTENTS AND DATAFILES CASCADE CONSTRAINTS;修改表空间状态修改为只读状态--禁止DML操作,小部分数据库对象允许删除,基本该表空间只读禁写ALTER TABLESPACE tbs_name READ ONLY;修改为读写状态(默认)--即ONLINE状态,允许正常操作ALTER TABLESPACE tbs_name READ WRITE;创建用户、表和索引时指定表空间用户CREATE USER user_name IDENTIFIED BY pwd DEFAULT TABLESPACE tbs_name TEMPORARY TABLESPACE tmp_tbs_name;表CREATE TABLE tb_name(col_name col_type...)TABLESPACE tbs_name;ALTER TABLE tb_name MOVE TABLESPACE tbs_name;索引CREATE INDEX ind_name on tb_name(col_name) TABLESPACE tbs_name;ALTER INDEX ind_name REBUILD TABLESPACE tbs_name;--出于性能和安全考虑,表和索引建议分开放至不同的表空间内。调整用户的默认表空间调整默认的永久表空间ALTER USER user_name DEFAULT TABLESPACE tbs_name;调整默认的临时表空间ALTER USER user_name TEMPORARY TABLESPACE tbs_name;设置数据库的默认表空间设置默认永久表空间ALTER DATABASE DEFAULT TABLESPACE tbs_name;设置默认临时表空间ALTER DATABASE DEFAULT TEMPORARY TABLESPACE tbs_anme;临时表空间迁移1)创建新的临时表空间CREATE TEMPORARY TABLESPACE tmp_tbs_name_newTEMPFILE '/path/filename' SIZE num[K/M][AUTOEXTEND ON|OFF NEXT num[K/M] MAXSIZE UNLIMITED];2)修改数据库的临时表空间为新的临时表空间ALTER DATABASE DEFAULT TEMPORARY TABLESPACE tmp_tbs_name_new;3)删掉旧的临时表空间DROP TABLESPACE tmp_tbs_name_old INCLUDING CONTENTS AND DATAFILES CASCADE CONSTRAINTS;表空间预警方案eg:表空间使用率超过95%或剩余表空间少于30M时,存储过程不能开始进行。
SELECT A.TABLESPACE_NAME 表空间名称,ROUND(TOTAL/1024/1024,4) 表空间大小M,ROUND(FREE/1024/1024,4) 表空间剩余大小M,ROUND((TOTAL-FREE)/1024/1024,4) 表空间使用大小M,ROUND((TOTAL-FREE)/TOTAL,4)*100 使用率FROM (SELECT TABLESPACE_NAME,SUM(BYTES) FREEFROM DBA_FREE_SPACEGROUP BY TABLESPACE_NAME) A,(SELECT TABLESPACE_NAME,SUM(BYTES) TOTALFROM DBA_DATA_FILESGROUP BY TABLESPACE_NAME) BON A.TABLESPACE_NAME=B.TABLESPACE_NAMEWHERE /*A.TABLESPACE_NAME=UPPER('tbs_name')*/ORDER BY ROUND((TOTAL-FREE)/TOTAL,4)*100 DESC;

本文标签: PLSQL