达梦数据库表空间文件系统层面rm删除后,如果解决数据库日志报错问题
Posted jiubian
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了达梦数据库表空间文件系统层面rm删除后,如果解决数据库日志报错问题相关的知识,希望对你有一定的参考价值。
问题场景:
在系统层面rm删除掉了不需要的表空间文件,并非数据库内删除表空间文件,导致数据库报错日志过大。
问题还原:
新建2个测试用的表空间文件
系统层面删除掉表空间文件
重启数据库服务后,数据库日志有相关报错信息
停库转换dm.ctl文件为txt格式(生产环境操作建议停库后进行完全备份)
删除掉dmctl.txt中定义的(已删除掉的)表空间文件信息
转换dmctl.txt为dm.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删除后,如果解决数据库日志报错问题的主要内容,如果未能解决你的问题,请参考以下文章