环境:
TEST.EMPLOYEE 表,3 条记录)学习并完成达梦数据库间的静态数据迁移(DM → DM),并记录过程中遇到的所有问题及处理方法。
ssh -p 5264 -L 8081:127.0.0.1:8080 root@10.36.41.11http://127.0.0.1:8081/dem,默认账号 admin/888888。127.0.0.1:5238,SYSDBA/Dameng123,已有 TEST.EMPLOYEE 表。127.0.0.1:5237(即 DEM 后台库),空库。如下图所示:
test。127.0.0.1,端口 5238,用户 SYSDBA,密码 Dameng123,测试连接 成功。127.0.0.1,端口 5237,用户 SYSDBA,密码 Dameng123,测试连接 成功。TEST 模式,并勾选“创建模式”和“表”选项。EMPLOYEE 表。具体操作如下图所示:
127.0.0.1,端口 6364(默认),校验 KEY 999999,执行端口和启动参数留空。ps -ef | grep dmagent,发现未启动。su - dmdba
cd /home/dmdba/dmdbms/tool/dmagent
./start.sh agent.ini
报错:Agent service key invalid, agent start fail, use INSTALL_SERVICE_KEY to install service key first!生成./start.sh INSTALL_SERVICE_KEY 999999
service.key 文件。ss -tlnp | grep 6364)。结论:DEM 迁移模块在无可用本地执行方式时,即使配置了远程代理也可能因权限或版本问题无法使用。决定放弃 DEM 迁移,转向独立 DTS 工具。
下载:官网 或 GitHub Releases,下载 .dmg(如 XQuartz-2.7.11.dmg)。
重启 Mac 确保生效。
启动 XQuartz:从 Launchpad 打开,保持运行。
ssh -X -p 5264 root@10.36.41.11
echo $DISPLAY
期望输出 localhost:10.0 或类似。/etc/ssh/sshd_config,添加或修改:X11Forwarding yes
X11UseLocalhost no
systemctl restart sshd。ssh -X,echo $DISPLAY 显示 localhost:10.0,成功。dmdba 用户:su - dmdba
su - 会重置环境变量,导致 DISPLAY 丢失。需手动设置:export DISPLAY=:0.0
/home/dmdba/dmdbms/tool/dts
yum install -y wqy-microhei-fonts wqy-zenhei-fonts
yum install -y fontconfig
fc-cache -fv
export LANG=zh_CN.UTF-8
export LC_ALL=zh_CN.UTF-8
dts,出现 Java 崩溃,报错:# A fatal error has been detected by the Java Runtime Environment:
# SIGSEGV (0xb) at pc=0x00007f... C [libgdk-x11-2.0.so.0+0x7b597] gdk_window_enable_synchronized_configure+0x7
GDK_SYNCHRONIZE=0、GTK_MODULES=""、LIBOVERLAY_SCROLLBAR=0 等,均无效。export GDK_SYNCHRONIZE=0
export GTK_MODULES=""
export LIBOVERLAY_SCROLLBAR=0
/home/dmdba/dmdbms/tool/dts
yum install -y epel-release yum install -y xorg-x11-server-Xvfb
Xvfb :99 -screen 0 1024x768x24 &
/etc/ssh/sshd_config 增加 X11UseLocalhost no 并重启 sshd。ssh -Y(受信任转发)代替 -X,仍然崩溃。export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
无效。hs_err_pid*.log,查看关键帧:# Problematic frame:
# C [libgdk-x11-2.0.so.0+0x7b597] gdk_window_enable_synchronized_configure+0x7
明确是 GTK2 库问题,无法通过环境变量解决。| 问题 | 尝试的解决方法 | 最终结果 |
|---|---|---|
| DEM 无本地执行方式 | 添加 DTS 代理,启动 dmagent | 代理连接成功,但任务仍无法执行 |
| X11 转发 DISPLAY 为空 | 修改 sshd_config,重启 sshd | 成功显示 DISPLAY |
| 第一次启动 DTS 成功但乱码 | 安装中文字体,设置 LANG | 乱码仍存在,但功能可用 |
| 关闭后再次启动崩溃 | 调整 GTK_MODULES、GDK_SYNCHRONIZE | 无效 |
| Xvfb 安装 | 启用 EPEL,安装 Xvfb | 成功安装但启动 DTS 仍崩溃 |
| 受信任 X11 转发 | 使用 ssh -Y | 无效 |
根本原因:DTS 的 Java 图形层依赖特定版本的 GTK2 库,而 CentOS 7 默认版本为 2.24.31,与 DTS 不兼容。
可用替代方案:
dexp/dimp 完成迁移(逻辑导出导入)。鉴于 Linux 环境下 DTS 图形界面无法稳定运行,决定转向 Windows 虚拟机执行 DTS,迁移成功(此部分不在本文档范围内)。
文章
阅读量
获赞
