达梦体系结构:数据库文件

达梦体系结构:数据库文件

  • 存储结构
    • 表空间与数据文件
    • 配置参数文件
    • 控制文件
    • 其他数据库文件

达梦数据库由数据库实例构成:

  • 数据库是指磁盘上存放的数据库文件的集合,包括参数文件、控制文件、数据文件、日志文件等。
  • 实例是指一组运行的数据库进程/线程以及一块大型的共享内存。

存储结构

达梦数据库文件包括:

  • 配置文件:服务配置文件dm.ini 、守护配置文件、复制配置文件、审计配置文件;
  • 控制文件:dm.ctl,记录文件分布的二进制文件;
  • 数据文件:存储表空间数据,例如SYSTEM.DBF、MAIN.DBF、ROLL.DBF、TEMP.DBF等;
  • 联机日志文件:记录数据库操作的REDO日志,例如DAMENG01.log、DAMENG02.log等;
  • 归档日志文件、备份文件、审计文件(audit_*.log)、跟踪日志文件(dmsql_*.log)等其他文件。

表空间与数据文件

达梦数据库中的最大存储单元是表空间。

表空间从上往下可以继续划分为段(segment)、簇(extent)、页(page,对应Oracle中的数据块)。

一个表空间下往往包含多个磁盘上存在的数据文件。每个数据文件只能属于一个表空间。

配置参数文件

服务配置文件dm.ini中记录了数据库初始化相关的参数。

达梦数据库中的参数可以分为如下几种类型:

  • READ ONLY:静态只读参数,不能通过SQL命令或函数修改。只能通过修改dm.ini文件来变更,需要重启数据库生效。
  • IN FILE:静态文件参数,不能修改内存中的值,只能修改参数文件中的值。可以通过SQL命令或函数修改,但需要重启数据库生效。
  • SYS:动态系统级参数,可以修改内存中的值、参数文件中的值。可以通过SQL命令或系统函数修改,无需重启数据库即可生效。
  • SESSION:动态会话级参数,可以修改内存中的值、参数文件中的值,还可以只修改当前会话中的值。可以通过SQL命令或函数修改。可以只对当前会话生效。

查看参数文件中的参数值与类型:

select para_name,para_value,para_type from v$dm_ini;

数据库参数可以通过以下4种方式修改:

  1. 通过编辑dm.ini参数文件修改:需要重启数据库才能生效。

  2. 通过console图形化控制台修改:需要重启数据库才能生效,因为实际上修改的是dm.ini参数文件。

  3. 通过系统函数修改

这种方法可以修改静态参数和动态参数。静态参数修改后需要重启数据库生效。根据修改参数的数据类型,分别使用:

  • SP_SET_PARA_VALUE:修改整数型参数的值。
  • SP_SET_PARA_DOUBLE_VALUE:修改浮点型参数的值。
  • SP_SET_PARA_STRING_VALUE:修改字符型参数的值。
select name from v$ifun t where name like 'SP_SET_PARA%';

还可以i通过指定SCOPE来限制参数修改的范围:

  • 0:表示只修改内存中的值,相当于Oracle中的scope=memory
  • 1:表示同时修改内存和参数文件中的值,相当于Oracle中的scope=both
  • 2:表示只修改参数文件中的值,相当于Oracle中的scope=spfile
call SP_SET_PARA_VALUE(2, 'COMPATIBLE_MODE', 0);   -- 静态文件参数,2表示修改参数文件中的值
select name,type,value,sys_value,file_value from v$parameter where name='COMPATIBLE_MODE';call SP_SET_PARA_VALUE(1, 'LIST_TABLE', 0);        -- 动态会话参数,1表示同时修改内存和文件中的值
select name,type,value,sys_value,file_value from v$parameter where name='LIST_TABLE';

🐍 :可以发现函数修改的这种方式的可读性较差,不建议日常使用。

  1. 通过SQL命令修改

通过ALTER SYSTEM|SESSION SET语句修改参数值,类似于Oracle中的方式(但没有scope关键字)。

修改系统级别参数:

alter system set 'COMPATIBLE_MODE'=0 spfile;alter system set 'LIST_TABLE'=0 memory;
alter system set 'LIST_TABLE'=0 spfile;
alter system set 'LIST_TABLE'=0 both;

修改会话级别参数:

alter session set 'LIST_TABLE'=0;

控制文件

控制文件dm.ctl记录了OGUID、数据库状态、数据库名称、最后启动时间、表空间信息、数据文件信息、联机日志文件信息等内容。

