达梦数据库表空间文件系统层面rm删除后,如果解决数据库日志报错问题

Posted jiubian

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了达梦数据库表空间文件系统层面rm删除后,如果解决数据库日志报错问题相关的知识,希望对你有一定的参考价值。

问题场景:

  在系统层面rm删除掉了不需要的表空间文件,并非数据库内删除表空间文件,导致数据库报错日志过大。  

问题还原:

  新建2个测试用的表空间文件

  系统层面删除掉表空间文件

   重启数据库服务后,数据库日志有相关报错信息

  停库转换dm.ctl文件为txt格式(生产环境操作建议停库后进行完全备份)

  删除掉dmctl.txt中定义的(已删除掉的)表空间文件信息

  转换dmctl.txtdm.ctl文件

 

  重启数据库服务

   服务器无新的表空间报错日志

 

  查询其他数据

 

  测试结果,剔除掉dm.ctl文件中的表空间文件信息后,重启数据库后,无新增表空间报错日志。

达梦数据库表空间管理

表空间

数据库的物理结构:文件系统—数据文件
数据库的逻辑结构:数据库—表空间(多个数据文件构成)—段—簇—页
(一) 达梦默认有哪些表空间及其作用
1、查看表空间
【语句】SQL>select tablespace name from dba tablespaces;
(1) SYSTEM:系统表空间,存放数据字典信息
(2) ROLL:回滚表空间,存放回滚数据,对一个数据进行更新操作,存放的是更新前的版本信息,可以支持MVCC(事务多版本机制)
(3) TEMP:临时表空间,存放临时数据,可不做备份
(4) MAIN:main表空间,如果用户创建数据对象不指定存储位置,默认存放到main表空间上
(5) HMAIN:hmain表空间,存放的是huge table的信息
(二) 创建表空间
1、 规划表空间
案例一:创建一个表空间tbs,放在$DM_HOME /data/DB_NAME数据,处室文件大小为31M【注意,初始文件的大小是page的4096倍】
【语句】
SQL>create tablespace tbs datafile ‘/dm7/data/DAMENG/TBS.dbf’SIZE 31
案例二:,建一个表空间tbs2,有两个数据文件,分别存放到不同的disk上,初始大小为32M,单个文件最大为100M
【语句】
首先cd到dm7下,使用mkdir disk{1,2}
SQL>create tablespace tbs2 datafile’/dm7/data/DAMENG/disk1/TBS2_1.DBF’SIZE 32 autoextend on maxsize 100,’/dm7/ data/DAMENG/disk1/TBS2_2.DBF’SIZE 32 autoextend on maxsize 100,’
未指定扩展的大小是多少?
【语句】???
案例三:规划表空间tbs3,初始文件大小为32M,每次自动扩展1M,最大为33M
【语句】
SQL>create tablespace tbs3 datafile ‘/dm7/data/DAMENG/TBS3.dbf’SIZE 32 autoextend on next 1 maxsize 100,
2、 如何查询表可用表空间的大小
【语句】??
(三) 如何维护和管理表空间
1. 表空间不足(报错为磁盘空间不足)
(1) 创建大的表空间数据,导出再导入(不推荐使用)
(2) 把表空间的数据文件resize(变大某一个表空间,不推荐使用)
(3) 增加数据文件(推荐使用)
【语句】
SQL>alter tablespace tbs3 add datafile ‘/dm7/data/DAMENG/TBS3_1.dbf’ size 32 autoextend on maxsize 100;
2. 表空间更换存储位置
案例一:将tbs表空间放置到增加的新空间
先查找目前tbs所在位置
【语句】SQL>select tablespace_name ,file_name from dba_data_files where tablespace_name=’TBS’;
表空间更换存储位置时,要求表offline,0=online,1=offline
【语句】
SQL>select tablespace_name,status from dba_tablespaces;
更换表空间位置
【语句】
SQL>alter tablespace tbs rename datafile‘/dm7/data/DAMENG/TBS.dbf’ to ‘/dm7/tbs/ TBS.dbf’;
SQL>???
3. 删除表空间
删除TBS3表空间(如果表空间存在数据,不允许直接删除)
【语句】
SQL>drop tablespace tbs3
4. 利用管理工具创建表空间更简单

以上是关于达梦数据库表空间文件系统层面rm删除后,如果解决数据库日志报错问题的主要内容,如果未能解决你的问题,请参考以下文章

达梦数据库表空间管理

virtualbox中ubuntu系统采用rm -rf 模式删除文件后,虚拟磁盘不减少,反而越来越大,请前辈指教?

Linux rm命令删除文件磁盘空间不释放解决

LINUX删除文件,但空间不释放

Linux平台达梦数据库V7之逻辑架构

Linux平台达梦数据库V7之逻辑架构