【YashanDB数据库】VMware虚拟机使用默认安装,在掉电之后数据库无法启动

简介: VMware虚拟机使用默认安装,在掉电之后数据库无法启动

问题现象
客户使用VMware虚拟机使用默认安装,部署YashanDB个人版,在掉电之后无法启动

操作系统:

Virtualization: VMware

Operating System: CentOS Linux 7 (Core)

CPE OS Name: cpe:/o:centos:centos:7

Kernel: Linux 3.10.0-1160.el7.x86_64

Architecture: x86-64

[yashan@localhost ~]$ nohup /home/yashan/yasdb_home/yashandb/23.1.1.100/bin/yasdb open -D /home/yashan/yasdb_data/db-1-1 &

[1] 6684

[yashan@localhost ~]$ nohup: ignoring input and appending output to ‘nohup.out’

[yashan@localhost ~]$ cat nohup.out

Starting instance nomount

Instance started

Starting instance open

[1]+ Segmentation fault (core dumped) nohup /home/yashan/yasdb_home/yashandb/23.1.1.100/bin/yasdb open -D /home/yashan/yasdb_data/db-1-1

问题单:客户测试库启动后很快就Segmentation fault

问题的风险及影响
客户为个人环境,掉电后无法拉起,手动拉起会出现coredump,影响个人使用

问题影响的版本
YashanDB版本:

YashanDB Server Personal Edition Release 23.1.1.100 x86_64 0e623bd

问题发生原因
VMware因为涉及虚拟化层,存在一些特有机制和考量。VMware使用缓存来提高磁盘操作速度,包括读缓存和写缓存。写操作可能先写入缓存,然后根据策略决定何时将数据落盘。

在默认安装模式下,数据不会实时落盘(实测方式:可以在虚拟机中新增文件,随机写入内容,观察虚拟机文件修改时间是否发生变化,可以确认文件没有实时写入物理磁盘)。

因为客户环境中的磁盘文件落盘不是实时,掉电过程出现异常,导致undo中的lsn比ctrl中的lsn大的情况,进而导致数据库无法启动。

解决方法及规避方式
因为是个人环境,没有真实数据,重新安装新版本的YashanDB。

问题分析和处理过程
1、客户反馈是掉电,DOUBLE_WRITE_ENABLED默认为TRUE,一线反馈客户没有修改该参数

2、分析出问题的堆栈位置setGroupBlocksLsn COD_PANIC,head->lsn是 undo block的lsn,而assist->lsn是系统全局的lsn自增得到的;

系统的lsn先写入ctrl文件,再写入undo文件,在db启动的时候系统全局的lsn从ctrl文件中读取,逻辑上确保undo的lsn比系统的lsn小;

3、发现VMware虚拟机默认安装为虚拟磁盘。在默认安装方式下,在虚拟机中新增文件,随机写入内容,观察虚拟机文件修改时间并未发生变化,可以确认文件没有实时写入物理磁盘。

在默认安装模式下,掉电之后,虚拟机出现磁盘文件损坏,无法进入虚拟机:

4、VMware因为涉及虚拟化层,存在一些特有机制和考量。 VMware使用缓存来提高磁盘操作速度,包括读缓存和写缓存。写操作可能先写入缓存,然后根据策略(如ESXi的磁盘调度器策略)决定何时将数据落盘。实测使用“强制写入”策略(VMware的“独立-永久”磁盘模式)可确保数据立即写入,以提高数据安全性。

5、因为客户环境中的磁盘文件落盘不是实时, 掉电过程出现异常, 导致undo中的lsn比ctrl中的lsn大的情况, 进而导致数据库无法启动。

官网参考说明:

更改虚拟硬盘节点和模式设置 (VMware.com)

在物理磁盘或未使用的分区上安装客户机操作系统 (VMware.com)

经验总结

1、VMware虚拟机,使用物理磁盘。

2、对虚拟磁盘需要设置独立-永久(创建虚拟机的时候才能修改, 启动之后不能修改):

配置成功, 在首页即可看到对应的标志:

