一,表空间扩容
1.表空间说明:
表空间是将相关逻辑结构组合在一起的数据库存储单元。数据库数据文件存储在表空间中。可以通过修改已经存在的表空间为他们增加数据文件和临时文件,你可以通过增加指定表空间中数据文件的大小或为指定表空间新增一个数据文件来为指定表空间扩容(两种方式:1.增加已存在数据文件的大小。2.增加数据文件)。
扩容方式一:增加表空间数据文件
(1).通过sysdba用户登录数据库,查看表空间信息:
dba_data_files:是描述了数据库文件数据字典视图;当查询DBA_DATA_FILES数据字典视图时,如果所请求的信息在字典中不可用,Oracle必须能够访问所有表空间及其数据文件。如果表空间是加密的,那么在查询DBA_DATA_FILES之前,必须打开Oracle钱包(密钥存储库)。
sqlplus / as sysdba SYS@orcl> select tablespace_name,file_name,file_id,round(bytes/(1024*1024),0) total_size from dba_data_files; TABLESPACE_NAME FILE_NAME FILE_ID TOTAL_SIZE ------------------------------ -------------------------------------------------- ---------- ---------- USERS /u01/app/oracle/oradata/ORCL/users01.dbf 7 5 UNDOTBS1 /u01/app/oracle/oradata/ORCL/undotbs01.dbf 4 345 SYSTEM /u01/app/oracle/oradata/ORCL/system01.dbf 1 900 SYSAUX /u01/app/oracle/oradata/ORCL/sysaux01.dbf 3 560 # 通过上面得sql语句可以查看到数据库中已存在得表空间名、对应磁盘物理文件名以及消耗磁盘空间大小
复制
(2).确认需要扩容得表空间
这里以扩容USERS表空间为例:
alter tablespace users add datafile '/u01/app/oracle/oradata/ORCL/users02.dbf' size 7g autoextend on next 512K maxsize 10g; #选项说明:size 指定表空间对应得数据文件得大小 # autoextend on:启用文件大小自动增长,如果不指定maxsize,那么单个文件大小不超过32G # next 文件扩展时添加到文件的增量大小 # maxsize 文件可以自动扩展到的最大大小
复制
(3).查看
SYS@orcl> select tablespace_name,file_name,bytes/(1024*1024) "total_size(M)",autoextensible,increment_by,maxbytes/(1024*1024*1024),online_status from dba_data_files; TABLESPACE_NAME FILE_NAME total_size(M) AUT INCREMENT_BY MAXBYTES/(1024*1024*1024) ONLINE_ ------------------------------ -------------------------------------------------- ------------- --- ------------ ------------------------- ------- SYSTEM /u01/app/oracle/oradata/ORCL/system01.dbf 910 YES 1280 31.9999847 SYSTEM SYSAUX /u01/app/oracle/oradata/ORCL/sysaux01.dbf 580 YES 1280 31.9999847 ONLINE USERS /u01/app/oracle/oradata/ORCL/users02.dbf 7168 YES 64 10 ONLINE USERS /u01/app/oracle/oradata/ORCL/users01.dbf 5 YES 160 31.9999847 ONLINE UNDOTBS1 /u01/app/oracle/oradata/ORCL/undotbs01.dbf 345 YES 640 31.9999847 ONLINE # 查看一下oracle block大小(8K) SYS@orcl> show parameter db_block_size NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ db_block_size integer 8192 # 结果说明: # 1.当数据文件启用自动扩展,如果没有指定maxsize,那么文件可以扩展到的最大容量不超过32G # 2.当指定了next值时,increment_by字段表示文件扩展时,为文件每次添加多少oracle块数量(64*8K=512K) # 3.当设置了autoextend on 时:AUT列显示为yes,表示数据文件启用自动扩展 # 4.可以发现:system和sysaux表空间每次自动扩容10M,undo表空间每次扩容5M,users表空间默认每次扩容1.25M
复制
扩容方式二:增加表空间中已存在的数据文件的大小
启用和禁用数据文件自动扩容:
以便在数据库中需要更多空间时自动增加数据文件的大小。文件大小以指定的增量增加到指定的最大值。
(1)确认数据文件是否启用自动扩容
SYS@orcl> select tablespace_name,file_name,autoextensible from dba_data_files; TABLESPACE_NAME FILE_NAME AUT ------------------------------ -------------------------------------------------- --- SYSTEM /u01/app/oracle/oradata/ORCL/system01.dbf YES SYSAUX /u01/app/oracle/oradata/ORCL/sysaux01.dbf YES USERS /u01/app/oracle/oradata/ORCL/users02.dbf YES USERS /u01/app/oracle/oradata/ORCL/users01.dbf YES UNDOTBS1 /u01/app/oracle/oradata/ORCL/undotbs01.dbf YES
复制
(2)如果没有启用:
# 模拟禁用自动扩容 alter database datafile '/u01/app/oracle/oradata/ORCL/users02.dbf' autoextend off; select tablespace_name,file_name,autoextensible from dba_data_files where tablespace_name = 'USERS'; TABLESPACE_NAME FILE_NAME AUT ------------------------------ -------------------------------------------------- --- USERS /u01/app/oracle/oradata/ORCL/users02.dbf NO USERS /u01/app/oracle/oradata/ORCL/users01.dbf YES # 启用数据文件自动扩容 alter database datafile '/u01/app/oracle/oradata/ORCL/users02.dbf' autoextend on; select tablespace_name,file_name,autoextensible from dba_data_files where tablespace_name = 'USERS'; TABLESPACE_NAME FILE_NAME AUT ------------------------------ -------------------------------------------------- --- USERS /u01/app/oracle/oradata/ORCL/users02.dbf YES USERS /u01/app/oracle/oradata/ORCL/users01.dbf YES
复制
重新设置已存在文件的大小:
alter database datafile '/u01/app/oracle/oradata/ORCL/users02.dbf' resize 8g; #查看验证 select tablespace_name,file_name,bytes/(1024*1024*1024) "total_size(G)" from dba_data_files where tablespace_name='USERS'; TABLESPACE_NAME FILE_NAME total_size(G) ------------------------------ -------------------------------------------------- ------------- USERS /u01/app/oracle/oradata/ORCL/users02.dbf 8 USERS /u01/app/oracle/oradata/ORCL/users01.dbf .004882813
复制
2.删除表空间中数据文件drop datafile(操作需谨慎):
alter tablespace users drop datafile '/u01/app/oracle/oradata/ORCL/users02.dbf';
复制
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
Oracle RAC 一键安装翻车?手把手教你如何排错!
Lucifer三思而后行
547次阅读
2025-04-15 17:24:06
【纯干货】Oracle 19C RU 19.27 发布,如何快速升级和安装?
Lucifer三思而后行
467次阅读
2025-04-18 14:18:38
Oracle SQL 执行计划分析与优化指南
Digital Observer
446次阅读
2025-04-01 11:08:44
XTTS跨版本迁移升级方案(11g to 19c RAC for Linux)
zwtian
444次阅读
2025-04-08 09:12:48
墨天轮个人数说知识点合集
JiekeXu
441次阅读
2025-04-01 15:56:03
【ORACLE】记录一些ORACLE的merge into语句的BUG
DarkAthena
438次阅读
2025-04-22 00:20:37
【ORACLE】你以为的真的是你以为的么?--ORA-38104: Columns referenced in the ON Clause cannot be updated
DarkAthena
413次阅读
2025-04-22 00:13:51
Oracle数据库一键巡检并生成HTML结果,免费脚本速来下载!
陈举超
410次阅读
2025-04-20 10:07:02
Oracle 19c RAC更换IP实战,运维必看!
szrsu
393次阅读
2025-04-08 23:57:08
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
356次阅读
2025-04-17 17:02:24