Category Archives: Other

Technical as well as non-technical stuff that don’t belong to any other category…

20th anniversary

When I started to work for a current employer in 1995 the company run a tiny Oracle 6 production database on IBM mainframe (OS/390). Nothing serious or big. The majority of data processing at that time was still done in Cobol and TPL. Development with Oracle*Case of the new state Business registry however started on LAN, with Oracle 7 on Netware 4. Yes. Life. Was. Exciting. Recovery from a server crash was almost a daily routine. But for a starter like me, it was definitely fun and exciting working environment.
In the mid 90’s company was using a myriad of OS’s (OS/390, Netware 3 and 4, OS/2, DOS, Windows 3.1, Windows 3.11, Windows NT 3.5, SCO Unix, IRIX….but not Windows 95!). We used two network protocols, primary one was IPX/SPX and secondary was TCP/IP (Oracle Listener was listening on IPX/SPX adapter). It was a ZOO.
After Microsoft released Windows NT 4 at the end of 1996, the decision was made to consolidate OS environment on NT 4 at every level, from laptops, desktops to the servers. With one exception. Two main file servers were left to run on Netware.
Why not Unix? Due to the lack of skilled workforce with strong Unix skills on the market it was somehow logical choice to pick a mainstream OS player.
So, on March 1997 we put our first non-mainframe production Oracle database in use. It was IBM PC Server 320 with two Pentium 133Mhz processors, a whooping 128MB of RAM and four 2GB Fast Wide SCSI disks. We run NT 4 and Oracle 7.3. Backups were done with ArcServe and HP Surestore DAT tape library. This first PC based host was (predictably) named ORANT.

At that time we were considered as weirdos (perhaps we still are?), because no one run Oracle production on Windows. Local Oracle representatives used us as a reference whenever someone asked them if anyone is using Oracle on NT or how stable Oracle is on NT. Honestly, from 1997-1999, it was not as stable as we wished to be (regular monthly reboots were needed), but it was certainly a giant leap forward compared to Oracle on Netware. The real stability came with Windows 2000/2003. Twenty years later our production still runs on Windows Servers, but this is gonna to change soon. Not because of the lack of stability (modern Windows Servers are rock solid, and we can prove it;) but because of clear Tux technology dominance and advantages in the Cloud/OSS era.

Anyway, I took a couple of screenshots from my VirtualBox guest, running Windows NT 4 (SP1) and Oracle 7.3.4:

For the record: installation of the Windows NT 4 took ~10 minutes. Installation of Oracle 7.3.4 with Replication option took another ~10 minutes (including building a database). It took 1.3GB of disk space for both OS, RDBMS and sample database. For comparison, Oracle 12c R2 ISO file with all the components is 9.7 GB.


Using ssh tunneling to gain access to remote VirtualBox guest attached to NAT

I’m building virtual machines on a weekly basis, sometimes daily. Most often I create various Linux distros as guests on VirtualBox hosts. VirtualBox hosts are either Windows or Linux computers. Majority of guests are built for test purposes only, so they often live in a “cage” behind a VirtualBox NAT. Guests with NIC attached to NAT have access to the LAN and Internet, but the opposite is not possible out of the box. So my typical NIC configuration for VirtualBox guest looks like this:

Fortunately, VirtualBox allows to configure port forwarding for NAT attached NIC’s. For every Linux guest I setup port forwarding for ssh (22), so that I can use MobaXterm (on Windows7/10) to connect to the Linux guest from the host itself. That’s how it looks:

That’s fine, as long as you have access to the host where your VBox guest is running, you can use MobaXterm to connect to the virtualbox guest. Seating at Windows 7 workstation we simply open MobaXterm and type:

Sometimes, I build virtual machines that I want to access from other machines as well and I don’t like to weaken security by attaching guest NIC’s to a Bridged adapter. Again, let’s call wonderful ssh to the rescue.

Situation: VirtualBox host is a Windows 2008 R2 Server (I’ll refer to this host as VBOXHOST). On this host we’re hosting Linux guest (OL7ORA12R2) with the latest Oracle 12.2 installation. Guest is behind a NAT, but with a port forwarding setup for ssh as shown above (picture 3). I would like to have access to this guest from remote workstation running Windows 7. All machines (physical Windows 7 & 2008R2, plus virtual Linux 7) are firewalled with ssh ports (22) left opened. On Windows 2008R2 is already running OpenSSH (Cygwin).

All that we need to do to get sqlplus access to remote Oracle 12.2 running in Linux guest from Windows 7 workstation is this:

On Windows 7 we start MobaXTerm terminal and run (note that by default Mobaxterm uses implicitly -X for ssh):
$ ssh -L 12201:localhost:12201 alesk@vboxhost -t ssh -L 12201:localhost:1521 alesk@localhost -p 2222

First, we're asked for password to connect to vbohost (Windows 2008 R2), then we're asked for password to login to virtual machine guest (Linux).