控制文件是一个二进制文件,无法直接打开,但是可以通过dmctlcvt工具转化为可读的文本文件。

#控制文件转文本文件
$DM_HOME/bin/dmctlcvt TYPE=1 SRC=/dm8/data/DBNAME/dm.ctl DEST=/home/dmdba/dmctl.txt#文本文件转控制文件
$DM_HOME/bin/dmctlcvt TYPE=2 SRC=/home/dmdba/dmctl.txt DEST=/home/dmdba/dm.ctl

其他数据库文件

联机日志文件用于存放redo日志信息,循环使用(DBNAME_01.log、DBNAME_02.log)。

如果开启了归档模式,还会生成归档日志文件。

如果做了数据库备份,则会生成备份集文件。

如果开启了数据库审计,则会生成审计日志文件(audit_*.log)。

如果开启了SQL跟踪,还会生成跟踪日志文件(dmsql_*.log)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/793446.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

创意绘图画画小程序:融合白板黑板功能,开启绘画新纪元

创意绘图画画小程序:融合白板黑板功能,开启绘画新纪元 在数字化时代的浪潮下,艺术创作正逐渐摆脱传统形式的束缚,以更加多元、便捷的方式走进人们的生活。其中,创意绘图画画小程序以其独特的白板画、黑板画功能&#…

了解next.js框架特点,以及总结Next.js 常用的api和用法

Next.js 是一个流行的 React 框架,它提供了很多开箱即用的功能,如服务器渲染、静态导出、代码拆分等,让开发者可以更轻松地构建 React 应用。下面是对 Next.js 的深度解析,以及附带的代码实例。 1.Next.js 框架特点 1. 服务器渲染(Server-side Rendering,SSR) Next.j…

FANUC机器人仿真软件ROBOGUIDE通过备份文件创建工作单元的方法介绍

FANUC机器人仿真软件ROBOGUIDE通过备份文件创建工作单元的方法介绍 如下图所示,首先要确定你的机器人控制器的软件版本,具体可以在示教器上查看,如下图所示, 如下图所示,该机器人的控制器版本为V8.30P, 按照正确步骤对机器人进行备份操作,具体的流程可参考以下链接中的内…

代码随想录算法训练营第30天| 332.重新安排行程*、 51. N皇后*、 37. 解数独*

