首页 > 其他分享 >达梦的后续调试

达梦的后续调试

时间:2023-10-07 21:23:09浏览次数:29  
标签:dm 后续 数据库 ping 达梦 本地 服务器 调试

目录


回顾

上次笔记总结和完成了dm的基本操作、概念理解和“本地工程与本地达梦”情况下、结合实例的数据迁移、写入操作

关于一个django工程如何与达梦数据库连接的全程总结 - 言行一 - 博客园 (cnblogs.com)

接下来针对“本地工程与远程达梦”情况进行 问题描述和逐步解决 的相关经验分享

目前情况

项目:

django框架下的前后端分离项目,后端采用python,前端vuE

问题:

本地负责使用pycharm和webstorm分别运行前后端,在此本地机上,使用“远程桌面连接”输入指定ip以操控远端服务器。远端只扮演数据库角色,本地的后端项目settings中,在DATABASE部分写入数据库的具体信息,运行migrate迁移命令时报错如下:

Traceback (most recent call last):

...略

SystemError: <class 'dmPython.Connection'> returned a result with an exception set

向chatgpt反映后认为“问题出现在本地的项目和具体代码上”,

但无法解释我在本地仅改动数据库指向的引擎和IP,就可以成功执行迁移命令且成功写入新数据

具体行为:
  • 本地MySQL和达梦数据库(数据库和项目在同一电脑,即127.0.0.1)可以成功连接 √

  • 远端的MySQL数据库可以成功连接 √

  • 唯独远端的达梦数据库报错如上述 √

我认为工程文件是无误的,如果代码和环境有问题那么无法和本地的达梦数据库成功连接,而这与事实相悖


与供应商客服沟通得出以下部分检查步骤

可排除的要素


确定参数
name

在远程的服务器上的DM管理工具中新建查询,运行

select name from v$database

查看结果以确认应该往name后写什么

image-20231007150250431
host

远端终端内使用ipconfig命令查看ip应该写什么(下图的ping命令在后文)

image-20231007120322791
关于 6001 网络通讯异常

确认数据库是否真的正常启动了,如果未正常启动,登录时报错误号:6001,错误消息:网络通信异常

Windows 通过 资源管理器看 后台 是否有 dmsvc.exe 进程

在达梦自带的“服务查看器”应用 检查DmAPService、DmServiceDMSERV是在运行的;

image-20231007150533297
关于Datagrip

DataGrip (DG) 出自JetBrains公司,是一款跨平台可视化数据库管理工具,可在Windows,OS X 和 Linux上使用;同时支持多种数据库Oracle,PostgreSQL,MySQL等等;使用其连接到数据库服务器,执行sql、创建表、创建索引以及导出数据等。在此插入DG是因为笔者使用该工具来测试连接(dm官方的“管理工具”亦可)

具体操作由菜单栏常规创建,只需注意填写好DriversName,在General中Driver files添加并选择 DmJdbcDriver18.jar。Class选择dm.jdbc.driver.DmDriver,如下图

image-20231007210159733
默认端口参数

端口号可以在数据库安装目录下的 dm.ini 文件中找到 PORT_NUM 确认

ping和telnet

通过 ping 命令(例如在命令提示符内ping www.baidu.com 看是否有回执)检查网络是否通畅

通过 telnet 命令检查端口是否通畅,具体的使用方法请自行通过网络搜索

最大会话数限制

确定是否达到最大会话数限制(无法建立新的连接),在 dmdbms/log 目录下,查看当月日志。例如本月(10 月)的日志名为:dm_DMSERVER_202310.log 若日志中有 reach the maxsession limit 的提示,则说明达到最大会话数限制

防火墙

本地机和远端的阿里服务器均已从注册表强制关停了防火墙(风险较大,属于最后手段,个人按需);

最终解决措施

通过由本地ping到远端以此方式检查问题,即本机发起

ping 47.92.208.149

与 由本地ping到另一服务器(ping 39.105.190.141)发现差异:

image-20231007210743953

由此暂定解决方式为重新在141服务器内从头开始配置达梦与dmPython环境和资源编译。

标签:dm,后续,数据库,ping,达梦,本地,服务器,调试
From: https://www.cnblogs.com/yansz001216/p/17747516.html

