UNIX Basics for the DBA

 

UNIX Basics for the DBA
Basic UNIX Command
The following is a list of commonly used Unix command:
      • ps - Show process
      • grep - Search files for text patterns
      • mailx - Read or send mail
      • cat - Join files or display them
      • cut - Select columns for display
      • awk - Pattern-matching language
      • df - Show free disk space
Here are some examples of how the DBA uses these commands:

      • List available instances on a server:
$ ps -ef | grep smon
  oracle 21832     1  0   Feb 24 ?       19:05 ora_smon_oradb1
  oracle   898     1  0   Feb 15 ?        0:00 ora_smon_oradb2
    dliu 25199 19038  0 10:48:57 pts/6    0:00 grep smon
  oracle 27798     1  0 05:43:54 ?        0:00 ora_smon_oradb3
  oracle 28781     1  0   Mar 03 ?        0:01 ora_smon_oradb4

      • List available listeners on a server:
$ ps -ef | grep listener | grep -v grep
  oracle 23879    1  0   Feb 24 ?  33:36 /8.1.7/bin/tnslsnr listener_db1 -inherit
  oracle 27939    1  0 05:44:02 ?  0:00  /8.1.7/bin/tnslsnr listener_db2 -inherit
  oracle 23536    1  0   Feb 12 ?  4:19  /8.1.7/bin/tnslsnr listener_db3 -inherit
  oracle 28891    1  0   Mar 03 ?  0:01  /8.1.7/bin/tnslsnr listener_db4 -inherit

      • Find out file system usage for Oracle archive  destination:
$ df -k | grep oraarch
  /dev/vx/dsk/proddg/oraarch 71123968 4754872 65850768  7%  /u09/oraarch

      • List number of lines in the alert.log file:
$ cat alert.log | wc -l
   2984

      • List all Oracle error messages from the alert.log file:
$ grep ORA- alert.log
  ORA-00600: internal error code, arguments: [kcrrrfswda.1], [], [], [], [], []
  ORA-00600: internal error code, arguments: [1881], [25860496], [25857716], []
CRONTAB Basics
A crontab file is comprised of six fields:
       Minute0-59
       Hour0-23
       Day of month1-31
       Month1 - 12
       Day of Week0 - 6, with 0 = Sunday
       Unix Command or Shell Scripts
      • To edit a crontab file, type:
   Crontab -e

      • To view a crontab file, type:
                 Crontab -l
     0  4 * * 5       /dba/admin/analyze_table.ksh
     30 3  * * 3,6    /dba/admin/hotbackup.ksh /dev/null 2>&1

In the example above, the first entry shows that a script to analyze a table  runs every Friday at 4:00 a.m. The second entry shows that a script to perform a  hot backup runs every Wednesday and Saturday at 3:00 a.m.
Top DBA Shell Scripts for Monitoring the Database
The eight shell scripts provided below cover 90 percent of a DBA's daily  monitoring activities. You will need to modify the UNIX environment variables as  appropriate.