redo文件误删除后通过逻辑备份进行恢复
问题描述
开发同事让在一个服务器上查找下先前库的备份文件是否存在,如果存在进行下恢复。翻了服务器发现备份文件存在,多愁了一眼竟翻到了该备份文件于2024.6.17日恢复过的日志,赶紧和开发沟通说2024.6.17号已经恢复过了为啥还要恢复,开发这才说出关键:前几天清理磁盘,不小心将log文件删除了现在库不能启动,咨询了另一个DBA说是得重新恢复。可见沟通很关键啊,沟通后可不敢直接开干,多问问多翻翻多核实。
分析过程
查看服务器上备份文件
说明:db_20240617_TOPICIS_5238.dmp是由其他服务器上备份后上传到该服务器上并进行恢复的,db_20240617_TOPICIS_5238_imp.log是恢复日志。
[dmdba@db191 dmbak]$ ls -lhtr TOPICIS
-rw------- 1 dmdba dinstall 91G 6月 17 23:06 db_20240617_TOPICIS_5238.dmp
-rw------- 1 dmdba dinstall 1.8M 6月 17 23:06 db_20240617_TOPICIS_5238_exp.log
-rw-r–r-- 1 dmdba dinstall 3.1M 6月 18 04:37 db_20240617_TOPICIS_5238_imp.log
启动实例
查看配置文件
–查找配置文件
[root@db191 dmbak]# find / -name dm.ini
/opt/dmdb/topicis/topicis/dm.ini
/opt/dmdb/dzzzk/dzzzk/dm.ini
/opt/dmdb/DMSERVER/DAMENG/dm.ini
/opt/dmdb/xzspkp5555/xzspkp/dm.ini
–查看配置文件内容
[root@db191 dmbak]# cat /opt/dmdb/topicis/topicis/dm.ini | grep PORT
PORT_NUM = 5238 #Port number on which the database server will listen
ELOG_REPORT_LINK_SQL = 0 #Whether to write the SQLs that sent to remote database by DBLINKs into error log file
DFS_HUGE_SUPPORT = 1 #Whether support huge table operation in DDFS
EXTERNAL_JFUN_PORT = 6363 #DmAgent port for external java fun.
EXTERNAL_AP_PORT = 4236 #DmAp port for external fun.
DCRS_PORT_NUM = 6236 #Port number on which the database dcrs will listen
AP_PORT_NUM = 0 #Port number on which the database ap will listen
DW_PORT = 0 #Instance tcp port for watch2
HA_INST_CHECK_PORT = 65534 #HA instance check port
查看实例服务
db_20240617_TOPICIS_5238.dmp对应的是DmServiceTOPICIS.service
[root@db191 dmbak]# systemctl list-units D*
UNIT LOAD ACTIVE SUB DESCRIPTION
DmAPService.service loaded active running DM Assistant Plug-In Service(DmAPService).
DmServiceDMSERVER.service loaded active running DM Instance Service
● DmServicedzzzk.service loaded failed failed DM Instance Service
● DmServiceTOPICIS.service loaded failed failed DM Instance Service
DmServicexzspkp.service loaded active running DM Instance Service
启动实例
[root@db191 dmbak]# systemctl start DmServiceTOPICIS
Job for DmServiceTOPICIS.service failed because the control process exited with error code. See “systemctl status DmServiceTOPICIS.service” and “journalctl-xe” for details.
启动失败
查看启动失败日志
日志位置:安装目录/log下
cd /opt/dmdbms/log
tail -300f dm_TOPICIS_202410.log
输出如下:
2024-10-16 13:43:30.587 [INFO] database P0000001716 T0
000000000000001716 DM Database Server 64 V8 03134284044-20230703-194450-20040 startup…
2024-10-16 13:43:31.840 [INFO] database P0000001716 T0000000000000001716 fil_sys_init
2024-10-16 13:43:31.990 [INFO] database P0000001716 T0000000000000001716 Database mode = 0, oguid = 0
2024-10-16 13:43:31.991 [FATAL] database P0000001716 T0000000000000001716 /opt/dmdb/topicis/topicis/topicis01.log not exist,can not startup
2024-10-17 09:07:28.861 [INFO] database P0000020309 T0000000000000020309 INI parameter DPC_2PC changed, the original value 1, new value 0
2024-10-17 09:07:28.866 [INFO] database P0000020309 T0000000000000020309 version info: develop
2024-10-17 09:07:28.868 [INFO] database P0000020309 T0000000000000020309 os_sema2_create_low, create and inc sema success, key:125441262, sem_id:2, sem_value:1!
2024-10-17 09:07:28.874 [INFO] database P0000020309 T0000000000000020309 ini_set_secini, ini parameter PWD_POLICY changed, the original value 2, new value0
2024-10-17 09:07:29.650 [INFO] database P0000020309 T0000000000000020309 DM Database Server 64 V8 03134284044-20230703-194450-20040 startup…
2024-10-17 09:07:29.924 [INFO] database P0000020309 T0000000000000020309 fil_sys_init
2024-10-17 09:07:30.075 [INFO] database P0000020309 T0000000000000020309 Database mode = 0, oguid = 0
2024-10-17 09:07:30.075 [FATAL] database P0000020309 T0000000000000020309 /opt/dmdb/topicis/topicis/topicis01.log not exist,can not startup
解决办法
查看初始化参数
着重关注的参数有:
page size:单位字节 而初始化参数界面单位是K,注意转换
extent size:单位页
case sensitive:取值:Y、y、1 表示敏感;N、n、0 表示不敏感。默认值为 Y
charset:0 代表 GB18030,1 代表 UTF-8,2 代表韩文字符集 EUC-KR。默认为 0
length in char:VARCHAR 类型对象的长度是否以字符为单位。取值为 1 或者 Y 表示是,取值为 0 或 N 表示否。默认值为 0
cd /opt/dmdb/topicis/topicis
ls -l dminit*
输出如下:
[dmdba@db191 topicis]$ ls -l dminit*
-rw-r–r-- 1 dmdba dinstall 1009 6月 17 22:09 dminit20240617220946.log
[dmdba@db191 topicis]$ more dminit20240617220946.log
start init database: V8, 2024-06-17 22:09:46
init params:
db path: /opt/dmdb/topicis/topicis
db name: topicis
auto overwrite: 0
page size: 8192
extent size: 16
char_fix_storage: 0
sql_log_forbid: 0
secur_flag: 2
time zone: +08:00
string case sensitive: 1
charset: 1
length in char: 0
page check mode: 0
page check algorithm id: 0
priv flag: 0
env label: 0
rlog enc flag: 0
use new hash: 1
blank pad mode: 0
sec priv mode: 0
huge with delta: 1
rlog gen for huge: 1
pseg_mgr_flag: 0
log file path: /opt/dmdb/topicis/topicis/topicis01.log
log file path: /opt/dmdb/topicis/topicis/topicis02.log
create ini file /opt/dmdb/topicis/topicis/dm.ini success.
create rlog file /opt/dmdb/topicis/topicis/topicis01.log success.
create rlog file /opt/dmdb/topicis/topicis/topicis02.log success.
SYSTEM file : /opt/dmdb/topicis/topicis/SYSTEM.DBF
MAIN file : /opt/dmdb/topicis/topicis/MAIN.DBF
ROLL file : /opt/dmdb/topicis/topicis/ROLL.DBF
create dm database success. 2024-06-17 22:09:50
移除系统服务(重要)
systemctl disable DmServiceTOPICIS
cd /opt/dmdbms/bin
ls -l DmServiceTOPICIS
mv DmServiceTOPICIS DmServiceTOPICIS_bak_date +%F
,不然后面初始化实例提示如下报错:
更改故障实例的端口(重要)
将/opt/dmdb/topicis/topicis/dm.ini中的PORT_NUM更改为未占用的端口,本文档更改为9999,不然后面初始化实例提示如下报错:
创建新的数据目录并赋予权限
mkdir -p /opt/dmdb/topicis/topicisnew
chown -R dmdba:dinstall /opt/dmdb/topicis/topicisnew
初始化新实例
采用的是图形化,避免参数错。
运行Xmanager Power Suite 7下tools文件夹下的Xmanager - Passive工具
su - dmdba
export DISPLAY=192.168.19.74:0.0
cd /opt/dmdbms/tool
./dbca.sh
执行以下脚本
su - root
mv /opt/dmdbms/bin/DmServicetopicis.service /usr/lib/systemd/system/DmServicetopicis.service
systemctl enable DmServicetopicis.service
systemctl start DmServicetopicis.service
创建业务用户
create user topicis identified by “123456789”
limit failed_login_attemps unlimited, password_lock_time unlimited, password_grace_time unlimited;
grant “DBA” to topicis;
逻辑恢复
su - dmdba
nohup /opt/dmdbms/bin/dimp USERID=topicis/123456789:5238 FILE=db_20240617_TOPICIS_5238.dmp DIRECTORY=/opt/dmbak LOG=db_20241017_TOPICIS_5238_imp.log LOG_WRITE=Y PARALLEL=28 &
参考链接:达梦DM8之使用dmmdf恢复误删除的undo/redo文件_file dm.key not found, use default license!-CSDN博客
相关文章:

