关于达梦数据库一些疑难杂症的解决
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 已放弃 (吐核)“DM_HOME” -Djava.library.path=“TOOL_HOME/log4j.xml” -DeclipseHome=“INSTALL_LANGUAGE” -Ddameng.dts.explorer.root=“TOOL_HOME/workspace/local/isql” -Duse_bak2=true -Dapp.name=manager -XX:MaxPermSize=256m -jar “TOOL_HOME/manager.bmp” -data "
问题原因:用root用户登录后Display变量改变
解决办法:将ROOT用户下和普通用户下的 Display变量值改成一致,并分别运行 xhost+命令关闭用户访问权限
ROOT用户这里改成DISPLAY =: 0
普通用胡也改成DISPLAY =: 0
运行xhost+
大功告成
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可以调用图形界面进行安装。
- 利用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目录下。