# 问题概述
因在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

单个表空间文件个数达到上限 ORA-01686的更多相关文章

  1. 直接删除undo及temp表空间文件后的数据库恢复一例

    前几天,某用户研发找到我,说他们的研发库坏了,问我能恢复不?我问他们做了什么操作,一个小男孩儿说,看到空间满了,清除了点儿数据,我说是不是连数据库的文件也清除了,他说没有,他清除的是ORACLE_HO ...

  2. Linux服务器磁盘扩展和oracle表空间文件迁移操作记录

    1.环境介绍 服务器硬件:Dell R710 服务器OS:红帽子Linux   RHEL4.8 数据库:Oracle 10g 2.出现的问题 因为数据表每天有上百万的数据写入表,加上建立索引,导致表空 ...

  3. 移动Oracle的用户表空间文件方法

    原文:http://www.linuxidc.com/Linux/2014-07/104702.htm 1.以sys用户登录        sqlplus /nologSQL>connect s ...

  4. Oracle误删表空间文件后数据库无法启动

    [问题描述]Oracle误删表空间文件后数据库无法启动,报错表空间文件不存在 [解决办法]sqlplus / as sysdba       #以dba身份登陆数据库shutdown immediat ...

  5. oracle 修改表空间文件路径方法

     比如说修改 user01.dbf  文件 的路径 1.先登录sqlplus:    C:\Documents and Settings\chezh>sqlplus  system/passwo ...

  6. mysql表空间文件

    1.共享表空间文件.默认表空间文件是ibdata1,大小为10M,且可拓展.共享表空间可以由多个文件组成,一个表可以跨多个文件而存在,共享表空间的最大值限制是64T. 2.独立表空间文件.独立表空间只 ...

  7. InnoDB存储引擎的表空间文件,重做日志文件

    存储引擎文件:因为MySQL表存储引擎的关系,每个存储引擎都会有自己的文件来保存各种数据.这些存储引擎真正存储了数据和索引等数据. 表空间文件 InnoDB存储引擎在存储设计上模仿了Oracle,将存 ...

  8. ORA-01033因误删表空间文件导致的解决方案

    该类问题通常是由于表空间操作不当引起的.解决方法: SQL*Plus无法连接,显示以下错误:ORA-01033:ORACLE initialization or shutdown in progres ...

  9. oracle数据库表空间文件收缩实例

    Oracle数据文件收缩实例 数据文件的作用 HWM的基本概念 查看数据文件的使用情况 包括内容:数据文件大小,已经used空间,free空间,hwm信息 select /*+ ordered use ...

  10. 通过java api统计hive库下的所有表的文件个数、文件大小

    更新hadoop fs 命令实现: [ss@db csv]$ hadoop fs -count /my_rc/my_hive_db/* 18/01/14 15:40:19 INFO hdfs.Peer ...

随机推荐

  1. 对象可能是类数组对象 不具备数组的原型内的方法 所以可以用call或者apply把this指向改成数组或对象原型

    const arr = [] 2Object.prototype.toString.call(arr) === '[object Array]' // true 3 4 const obj = {} ...

  2. vue中组件传值的几种方式

    一.父组件给子组件传值方式(步骤) 1.VC1(子组件)定义props[a,b,c] 注意:props中的每个值都可以加各种修饰,如数据类型,是否可为空,默认值... 2.VC2(父组件)引用子组件 ...

  3. fastdfs java客户端操作

    https://github.com/happyfish100/fastdfs-client-java 到此处下载下来demo 这里采用maven的方式 mvn clean install 上传到本地 ...

  4. Linux系统Shell脚本第一章:Shell脚本基础及时间同步

    目录 一.Shell脚本基础 1.Shell作用 2.什么是Shell脚本及处理逻辑 3.shell脚本基本格式 4. shell脚本执行方式 5.实操演示 二.Shell脚本中的变量 1.变量的作用 ...

  5. 支持批量图片转文字的【OCR】文字识别工具,支持截图识别,速度快,准确度高,免费OCR,开源软件

    想必大家偶尔也有需要从图片中提取文字的需求,虽然现在手机上都自带了拍照识别功能,可是从电脑上的图片传到手机识别再将结果发回来实 在是有点麻烦,尤其当图片数量较多时,更是费时费力,使用网页版工具又要面临 ...

  6. js-防抖(简易版)

    /**  * 节流函数  */ var count = 1; var container = document.getElementById('container'); function getUse ...

  7. ES使用

    shards 分片数 ES存储数据可以存储在多个分片 下载ES curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elas ...

  8. openframeworks 设置不显示控制台窗口

    1.设置Linker 下的System->选择Windows 2.设置入口函数,然后编译就可以了 int APIENTRY wWinMain(_In_ HINSTANCE hInstance, ...

  9. Java8 Date Time API 简介

    1.Java8 Date Time API 简介 1.1.新旧 Date Time API 对比 包位置对比 1.Java8之前的日期.时间分布在java.util和java.sql的包中,此外用于格 ...

  10. What does int main(int argc, char *argv[]) mean?

    忽然发现自己不理解许多代码中这行的含义是什么...(汗颜) 下面贴一段stackoverflow上面的回答: argv and argc are how command line arguments ...