redo文件误删除后通过逻辑备份进行恢复
问题描述 开发同事让在一个服务器上查找下先前库的备份文件是否存在,如果存在进行下恢复。翻了服务器发现备份文件存在,多愁了一眼竟翻到了该备份文件于2024.6.17日恢复过的日志,赶紧和开发沟通说2024.6.17号已经恢复过了为啥还要恢复&#x…...
7805的输出电压如何调整?
7805稳压集成电路的输出电压通常是固定的,标称为5V。然而,在实际应用中,可以通过一些方法调整其输出电压,尽管这些调整方法可能会使电路变得更加复杂或需要额外的元件。以下是几种可能的调整方法: 1. 使用不同型号的稳…...

git命令使用一览【自用】
git常见操作: git initgit remote add master【分支名字】 gitgits.xxxxx【仓库中获取的ssh链接或者http协议的链接】检查远程仓库是否链接成功。 git remote -v出现以下画面就可以git pull,git push了...
MES系列-报表和分析
MES系列-报表和分析 MES系列文章目录 ISA-95制造业中企业和控制系统的集成的国际标准-(1) ISA-95制造业中企业和控制系统的集成的国际标准-(2) ISA-95制造业中企业和控制系统的集成的国际标准-(3) ISA-95制造业中企业和控制系统的集成的国际标准-(4) ISA-95制造业中企业和控制…...

