关于达梦数据库一些疑难杂症的解决
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 已放弃 (吐核)“ J A V A H O M E / b i n / j a v a " − X X : + P e r f D i s a b l e S h a r e d M e m − D D M H O M E = " JAVA_HOME/bin/java" -XX:+PerfDisableSharedMem -DDM_HOME=" JAVAHOME/bin/java"−XX:+PerfDisableSharedMem−DDMHOME="DM_HOME” -Djava.library.path=“ D M H O M E / b i n " − D d a m e n g . l o g . f i l e = " DM_HOME/bin" -Ddameng.log.file=" DMHOME/bin"−Ddameng.log.file="TOOL_HOME/log4j.xml” -DeclipseHome=“ T O O L H O M E " − D o s g i . n l = " TOOL_HOME" -Dosgi.nl=" TOOLHOME"−Dosgi.nl="INSTALL_LANGUAGE” -Ddameng.dts.explorer.root=“ T O O L H O M E / w o r k s p a c e / l o c a l / d t s " − D d a m e n g . i s q l . e x p l o r e r . r o o t = " TOOL_HOME/workspace/local/dts" -Ddameng.isql.explorer.root=" TOOLHOME/workspace/local/dts"−Ddameng.isql.explorer.root="TOOL_HOME/workspace/local/isql” -Duse_bak2=true -Dapp.name=manager -XX:MaxPermSize=256m -jar “ T O O L H O M E / p l u g i n s / o r g . e c l i p s e . e q u i n o x . l a u n c h e r 1 . 1.1. R 36 x v 2010112 2 1 400. j a r " − o s l i n u x − w s g t k − a r c h x 8 6 6 4 − s h o w s p l a s h " TOOL_HOME/plugins/org.eclipse.equinox.launcher_1.1.1.R36x_v20101122_1400.jar" -os linux -ws gtk -arch x86_64 -showsplash " TOOLHOME/plugins/org.eclipse.equinox.launcher1.1.1.R36xv201011221400.jar"−oslinux−wsgtk−archx8664−showsplash"TOOL_HOME/manager.bmp” -data " T O O L H O M E / w o r k s p a c e / m a n a g e r " − p r o d u c t c o m . d a m e n g . m a n a g e r . p r o d u c t − n a m e M a n a g e r [ d m d b a @ l o c a l h o s t t o o l ] TOOL_HOME/workspace/manager" -product com.dameng.manager.product -name Manager [dmdba@localhost tool] TOOLHOME/workspace/manager"−productcom.dameng.manager.product−nameManager[dmdba@localhosttool]
问题原因:用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目录下。