Monday, 13 August 2018

Configure VNC on Exadata Database Machine

You can access database servers remotely by using tools such as PuTTY and Virtual Network Computing (VNC) which are freely available for download. In most cases, accessing a database server in a command-line mode via PuTTY is enough. Sometimes we may need to access a database server to run GUI-based software. For example, to run runInstaller to install Oracle software or DBCA to create databases. In these cases, VNC comes handy as it support GUI-based interface.

VNC allows you to run GUI interface on database server. It allows you to execute programs locally on the server, while only the screen output is sent to the VNC client on your desktop. you can use the vncserver command to configure VNC.


In this article we will demonstrate how to install VNC package using 2 different methods, start VNC session and run some Graphical interface tools to ensure VNC is configured correctly on the server.


Step 1: Installing VNC Package 


  • Get the Exadata software version (optional)

[root@dm01db01 ~]# imageinfo

Kernel version: 4.1.12-94.7.8.el6uek.x86_64 #2 SMP Thu Jan 11 20:41:01 PST 2018 x86_64
Image kernel version: 4.1.12-94.7.8.el6uek
Image version: 12.2.1.1.6.180125.1
Image activated: 2018-05-03 01:49:58 -0500
Image status: success
System partition on device: /dev/mapper/VGExaDb-LVDbSys1


  • Get the Exadata Model (optional)

[root@dm01db01 ~]# dbmcli -e list dbserver attributes makeModel
         Oracle Corporation SUN SERVER X4-2


  • Check if VNC package already exists. In my case VNC is not configured.

[root@dm01db01 ~]# rpm -qa tigervnc*


  • Get the Operating System version and update

[root@dm01db01 yum.repos.d]# cat /etc/oracle-release
Oracle Linux Server release 6.9


  • You can install packages in 2 ways:
    1. Using proxy server. This should be configured by your Organization network engineer already.
    2. Using Local Yum repository

Using proxy server


  • Get the proxy server details from your network engineer
  • Set the http_proxy environment variable

[root@dm01db01 ~]# export http_proxy=webproxy:80


  • Navigate to YUM repository directory

[root@dm01db01 ~]# cd /etc/yum.repos.d/

[root@dm01db01 yum.repos.d]# ls -ltr
total 24
-rw-r--r-- 1 root root 6843 May  7  2016 public-yum-ol6.repo
-r--r----- 1 root root  896 Jan 26 05:19 Exadata-computenode.repo.sample
-rw-r----- 1 root root  291 May  3 01:59 Exadata-computenode.repo


  • Open the public-yum-ol6.repo and uncomment enabled=1 for the following 2 stanza

[root@dm01db01 yum.repos.d]# vi public-yum-ol6.repo

[ol6_latest]
name=Oracle Linux $releasever Latest ($basearch)
baseurl=http://yum.oracle.com/repo/OracleLinux/OL6/latest/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=1

[ol6_u9_base]
name=Oracle Linux $releasever Update 9 installation media copy ($basearch)
baseurl=https://yum.oracle.com/repo/OracleLinux/OL6/9/base/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=1

[root@dm01db01 yum.repos.d]# ls -ltr
total 36
-r--r----- 1 root root   896 Jan 26 05:19 Exadata-computenode.repo.sample
-rw-r----- 1 root root   291 May  3 01:59 Exadata-computenode.repo
-rw-r--r-- 1 root root 10544 May  9 10:09 public-yum-ol6.repo


  • Perform the Yum clean up

[root@dm01db01 yum.repos.d]# yum clean all
Cleaning repos: ol6_latest ol6_u8_base ol6_u9_base
Cleaning up Everything


  • List the yum repositories

[root@dm01db01 yum.repos.d]# yum repolist
ol6_latest                                                                                                                            | 1.4 kB     00:00
ol6_latest/primary                                                                                                                    |  68 MB     00:01
ol6_latest                                                                                                                                         40153/40153
ol6_u7_base                                                                                                                           | 1.4 kB     00:00
ol6_u7_base/primary                                                                                                                   | 3.2 MB     00:00
ol6_u7_base                                                                                                                                        8428/8428
repo id                                                        repo name                                                                           status
ol6_latest                                                     Oracle Linux 6Server Latest (x86_64)                                                32,690+7,463
repolist: 39,319


  • Install the VNC package as shown below

[root@dm01db01 yum.repos.d]# yum install tigervnc*
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package tigervnc.x86_64 0:1.1.0-24.el6 will be installed
---> Package tigervnc-server.x86_64 0:1.1.0-24.el6 will be installed
--> Processing Dependency: libxshmfence.so.1()(64bit) for package: tigervnc-server-1.1.0-24.el6.x86_64
---> Package tigervnc-server-applet.noarch 0:1.1.0-24.el6 will be installed
---> Package tigervnc-server-module.x86_64 0:1.1.0-24.el6 will be installed
--> Processing Dependency: xorg-x11-server-Xorg for package: tigervnc-server-module-1.1.0-24.el6.x86_64
--> Running transaction check
---> Package libxshmfence.x86_64 0:1.2-1.el6 will be installed
...
...
Transaction Summary
=============================================================================================================================================================================================
Install      24 Package(s)

