oracle数据库管理员日常操作手册,[数据库]oracle日常操作命令手册(表空间管理)...

[数据库]oracle日常操作命令手册(表空间管理)

0 2020-08-24 11:00:43

--时间:2020年8月24日

--作者:飞翔的小胖猪

二、管理表空间

在oracle数据库中表空间管理分为新建表空间、管理扩容表空间、删除表空间。

2.1  创建数据表空间

新建表空间时需要指定表空间名、表空间文件路径、表空间大小、是否自动增长等参数。

2.1.1  不指定路径创建表空间

创建表空间的时候可以不指定文件路径,系统将会默认的格式创建一个新文件。

SQL> show parameter db_create_file_dest;     #查看表空间自动填充目录

SQL> alter system set db_create_file_dest='/app/oracle/oradata/orcl/' scope=both;    #设置表空间自动填充目录

SQL> show parameter db_create_file_dest;     #查看表空间自动填充目录

SQL> create  tablespace test_lvan datafile size 2G;                    #新建一个名为test_lvan的表空间

SQL> set linesize 200;                          #设置显示行长度200字符

SQL> col file_name for a60;               #设置file_name字段显示长度a60

SQL> col TABLESPACE_NAME  for a15;            #设置tablespace_name字段显示长度a15

SQL> select file_name,file_id,tablespace_name,round(bytes/1024/1024) total_M  from dba_data_files;    #查看表空间名及表空间大小

bc91bb04e6e9c61e24c974e4440db8f2.gif

2.1.2  指定路径创建表空间

使用指定路径的方式创建表空间时,首先要确认oracle用户对路径文件夹有读写执行权限。否则将无法正常使用。

SQL> set linesize 200;                          #设置显示行长度200字符

SQL> col file_name for a60;               #设置file_name字段显示长度a60

SQL> col TABLESPACE_NAME  for a15;            #设置tablespace_name字段显示长度啊5

SQL> select file_name,file_id,tablespace_name,round(bytes/1024/1024) total_M  from dba_data_files;    #查看表空间名及表空间大小

bc91bb04e6e9c61e24c974e4440db8f2.gif

从命令得知所有表空间的文件均在/app/oracle/oradata/WANWAN/datafile/目录下。

手动指定一个路径创建一个表空间

SQL> create  tablespace test_wan datafile '/app/oracle/oradata/WANWAN/datafile/test_wan.dbf'size 2G;                       #新建一个名为test_wan的表空间,大小为2G。

SQL> select file_name,file_id,tablespace_name,round(bytes/1024/1024) total_M  from dba_data_files;    #查看表空间名及表空间大小

bc91bb04e6e9c61e24c974e4440db8f2.gif

2.1.3  创建自增长表空间

SQL> set linesize 220;                #设置显示行长度220字符

SQL> col tablespace_name for a15;    #设置tablespace_name字段显示长度为a15

SQL> col file_name for a75;    #设置file_name字段显示长度a75

SQL> select tablespace_name,file_name,AUTOEXTENSIBLE from dba_data_files;   #查看表空间是否为自增长

bc91bb04e6e9c61e24c974e4440db8f2.gif

SQL> create tablespace test_auto_add datafile  size 2G  autoextend on next 100M maxsize 16G;          #新建一个初始大小为2G的表空间,开启自动增长,每次增加100M,最大为16G。

SQL> set linesize 220;       #设置显示行长度220字符

SQL> col tablespace_name for a15;           #设置tablespace_name字段显示长度为a15

SQL> col file_name for a75;               #设置file_name字段显示长度a75

SQL> select tablespace_name,file_name,AUTOEXTENSIBLE,round(bytes/1024/1024)  total_MB from dba_data_files;                          #查看表空间是否为自增长

bc91bb04e6e9c61e24c974e4440db8f2.gif

2.1.4  查看获取表空间使用情况

SQL> SELECT D.TABLESPACE_NAME,SPACE "SUM_SPACE(M)",SPACE-NVL(FREE_SPACE,0) "USED_SPACE(M)",

ROUND((1-NVL(FREE_SPACE,0)/SPACE)*100,2) "USED_RATE(%)",FREE_SPACE "FREE_SPACE(M)"

FROM

(SELECT TABLESPACE_NAME,ROUND(SUM(BYTES)/(1024*1024),2) SPACE

FROM DBA_DATA_FILES

GROUP BY TABLESPACE_NAME) D,

(SELECT TABLESPACE_NAME,ROUND(SUM(BYTES)/(1024*1024),2) FREE_SPACE

FROM DBA_FREE_SPACE

GROUP BY TABLESPACE_NAME) F

WHERE  D.TABLESPACE_NAME = F.TABLESPACE_NAME(+);

bc91bb04e6e9c61e24c974e4440db8f2.gif

2.1.5 扩容表空间

使用重置文件大小方式扩容表空间

格式:

alter database datafile '表空间位置'resize 新的尺寸

SQL> alter database datafile '/u01/oracle/oradata/wyzc11g/sysaux01.dbf'  resize 780M;

bc91bb04e6e9c61e24c974e4440db8f2.gif

使用添加文件方式扩容表空间

格式:

alter tablespace表空间名称add datafile '新的数据文件地址' size 数据文件大小

SQL> alter tablespace sysaux add datafile '/u01/oracle/oradata/wyzc11g/sysaux04.dbf' size 100M;

bc91bb04e6e9c61e24c974e4440db8f2.gif

为表空间设置自动扩展

格式:

alter database datafile '数据文件位置' autoextend on next 自动扩展大小maxsize 最大扩展大小

