ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

达梦数据库(DM8)生产部署规范建议及故障恢复测试

2022-03-02 12:58:54  阅读:286  来源: 互联网

标签:dm 数据库 SQL DM8 2.2 DAMENG 备份 达梦


目录

前言

第一部分——生产部署规范建议

1.1 操作系统要求

1.2 安装路径设置

1.3 备份设置

第二部分——数据盘全损与恢复实验

2.1 实验整体介绍

2.2 实验步骤

2.2.1 准备工作

2.2.2 正常运行阶段

2.2.3 数据盘故障阶段

2.2.4 恢复与验证阶段

第三部分——总结


前言

对于金融行业尤其是银行来说,数据丢失风险的是不能忍受的。作为数据存储的仓库,数据库应当把保障数据安全作为底线进行坚守。达梦8数据库作为一款行业领先的数据库产品,提供了优秀的数据安全保障能力,确保在数据库发生故障时,通过还原之前的备份集,将数据恢复到可用状态。

本文主要分为两部分,第一部分,将首先给出一份生产部署规范建议;第二部分,将以实验的方式,以生产中的典型案例为例,介绍达梦8数据库(以下简称DM8)在遭遇数据盘数据全部损坏的情况,利用备份与还原技术,恢复全部数据,论证DM8如何能够给用户以信心。

第一部分——生产部署规范建议

1.1 操作系统要求

    独立分区既有利于提高可靠性,也便于后期在线扩容。因而要求生产部门提供的基础环境里,要建立操作系统和数据库至少两个分区。

分区

作用

大小

备注

/

安装操作系统

>=20G

kylinV10安装后初始大小8G左右

/dm8

安装达梦数据库,存放数据库数据

>=40G

具体大小根据系统本身数据量决;其中达梦数据库软件占用大小1G;剩余空间存放数据文件、日志等。

   从更高的安全角度上,可以采用独立块设备,搭建主从同步,建立多路归档等技术手段。

1.2 安装路径设置

数据库软件目录:/dm8

数据目录:      /dm8/data

备份目录:        /dm8/backup

1.3 备份设置

    备份时,在备份时间符合时间窗口的情况下,建议采用压缩备份,最多可以减小压缩结果文件大小为原来的1/10,压缩级别至少为1,最高可为9。具体的压缩效果,以及合理的压缩级别,需要通过在生产上进行测试以得出结论。

   建议对dm.ini等配置文件定期备份到比较安全的目录,有利于数据库快速恢复到之前的配置。

第二部分——数据盘全损与恢复实验

2.1 实验整体介绍

在生产中,为了数据的安全,常常采用数据库定期全库完全备份+每天增量备份的策略,辅以归档,使得在在数据库磁盘故障时,能够从已有备份和归档进行恢复,尽力实现RPO=0,降低数据丢失的风险。为了验证DM8的备份与还原能力,本章以单节点数据库为例进行了实验。

   实验场景步骤:

    1、进行数据库完全备份

    2、提交事务

    3、进行增量备份

    4、提交事务

    5、未完成事务

    6、模拟磁盘故障导致了数据库所有文件损坏

    7、通过数据库还原验证无提交事务丢失,RPO=0

2.2 实验步骤

2.2.1 准备工作

1、创建数据库实例DAMENG

2、DM8安装示例库DMHR。

3、设置dm.ini中ARCH_INI为1开启归档;设置dmarch.ini本地多路归档; 

2.2.2 正常运行阶段

1、数据库完全备份

SQL> BACKUP DATABASE BACKUPSET 'db_full_back_01';

注意:为简化命令,备份都保存在数据目录的默认路径下,实际生产中应当备份到其他路径。

2、进行事务

SQL> update dmhr.job set min_salary=3000 where job_id=72;

SQL> commit;

3、数据库增量备份(可选)

SQL>BACKUP DATABASE INCREMENT;

4、进行事务和未完成事务

SQL> update dmhr.job set min_salary=3500 where job_id=72;

SQL> commit;

SQL> update dmhr.job set min_salary=4000 where job_id=72;

2.2.3 数据盘故障阶段

5、模拟文件丢失

删除 /dm8/data 数据存放目录下所有文件,模拟磁盘故障导致文件丢失。

6、发现报错

比如进行数据库增量备份时发现错误:

SQL> BACKUP DATABASE INCREMENT;

BACKUP DATABASE INCREMENT;

[-8344]:specifying data file restored or tablespace backup is forbidden if the tablespace is broken.

used time: 00:00:01.045. Execute id is 0.

至此,DBA会发现故障发生,需要进行数据库修复。

2.2.4 恢复与验证阶段

7、关闭数据库

利用dmrman数据库进行数据库恢复时,需要先关闭数据库。

在DM Service Viewer中,对DmServiceDMSERVER执行stop关闭数据库。

8、重建数据库实例

卸载数据库实例,新建同配置的数据库实例。

备注:重建的主要目的是创建dm.ini,建议生产上对dm.ini进行备份,则不需重建实例,放入/dm8/data/DAMENG/下即可。

9、还原数据库

如果未做步骤3,最近一次数据库备份是完全备份,需要从完全备份的备份集进行恢复,如下:

RMAN> restore database '/dm/data/DAMENG/dm.ini' from backupset 'db_full_back_01';

如果做了步骤3,最近一次数据库备份是增量部分,则需要从增量备份的备份集进行恢复,如下:

RMAN> restore database '/dm/data/DAMENG/dm.ini' from backupset ' DB_DAMENG_INCREMENT_20220301_161528_000926';

其中,DB_DAMENG_INCREMENT_20220301_161528_000926是最后一次增量备份的目录,由系统自动命名。

10、恢复数据库

利用归档进行恢复:

RMAN> recover database  '/dm/data/DAMENG/dm.ini' with archivedir '/dm/data/DAMENG/arch';

11、更新数据库

RMAN> recover database  '/dm/data/DAMENG/dm.ini' update db_magic;

12、启动数据库

在DM Service Viewer中,对DmServiceDMSERVER执行start开启数据库。

13、检验结果

SQL>select * from dmhr.job;

查看结果,会发现数据全部都在,且job_id=72 时对应的min_salary为3500,说明数据库已经恢复,提交事务未丢失,未提交的事务回滚。

第三部分——总结

   达梦数据库DM8展示了良好数据安全保障能力。DM8不仅可以通过主从架构、多路归档等从数据库架构上提升安全性,还可以通过RAID10、单独块设备,从硬件级别加强数据安全保障。

  优秀的数据库产品是根本,严谨的备份习惯同样重要。考虑到业务的复杂性,有时候备份数据可能被其他程序破坏,或因其他原因,导致故障发生时无备份可用,还要定期对备份进行恢复验证。只有这样,才能更好地发挥达梦数据库的优秀数据安全保障能力,坚守数据安全底线。

标签:dm,数据库,SQL,DM8,2.2,DAMENG,备份,达梦
来源: https://blog.csdn.net/typ2004/article/details/123227013

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有