Total download size: 4.3 M
Installed size: 11 M
Is this ok [y/N]: y
...
...
Installed:
  tigervnc.x86_64 0:1.1.0-24.el6        tigervnc-server.x86_64 0:1.1.0-24.el6        tigervnc-server-applet.noarch 0:1.1.0-24.el6        tigervnc-server-module.x86_64 0:1.1.0-24.el6

Dependency Installed:
  acl.x86_64 0:2.2.49-7.el6_9.1           cryptsetup-luks.x86_64 0:1.2.0-11.el6   cryptsetup-luks-libs.x86_64 0:1.2.0-11.el6           hal.x86_64 0:0.5.14-14.el6
  hal-info.noarch 0:20090716-5.el6        hal-libs.x86_64 0:0.5.14-14.el6         hdparm.x86_64 0:9.43-4.el6                           libepoxy.x86_64 0:1.2-3.el6
  libevdev.x86_64 0:1.4.5-2.el6           libxshmfence.x86_64 0:1.2-1.el6         mesa-libEGL.x86_64 0:11.0.7-4.el6                    mesa-libgbm.x86_64 0:11.0.7-4.el6
  mtdev.x86_64 0:1.1.5-1.el6              pm-utils.x86_64 0:1.2.5-11.el6          system-setup-keyboard.x86_64 0:0.7-4.el6             xorg-x11-drv-evdev.x86_64 0:2.9.2-1.el6
  xorg-x11-drv-vesa.x86_64 0:2.3.4-1.el6  xorg-x11-drv-void.x86_64 0:1.4.1-1.el6  xorg-x11-server-Xorg.x86_64 0:1.17.4-16.0.1.el6_9.1  xorg-x11-server-common.x86_64 0:1.17.4-16.0.1.el6_9.1

Complete!


  • Verify the VNC package is installed

[root@dm01db01 yum.repos.d]# rpm -qa | grep tigervnc*
tigervnc-server-applet-1.1.0-24.el6.noarch
tigervnc-server-1.1.0-24.el6.x86_64
tigervnc-server-module-1.1.0-24.el6.x86_64
tigervnc-1.1.0-24.el6.x86_64


Using Local Yum repository 

This method is useful when you don't have internet access through proxy.

Refer to the blog article below on how to configure a local yum repository on Exadata
http://netsoftmate.blogspot.com/2018/05/create-local-yum-repository-on-Exadata.html


Step 2: Configure VNC Server


  • Login as root or any other user you want to configure VNC server
  • Execute the vncserver command. On the prompt enter any password of your choice

[root@dm01db01 ~]# vncserver

You will require a password to access your desktops.

Password:
Verify:

Warning: dm01db01.netsoftmate.com:1 is taken because of /tmp/.X1-lock
Remove this file if there is no X server dm01db01.netsoftmate.com:1

New 'dm01db01.netsoftmate.com:2 (root)' desktop is dm01db01.netsoftmate.com:2

Creating default startup script /root/.vnc/xstartup
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/dm01db01.netsoftmate.com:2.log

3. Verify VNC server is running and note down the port number. Here the VNC server is running at dm01db01.netsoftmate.com:3 for root user

[root@dm01db01 ~]# ps -ef|grep vnc
root     141816 297951  0 12:14 pts/1    00:00:00 grep vnc
root     356225      1  0 11:02 pts/1    00:00:00 /usr/bin/Xvnc :3 -desktop dm01db01.netsoftmate.com:3 (root) -httpd /usr/share/vnc/classes -auth /root/.Xauthority -geometry 1024x768 -rfbwait 30000 -rfbauth /root/.vnc/passwd -rfbport 5903 -fp catalogue:/etc/X11/fontpath.d -pn
root     356351      1  0 11:02 pts/1    00:00:00 vncconfig -iconic


Step 3: Test VNC Connection and GUI interface


  • Download and Install VNC Viewer. Here I am using VNC Tiger for Windows
  • Double Click on VNC Viewer icon to launch VNC Viewer

  • Enter the host name and port. You can get these by execute the command "ps -ef|grep vnc" on the server

  • Enter the password provided at the time of configuring vncserver

  • The VNC session is displayed

  • Now test the GUI interface by starting some GUI tool. Here I am going to start DBCA to test the GUI interface





Conclusion

In this article we have learned how to install, configure and test VNC server on Exadata compute node. VNC allows you to run GUI interface on database server. It allows you to execute programs locally on the server, while only the screen output is sent to the VNC client on your desktop. you can use the vncserver command to configure VNC.

No comments:

Post a Comment

Comparing Oracle Database Appliance X8-2 Model Family

September 2019 Oracle announced Oracle Database Appliance X8-2 (Small, Medium and HA). ODA X8-2 comes with more computing resources com...