Migrating to Linux from Proprietary UNIX
Migrating into Linux can be very easy or very difficult, depending on your existing Oracle configuration. It is not uncommon to see small “dialect” differences between implementations of UNIX, especially with respect to display output and command arguments.
Those shops that find a migration difficult are those that have made extensive use of operating system utilities for their Oracle functions:
External scheduling of Oracle tasks
– Crontab
– Windows “at” scheduling
Extensive use of OS shell scripts
– Automated e-mail alerts (new dumps, alert log messages, Linux syslog messages)
– File system alerts
– Server overload alerts
If you avoid the OS trap and use Oracle to schedule all Oracle tasks you can easily port your database across OS platforms. This is especially true if you migrate to Oracle10g where Oracle automatically collects OS metrics and has a built-in alert and scheduling mechanism:
- Migrate to Oracle10g
- Schedule all Oracle tasks with dbms_scheduler
- Use the Oracle dbms_alert package to replace OS scripting
Linux Command Syntax examples
Display the number of CPUs cat /proc/cpuinfo|grep processor|wc –l
Show top CPU% ps aux|sort -n +2
Display top-10 CPU consumers ps aux|sort -rn +2|head -10
RAM memory display freeShutdown server as root /sbin/shutdown -r now
Kill all xxx processes pkill [-9] “xxx”
Show swap paging space /sbin/swapon -s
Show Linux syslog errors tail /var/log/messages
Show swap disk details swapon -s
See held memory segments ipcs -m
Show Linux system parms sysctl -a
Linux command history files history|more
Migrating from Sun to Linux can be especially problematic because of the syntax differences and the different output from the utilities such as vmstat and netstat. This can cause considerable re-writing of shell scripts.
vmstat Linux:
>vmstat 2 5
procs memory swap io system cpu
r b w swpd free buff cache si … bi bo in cs us sy id
1 0 0 140 90372 726988 26228 0 … 0 0 14 7 0 0 4
0 0 0 140 90372 726988 26228 0 … 0 2 103 11 0 0 100
vmstat Solaris:
>vmstat 2 5
procs memory page disk faults cpu
r b w swap free re mf pi po … s6 — – in sy cs us sy id
0 0 0 2949744 988800 0 4 0 0 … 0 0 0 148 200 41 0 0 99
0 0 0 2874808 938960 27 247 0 1 … 0 0 0 196 434 64 1 2 98
Display number of CPU’s:
Linux:
>cat /proc/cpuinfo|grep processor|wc -l
16Solaris:>psrinfo -v|grep “Status of processor”|wc -l
8
RAM Size in Linux:
>free
total used free shared buffers cached
Mem: 3728668 504688 3223980 41316 430072 29440
-/+ buffers/cache: 45176 3683492
Swap: 265032 608 264424RAM Size in Solaris:>prtconf|grep -i mem
Memory size: 2048 Megabytes
memory (driver not attached)
virtual-memory (driver not attached)
Netstat Differences
On any Sun and Linux server the netstat utility provides information about all network traffic touching the server. However the output is different:
Solaris netstat
>netstat
TCP: IPv4
Local Address Remote Address Swind Send-Q Rwind Recv-Q State
————- ——————- —– —— —– —— ———–
sting.32773 ting.1521 32768 0 32768 0 ESTABLISHED
sting.1521 ting.32773 32768 0 32768 0 ESTABLISHED
sting.32774 ting.1521 32768 0 32768 0 ESTABLISHED
Linux netstat
In Linux, we see that the output from netstat is quite different from Solaris:
>netstat
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 donsrv1.rov:netbios-ssn intranet.janet.com:1351 ESTABLISHED
tcp 0 0 donsrv1.janet.com:1120 sting.janet.com:ssh TIME_WAIT
tcp 0 40 donsrv1.janet.com:ssh hpop3-146.gloryroa:1096 ESTABLISHED
Ironically the syntax differences between proprietary UNIX and Linux can hinder your migration and shops that use SFU on Windows often have a far easier migration. In sum, those Oracle shops that avoid OS utilities such as scheduling (crontab) and shell scripts will find database migration very easy.
From http://www.dba-oracle.com/t_linux_unix_migration.htm