本文共 1866 字,大约阅读时间需要 6 分钟。
达梦(DM)数据库系统的逻辑结构与Oracle类似,主要包括实例和数据库两个概念。两者唯一的区别在于:达梦是单进程模型,而Oracle是多进程模型。
实例:在达梦中,实例是由共享内存和后台进程或线程组成的。通常情况下,一个数据库对应一个实例,不过在DSC(DM共享集群)环境下,多个实例可以共享同一个数据库。
数据库:数据库是存储在磁盘文件中的容器,类似Oracle的schema。数据库可以由一个或多个表空间组成。
DM数据库的物理存储结构包括配置文件、控制文件、数据文件、重做日志文件、归档文件、逻辑日志文件、备份文件以及日志文件等。
配置文件是DM数据库的功能设置文件,主要以ini为扩展名,例如dm.ini和dmarch.ini。
每个数据库都有一个名为dm.ctl的控制文件,记录了数据库的初始信息。这是一个二进制文件。
数据文件以dbf为扩展名,是数据库中最重要的文件类型。一个数据库至少有一个数据文件,实际应用中通常有多个数据文件。
重做日志文件用于数据库的备份和恢复,是数据库Crash recovery的重要依据。
归档日志文件支持恢复到故障前的时间点,也可以还原到指定的时间点。
在配置数据库复制时,会产生逻辑日志文件。
备份文件以bak为扩展名。
在DM数据库上配置SVR_LOG和SVR_LOG_SWITCH_COUNT参数后,会生成事件日志文件,这些文件记录了系统运行中的关键事件,如启动、关闭、内存申请失败等。
在DM数据库中,内存结构主要包含内存池、缓冲区、排序区、哈希区等区域。这些区域的设计和管理方式与Oracle类似。
共享内存是指系统可用的物理内存资源,用来存放各个数据库的共享区域。查看共享内存大小可以通过以下SQL语句:
SQL> select para_name, para_value from v$dm_ini where para_name='MEMORY_TARGET';
数据缓冲区用于存储数据库操作的相关内容,是实现高效数据访问的关键。缓冲区采用LRU(最不_recently_used)的回收策略。
| 状态 | 描述 |
|---|---|
| free | 最近未使用 |
| dirty | 数据已修改 |
| clean | 无数据 |
| pending | 数量不足 |
查看缓冲区大小和最大值可以通过以下SQL语句:
SQL> select para_name, para_value from v$dm_ini where para_name='BUFFER'; -- 查看缓冲区大小SQL> select para_name, para_value from v$dm_ini where para_name='MAX_BUFFER'; -- 查看最大缓冲区大小
字典缓冲区用于存储数据字典信息,参数DICT_BUF_SIZE控制字典缓冲区的大小。
SQL缓冲区存储最近执行的SQL语句和查询结果集,用于减少硬interpreted(解析)次数。
排序区用于存放排序操作的缓存。当内存不足时,部分排序操作会临时写到磁盘上。
HASH区用于存放哈希表的数据,是查询某些信息的有效区域。
管理重做日志文件可以通过以下SQL命令:
SQL> select path from v$rlogfile; -- 查看重做日志文件路径SQL> alter database add logfile '/dm7/data/DAMNEG/DAMENG04.log' size 512; -- 添加日志文件SQL> alter database resize logfile '/dm7/data/DAMNEG/DAMENG04.log' to 1024; -- 修改日志文件大小
需要注意所有重做日志文件大小必须一致。
转载地址:http://ydcpz.baihongyu.com/