| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> 达梦数据库(DM8)生产部署规范建议及故障恢复测试 -> 正文阅读 |
|
[大数据]达梦数据库(DM8)生产部署规范建议及故障恢复测试 |
目录 前言对于金融行业尤其是银行来说,数据丢失风险的是不能忍受的。作为数据存储的仓库,数据库应当把保障数据安全作为底线进行坚守。达梦8数据库作为一款行业领先的数据库产品,提供了优秀的数据安全保障能力,确保在数据库发生故障时,通过还原之前的备份集,将数据恢复到可用状态。 本文主要分为两部分,第一部分,将首先给出一份生产部署规范建议;第二部分,将以实验的方式,以生产中的典型案例为例,介绍达梦8数据库(以下简称DM8)在遭遇数据盘数据全部损坏的情况,利用备份与还原技术,恢复全部数据,论证DM8如何能够给用户以信心。 第一部分——生产部署规范建议1.1?操作系统要求? ? 独立分区既有利于提高可靠性,也便于后期在线扩容。因而要求生产部门提供的基础环境里,要建立操作系统和数据库至少两个分区。
? ?从更高的安全角度上,可以采用独立块设备,搭建主从同步,建立多路归档等技术手段。 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 '/dm8/data/DAMENG/dm.ini' from backupset 'db_full_back_01'; 如果做了步骤3,最近一次数据库备份是增量部分,则需要从增量备份的备份集进行恢复,如下: RMAN> restore database '/dm8/data/DAMENG/dm.ini' from backupset ' DB_DAMENG_INCREMENT_20220301_161528_000926'; 其中,DB_DAMENG_INCREMENT_20220301_161528_000926是最后一次增量备份的目录,由系统自动命名。 10、恢复数据库 利用归档进行恢复: RMAN> recover database ?'/dm8/data/DAMENG/dm.ini' with archivedir '/dm8/data/DAMENG/arch'; 11、更新数据库 RMAN> recover database ?'/dm8/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、单独块设备,从硬件级别加强数据安全保障。 ? 优秀的数据库产品是根本,严谨的备份习惯同样重要。考虑到业务的复杂性,有时候备份数据可能被其他程序破坏,或因其他原因,导致故障发生时无备份可用,还要定期对备份进行恢复验证。只有这样,才能更好地发挥达梦数据库的优秀数据安全保障能力,坚守数据安全底线。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 11:04:46- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |