一、DOS下的内存不足
1、检查系统是否提供对扩充内存的支持,必须保证CONFIG.SYS文件中的EMM386.EXE命令中含有RAM参数;
2、 如故障仍存在,检查DOS内核程序与其它运行的应用程序是否兼容,某些程序是否占用了大量的常规内存,并作出相应的处理。
二、Windows中的内存不足
1、应检查Windows的资源使用情况,假如资源占用较多,可用资源较少,打开新文件时会出现“内存不足\"的问题。
2、清除或保存Clipboard(剪贴板)的内容,使用ControlPanel Desktop选项将墙纸(Wallpaper)设置为None;
3、可用PIF编辑器编辑PIF文件,增大PIF文件中定义的MemoryRequirements:KB Required的值;
4、 重新开机进入Windows系统,并且确保在“启动\"图标中没有其它无关的应用软件同时启动运行,在WIN.INI文件中也没有Run或Load命令加载的任何无关的应用程序。
三、平时一般办法:
1、退出那些不需要运行的应用程序后再检查系统的可用资源为多少。如可用资源大于30%,一般可以运行新的程序。当有多个应用程序在系统中运行时,可以退出一个,检查一次可用资源,假如某个应用程序在退出前后,可用资源的百分比没有变化,说明这个应用程序没有释放它所占用的资源。
2、假如要收回这些没有释放的资源,只能退出Windows后,再重新进入Windows。
一般说来,经过这样处理,就不会出现“内存不足\"的问题了。
以MySQL 8.0 来说,通过查看 8.0 的官方文档得知,8.0 的临时表空间分为会话临时表空间和全局临时表空间,会话临时表空间存储用户创建的临时表和当 InnoDB 配置为磁盘内部临时表的存储引擎时由优化器创建的内部临时表,当会话断开连接时,其临时表空间将被截断并释放回池中;也就是说,在 8.0 中有一个专门的会话临时表空间,当会话被杀掉后,可以回收磁盘空间;而原来的 ibtmp1 是现在的全局临时表空间,存放的是对用户创建的临时表进行更改的回滚段,在 5.7 中 ibtmp1 存放的是用户创建的临时表和磁盘内部临时表;
也就是在 8.0 和 5.7 中 ibtmp1 的用途发生了变化,5.7 版本临时表的数据存放在 ibtmp1 中,在 8.0 版本中临时表的数据存放在会话临时表空间,如果临时表发生更改,更改的 undo 数据存放在 ibtmp1 中;
实验验证:将之前的查询结果保存成临时表,对应会话是 45 号,通过查看对应字典表,可知 45 号会话使用了 temp_8.ibt 这个表空间,通过把查询保存成临时表,可以用到会话临时表空间,如下图:
下一步杀掉 45 号会话,发现 temp_8.ibt 空间释放了,变为了初始大小,状态为非活动的,证明在 mysql8.0 中可以通过杀掉会话来释放临时表空间。
总结:在 mysql5.7 时,杀掉会话,临时表会释放,但是仅仅是在 ibtmp 文件里标记一下,空间是不会释放回 *** 作系统的。如果要释放空间,需要重启数据库;在 mysql8.0 中可以通过杀掉会话来释放临时表空间。
根据表空间的类型不同,扩容方法不同。DB2一般分SMS和DMS两种类型表空间,一个是系统管理表空间,一个是数据库管理表空间。
1、SMS表空间的container是文件系统目录或文件,一般container是自动扩展的,这种情况下你需要扩容文件系统。
查看表空间类型和container
$db2 list tablespaces show detail$db2 list tablespace containers for <tablespaceid>
2、DMS表空间也有自动扩展类型和使用裸设备的情况(container是文件或裸设备),如果是自动扩展则扩容文件系统。非自动扩展的扩容方式是增加container。
DMS+文件
$db2 connect to <dbname>$db2 "alter tablespace <tablespaceName> begin new stripe set (file '<filePath>/<fileName>' 655360)"
DMS+裸设备
$db2 connect to <dbname>$db2 "alter tablespace <tablespaceName> begin new stripe set (device '/dev/rLR_XXXXXX' 671088640)"
语句中使用了begin new stripe set,表示新的数据直接写到新的container上,不进行数据reblance。否则替换为add,表示在container间进行数据reblance(会在后台执行,可用list utilities查看进度)
括号中的数字表示container的page个数(表空间pagesize×这个数字即是container的大小)。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)