zoukankan      html  css  js  c++  java
  • oracle表空间不够用怎么解决?

    看到标题,首先,要知道表空间数据写不进去是什么原因。是因为系统内存不足?还是oracle用户表空间给的大小不足?这里抛开系统内存不足不说,下面介绍oracle用户表空间给的太小造成数据写不进去怎么处理。本人所在公司的业务客户是公安部门,所以数据量是非常巨大的。直接在公安局内网服务器上敲键盘,没有测试环境,没有业内人士全靠度娘,每条命令都再三再四地看,毕竟30g公安数据,故知识、命令理解了也不敢回车,小伙子害怕.....

    便于理解 可以将xxx.bdf文件是oracle用户表空间下面的数据文件,数据都存放在xxxx.bdf里面 ,创建用户以及表空间的时候已经设定xxx.bdf文件的大小,可以设置此文件允许无限增大(只要你的服务器给oracle的空间够),然后再考虑如何扩容的问题。下面介绍两种方式达到给表和空间扩容的目的。啊~请把有才打在公屏上........

    1>为表空间增加数据文件(xxx.bdf的数量)

    2>增加表空间原有数据文件尺寸(xxx.bdf的尺寸)

    如果已经存了数据,一定要用第一种方案,如果更改原始数据文件尺寸的话可能会导致数据丢失。试想,如果原始数据文件为30g,然后你通过sql命令将此文件扩展为20g(文件空间竟然变小了),必然会导致数据丢失。这条命令就是resize 和 size的sql命令的区别了   第一种方案断然不会丢失数据,因为增加的是存数据的数据文件夹,并不是操作原始数据文件夹。

    下面进入GC:

    进入dba管理用户

    sysplus / as dba;

    1、查看表空间的名称及大小 
    SELECT t.tablespace_name, round(SUM(bytes / (1024 * 1024)), 0) ts_size 
    FROM dba_tablespaces t, dba_data_files d 
    WHERE t.tablespace_name = d.tablespace_name 
    GROUP BY t.tablespace_name; 

    2、查看表空间物理文件的名称及大小 
    SELECT tablespace_name, 
    file_id, 
    file_name, 
    round(bytes / (1024 * 1024), 0) total_space 
    FROM dba_data_files 
    ORDER BY tablespace_name;

    3,开始“扩容”啦

    原有一个bdf文件,内有30g数据,/home/oracledb/oradata/orcl/BHZHDP.dbf,现在TBS_BHZHDP表空间不足无法写入数据开始扩容。

    alter tablespace TBS_BHZHDP add datafile '/home/oracledb/oradata/orcl/BHZHDP2.dbf' size 35g;(35g如果算是很大可能会报以下错误,sql执行后等待1分钟会返回already 莫急)

    ORA-01144即表示你的单个数据文件超出了oracle的限制:
    如:ORA-01144: File size (4194304 blocks) exceeds maximum of 4194303 blocks
    表示你的表空间是Smallfile tablespace,单个数据文件最大只可以有2^22=4194303个blocks,换成KBytes时即乘上你数据库的block_size即可,解决方法是用多个数据文件,不是把单个数据文件设得很大.【解决】创新数据文件的时候给小一点空间10g差不多足够,也可以先看还有多少剩余嘛!可参考https://blog.csdn.net/jlds123/article/details/6771440

    【注】上面的数字2,表示是在同个TBS_BHZHDP空间表下创建新数据文件存数据,标记此文件2.bdf。至此问题解决,可以执行操作1再次查看表空间的名称和大小。

    【题外话】

    刚说到直接扩容bdf文件的问题是危险的,这里不在过多描述,resize是重定义文件大小,而add xxxx size是你想要添加多少容量。总之不是专业DBA不建议通过这种方式扩容表空间。具体可以偷袭下面这篇文章,我这边直接忽略此博主写的第一种方案,本人小白。

    https://www.cnblogs.com/longjshz/p/4553482.html

    要了解更多的oracle查看表空间以及剩余量的sql语句请看偷袭!!!!!!!!!!!!!!!!!!!!

    https://www.cnblogs.com/wolfplan/p/6874327.html

    下面是我浏览过认为描述问题比较全面的博客

    https://www.cnblogs.com/mzdljgz/p/11387294.html (这一篇也是我此次解决问题的关键,因为不了解直接扩bdf和增加bdf的区别,感谢此博主)

    http://blog.itpub.net/29485627/viewspace-1280367/

     

  • 相关阅读:
    安装vue-cli时-4058报错的解决方法
    Sublime text 3 配置
    Vue项目本地run与build后样式不同,build后样式不生效
    npm run build 打包后,如何运行在本地查看效果(Nginx服务)
    JavaScript(ES6)学习笔记-Set和Map与数组和对象的比较(二)
    JavaScript(ES6)学习笔记-Set和Map数据结构(一)
    Angular
    本地项目与码云上的项目相关联
    获取GitHub上远程分支内容
    MyEclipse
  • 原文地址:https://www.cnblogs.com/homjun/p/14253936.html
Copyright © 2011-2022 走看看