Note, that we must left the MobaXterm window open for a duration of SQL*Plus session that follows...

Now, we can connect from Windows 7 Workstation to the remote Oracle DB,  first open cmd and type:
cmd> sqlplus /nolog
cmd> connect c##alesk@'localhost:12201/ORA122'

What happens is illustrated on this picture:

  1. On Windows 7 we launched MobaXterm and run ssh command:
  2. $ ssh -L 12201:localhost:12201 alesk@vboxhost -t ssh -L 12201:localhost:1521 alesk@localhost -p 2222
    ssh -L 12201:localhost:12201 alesk@vboxhost  ........... tunnel #1 forwarding port 12201 (Windows 7) to port VBOXHOST (port 12201), in both cases on localhost.
    ssh -L 12201:localhost:1521 alesk@localhost -p 2222 .... tunnel #2 forwarding port 12201 (VBOXHOST) to port 1521 inside VirtualBox Guest, using port 2222 redirection done by VirtualBox itself. 
  3. On Windows 7 we opened sqlplus, connecting to localhost:12201. SSH redirected traffic to VBOXHOST:12201 (hop 1), followed by second redirection (hop 2) to Listener running inside VirtualBox.

What if we would like to run some GUI application on Linux guest? We can use X session forwarding, allowing us to see the GUI on our Windows 7 workstation. Like this:

We must open two MobaXterm terminals on Windows 7 workstation.

In the first MobaXterm terminal we type:

$ ssh -L 2222:localhost:2222 alesk@vboxhost

In the second MobaXterm terminal we type:

$ ssh alesk_guest@localhost -p 2222
alesk_guest@mint18 ~$ xclock &

….and xclock will popup on Windows 7 workstation but actually running on Linux guest. Note that alesk_guest is a Linux user on LinuxMint 18 guest and that guest is configured in the same way as before, behind a NAT and with ssh port forwarding (2222) at VirtualBox level. This option is handy to lauch Oracle gui configuration tools, like dbca, netca etc.

VirtualBox replacement for VMWare Server 2.0.2

As you might know, end of general support for VMWare Server 2.0 is in front of us; I knew for the best part of the year 2010 that I’ll have to replace VMWare Server with some equivalent (or better) hosting virtualization product. Finally, I decided to replace VMWare Server with VirtualBox. More or less because the VirtualBox is under vivid development, with frequent and stable releases and as of today, there is not a sign from Oracle that VirtualBox could end like a VMWare server. What I’ll miss the most is VMWare Server web admin console – I know some folks hated the web interface (Remote Console), I for one, found it outstanding. It’s pity that VMWare put an end to this product line.
Anyway, I found some articles on the web describing how to migrate from VMWare to VirtualBox. I managed to migrate Oracle Enterprise Linux VM’s following instructions from Karl Arao’s blog. For Windows VM’s I decided to do a clean install instead of tweaking Windows OS and repairing installation.
If time permits I’ll post my own screenshots that I took while migrating Oracle Ent. Linux 5.5 from VMWare Server to VirtualBox.

Create new VirtualBox VM that you’ll use to start VM from VMWare Server VMDK files:















Sharing Model on Dropbox 1.0.10

I was goofing around with the Dropbox sharing option, trying to find a workaround for the “implementation bug”; a sad fact that at the moment we can share folder(s) only in read-write mode. Don’t know how such fundamental flaw in a design was not addressed yet, at least not in the production version (1.0.10 as of now, December 31, 2010). However, I found some forum threads where something called “Get a sharable link” was mentioned, which allows for non-public file or folder to be shared in read-only mode. If you’re using current (production) version of Dropbox client you perhaps wonder how can you enable this beta feature. Well, after I spent a considerable time browsing various forum threads, I finally found the hint on how to enable Dropbox Sharable model.
All you need to do is to login to your Dropbox account and then open this url:
Hopefully, Dropbox team will release Sharable Model in production in early 2011, adding some additional features along the way (password protection being the most notable one).
After you enable sharable model you’ll see additional option in the main menu as shown on the picture:
as well as on the context menu of file or folder:

Warning! Despite the fact that generated link is hard to guess, it’s not unreasonable to expect that someone already has a script that can generate strings on the fly and then trying to open url’s, so use sharable links as a convenient feature for sharing files and/or folders of semipublic type — the ones that should not be put in official public folder, yet the World will not stop spinning if someone gets those files.

Windows 7 guest on VMWare Server 2.0

Today I spent considerable amount of time troubleshooting mysterious freezing of Windows 7 workstation that runs on VMWare Server 2.0.0 (Build 122589) as as guest. (I’m well aware that newer release of VMWare Server 2 is available and I would not hesitate installing it if I could only skip the required reboot of the host.)
Making long story short I finally found some indications on the net that video hardware acceleration might be the culprit for the problem. So, I turned Hardware acceleration completely off and problem was solved.