增加表空间大小

表空间是对数据文件的逻辑管理,随着数据的不断增加,表空间的空闲空间会不断变小,下面介绍增加表空间的三种方法
1  增加数据文件大小

点击(此处)折叠或打开

  1. SQL> select file_id , file_name , tablespace_name , bytes/1024/1024 from dba_data_files;

  2.    FILE_ID FILE_NAME TABLESPACE BYTES/1024/1024
  3. ---------- -------------------------------------------------- ---------- ---------------
  4.          1 /u01/app/oracle/oradata/PROD/disk3/system01.dbf SYSTEM 325
  5.          2 /u01/app/oracle/oradata/PROD/disk4/undotbs01.dbf UNDOTBS 200
  6.          3 /u01/app/oracle/oradata/PROD/disk4/sysaux01.dbf SYSAUX 325
  7.          4 /u01/app/oracle/oradata/PROD/disk3/system02.dbf UNDOTBS2 10
  8.          5 /u01/app/oracle/oradata/PROD/disk4/undotbs02.dbf UNDOTBS3 10
  9.          6 /u01/app/oracle/oradata/PROD/disk3/user01.dbf USERS 10

  10. 6 rows selected.

  11. SQL> alter database datafile 6 resize 15m;

  12. Database altered.

  13. SQL> select file_id , file_name , tablespace_name , bytes/1024/1024 from dba_data_files;

  14.    FILE_ID FILE_NAME TABLESPACE BYTES/1024/1024
  15. ---------- -------------------------------------------------- ---------- ---------------
  16.          1 /u01/app/oracle/oradata/PROD/disk3/system01.dbf SYSTEM 325
  17.          2 /u01/app/oracle/oradata/PROD/disk4/undotbs01.dbf UNDOTBS 200
  18.          3 /u01/app/oracle/oradata/PROD/disk4/sysaux01.dbf SYSAUX 325
  19.          4 /u01/app/oracle/oradata/PROD/disk3/system02.dbf UNDOTBS2 10
  20.          5 /u01/app/oracle/oradata/PROD/disk4/undotbs02.dbf UNDOTBS3 10
  21.          6 /u01/app/oracle/oradata/PROD/disk3/user01.dbf USERS 15

  22. 6 rows selected.
2  设置表空间为自动增长的方式


点击(此处)折叠或打开

  1. SQL> alter database datafile 6 autoextend on next 5m maxsize 50m;

  2. Database altered.


3  添加数据文件


点击(此处)折叠或打开

  1. SQL> alter tablespace users add datafile \'/u01/app/oracle/oradata/PROD/disk4/user02.dbf\' size 10m;

  2. Tablespace altered.

  3. SQL> select file_id , file_name , tablespace_name , bytes/1024/1024 from dba_data_files;

  4.    FILE_ID FILE_NAME TABLESPACE BYTES/1024/1024
  5. ---------- -------------------------------------------------- ---------- ---------------
  6.          1 /u01/app/oracle/oradata/PROD/disk3/system01.dbf SYSTEM 325
  7.          2 /u01/app/oracle/oradata/PROD/disk4/undotbs01.dbf UNDOTBS 200
  8.          3 /u01/app/oracle/oradata/PROD/disk4/sysaux01.dbf SYSAUX 325
  9.          4 /u01/app/oracle/oradata/PROD/disk3/system02.dbf UNDOTBS2 10
  10.          5 /u01/app/oracle/oradata/PROD/disk4/undotbs02.dbf UNDOTBS3 10
  11.          6 /u01/app/oracle/oradata/PROD/disk3/user01.dbf USERS 15
  12.          7 /u01/app/oracle/oradata/PROD/disk4/user02.dbf USERS 10

  13. 7 rows selected.

以上即为增加表空间的三种方法
然而,第一种方法空间很固定,有一定的局限行,建议选第二种或第三种方法

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29598413/viewspace-1140939/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29598413/viewspace-1140939/

### 扩展Oracle数据库表空间的方法 在Oracle数据库中,扩展表空间是确保数据库具有足够存储容量的重要操作。主要可以通过以下两种方式实现: 1. **扩展现有数据文件** 可以通过修改现有数据文件的大小来扩展表空间。例如,使用`ALTER DATABASE DATAFILE RESIZE`命令将指定的数据文件调整为新的大小(单位为MB): ```sql ALTER DATABASE DATAFILE '/vdb2/service/oracle/data/oracle/oradata/orcl/user04.dbf' RESIZE 32736M; ``` 如果遇到错误 `ORA-01144: File size (5242880 blocks) exceeds maximum of 4194303 blocks`,则表示当前数据文件的块数超出了系统限制,这时可以考虑添加新的数据文件而不是扩展现有文件 [^3]。 2. **增加新的数据文件** 给现有的表空间添加一个新的数据文件是一种常见的方法。例如,使用`ALTER TABLESPACE ADD DATAFILE`语句添加一个大小为50MB的新数据文件: ```sql ALTER TABLESPACE app_data ADD DATAFILE 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP03.DBF' SIZE 50M; ``` 此外,还可以启用自动扩展功能,以便数据文件在需要时自动增长,直到达到指定的最大值: ```sql ALTER TABLESPACE data01 ADD DATAFILE 'd:\java\test\data03.dbf' SIZE 1M AUTOEXTEND ON NEXT 1M MAXSIZE 500M; ``` 这种方法允许表空间根据需求动态调整存储容量,同时避免手动干预 [^2]。 3. **设置自动扩展参数** 在创建或修改数据文件时,可以启用自动扩展功能。例如,下面的SQL代码展示了如何添加一个数据文件,并配置其每次增长1MB,最大可扩展至500MB: ```sql ALTER TABLESPACE data01 ADD DATAFILE 'd:\java\test\data04.dbf' SIZE 1M AUTOEXTEND ON NEXT 1M MAXSIZE 500M; ``` 自动扩展功能减少了因存储不足导致性能问题的风险,同时也简化了管理任务 [^4]。 4. **检查并优化表空间使用情况** 在执行任何扩展操作之前,建议先评估当前表空间的使用情况,以确定是否真的需要扩展。可以通过查询`DBA_DATA_FILES`和`DBA_FREE_SPACE`视图来获取有关表空间的信息: ```sql SELECT TABLESPACE_NAME, FILE_ID, BYTES / 1024 / 1024 AS SIZE_MB FROM DBA_DATA_FILES; SELECT TABLESPACE_NAME, SUM(BYTES) / 1024 / 1024 AS FREE_SPACE_MB FROM DBA_FREE_SPACE GROUP BY TABLESPACE_NAME; ``` 这些查询可以帮助管理员了解哪些表空间接近满载,并据此决定扩展策略 [^5]。 ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值