相关文章
|
8月前
|
存储 分布式计算 Linux
安装篇--CentOS 7 虚拟机安装
VMware 装 CentOS 7 不知道从哪下手?这篇超详细图文教程手把手教你在 VMware Workstation 中完成 CentOS 7 桌面系统的完整安装流程。从 ISO 镜像下载、虚拟机配置,到安装图形界面、设置用户密码,每一步都有截图讲解,适合零基础新手快速上手。装好之后无论你是要搭 Hadoop 集群,还是练 Linux ,这个环境都够你折腾一整天!
3618 3
|
10月前
|
编解码 网络协议 网络安全
OpenWrt x86 虚拟机VMware ESXi安装
OpenWrt x86 虚拟机VMware ESXi安装
|
8月前
|
Ubuntu 安全 关系型数据库
安装与配置MySQL 8 on Ubuntu,包括权限授予、数据库备份及远程连接指南
以上步骤提供了在Ubuntu上从头开始设置、配置、授权、备份及恢复一个基础但完整的MySQL环境所需知识点。
990 7
|
Ubuntu 关系型数据库 Linux
Linux数据库安装
本文介绍了在CentOS 8.0和Ubuntu 22.04系统上安装、配置和启动MariaDB数据库服务器的详细步骤。包括通过`yum`和`apt`包管理器安装MariaDB服务,启动并检查服务运行状态,设置root用户密码以及连接数据库的基本操作。此外,还展示了如何在Ubuntu上更新软件包列表、安装依赖项,并验证MariaDB的版本和运行状态。通过这些步骤,用户可以成功部署并初始化MariaDB环境,为后续数据库管理与应用开发奠定基础。
814 61
|
SQL 关系型数据库 MySQL
MySQL下载安装全攻略!小白也能轻松上手,从此数据库不再难搞!
这是一份详细的MySQL安装与配置教程,适合初学者快速上手。内容涵盖从下载到安装的每一步操作,包括选择版本、设置路径、配置端口及密码等。同时提供基础操作指南,如数据库管理、数据表增删改查、用户权限设置等。还介绍了备份恢复、图形化工具使用和性能优化技巧,帮助用户全面掌握MySQL的使用方法。附带常见问题解决方法,保姆级教学让你无忧入门!
1352 21
MySQL下载安装全攻略!小白也能轻松上手,从此数据库不再难搞!
|
人工智能 安全 虚拟化
企业级Win11纯净部署指南|VMware虚拟机安装+GPT分区优化+绕过限制详解(小白必看)
Windows 11 是微软推出的新一代操作系统,以其直观交互和 AI 技术为核心升级亮点。界面采用圆角设计与居中任务栏布局,支持多窗口贴靠分屏、虚拟桌面功能,大幅提升多任务处理效率。系统深度集成了 Copilot 智能助手,提供语音写作、照片编辑等便捷功能,并通过 DirectStorage 和 DirectX 12 Ultimate 技术优化游戏体验。本文详细介绍 Windows 11 的下载、U盘制作及安装步骤,帮助用户快速上手全新系统。
3114 37
|
监控 数据库
【YashanDB 知识库】ycm 托管数据库时报错 OM host ip:127.0.0.1 is not support join to YCM
在托管数据库时,若 OM 的 IP 被设置为 127.0.0.1,将导致无法托管至 YCM,并使数据库失去监控。此问题源于安装时修改了 OM 的监听 IP。解决方法包括:将 OM 的 IP 修改为本机实际 IP 或 0.0.0.0,同时更新 env 文件及 yasom 后台数据库中的相关配置。经验总结指出,应避免非必要的后台 IP 修改,且数据库安装需遵循规范,不使用仅限本机访问的 IP(如 127.0.0.1)。
|
存储 安全 数据库
风险防不胜防?看 YashanDB 如何守护你的数据库安全(上篇)
数据库作为信息系统核心,其安全性至关重要。本文聚焦数据库安全机制中的访问管理,涵盖身份认证、访问控制与反入侵措施。YashanDB通过口令认证、操作系统认证及双因素认证确保用户身份安全;实施基于角色(RBAC)和标签(LBAC)的访问控制,实现权限精细化管理;同时利用黑白名单与连接监听机制防范未授权访问和恶意攻击。这些措施共同保障数据的机密性、完整性和可用性,助力企业满足国家合规要求。下期将探讨威胁检测与数据保护内容,敬请期待!
|
存储 SQL 安全
风险防不胜防?看 YashanDB 如何守护你的数据库安全(下篇)
本文深入探讨数据库安全机制中的威胁监测与数据保护。在威胁监测方面,YashanDB 提供权限、行为和角色审计功能,支持异步审计降低性能影响,并通过安全漏洞扫描和硬件防护减少漏洞危害。数据保护部分涵盖通信加密(支持国密标准)、存储加密(表空间透明加密TDE)、备份加密及密钥管理等关键技术。此外,YashanDB 支持热备、增量备份和按时间点恢复,并实现安全销毁防止信息泄露,全面保障数据的机密性、完整性和可用性。
|
监控 Java Shell
【YashanDB 知识库】ycm 托管数据库时,数据库非 OM 安装无法托管
本文主要介绍了因数据库未按规范使用 yasboot 安装导致的问题及解决方法。问题表现为无 yasom 和 yasagent 进程,且目录结构缺失,致使 ycm 无法托管与监控。分析发现可能是数据库版本旧或安装不规范引起。解决方法为先生成配置文件,安装 yasom 和 yasagent,再生成并修改托管配置模板,最终通过命令完成托管至 yasom 和 ycm。总结强调了按规范安装数据库的重要性以避免类似问题。