关于达梦数据库一些疑难杂症的解决

1.在用root用户时开启了./manage 或 ./console 工具后,用其他用户开启显示No protocol specified
具体的报错:

[dmdba@localhost tool]$ ./manager
(Manager:10369): GLib-GObject-WARNING **: 18:44:34.490: invalid (NULL) pointer instance
(Manager:10369): GLib-GObject-CRITICAL **: 18:44:34.490: g_signal_connect_data: assertion ‘G_TYPE_CHECK_INSTANCE (instance)’ failed
(Manager:10369): Gtk-CRITICAL **: 18:44:34.491: IA__gtk_settings_get_for_screen: assertion ‘GDK_IS_SCREEN (screen)’ failed
(Manager:10369): Gtk-WARNING **: 18:44:34.498: Screen for GtkWindow not set; you must always set
 a screen for a GtkWindow before using the window(Manager:10369): Gtk-WARNING **: 18:44:34.498: Screen for GtkWindow not set; you must always set
 a screen for a GtkWindow before using the window(Manager:10369): Gdk-CRITICAL **: 18:44:34.498: IA__gdk_screen_get_display: assertion ‘GDK_IS_SCREEN (screen)’ failed
(Manager:10369): Gdk-CRITICAL **: 18:44:34.498: IA__gdk_display_get_pointer: assertion ‘GDK_IS_DISPLAY (display)’ failed
(Manager:10369): Gdk-CRITICAL **: 18:44:34.498: IA__gdk_screen_get_monitor_at_point: assertion ‘GDK_IS_SCREEN (screen)’ failed
(Manager:10369): Gtk-WARNING **: 18:44:34.498: Screen for GtkWindow not set; you must always set
 a screen for a GtkWindow before using the window(Manager:10369): Gdk-CRITICAL **: 18:44:34.498: IA__gdk_screen_get_n_monitors: assertion ‘GDK_IS_SCREEN (screen)’ failed
(Manager:10369): Gtk-WARNING **: 18:44:34.498: Screen for GtkWindow not set; you must always set
 a screen for a GtkWindow before using the window(Manager:10369): Gdk-CRITICAL **: 18:44:34.498: IA__gdk_screen_get_monitor_geometry: assertion ‘GDK_IS_SCREEN (screen)’ failed
(Manager:10369): Gdk-CRITICAL **: 18:44:34.498: IA__gdk_screen_get_default_colormap: assertion ‘GDK_IS_SCREEN (screen)’ failed
(Manager:10369): Gdk-CRITICAL **: 18:44:34.498: IA__gdk_colormap_get_visual: assertion ‘GDK_IS_COLORMAP (colormap)’ failed
(Manager:10369): Gdk-CRITICAL **: 18:44:34.498: IA__gdk_screen_get_default_colormap: assertion ‘GDK_IS_SCREEN (screen)’ failed
(Manager:10369): Gdk-CRITICAL **: 18:44:34.498: IA__gdk_screen_get_root_window: assertion ‘GDK_IS_SCREEN (screen)’ failed
(Manager:10369): Gdk-CRITICAL **: 18:44:34.498: IA__gdk_screen_get_root_window: assertion ‘GDK_IS_SCREEN (screen)’ failed
(Manager:10369): Gdk-CRITICAL **: 18:44:34.498: 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=0x00007f016c3ea2c7, pid=10369, tid=139644245047040
JRE version: 6.0_26-b03
Java VM: Java HotSpot™ 64-Bit Server VM (20.1-b02 mixed mode linux-amd64 compressed oops)
Problematic frame:
C [libgdk-x11-2.0.so.0+0x7b2c7] __float128+0x7
An error report file with more information is saved as:
/dm8/tool/hs_err_pid10369.log
If you would like to submit a bug report, please visit:
http://java.sun.com/webapps/bugreport/crash.jsp

The crash happened outside the Java Virtual Machine in native code.

See problematic frame for where to report the bug.

