ITPUX技术网

交流 . 资讯 . 分享
Make progress together!
Linux操作系统下Oracle11g R2 RAC 安装配置教程
Oracle数据库培训-备份恢复-性能优化-集群容灾
Oracle数据库DBA高级工程师培训视频

oracle增加表空间的四种方法

内容发布:zhwpyy| 发布时间:2017-4-17 16:24:40
oracle增加表空间的四种方法
Meathod1:给表空间增加数据文件
ALTER TABLESPACE app_data ADD DATAFILE
'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP03.DBF' SIZE 50M;

Meathod2
:新增数据文件,并且允许数据文件自动增长
ALTER TABLESPACE app_data ADD DATAFILE
'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP04.DBF' SIZE 50M
AUTOEXTEND ON NEXT 5M MAXSIZE 100M;

Meathod3
:允许已存在的数据文件自动增长
ALTER DATABASE DATAFILE 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP03.DBF'
AUTOEXTEND ON NEXT 5M MAXSIZE 100M;

Meathod4
:手工改变已存在数据文件的大小
ALTER DATABASE DATAFILE 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP02.DBF'
RESIZE 100M;
实例1
   在[url=]数据库[/url][url=]管理[/url]中,磁盘空间不足是DBA都会遇到的问题,问题比较常见。
--1查看表空间已经使用的百分比
select   a.tablespace_name,a.bytes/1024/1024 "SumMB",(a.bytes-b.bytes)/1024/1024   "usedMB",b.bytes/1024/1024 "freeMB",round(((a.bytes-b.bytes)/a.bytes)*100,2) "percent_used"
from
(select tablespace_name,sum(bytes) bytes from dba_data_files group bytablespace_name)   a,
(select tablespace_name,sum(bytes) bytes,max(bytes) largest from dba_free_spacegroup by tablespace_name)   b
where   a.tablespace_name=b.tablespace_name
order   by   ((a.bytes-b.bytes)/a.bytes)   desc
“Sum MB”表示表空间所有的数据文件总共在操作系统占用磁盘空间的大小
比如:test表空间有2个数据文件,datafile1为300MB,datafile2为400MB,那么test表空间的“Sum MB”就是700MB
“userd MB”表示表空间已经使用了多少
“free MB”表示表空间剩余多少
“percent_user”表示已经使用的百分比
--2比如从1中查看到MLOG_NORM_SPACE表空间已使用百分比达到90%以上,可以查看该表空间总共有几个数据文件,每个数据文件是否自动扩展,可以自动扩展的最大值。
select   file_name,tablespace_name,bytes/1024/1024 "bytesMB",maxbytes/1024/1024 "maxbytes MB"  from   dba_data_files
  where tablespace_name='MLOG_NORM_SPACE';
--3比如MLOG_NORM_SPACE表空间目前的大小为19GB,但最大每个数据文件只能为20GB,数据文件快要写满,可以增加表空间的数据文件
用操作系统UNIX、Linux中的df   -g命令(查看下可以使用的磁盘空间大小)
获取创建表空间的语句:
select   dbms_metadata.get_ddl('TABLESPACE','MLOG_NORM_SPACE')  from   dual;

--4确认磁盘空间足够,增加一个数据文件
alter  tablespace   MLOG_NORM_SPACE
add   datafile  '/oracle/oms/oradata/mlog/Mlog_Norm_data001.dbf'
size   10M   autoextend   on  maxsize   20G

--5验证已经增加的数据文件
select   file_name,file_id,tablespace_name  from   dba_data_files
where   tablespace_name='MLOG_NORM_SPACE'
--6如果删除表空间数据文件,如下:
alter   tablespace   MLOG_NORM_SPACE
drop    datafile'/oracle/oms/oradata/mlog/Mlog_Norm_data001.dbf'
实例2
1、执行以下SQL语句查找存放表空间的数据文件的路径
SELECT ddf.file_name
FROM Dba_Data_Files ddf
where ddf.tablespace_name = 'APPS_TS_TX_DATA'
2、用system/manager登录PL/SQLDeveloper运行如下SQL语句:
ALTER TABLESPACE APPS_TS_TX_DATA ADDDATAFILE '/d01/dba/vis01data/tx_data14.dbf' SIZE 100M;(增加100MAPPS_TS_TX_DATA表空间)
注意:执行上面命令是增加tx_data**.dbf文件, **请用“不存在SQL结果”里的数字代替,一般为SQL中查询中的最大数字加1。比如通过1查询到目前APPS_TS_TX_DATA表空间中共有以下数据文件:
/d01/dba/vis01data/tx_data1.dbf
/d01/dba/vis01data/tx_data2.dbf
...
/d01/dba/vis01data/tx_data14.dbf
通过2新增加表空间:

/d01/dba/vis01data/tx_data15.dbf (新增加的表空间的编号一般为前一数字+1,即15



上一篇:Oracle数据库管理之参数文件管理技巧
下一篇:Oracle 查看表空间的大小及使用情况sql语句
回复

使用道具 举报

1框架
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表