千家信息网

ORA-1653 oracle单个数据文件超过最大限制该怎么办

发表于:2024-11-12 作者:千家信息网编辑
千家信息网最后更新 2024年11月12日,这篇文章将为大家详细讲解有关ORA-1653 oracle单个数据文件超过最大限制该怎么办,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。早上开发反映无
千家信息网最后更新 2024年11月12日ORA-1653 oracle单个数据文件超过最大限制该怎么办

这篇文章将为大家详细讲解有关ORA-1653 oracle单个数据文件超过最大限制该怎么办,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

早上开发反映无法向数据库表中填写日志,提示数据库ORA-1653错误。
查询数据库告警日志,报错如下:
ORA-1653: unable to extend table CMTSMAIN.T0501_LOG by 128 in tablespace CMTSMAIN_TS
ORA-1653: unable to extend table CMTSMAIN.T0501_LOG by 8192 in tablespace CMTSMAIN_TS
ORA-1653: unable to extend table CMTSMAIN.T0502_LOG by 128 in tablespace CMTSMAIN_TS
ORA-1653: unable to extend table CMTSMAIN.T0502_LOG by 8192 in tablespace CMTSMAIN_TS
查询数据库表空间使用率,如下
SQL> select total.tablespace_name,round(total.MB,2) as Total_MB,round(total.MB-free.MB, 2) as Used_MB,round((1-free.MB/total.MB)*100, 2) as Used_Pct from (select tablespace_name, sum(bytes)/1024/1024 as MB from dba_free_space group by tablespace_name) free,(select tablespace_name, sum(bytes)/1024/1024 as MB from dba_data_files group by tablespace_name) total where free.tablespace_name=total.tablespace_name;
TABLESPACE_NAME TOTAL_MB USED_MB USED_PCT
------------------------------ ---------- ---------- ----------
CMTSMAIN_TS 32757.06 32730 99.92
表空间使用率为99.92%。
查询表空间的数据文件,及自动扩展属性
SQL> select TABLESPACE_NAME, FILE_NAME,AUTOEXTENSIBLE from dba_data_files;
TABLESPACE_NAME FILE_NAME AUT
------------------------------ ---------------------------------------- ---
CMTSMAIN_TS /u01/data/orcl/CMTSMAIN_TS01.dbf YES
此表空间只包含一个数据文件,文件大小已经达到oracle单个数据文件的最大限制。
因此, 添加数据文件
SQL> alter tablespace CMTSMAIN_TS add datafile '/u01/data/orcl/CMTSMAIN_TS02.dbf' size 3G autoextend on;
和研发人员沟通后,此表空间有两张表进行大量数据插入,因此增大数据文件至30G
SQL> alter database datafile '/u01/data/orcl/CMTSMAIN_TS02.dbf' resize 30G;
同时继续增加两个数据文件
SQL> alter tablespace CMTSMAIN_TS add datafile '/u01/data/orcl/CMTSMAIN_TS03.dbf' size 30G autoextend on;
SQL> alter tablespace CMTSMAIN_TS add datafile '/u01/data/orcl/CMTSMAIN_TS04.dbf' size 30G autoextend on;
查看数据库表空间使用率
SQL> select total.tablespace_name,round(total.MB,2) as Total_MB,round(total.MB-free.MB, 2) as Used_MB,round((1-free.MB/total.MB)*100, 2) as Used_Pct from (select tablespace_name, sum(bytes)/1024/1024 as MB from dba_free_space group by tablespace_name) free,(select tablespace_name, sum(bytes)/1024/1024 as MB from dba_data_files group by tablespace_name) total where free.tablespace_name=total.tablespace_name;
TABLESPACE_NAME TOTAL_MB USED_MB USED_PCT
------------------------------ ---------- ---------- ----------
CMTSMAIN_TS 124917.06 34269 27.43
涉及知识点,单个数据文件大小最大为32G,原理如下
A smallfile tablespace is a traditional Oracle tablespace, which can contain 1022 datafiles or tempfiles, each of which can contain up to approximately 4 million (2^22) blocks.
数据库数据块是大小是8k ,
SQL> show parameter block
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_block_size integer 8192
那么能创建的最大的数据文件大小是:2^22*8K=32G,而单个数据文件已经达到32G了,超过限制了,无法扩展,所以报错。而2^22是由于Oracle的Rowid中使用22位来代表Block号,这22位最多只能代表2^22-1(4194303)个数据块。
又及:为了扩展数据文件的大小,Oracle10g中引入了大文件表空间,在大文件表空间下,Oracle使用32位来代表Block号,也就是说,大文件表空间下每个文件最多可以容纳4G个Block。
那么也就是说当Block_size为8k时,数据文件可以达到32T 。

关于ORA-1653 oracle单个数据文件超过最大限制该怎么办就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

数据 文件 空间 数据库 最大 单个 大小 限制 代表 使用率 知识 查询 怎么办 也就是 也就是说 内容 文章 日志 更多 篇文章 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 后端程序员如何学习数据库 网络安全教育手抄报模板简单漂亮 没有ip可以搭建服务器吗 四川前端软件开发公司 广东时代网络技术分类工程 tplink软件开发校招面试 布丁服务器登录 ict软件开发主要做什么 如何查询出数据库不为空记录 java软件开发求职简历 我是网络安全小卫士资料 红色警戒3服务器 哈尔滨软件开发微信群 关于网络安全隐患 邢台宝航网络技术有限公司面试 深圳正规软件开发费用是多少 比特币违反国家网络安全法吗 打零工互联网科技有限公司 以色列网络安全设备 谷歌服务器地址大全 哪种nosql数据库最好 软件代码和数据库放在一起吗 服务器远程管理端口配置 银行网络安全转培训总结 布丁服务器登录 数据库查阅属性设置 软件开发相当消耗身体 软件开发部的缩写 查询数据库中同义词 深圳麦哲伦网络技术有限公司
0