oracle服务器硬盘磁盘空间满了
问题描述:oracle服务器硬盘磁盘空间满了,没有空间写入数据;
解决思路:
a、服务器是虚拟机还是实体机?
虚拟机,->物理机上有空间直接给它扩容,再给数据库的相关表空间添加文件就可;
实体机,->确定是否还有oracle收缩磁盘硬盘插槽,能新增物理硬盘,买+接入;
b、删数据以及降低高水位;
通常思路是:找占用磁盘最大的表空间TS_1,找该表空间下巨大的表tableA,删除历史数据,降低高水位(table move),缩小表空间文件,腾出空间;
1、查询 表空间各文件 --找出占用磁盘最大的表空间
--1.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
order by ts_size desc;
--1.2、按数据库文件查看使用情况
select /*+ ordered use_hash(a,b,c) */
a.file_id,a.file_name,a.filesize, b.freesize,
(a.filesize-b.freesize) usedsize,
c.hwmsize,
c.hwmsize - (a.filesize-b.freesize) unsedsize_belowhwm,
a.filesize - c.hwmsize canshrinksize
from
(
select file_id,file_name,round(bytes/1024/1024) filesize from dba_data_files
) a,
(
select file_id,round(sum(dfs.bytes)/1024/1024) freesize from dba_free_space dfs
group by file_id
) b,
(
select file_id,round(max(block_id)*8/1024) HWMsize from dba_extents
group by file_id) c
where a.file_id = b.file_id
and a.file_id = c.file_id
order by unsedsize_belowhwm desc
查看数据文件使用情况
结果说明:
File_id : 文件编号
File_name: 文件名称
File_size: 数据文件占用磁盘空间大小
Freesize:文件中被标记为free的空间大小
Usedsize: 使用的空间大小。
Hwmsize: 已经分配出去的空间大小,如果希望通过alter database datafile … resize integerM回收空间,将需要这个值作为参考,不能回收到这个值之下,否则会报错。
Freee_belowhwm_size: 在HWM(高水位标记线之下的空闲空间数),这个是理论上的可以回收的空间大小。
Curr_can_shrink: 这个是实际大小与HWM标记之间的差,就是还没有分配出去的空间大小。
1.3、在表空间下 列出表占用的空间 --找出最大的表
--1.3、在表空间下 列出表占用的空间 --找出最大的表
Select Segment_Name,Sum(bytes)/1024/1024 x From User_Extents Group By Segment_Name
order by x desc
分析这3个结果,如果表空间下有剩余空间,找到对应文件,可以直接减少文件大小,释放空间给别人用;
ALTER DATABASE DATAFILE 'D:\ora_tablespace\GCOMM2.dbf' RESIZE 5000M;
如没有,,确定要要动哪个表空间下哪个表。那就需要删数据和降低高水位了。
2、按字段的时间 删除数据
2.1、查询 一个表中 几条数据 看下 字段
select * from SD_KLFX_LXDM_ES where rownum <20
2.2把要留的数据新建表 存起来
create table new_LXDM as select * from SD_KLFX_LXDM_ES where day > to_date('2019-10-15 00:00:00','yyyy-mm-dd hh24:mi:ss');
2.3 truncate 把原表数据都删掉
truncate table SD_KLFX_LXDM_ES
2.4 把新表数据还原回老表 insert into SD_KLFX_LXDM_ES select * from new_LXDM
确认下数据一致,老表数据是否有、条数一致
select * from SD_KLFX_LXDM_ES where rownum <20
select count(1) from new_LXDM;
select count(1) from SD_KLFX_LXDM_ES;
2.5 销毁新表 drop table new_LXDM
3、alter table test move 移动表,降低高水位;
--alter table move主要有两方面的作用
3.1.用来移动table到其他表空间
3.2.用来减少table中的存储碎片,优化存储空间和性能
重建索引
SQL> alter index idx_t_object_id rebuild;
4、减少文件的大小
ALTER DATABASE DATAFILE 'D:\ora_tablespace\GCOMM2.dbf' RESIZE 5000M;
oracle服务器硬盘磁盘空间满了的更多相关文章
- ORA-19502: write error on file "", blockno (blocksize=)/linux下磁盘空间满了解决办法--Virtualbox
今天,在测试环境启动数据库时,报错: SQL> startup; ORACLE instance started. Total System Global Area 285212672 byt ...
- oracle所在磁盘空间不足导致了数据库异常
oracle所在磁盘空间不足导致了数据库异常.需要减小数据文件的大小来解决. 1.检查数据文件的名称和编号 select file#,name from v$datafile; 2.看哪个数据文件所占 ...
- 磁盘空间满了之后MySQL会怎样
大多数用户在对于磁盘进行分区的时候都是习惯性的不给系统盘预留很大空间,其实这并不是一个好习惯.因为系统分区并不像我们想象的那样会仅仅安装一个操作系统,系统分区多数还是会承载操作系统主要应用软件安装任务 ...
- docker容器存放目录磁盘空间满了,转移数据修改Docker默认存储位置
原文:docker容器存放目录磁盘空间满了,转移数据修改Docker默认存储位置 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/qq_3767485 ...
- linux磁盘空间满了 但是没有大文件
很常见的一个问题 linux磁盘空间满了 但是没有大文件 解决思路: 1.用df 检查发现/根目录可用空间为0 [root@/]#df -h 2.用du检查发现各目录占用的空间都很少,有约3G的空间莫 ...
- linux 磁盘空间满了,排查记录
先贴命令:du -m --max-depth=1或du -h --max-depth=1du:用于统计linux中文件或目录所占磁盘空间的大小du参数######-m:以M为单位展示查询结果-h:以K ...
- linux系统磁盘空间满了怎么办看完这篇文章之后就知道怎么解决了
废话不多说直接上图 可以看得到 / 下面已使用100%,已经没有剩余空间可以使用了,上面跑的服务已经访问不了了. 接下来我就看看有没有垃圾文件可以清理的 du -sh * 由于这个机器比较特殊,上面有 ...
- Linux磁盘空间满了的排查与解决思路
block正常满 (磁盘实际不足)inode 满 大量的小文件block 满 文件没有被彻底删除(硬链接数0 进程调用数不为0) 解放方法: 1 查看df -h 磁盘使用量根据占用量大小逐步逐步排查 ...
- df说磁盘空间满了, du说没有,到底谁是对的
同事求助, 他在删掉一个很大的文件后, 磁盘空间依旧没释放.上去一看, 果然 df 看到磁盘空间占用依旧是100%,等等 du 看了一把,磁盘空间剩余很大. 造成这个原因是因为进程依旧打 ...
随机推荐
- 自定义错误throw
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 分页控件Webdiyer.MvcPager
MVC 1.安装控件 install-package Webdiyer.MvcPager 2.Cotroller using System; using System.Collections.Gene ...
- Android系统输入事件分发详解
什么是输入事件? 我们知道,运行android系统的设备本质上是一台计算机,使用者在和计算机进行交互的时候可以抽象成简单的对计算机的输入和输出(IO).那么对于运行在计算机上的操作系统来说,操作系统在 ...
- 014_STM32程序移植之_L298N电机驱动模块
更改注意: STM32程序移植之L298N电机驱动模块 引脚连接图 STM32引脚 L298N引脚 功能 PA6 ENA 马达A的PWM PA7 ENB 马达B的PWM PA2 IN1 控制马达A P ...
- 002_C/C++笔试题_简单算法程序
(一)冒泡排序法 #include <iostream> using namespace std; void bubblesort(int a[], int m); int main(vo ...
- npm源管理
1. 安装淘宝镜像 为了提高npm的安装速度,可以使用淘宝镜像. 使用淘宝镜像的方法有两种: 1. npm install -g cnpm --registry=https://registry.np ...
- Oracle 进程 前台进程-服务进程
一.什么是服务进程(前台进程) 当用户运行一个应用进程时,系统会为用户运行的应用建立一个用户程序,该进程通过某种方式启动一个服务器进程(前台进程),用于处理连接到该实例的用户进程的请求. 二.服务进程 ...
- MongoDB 比较适用哪些业务场景
转载自:https://www.cnblogs.com/williamjie/p/10416294.html 在云栖社区上发起了一个 MongoDB 使用场景及运维管理问题交流探讨的技术话题,有近50 ...
- 学习GeoServer遇到的问题及答案
简介:本文的记录学习GeoServer遇到的问题,如果已有答案将会附上. 1.GeoServer介绍?,功能? GeoServer 是 OpenGIS Web 服务器规范的 J2EE 实现,利用 Ge ...
- elasticsearch中文分词器(ik)配置
elasticsearch默认的分词:http://localhost:9200/userinfo/_analyze?analyzer=standard&pretty=true&tex ...