相关文章

  • CDGA|数据治理:公司建设数仓后的后续工作指南
    在当今的数字化时代,数据被视为企业的重要资产。为了更好地管理和利用这些数据,许多公司纷纷建设了数据仓库(数仓)。然而,建设数仓只是数据治理旅程的一部分,接下来还需要进行一系列的后续工作,以确保数据的质量、安全性和有效性。本文将围绕数据治理展开,介绍公司在建设数仓后的后续工作。......
  • qemu搭建riscv的可调试环境
    qemu搭建riscv的可调试环境riscv工具链(网上大多数用Github直连的工具链,但是因为太大,download的时候老是出问题)选择使用Cross-compilationtoolchainsforLinux-Home(bootlin.com)进行下载,之后解压。bin目录下为可执行的工具链,将其添加到PATH中。qemuqemu压缩包下载......
  • vscode单步调试Android c++源码
    vscode单步调试Androidc++源码  目录步骤1.运行gdbclient.py脚本2.复制生成的launch.json并新建/home/jetson/android_aosp/aosp/.vscode/launch.json3.运行gdb即可,打断点参考 步骤注意:这个过程需要在Android源码环境中运行,可以使用adb端口转发工具,来......
  • VS Code开发React-Native及Flutter 开启无线局域网安卓真机调试问题
    VSCode开发React-Native及Flutter开启无线局域网安卓真机调试问题发布于 2020-10-2015:48:471.7K0举报笔者前段时间在做react-native开发,一直是有线连接安卓真机进行调试的。有线调试确实带来诸多麻烦,因为在调试过程中需要频繁和手机进行交互,导致有时候......
  • go语言ent教程:开启debug调试模式
    背景:ent模式是没有开启debug模式的 开启ent的调试模式有2种方法:一、通过配置选项开启client,err:=ent.Open("mysql","root:dev@123456@tcp(localhost:3306)/test?parseTime=True",ent.Debug()) 二、客户端调用Debug函数iferr:=client.Schema.Crea......
  • Lua断点调试 - 类似gdb的调试体验
    平时在做一个C++/Lua的项目,C++代码可以用gdb调试,但是Lua代码的调试却一直是个困扰人的难题。根据网上搜索的结果,无外乎都是用vscode插件调试,或者用socket之类的设施进行远程调试,个人都觉得太麻烦了,最好有个类似gdb那种直接在命令行中进行调试。不过经过我在网上的搜索,终于还是找......
  • Fast-Dds源码调试方案
    1、虚拟机安装:参考ubuntufastdds安装-墨尔基阿德斯-博客园(cnblogs.com);2、Ubuntu安装gdb:sudoaptinstallgdb3、查看gdb的安装路径(默认安装在/usr/bin/gdb):whichgdb4、配置调试参数,以示例程序HelloWorldExample为例:1)、重新编译fastdds库(只编译一次就行,更换......
  • 10.3 调试事件转存进程内存
    我们继续延申调试事件的话题,实现进程转存功能,进程转储功能是指通过调试API使获得了目标进程控制权的进程,将目标进程的内存中的数据完整地转存到本地磁盘上,对于加壳软件,通常会通过加密、压缩等手段来保护其代码和数据,使其不易被分析。在这种情况下,通过进程转储功能,可以将加壳程序的......
  • 10.2 调试事件获取DLL装载
    理解了如何通过调试事件输出当前进程中寄存器信息,那么实现加载DLL模块也会变得很容易实现,加载DLL模块主要使用LOAD_DLL_DEBUG_EVENT这个通知事件,该事件可检测进程加载的模块信息,一旦有新模块被加载或装入那么则会触发一个通知事件,利用该方法并配合磁盘路径获取函数则可很容易的实现......
  • 10.3 调试事件转存进程内存
    我们继续延申调试事件的话题,实现进程转存功能,进程转储功能是指通过调试API使获得了目标进程控制权的进程,将目标进程的内存中的数据完整地转存到本地磁盘上,对于加壳软件,通常会通过加密、压缩等手段来保护其代码和数据,使其不易被分析。在这种情况下,通过进程转储功能,可以将加壳程序的......