SQL> alter database datafile '/u01/oracle/oradata/wyzc11g/sysaux04.dbf' autoextend on next 10M maxsize 1000M;

bc91bb04e6e9c61e24c974e4440db8f2.gif

2.2.1  新建临时表空间

所有用户默认共享使用同一个临时表空间,对于业务而言一般需要创建独立的临时表空间。

SQL> create temporary tablespace tmpadd  tempfile size 2G;

SQL> SELECT D.TABLESPACE_NAME,SPACE "SUM_SPACE(M)",BLOCKS SUM_BLOCKS,

USED_SPACE "USED_SPACE(M)",ROUND(NVL(USED_SPACE,0)/SPACE*100,2) "USED_RATE(%)",

NVL(FREE_SPACE,0) "FREE_SPACE(M)"

FROM

(SELECT TABLESPACE_NAME,ROUND(SUM(BYTES)/(1024*1024),2) SPACE,SUM(BLOCKS) BLOCKS

FROM DBA_TEMP_FILES

GROUP BY TABLESPACE_NAME) D,

(SELECT TABLESPACE_NAME,ROUND(SUM(BYTES_USED)/(1024*1024),2) USED_SPACE,

ROUND(SUM(BYTES_FREE)/(1024*1024),2) FREE_SPACE

FROM V$TEMP_SPACE_HEADER

GROUP BY TABLESPACE_NAME) F

WHERE  D.TABLESPACE_NAME = F.TABLESPACE_NAME(+);

bc91bb04e6e9c61e24c974e4440db8f2.gif

2.2.2  扩容临时表空间

通过添加文件的方式扩容temp表空间

扩展temp表空间并开启自动增长,使用alter tablespace temp add tempfile ‘文件路径’ size 大小 autoextend(自动扩展开启) on next 每次增长大小 maxsize 最大大小;

SQL>alter tablespace temp add tempfile '/u01/oracle/oradata/wyzc11g/temp02.dbf' size 1G autoextend on next 128M maxsize 3G;

bc91bb04e6e9c61e24c974e4440db8f2.gif

添加文件方式扩容temp不开启自动增长

扩展temp表空间不开启自动增长,使用alter tablespace temp add tempfile ‘文件路径’ size 大小 autoextend off (自动扩展关闭);

SQL>alter tablespace temp add tempfile '/u01/oracle/oradata/wyzc11g/temp02.dbf' size 1G autoextend off;

bc91bb04e6e9c61e24c974e4440db8f2.gif

重置文件大小的方式扩容temp表空间

使用重置文件大小方式扩容表空空间,不建议缩小通过这种方式,大表空间不能用重置文件方式扩容表空间。命令:alter database tempfile ‘表空间文件路径’ resize 调整大小;

SQL> alter database tempfile '/u01/oracle/oradata/wyzc11g/temp03.dbf' resize 3G ;

bc91bb04e6e9c61e24c974e4440db8f2.gif

设置现有temp文件为自动扩展

设置当前使用的temp表空间文件设置自动扩展

SQL>alter database tempfile '/u01/oracle/oradata/wyzc11g/temp03.dbf' autoextend on next 100M maxsize 6G;

bc91bb04e6e9c61e24c974e4440db8f2.gif

2.2.3  查看临时表空间状态

查看系统temp表空间的文件路径名及表空间名

SQL>set linesize 200;

SQL> col file for a50;

SQL> select f.file#,t.ts#,f.name "File",t.name "Tablespace" from v$tempfile f,V$tablespace t where f.ts# = t.ts#;

bc91bb04e6e9c61e24c974e4440db8f2.gif

查看每个用户TEMP状态

查看有哪些用户使用了temp表空间

SQL>SELECT USERNAME, TEMPORARY_TABLESPACE FROM DBA_USERS;

bc91bb04e6e9c61e24c974e4440db8f2.gif

查看临时表空间使用情况

SQL> SELECT D.TABLESPACE_NAME,SPACE "SUM_SPACE(M)",BLOCKS SUM_BLOCKS,

USED_SPACE "USED_SPACE(M)",ROUND(NVL(USED_SPACE,0)/SPACE*100,2) "USED_RATE(%)",

NVL(FREE_SPACE,0) "FREE_SPACE(M)"

FROM

(SELECT TABLESPACE_NAME,ROUND(SUM(BYTES)/(1024*1024),2) SPACE,SUM(BLOCKS) BLOCKS

FROM DBA_TEMP_FILES

GROUP BY TABLESPACE_NAME) D,

(SELECT TABLESPACE_NAME,ROUND(SUM(BYTES_USED)/(1024*1024),2) USED_SPACE,

ROUND(SUM(BYTES_FREE)/(1024*1024),2) FREE_SPACE

FROM V$TEMP_SPACE_HEADER

GROUP BY TABLESPACE_NAME) F

WHERE  D.TABLESPACE_NAME = F.TABLESPACE_NAME(+);

bc91bb04e6e9c61e24c974e4440db8f2.gif

2.3  删除表空间

在删除表空间的时候需要确认表空间是否真的不需要了、是否为用户的默认存储表空间、是否存在不可删除的数据表。如果确定真的不需要该表空间时则进行删除操作。

2.3.1  查看表空间是否绑定用户

持续更新

2.3.2  查看表空间中是否有表

持续更新

2.3.3  删除表空间

持续更新 转载请保留本文网址:http://www.shaoqun.com/a/466712.html

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:admin@shaoqun.com。

oracle

0

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值