欣欣闹天下

古有洛离感青天,乾坤泣血憾无言。时光无情终逝去,唯留玲珑血玉兰。

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

单个表空间文件个数达到上限 ORA-01686

问题概述

因在oracle数据库表空间管理中的时候 报 ORA-01686: max # files (1023) reached for the tablespace GPRS

SQL> alter tablespace GPRS add datafile '+DATADG' size 60G;
alter tablespace GPRS add datafile '+DATADG' size 60G
*
ERROR at line 1:
ORA-01686: max # files (1023) reached for the tablespace GPRS

问题原因

每个表空间最大文件数 2^10-1个

解决方案

1、清理过期的数据
2、新建个表空间(这样不太好管理)

模拟故障

1、写个加数据文件存储过程吧

SQL> create or replace procedure pl_data as
2 col_id varchar(255);
3 begin
4 for i in 1..1020 loop
5 col_id:='GUO'||i;
6 execute immediate 'alter tablespace GUO add datafile'||' ''/u01/oradata/peach/'||col_id ||'.dbf'||''' size 1m ';
7 end loop;
8 commit;
9 end;
10 /

过程已创建。

2、调用存储过程添加了1020个数据文件


SQL> exec sys.pl_data

PL/SQL 过程已成功完成。

SQL> select max(file_id) from dba_data_files where tablespace_name='GUO';

MAX(FILE_ID)
------------
1025

3、手动添加数据文件

SQL> alter tablespace GUO add datafile '/u01/oradata/peach/GUO1021.dbf' size 1m;

表空间已更改。

SQL> alter tablespace GUO add datafile '/u01/oradata/peach/GUO1022.dbf' size 1m;

表空间已更改。

SQL> alter tablespace GUO add datafile '/u01/oradata/peach/GUO1023.dbf' size 1m;

表空间已更改。

SQL> alter tablespace GUO add datafile '/u01/oradata/peach/GUO1024.dbf' size 1m;
alter tablespace GUO add datafile '/u01/oradata/peach/GUO1024.dbf' size 1m
*1 行出现错误:
ORA-01686: 最大文件数 (1023) 对于表空间 GUO 已达到

4、总结
表空间最大数据文件个数2^10-1
单个数据文件最大数据块个数2^22-1
单个数据文件大小,db_block_size*blocks

posted on   欣欣闹天下  阅读(252)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示