【赵渝强老师】达梦数据库的归档模式

简介: 本文介绍了达梦数据库备份与恢复中重做日志文件的作用,重点讲解了归档模式的必要性及其配置方法。文章分析了非归档模式可能导致的数据丢失问题,并推荐使用归档模式以保障数据一致性和完整性。归档模式分为本地归档和远程归档:本地归档将重做日志存储在本地,而远程归档适用于集群环境,确保所有节点拥有完整日志。文中还详细展示了如何通过SQL命令开启归档模式,包括切换状态、设置路径及验证配置等步骤,并附有视频教程辅助理解。

b296.png

达梦数据库的备份与恢复都需要使用到重做日志文件。在默认的情况下,达梦数据库采用的非归档模式。通过执行下面的语句可以查看当前数据库实例的日志模式。


SQL> select arch_mode from v$database;

#输出的信息如下:
行号        ARCH_MODE
---------- ---------
1           N

# 提示:这里输出的N表示的是非归档模式。


由于在非归档模式下,重做日志文件会发生覆盖的情况,从而造成数据的丢失。因此,达梦数据库强烈建议在生产数据库环境中,将数据库的日志模式配置为归档模式。归档日志是保证数据一致性和完整性的重要保障。配有归档日志的数据库系统在出现故障时丢失数据的可能性更小,这是因为一旦出现介质故障如磁盘损坏时,利用归档日志,系统可被恢复至故障发生的前一刻,也可以还原到指定的时间点。


一、本地归档与远程归档


1.1  本地归档


重做日志文件Redo的本地归档就是将重做日志写入到本地归档日志文件的过程。配置本地归档情况下,Redo日志刷盘线程将Redo日志写入联机Redo日志文件后,并由专门的归档线程负责写入本地归档日志文件中。归档后的重做日志文件不会被覆盖,会一直保留到用户将其主动删除。如果配置了归档日志空间上限,系统会自动删除最早生成的归档Redo日志文件;当磁盘空间不足时,系统将自动挂起,直到用户主动释放出足够的空间后继续运行。


达梦数据库提供了以下两个函数用于删除归档日志:按指定的时间或指定的lsn删除归档日志的系统函数:


sf_archivelog_delete_before_time:按指定的时间删除归档日志
sf_archivelog_delete_before_lsn:按指定的lsn删除归档日志


1.2  远程归档


重做日志文件Redo的远程归档就是将归档目录配置在远程节点上,远程归档专门用于DMDSC(达梦共享数据库集群)环境中。远程归档采用双向配置的方式,双向配置远程归档就是两个节点将自己的远程归档相互配置在对方机器上。集群中所有的节点,都拥有一套包括所有节点的,完整的归档日志文件。


二、【实战】开启达梦数据的归档模式


由于本地归档和远程归档是异步将重做日志信息写入归档日志文件的。因此,重做日志redo在写入联机日志文件后,再由专门的归档线程负责将日志写入归档日志文件。

# 提示:这里以设置本地归档日志为例。


视频讲解如下:


通过执行以下SQL命令可以开启达梦数据的归档模式。


(1)查看当前数据库实例的状态。

SQL> select STATUS$ from v$database;
# 输出的信息如下:
行号      STATUS$    
---------- -----------
1          4
# 提示:4表示数据库实例处于Open状态。


(2)将数据库切换到mount状态,并查看数据库的状态。

SQL> alter database mount;
SQL> select STATUS$ from v$database;
# 输出的信息如下:
行号        STATUS$    
---------- -----------
1             3
# 提示:3表示数据库实例处于Mount状态。


(3)切换数据库的日志模式

SQL> alter database archivelog;


(4)创建归档路径。

mkdir -p /home/dmdba/dmdbms/data/DAMENG/arch


(5)设置数据库的归档路径。

SQL> alter database add archivelog 
      'type=local,dest=/home/dmdba/dmdbms/data/DAMENG/arch,
       file_size=64,space_limit=0';
# 提示:File_size是归档文件的大小64M,space_limit表示没有空间限制。


(6)打开数据库。

SQL> alter database open;


(7)查看数据库的日志模式。

SQL> select arch_mode from v$database;
#输出的信息如下:
行号        ARCH_MODE
---------- ---------
1             Y


(8)查看生成的归档日志文件。

tree /home/dmdba/dmdbms/data/DAMENG/arch
# 输出的信息如下:
/home/dmdba/dmdbms/data/DAMENG/arch
└── ARCHIVE_LOCAL1_0x1F8C9F0_EP0_2025-03-11_11-03-11.log