./manager: 行 17: 10369 已放弃 (吐核)“达梦数据库 SHOW DATABASES报错 达梦数据库 问题_JavaDM_HOME” -Djava.library.path=“达梦数据库 SHOW DATABASES报错 达梦数据库 问题_linux_02TOOL_HOME/log4j.xml” -DeclipseHome=“达梦数据库 SHOW DATABASES报错 达梦数据库 问题_java_03INSTALL_LANGUAGE” -Ddameng.dts.explorer.root=“达梦数据库 SHOW DATABASES报错 达梦数据库 问题_linux_04TOOL_HOME/workspace/local/isql” -Duse_bak2=true -Dapp.name=manager -XX:MaxPermSize=256m -jar “达梦数据库 SHOW DATABASES报错 达梦数据库 问题_java_05TOOL_HOME/manager.bmp” -data "达梦数据库 SHOW DATABASES报错 达梦数据库 问题_java_06

问题原因:用root用户登录后Display变量改变

解决办法:将ROOT用户下和普通用户下的 Display变量值改成一致,并分别运行 xhost+命令关闭用户访问权限

达梦数据库 SHOW DATABASES报错 达梦数据库 问题_sql_07

ROOT用户这里改成DISPLAY =: 0

达梦数据库 SHOW DATABASES报错 达梦数据库 问题_linux_08


普通用胡也改成DISPLAY =: 0

运行xhost+

达梦数据库 SHOW DATABASES报错 达梦数据库 问题_linux_09


达梦数据库 SHOW DATABASES报错 达梦数据库 问题_sql_10


大功告成

2.安装数据运行命令时提醒No protocol Specified
其实这个问题和第一个一样

问题原因:当前操作系统的登录用户应该为非dmdba用户,如果在当前会话中启用图形界面需要将图形界面权限放开。

No protocol specified

Exception in thread “main” org.eclipse.swt.SWTError: No more handles [gtk_init_check() failed]

at org.eclipse.swt.SWT.error(SWT.java:4109)

at org.eclipse.swt.widgets.Display.createDisplay(Display.java:902)

at org.eclipse.swt.widgets.Display.create(Display.java:890)

at org.eclipse.swt.graphics.Device.<init>(Device.java:154)

at org.eclipse.swt.widgets.Display.<init>(Display.java:499)

at org.eclipse.swt.widgets.Display.<init>(Display.java:490)

at org.eclipse.swt.widgets.Display.getDefault(Display.java:1693)

at org.eclipse.swt.widgets.Shell.<init>(Shell.java:260)

at org.eclipse.swt.widgets.Shell.<init>(Shell.java:358)

at org.eclipse.jface.window.Window.createShell(Window.java:487)

at org.eclipse.jface.window.Window.create(Window.java:430)

at org.eclipse.jface.dialogs.Dialog.create(Dialog.java:1089)

at org.eclipse.jface.window.Window.open(Window.java:790)

at com.dameng.install.ui.MainApplication.run(Unknown Source)

at com.dameng.install.ui.MainApplication.main(Unknown Source)

[dmdba@localhost mnt]$

解决方法
切换到root用户后在命令行中输入xhost +,可以使得dmdba可以调用图形界面进行安装。
  1. 利用DMRMAN备份时出现“管道连接失败”的错误信息现象描述备份时出现 故障“管道连接失败”
    问题原因
    遇到这种问题时的场景,一般是安装时在完成安装之前没有注册dmap服务,这样的情况下需要去注册并启动dmap服务;也有可能是dmap服务被意外关闭,这种情况下启动dmap服务即可。

解决方法

1、重启dmap服务

若没有注册dmap服务,有三种启动方式可供参考:

1.前台启动dmap

前台启动dmap,在安装路径下的bin目录下,用./dmap即可启动dmap服务,但在前台启动的方式下,关闭启动的当前窗口,dmap即会被关闭。

2.后台启动dmap

以这种方式启动dmap,在关闭当前窗口后dmap服务不会被关闭。

3.通过脚本注册dmap服务,用服务方式启动

利用脚本进行dmap服务注册并启动,在完整的软件安装过程中,在完成安装前原本应该以root身份运行脚本来注册启动dmap的。脚本在$DM_HOME/root目录下。