332.重新安排行程* 力扣题目链接 代码 示例代码 class Solution { private: // unordered_map<出发机场, map<到达机场, 航班次数>> targets unordered_map<string, map<string, int>> targets; bool backtracking(int ticketNum, vector<strin…

k8s 部署 canal 集群,RocketMQ 模式

k8s 部署 canal 集群&#xff0c;RocketMQ 模式 k8s 部署 canal 集群&#xff0c;RocketMQ 模式前提MySQLRocketMQ制作 canal-admin、canal-server 镜像 部署 zookeeper部署 canal-admin部署 canal-server测试 k8s 部署 canal 集群&#xff0c;RocketMQ 模式 前提 MySQL 开启…

vulnhub----natraj靶机

文章目录 一.信息收集1.网段探测2.端口扫描3.版本服务探测4.漏扫5.目录扫描 二.漏洞利用1.分析信息2..fuzz工具 三.getshell四.提权六.nmap提权 一.信息收集 1.网段探测 因为使用的是VMware&#xff0c;靶机的IP地址是192.168.9.84 ┌──(root㉿kali)-[~/kali/vulnhub] └─…

JVM-面试-4-连炮,你能顶住么?

1、JVM的内存区域是怎么划分的&#xff1f; JVM的内存划分中&#xff0c;有部分区域是线程私有的&#xff0c;有部分是属于整个JVM进程&#xff1b;有些区域会抛出OOM异常&#xff0c;有些则不会&#xff0c;了解JVM的内存区域划分以及特征&#xff0c;是定位线上内存问题的基础…

Lua 和 Love 2d 教程 二十一点朴克牌 (上篇lua源码)

GitCode - 开发者的代码家园 Lua版完整原码 规则 庄家和玩家各发两张牌。庄家的第一张牌对玩家是隐藏的。 玩家可以拿牌&#xff08;即拿另一张牌&#xff09;或 停牌&#xff08;即停止拿牌&#xff09;。 如果玩家手牌的总价值超过 21&#xff0c;那么他们就爆掉了。 面牌…

Django源码之路由的本质(上)——逐步剖析底层执行流程

目录 1. 前言 2. 路由定义 3. 路由定义整体源码分析 3.1 partial实现path函数调用 3.2 图解_path函数 3.3 最终 4.URLPattern和Pattern的简单解析 5. 小结 1. 前言 在学习Django框架的时候&#xff0c;我们大多时候都只会使用如何去开发项目&#xff0c;对其实现流程并…

【sqlite3】网络socket编程温度采集智能存储与上报项目技术------sqlite3数据库基础

项目源码&#xff1a;https://gitee.com/TJF865975/project1_ds18b20&#xff0c;此为本人gitee仓库&#xff0c;欢迎 Watch、Star、Fork。 1.sqlite3简介 SQLite3是一种轻量级的关系型数据库&#xff0c;可以在本地磁盘上存储数据。 2.sqlite3安装 sudo apt-get install s…

鸽哒言讯独家最新im即时通讯系统双端源码下载 (中越双语)带安卓未封装、苹果未封装、PC端(全开源)+部署教程

独家最新im即时通讯系统双端源码下载 &#xff08;中越双语&#xff09;带安卓未封装、苹果未封装、PC端&#xff08;全开源&#xff09;部署教程鸽哒IM即时通讯系统是一款类似于weixin的即时通讯软件&#xff0c;具有独立开发的特点。与网络其他聊天软件相比&#xff0c;即时聊…

文件同步工具哪个好

背景 今天介绍一款文件实时同步工具PanguFlow,它能够实时地监控源端文件夹的变化&#xff0c;然后将这种变化实时同步到目标端&#xff0c;对于文件灾备冗余的场景可谓是再合适不过了&#xff0c;一些老铁可能有这样的需求&#xff0c;比如两台服务器需要做文件的双机热备&…

【Python 进阶笔记1】__call__ 函数

1. 前言 __call__是Python中的一个特殊方法&#xff08;也称为魔法方法&#xff09;。当定义了这个方法后&#xff0c;这个类的实例&#xff08;对象&#xff09;可以像普通函数那样被调用。这意味着&#xff0c;如果你创建了一个该类的实例&#xff0c;你可以直接用括号传递参…

模拟退火遗传算法GASA-附MATLAB代码

模拟退火遗传算法&#xff08;Simulated Annealing Genetic Algorithm&#xff0c;SAGA&#xff09;结合了模拟退火算法&#xff08;Simulated Annealing&#xff0c;SA&#xff09;和遗传算法&#xff08;Genetic Algorithm&#xff0c;GA&#xff09;的优点&#xff0c;用于解…

软件测试用例(3)

目录 什么样的测试用例是一个好的测试用例 什么是测试用例的有效性? 测试用例的粒度和评价 粒度 评价 什么样的测试用例是一个好的测试用例 什么是测试用例的有效性? 测试用例的有效性指的是测试用例是否能够有效地检测出软件系统中的错误或问题. 一个有效的测试用例应…

956: 约瑟夫问题的实现

【学习版】 【C语言】 #include <iostream> #include <string> #include <algorithm> #include <cmath> #include <cstdlib> using namespace std; typedef struct Lnode {int date;struct Lnode* next; }Lnode, * Linklist; int In(Linklist&…

查看Git用户名/密码/邮箱,及设置git配置

一、查看信息&#xff1a; 查看用户名 &#xff1a;git config user.name 查看密码&#xff1a; git config user.password 查看邮箱&#xff1a;git config user.email 二、设置信息&#xff08;--global 全局设置&#xff09; git config --global user.name "xxxx名称…

如何开发创建自己的npm包并成功发布、维护至npm官方网站

npm&#xff0c;全称为Node Package Manager&#xff0c;是专为JavaScript生态系统设计的软件包管理系统&#xff0c;尤其与Node.js平台紧密关联。作为Node.js的默认包管理工具&#xff0c;npm为开发者提供了便捷的方式来安装、共享、分发和管理代码模块。 npm作为JavaScript世…

ROS 2边学边练(12)-- 创建一个工作空间

上一篇我们已经接触过工作空间的概念&#xff0c;并简单了解体验了一点构建包、测试包的流程&#xff0c;此篇会深入一点学习工作空间相关内容。 前言 一个工作空间是包含了ROS 2的功能包的目录&#xff08;文件夹&#xff09;&#xff0c;在使用ROS 2之前我们得激活一下目标工…

Codeforces CodeTON Round 8(Div.1 + Div.2) A~E

A. Farmer John’s Challenge (模拟) 题意&#xff1a; 构造一个长度为 n n n的数组&#xff0c;将这些数组围成一个圈&#xff08;顺时针&#xff09;从任意一个位置打开&#xff0c;有且仅有 k k k个非降序排列的数组。 分析&#xff1a; k 1 k1 k1时&#xff0c;升序输…