linux系统启动达梦迁移工具失败解决办法

  在达梦数据库服务端的tool目录下执行./dts来启动迁移工具,迁移工具启动前出现报错,以下提供几种遇到问题的解决办法:

1. 报错1:

  执行./dts,报错提示:

[yyuser@qy-ggyf-zyl-19 tool]$ ./dts
An error has occurred. See the log file
/home/yyuser/.eclipse/765490010/configuration/1662603058182.log.
[yyuser@qy-ggyf-zyl-19 tool]$ cat /home/yyuser/.eclipse/765490010/configuration/1662603058182.log
!SESSION 2022-09-08 10:10:58.076 -----------------------------------------------
eclipse.buildId=M20110210-1200
java.version=1.8.0_20
java.vendor=Oracle Corporation
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=zh_CN
Framework arguments:  -product com.dameng.dts.product
Command-line arguments:  -os linux -ws gtk -arch x86_64 -data /u01/dmdbms/bin/tool/workspace/dts -product com.dameng.dts.product

!ENTRY org.eclipse.osgi 4 0 2022-09-08 10:10:58.552
!MESSAGE Application error
!STACK 1
java.lang.UnsatisfiedLinkError: Could not load SWT library. Reasons:
        /u01/dmdbms/bin/bin/libswt-pi-gtk-3659.so: libgtk-x11-2.0.so.0: cannot open shared object file: No such file or directory
        Can't load library: /u01/dmdbms/bin/bin/libswt-pi-gtk.so
        /u01/dmdbms/bin/tool/configuration/org.eclipse.osgi/bundles/92/1/.cp/libswt-pi-gtk-3659.so: libgtk-x11-2.0.so.0: cannot open shared object file: No such file or directory
        no swt-pi-gtk in java.library.path

  日志显示错误要点如下:

java.lang.UnsatisfiedLinkError: Could not load SWT library. Reasons:
        /u01/dmdbms/bin/bin/libswt-pi-gtk-3659.so: libgtk-x11-2.0.so.0: cannot open shared object file: No such file or directory

  解决办法:

[root@qy-ggyf-zyl-19 ~]# yum install gtk2 libXtst xorg-x11-fonts-Type1

2. 报错2

  执行./dts,报错提示:

[yyuser@qy-ggyf-zyl-19 tool]$ ./dts

(Dts:9470): GLib-GObject-WARNING **: 10:13:57.470: invalid (NULL) pointer instance

(Dts:9470): GLib-GObject-CRITICAL **: 10:13:57.470: g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed

(Dts:9470): Gtk-CRITICAL **: 10:13:57.471: IA__gtk_settings_get_for_screen: assertion 'GDK_IS_SCREEN (screen)' failed

(Dts:9470): Gtk-WARNING **: 10:13:57.528: Screen for GtkWindow not set; you must always set
a screen for a GtkWindow before using the window

(Dts:9470): Gtk-WARNING **: 10:13:57.528: Screen for GtkWindow not set; you must always set
a screen for a GtkWindow before using the window

(Dts:9470): Gdk-CRITICAL **: 10:13:57.528: IA__gdk_screen_get_display: assertion 'GDK_IS_SCREEN (screen)' failed

(Dts:9470): Gdk-CRITICAL **: 10:13:57.529: IA__gdk_display_get_pointer: assertion 'GDK_IS_DISPLAY (display)' failed

(Dts:9470): Gdk-CRITICAL **: 10:13:57.529: IA__gdk_screen_get_monitor_at_point: assertion 'GDK_IS_SCREEN (screen)' failed

(Dts:9470): Gtk-WARNING **: 10:13:57.529: Screen for GtkWindow not set; you must always set
a screen for a GtkWindow before using the window

(Dts:9470): Gdk-CRITICAL **: 10:13:57.529: IA__gdk_screen_get_n_monitors: assertion 'GDK_IS_SCREEN (screen)' failed

(Dts:9470): Gtk-WARNING **: 10:13:57.529: Screen for GtkWindow not set; you must always set
a screen for a GtkWindow before using the window