如何在分布式环境中实现高可靠性分布式锁
目录 一、简单了解分布式锁 (一)分布式锁:应对分布式环境的同步挑战 (二)分布式锁的实现方式 (三)分布式锁的使用场景 (四)分布式锁需满足的特点 二、Redis 实现分…...

Vue基础(4)
自定义指令 除了默认设置的核心指令( v-model 和 v-show ), Vue 也允许注册自定义指令。在vue中使用directive来创建自定义指令 钩子函数 指令定义函数提供了几个钩子函数(可选): bind: 只调用一次,指令第一次绑定到元素时调用&…...

Redis高阶篇之Redis单线程与多线程
文章目录 0 前言1. 为什么Redis是单线程?1.1 Redis单线程1.2 为什么Redis3时代单线程快的原因1.3 使用单线程原因 2.为什么逐渐加入多线程呢?2.1 如何解决 3.redis6/7的多线程特性和IO多路复用入门3.1主线程和IO线程怎么协作完成请求处理的3.2 Unix网络编…...

【C++】STL——priority_queue优先级队列
目录 前言priority_queue的使用简单使用在OJ中的使用 priority_queue的模拟实现基本功能仿函数在这里插入图片描述 前言 上一节我们说了stack和queue这两种容器适配器,而priority_queue(优先级队列)同样也是属于容器适配器,它会优…...

大数据新视界 --大数据大厂之大数据在智慧城市建设中的应用:打造智能生活的基石
💖💖💖亲爱的朋友们,热烈欢迎你们来到 青云交的博客!能与你们在此邂逅,我满心欢喜,深感无比荣幸。在这个瞬息万变的时代,我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…...
使用枚举来实现策略模式
使用很多if else的场景 public void save(String type,Object data){if("db".equals(type)){saveInDb(data);}else if("file".equals(type)){saveInFile(data);}else if("oss".equals(type)){saveInOss(data);}}使用枚举来解决 public enum Save…...
区块链技术原理
1. 引言 区块链的定义 区块链是一种分布式账本技术(Distributed Ledger Technology,DLT),其核心特征是通过密码学的方式将数据打包成一个个区块,按时间顺序依次相连,形成一个不可篡改、公开透明的链式数据…...

Spring Boot 接口数据加解密
今天聊下接口安全问题,涉及到接口的加密和解密 经常和外部单位接口调用梳理了相关技术方案,主要的需求点如下: 1,尽量少改动,不影响之前的业务逻辑 2,考虑到时间紧迫性,可采用对称性加密方式&…...