相关文章
|
11天前
|
Oracle 关系型数据库 Linux
【赵渝强老师】Oracle数据库配置助手:DBCA
Oracle数据库配置助手(DBCA)是用于创建和配置Oracle数据库的工具,支持图形界面和静默执行模式。本文介绍了使用DBCA在Linux环境下创建数据库的完整步骤,包括选择数据库操作类型、配置存储与网络选项、设置管理密码等,并提供了界面截图与视频讲解,帮助用户快速掌握数据库创建流程。
179 93
|
17天前
|
数据库
【赵渝强老师】达梦数据库实例的状态
达梦数据库实例包含NORMAL、PRIMARY和STANDBY三种模式,以及MOUNT、OPEN和SUSPEND三种状态。模式之间可在MOUNT状态下相互转换,不同状态与模式适用于数据库的启动、配置及运行需求。
|
1月前
|
存储 关系型数据库 MySQL
【赵渝强老师】MySQL数据库的多实例环境
MySQL多实例是指在一台服务器上运行多个MySQL服务,通过不同端口提供独立的数据服务。各实例共享安装程序,但使用各自的配置文件和数据文件,实现资源高效利用。本文详细介绍了如何通过“mysqld_multi”工具配置和启动多个MySQL实例,并演示了目录创建、初始化、配置文件修改及实例启动等操作步骤。
|
1月前
|
存储 关系型数据库 数据库
【赵渝强老师】PostgreSQL数据库的WAL日志与数据写入的过程
PostgreSQL中的WAL(预写日志)是保证数据完整性的关键技术。在数据修改前,系统会先将日志写入WAL,确保宕机时可通过日志恢复数据。它减少了磁盘I/O,提升了性能,并支持手动切换日志文件。WAL文件默认存储在pg_wal目录下,采用16进制命名规则。此外,PostgreSQL提供pg_waldump工具解析日志内容。
152 0
|
4月前
|
关系型数据库 MySQL 数据库
【赵渝强老师】数据库不适合Docker容器化部署的原因
本文介绍了在Docker中部署MySQL数据库并实现数据持久化的方法,同时分析了数据库不适合容器化的原因。通过具体步骤演示如何拉取镜像、创建持久化目录及启动容器,确保数据安全存储。然而,由于数据安全性、硬件资源争用、网络带宽限制及额外隔离层等问题,数据库服务并不完全适合Docker容器化部署。文中还提到数据库一旦部署通常无需频繁升级,与Docker易于重构和重新部署的特点不符。
288 18
【赵渝强老师】数据库不适合Docker容器化部署的原因
|
2月前
|
SQL 关系型数据库 MySQL
【赵渝强老师】MySQL中的数据库对象
本教程详细介绍了MySQL数据库中的常见对象,包括表、索引、视图、事件、存储过程和存储函数的创建与管理。内容涵盖表的基本操作、索引的使用、视图简化查询、事件调度功能等,并通过具体示例演示相关SQL语句的使用方法。
|
3月前
|
存储 关系型数据库 分布式数据库
【赵渝强老师】基于PostgreSQL的分布式数据库:Citus
Citus 是基于 PostgreSQL 的开源分布式数据库,采用 shared nothing 架构,具备良好的扩展性。它以插件形式集成,部署简单,适用于处理大规模数据和高并发场景。本文介绍了 Citus 的基础概念、安装配置步骤及其在单机环境下的集群搭建方法。
283 2
|
2月前
|
存储 Oracle 关系型数据库
【赵渝强老师】Oracle RMAN的目录数据库
Oracle RMAN默认将备份元信息存储在控制文件中,但控制文件损坏或丢失会导致恢复失败,且备份增多会使控制文件无限增长。为解决这些问题,Oracle引入了RMAN目录数据库(Catalog Database),专门用于存储RMAN备份的元信息。使用目录数据库可提升备份管理效率,支持多数据库共享、长期备份历史记录存储,并可保存RMAN脚本。本文详细介绍了如何创建目录数据库、注册目标数据库及其操作步骤。
|
4月前
|
存储 关系型数据库 MySQL
【赵渝强老师】OceanBase数据库从零开始:MySQL模式
《OceanBase数据库从零开始:MySQL模式》是一门包含11章的课程,涵盖OceanBase分布式数据库的核心内容。从体系架构、安装部署到租户管理、用户安全,再到数据库对象操作、事务与锁机制,以及应用程序开发、备份恢复、数据迁移等方面进行详细讲解。此外,还涉及连接路由管理和监控诊断等高级主题,帮助学员全面掌握OceanBase数据库的使用与管理。
271 5
|
5月前
|
SQL 关系型数据库 数据库
【赵渝强老师】创建PostgreSQL的数据库
本文介绍了在PostgreSQL中通过SQL命令“create database”创建数据库的方法。首先查询系统目录pg_database以查看现有数据库集合,然后使用“create database”命令创建新数据库,并了解其在$PDATA/base目录下对应的文件夹生成。最后重新查询数据库集合确认创建结果,附带视频讲解便于理解操作步骤及注意事项。
134 1