(Dts:9470): Gdk-CRITICAL **: 10:13:57.529: IA__gdk_screen_get_monitor_geometry: assertion 'GDK_IS_SCREEN (screen)' failed

(Dts:9470): Gdk-CRITICAL **: 10:13:57.529: IA__gdk_screen_get_default_colormap: assertion 'GDK_IS_SCREEN (screen)' failed

(Dts:9470): Gdk-CRITICAL **: 10:13:57.529: IA__gdk_colormap_get_visual: assertion 'GDK_IS_COLORMAP (colormap)' failed

(Dts:9470): Gdk-CRITICAL **: 10:13:57.529: IA__gdk_screen_get_default_colormap: assertion 'GDK_IS_SCREEN (screen)' failed

(Dts:9470): Gdk-CRITICAL **: 10:13:57.529: IA__gdk_screen_get_root_window: assertion 'GDK_IS_SCREEN (screen)' failed

(Dts:9470): Gdk-CRITICAL **: 10:13:57.529: IA__gdk_screen_get_root_window: assertion 'GDK_IS_SCREEN (screen)' failed

(Dts:9470): Gdk-CRITICAL **: 10:13:57.529: IA__gdk_window_new: assertion 'GDK_IS_WINDOW (parent)' failed
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00007fe9a95ac597, pid=9470, tid=140642869528320
#
# JRE version: OpenJDK Runtime Environment (8.0_20-b26) (build 1.8.0_20-b26)
# Java VM: OpenJDK 64-Bit Server VM (25.20-b23 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# C  [libgdk-x11-2.0.so.0+0x7b597]  gdk_window_enable_synchronized_configure+0x7
#
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:
# /tmp/hs_err_pid9470.log
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.sun.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#
./dts: line 17:  9470 Aborted                 "$JAVA_HOME/bin/java" -Dswt.library.path="$DM_HOME/bin" -DBMJ=true -XX:+PerfDisableSharedMem -DDM_HOME="$DM_HOME" -Djava.library.path="$DM_HOME/bin" -Ddameng.log.file="$TOOL_HOME/log4j.xml" -DeclipseHome="$TOOL_HOME" -Dosgi.nl="$INSTALL_LANGUAGE" -Ddameng.dts.config.file="$TOOL_HOME/dts.xml" -Ddameng.dts.drivers.dir="$TOOL_HOME/dropins/com.dameng/plugins/com.dameng.jdbc.drivers" -Ddameng.dts.explorer.root="$TOOL_HOME/workspace/local/dts" -Ddameng.isql.explorer.root="$TOOL_HOME/workspace/local/isql" -Dapp.name=dts -jar "$TOOL_HOME/plugins/org.eclipse.equinox.launcher_1.1.1.R36x_v20101122_1400.jar" -os linux -ws gtk -arch x86_64 -showsplash "$TOOL_HOME/dts.bmp" -data "$TOOL_HOME/workspace/dts" -product com.dameng.dts.product -name Dts

  

根据上述报错“Screen for GtkWindow not set; you must always set a screen for a GtkWindow before using the window”提示的是图形化界面窗口设置异常,即问题属于图形化界面调用异常;

在Linux/Unix类操作系统上的GUI应用程序使用X Window系统(X Window System),它旨在允许多个用户使用窗口化的应用程序通过网络访问计算机。 DISPLAY环境变量用来设置将图形显示到何处。

然后我们确认当前环境设置的环境变量DISPLAY:

[root@qy-ggyf-zyl-19 tool]# echo $DISPLAY

[root@qy-ggyf-zyl-19 tool]# xhost +
-bash: xhost: command not found

根据上面命令执行情况可以看出,root用户下DISPLAY变量为空,即不生效了,xhost + 这个命令,是允许别的用户启动的图形程序将图形显示在当前屏幕上。接下来我们需要设置DISPLAY变量和安装xhost命令

设置DISPLAY变量:export DISPLAY=:0.0

安装xhost命令:yum -y install xhost。随后执行xhost +

注意:需要两个用户配置, 普通用户配置:export DISPLAY=:0.0,root执行:xhost +

 

posted @ 2022-09-08 15:21  查拉图斯特拉面条  阅读(932)  评论(0编辑  收藏  举报