2018年计算机网络408真题解析
第一题: 解析:TCP/IP体系结构应用层常用协议及其相应的运输层协议 TCP协议是面向连接可靠数据传输服务,UDP无连接不可靠的数据传输服务,IP无连接不可靠的数据连接服务。 FTP协议,SMTP协议和HTTP协议使用TCP协议提供的面…...

Javascript 脚本查找B站限时免费番剧
目录 前言 脚本编写 脚本 前言 B站的一些番剧时不时会“限时免费”,白嫖党最爱,主打一个又占到便宜的快乐。但是在番剧索引里却没有搜索选项可以直接检索“限时免费”的番剧,只能自己一页一页的翻去查看,非常麻烦。 自己找限…...
YoloV10改进策略:主干网络改进|DeBiFormer,可变形双级路由注意力|全网首发
摘要 在目标检测领域,YoloV10以其高效和准确的性能而闻名。然而,为了进一步提升其检测能力,我们引入了DeBiFormer作为YoloV10的主干网络。这个主干网络的计算量比较大,不过,上篇双级路由注意力的论文受到很大的关注,所以我也将这篇论文中的主干网络用来改进YoloV10,卡多…...

C#学习笔记(一)
C#学习笔记(一) 简介第一章 上位机开发环境之 VS 使用和.NET 平台基础一、安装软件二、创建项目三、第一个Hello world四、解决方案与项目五、Debug 和 Release 的区别六、代码的生产过程七、CLR的其它功能 简介 C# .NET工控上位机开发 在工控领域&…...

MATLAB边缘检测
一、目的: 熟悉边缘检测原理,并运用matlab软件实现图像的canny边缘检测,体会canny边缘检测的优缺点。 二、内容: 编写matlab程序,实现对lena图像的边缘检测,输出程序运行结果。 三、原理或步骤&#x…...

Tortoise SVN 安装汉化教程(乌龟SVN)
1.首先下载 去官网下载 如果下载比较慢的,链接自取 https://pan.quark.cn/s/cb6f2eee3f90 2. 安装Tortoise SVN 无脑next到完成 最后到桌面右键 你就发现svn出来了,但是是英文的!!!! 像我这种英文不好的…...

深入了解Spring重试组件spring-retry
在我们的项目中,为了提高程序的健壮性,很多时候都需要有重试机制进行兜底,最多就场景就比如调用远程的服务,调用中间件服务等,因为网络是不稳定的,所以在进行远程调用的时候偶尔会产生超时的异常࿰…...

海南聚广众达电子商务咨询有限公司靠谱吗怎么样?
在当今这个数字化浪潮席卷全球的时代,抖音电商以其独特的魅力成为了众多商家争相入驻的新蓝海。而在这片浩瀚的电商海洋中,如何找到一家既专业又可靠的合作伙伴,成为了众多商家心中的一大难题。今天,我们就来深入剖析一下海南聚广…...
java_网络服务相关_gateway_nacos_feign区别联系
1. spring-cloud-starter-gateway 作用:作为微服务架构的网关,统一入口,处理所有外部请求。 核心能力: 路由转发(基于路径、服务名等)过滤器(鉴权、限流、日志、Header 处理)支持负…...

(十)学生端搭建
本次旨在将之前的已完成的部分功能进行拼装到学生端,同时完善学生端的构建。本次工作主要包括: 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...

Appium+python自动化(十六)- ADB命令
简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...
React Native 开发环境搭建(全平台详解)
React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...

遍历 Map 类型集合的方法汇总
1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...
Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务
通过akshare库,获取股票数据,并生成TabPFN这个模型 可以识别、处理的格式,写一个完整的预处理示例,并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务,进行预测并输…...

论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)
笔记整理:刘治强,浙江大学硕士生,研究方向为知识图谱表示学习,大语言模型 论文链接:http://arxiv.org/abs/2407.16127 发表会议:ISWC 2024 1. 动机 传统的知识图谱补全(KGC)模型通过…...

ElasticSearch搜索引擎之倒排索引及其底层算法
文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南
🚀 C extern 关键字深度解析:跨文件编程的终极指南 📅 更新时间:2025年6月5日 🏷️ 标签:C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言🔥一、extern 是什么?&…...
A2A JS SDK 完整教程:快速入门指南
目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库ÿ…...