Documente Academic
Documente Profesional
Documente Cultură
SUN Free Software PCNFS installieren Installation Solaris mit Openwindows (Grafikkarte) How to Backup a System Packages (Software die installiert wurde) Monitor Mode (OK Prompt) Kernel Analyse Defaults einstellen Wichtige Konfigurationsfiles Admin Kommandos LAN konfigurieren IP-Routing konfigurieren DNS konfigurieren Anonymous FTP aufsetzen NFS-Client Konfiguration NFS-Server Konfiguration Automounter Modem konfigurieren SCSI-Harddisk an SUN Hardware anschliessen List Solaris Hardware Configuration Show Swap Space currently installed Show Operating System Patch Level How to install a Sun Solaris Jumbo Patch ?
Tracing System Calls Troubleshooting Solaris Device Files Short Tips to maintain Sun Solaris IP-Aliasing for SUN Solaris Solaris automounter installs filesystems by default in /net Solaris keyboard utility Monitoring Performance Enable file system journaling on Solaris 7 and 8 Solaris Syslog Daemon Debugging Does each Oracle Process use more than 100M memory ? Sizing up Solaris Memory with the RMCmem Package Using Sun Solaris Manuals directly from CD-ROM Why is the Sun Solaris System Corefile helpful ? DLT-TAPE UNIT INSTALLATION on Solaris 7/8/9 Reconfigure Devices on Solaris OpenBoot Diagnostics Why doesn't my .forward file work Simple Shell Script to backup your Files
--------------------------------------------------------------------------------
SUN Free Software Unter http://www.sunfreeware.com findet man "ready to use" Software fr SUN Solaris, wie beispielsweise TOP, AMANDA, GCC, GDB etc. Download via FTP von: ftp://nce.sun.ch/pub/freeware/sparc/7
PCNFS installieren CD-ROM Solaris Intranet Extension (siehe auch Solaris Server Intranet Extension Installation)
$ uname -u
Network Interface
$ ifconfig -a
/etc/rc2.d/S79staticroutes
CD-ROM rausnehmen
$ eject cdrom
Disklayout kontrollieren
$ prtvtoc /dev/rdsk/....
Automounter konfigurieren
/etc/auto_master, /etc/auto_home
How to Backup a System $ init 0 OK boot -s $ fsck -m /dev/dsk/c0t0d0s0 (und brige Filesysteme) $ tar cvf /dev/rmt/0l
$ pkginfo
$ pkgchk -v SUNWpcnfd
$ pkgrm SUNWpcnfd
OK boot -s
Kernel zwingen /devices neu aufzubauen nach dem Anschluss von neuer Hardware
OK boot -r
Detaillierter Bootvorgang
OK boot -v
OK boot cdrom
OK probe-scsi
List System Devices, e.g. SUNW,hme = Sun Fast Ethernet PCI Adapter
OK show-devs
OK show-nets
OK apply watch-net <full path name of the hme interface, see show-devs>
$ modinfo
Kernel Konfiguration
/etc/system
/var/adm/messages
/etc/syslog.conf
/etc/default
/etc/default/login
Timezone setzen
/etc/default/init
/etc/inittab
/etc/rc?.d
Scripts fr Run-Levels
/etc/init.d
LAN konfigurieren
$ ifconfig -a
$ arp -a
Device IP Address
Mask
------ -------------------- --------------- ----- --------------le0 rabbit le0 quorum le0 arkum 255.255.255.255 00:60:08:57:17:86
IP-Routing konfigurieren Alle hosts im Netz 193.72.239.0 werden ber den Router 193.72.194.201 erreicht.
Der host 146.228.14.10 wird ber den Router 193.72.194.100 erreicht. Siehe File /etc/rc2.d/S79staticroutes.
$ netstat -nr
/etc/resolv.conf
Reihenfolge definieren
/etc/nsswitch.conf
NFS-Client Konfiguration /etc/vfstab (Soll) --> /etc/mnttab (Ist) mount -F nfs -o bg,ro,soft gondwana:/usr/software /software
dfshares gondwana
$ share -o ro /usr/software
$ shareall
$ unshareall
/etc/init.d/nfs.server
$ share
Automounter - /etc/auto_master (Master Map konfigurieren) - /etc/auto_home (Home Direcories verwalten) - autofs ist ein spezielles Filesystem - automount -v (Nach einer Aenderung an einer Map ausfhren)
SCSI-Harddisk an SUN Hardware anschliessen Beispiel: SCSI-Disk Seagate ST150176L, 50MB an SUN Ultra Enterprise 1
disk_type = "Seagate ST150176L" \ : ctlr = "SCSI" \ : ncyl = 12022 : acyl = 2 : pcyl = 12024 : nhead = 22 : nsect = 369 \ : rpm = 7200 : bpt = 188928
Unbedingt kontrolieren, dass eine SCSI-Adresse nicht mehrfach belegt ist. Dazu kann meistens hinten am Gert ein Tippschalter eingestellt werden. Man beacht, dass in der Regel das letzte Gert terminiert werden muss.
In der Regel muss eine Disk nicht neu formatiert werden, ist dies jedoch notwendig so steht unter Solaris das Utility format zur Verfgung.
format
0. c0t0d0 <SUN2.1G cyl 2733 alt 2 hd 19 sec 80> /sbus@1f,0/espdma@e,8400000/esp@e,8800000/sd@0,0 1. c0t1d0 <SUN2.1G cyl 2733 alt 2 hd 19 sec 80> /sbus@1f,0/espdma@e,8400000/esp@e,8800000/sd@1,0 2. c0t2d0 <IBM-DDRS-39130-S71D cyl 8186 alt 2 hd 10 sec 218> /sbus@1f,0/espdma@e,8400000/esp@e,8800000/sd@2,0 3. c0t4d0 <SEAGATE-ST118273N-5764 cyl 7499 alt 2 hd 20 sec 237> /sbus@1f,0/espdma@e,8400000/esp@e,8800000/sd@4,0 4. c0t5d0 <SEAGATE-ST150176LW-0002 cyl 12022 alt 2 hd 22 sec 369>
/sbus@1f,0/espdma@e,8400000/esp@e,8800000/sd@5,0
format> type
AVAILABLE DRIVE TYPES: 0. Auto configure 1. DDRS-39130 2. Seagate ST118273 3. Seagate ST150176L 4. Quantum ProDrive 80S 5. Quantum ProDrive 105S 6. CDC Wren IV 94171-344 7. SUN0104 8. SUN0207 9. SUN0327 10. SUN0340 11. SUN0424 12. SUN0535 13. SUN0669 14. SUN1.0G 15. SUN1.05 16. SUN1.3G 17. SUN2.1G 18. SUN2.9G 19. IBM-DDRS-39130-S71D
20. SEAGATE-ST118273N-5764 21. SEAGATE-ST150176LW-0002 22. other Specify disk type (enter its number)[21]: 21
Disk partitionieren
Dadurch wird die Disk in logische Teile unterteilt. Jeder teil enthlt ein eigenes Filesystem.
format> part
partition> print
Current partition table (original): Total disk cylinders available: 2733 + 2 (reserved cylinders)
Part Tag Flag Cylinders Size Blocks 0 root wm 0 - 204 152.15MB (205/0/0) 311600 1 swap wu 205 - 377 128.40MB (173/0/0) 262960 2 backup wm 0 - 2732 1.98GB (2733/0/0) 4154160 3 home wm 378 - 1017 475.00MB (640/0/0) 972800 4 unassigned wm 0 0 (0/0/0) 0 5 unassigned wm 1018 - 1928 676.13MB (911/0/0) 1384720
Filesystem erstellen
newfs -v -m 0 /dev/rdsk/c0t5d0s0
Damit wird ein Filesystem mit 0 % Min-Free auf der Partition 0 der Disk an der SCSI-Adresse 5 erstellt.
Filesystem mounten
device to fsck
mount FS
yes
Show Swap Space currently installed Multiply the Blocks column by 512
$ swap -l
swapfile
/dev/dsk/c0t0d0s1 32,1
Patch: 105181-16
How to install a Sun Solaris Jumbo Patch ? - Download the Patch from: http://sunsolve.sun.com - Read the README File included in the Patch - Usually the only thing you have to do is:
Tracing System Calls You can trace system calls with truss on Solaris an strace on Linux
$ truss svrmgrl
Troubleshooting Solaris Device Files If you suspect troubles with your Solaris device files, e.g. system doesn't boot after a filesystem check, you may repair the solaris system using the following commands.
Halt the system immediately with the keys STOP-A, you will now see the boot prompt: OK
STOP-A
OK reset
OK boot -r
The command boot -r will rebuild all devices files according to your attached hardware. If you cannot boot the machine, you can try the following commands: drvconfig, disks, tapes
The default operation of drvconfig is to create the /devices directory tree that describes, in the filesystem namespace, the hardware layout of a particular machine. Hardware devices present on the machine and powered on as well as pseudo-drivers are represented under /devices. Normally this command is run automatically after a new driver has been installed (with add_drv(1M)) and the system has been rebooted.
disks - creates /dev entries for hard disks attached to the system
Disks creates symbolic links in the /dev/dsk and /dev/rdsk directories pointing to the actual disk device special files under the /devices directory tree.
tapes - creates /dev entries for tape drives attached to the system
Tapes creates symbolic links in the /dev/rmt directory to the actual tape device special files under the /devices directory tree. Tapes searches the kernel device tree to see what tape devices are attached to the system.
Short Tips to maintain Sun Solaris Here are some short tips for common tasks on SUN Solaris 2.6, 7 and 8
$ who -r
$ /usr/sbin/prtconf # Print the complete system configuration $ /sbin/mountall -l # Mount all local filesystems. $ /sbin/init S # Changing to single user mode
# /etc/mnttab: Contains information about devices that # are currently mounted. If there are mounted filesystems # with quotas enabled, display them
if /usr/bin/cut -f 4 /etc/mnttab | \ /usr/bin/egrep '^quota|,quota' >/dev/null 2>&1; then echo 'There are mounted filesystems with quotas enabled' fi
# You will also need to uncomment the sa entries in # the system crontab /var/spool/cron/crontabs/sys. # Refer to the sar(1) and sadc(1m) man pages # for more information.
# sysidtool is a suite of five programs that configure a new # system, or one that has been unconfigured with sys# unconfig(1M). The sysidtool programs run automatically at # system installation, or during the first boot after a # machine has been successfully unconfigured. # # These programs have no effect except at such times, and
cat /etc/nodename cat /etc/hostname.* cat /etc/default/init cat /etc/defaultdomain cat /etc/inet/hosts cat /etc/inet/netmasks
$ /usr/sbin/aspppd -d 1
# Getting Parameters Supported By The TCP Driver # To see which parameters are supported by the TCP driver, # use the following command:
$ ndd /dev/tcp \?
# The following command sets the value of the parameter # ip_forwarding in the IP driver to zero. This disables IP
# packet forwarding.
Disable IP Forwarding
# Configure default routers using the local "/etc/defaultrouter" # configuration file. The file can contain the hostnames or IP # addresses of one or more default routers. # # The default routes listed in the "/etc/defaultrouter" file will # replace those added by the kernel during diskless booting. An # empty "/etc/defaultrouter" file will cause the default route # added by the kernel to be deleted. # # Note that the default router file is ignored if we received routes # from a DHCP server. Our policy is to always trust DHCP over local # administration.
# rpcbind - universal addresses to RPC program number mapper # rpcinfo - report RPC information
# keyserv is a daemon that is used for storing the private # encryption keys of each user logged into the system. These # encryption keys are used for accessing secure network ser# vices such as secure NFS and NIS+.
$ /usr/sbin/keyserv
# If this machine is configured to be an Internet # Domain Name System (DNS) server, run the name daemon. # Start named prior to: route add net host, # to avoid dns gethostbyname timout delay for # nameserver during boot.
if [ -f /usr/sbin/in.named -a -f /etc/named.conf ]; then echo 'starting internet domain name server.' /usr/sbin/in.named & fi
cat /etc/hostname.hme0:1
ldap
# # Internet host table # 128.128.128.11 128.128.128.20 ux-portal1 ldap # IP-address on hme0:0 # IP-alias on hme0:1
#!/bin/sh # Akadia AG, Arvenweg 4, CH-3604 Thun # ---------------------------------------------------------------------# File: # # Autor: # # Purpose: Setup second IP address on hme0:1 # ---------------------------------------------------------------------Martin Zahn / 10.05.2000 ipalias
echo "Start multi-homed server for UX-ALIAS1 on hme0:1" ifconfig hme0:1 128.128.128.20 up ;;
echo "Stop multi-homed server for UX-ALIAS1 on hme0:1" ifconfig hme0:1 128.128.128.20 down ;; esac fi
ifconfig -a
Solaris automounter installs filesystems by default in /net The Solaris automount utility installs autofs mount points and associates an automount map with each mount point. The autofs file system monitors attempts to access directories within it and notifies the automountd daemon. The daemon uses the map to locate a file system, which it then mounts at the point of reference within the autofs file system. You can assign a map to an autofs mount using an entry in the /etc/auto_master map or a direct map in /etc/auto_direct. If the file system is not accessed within an appropriate interval (five minutes by default), the automountd daemon unmounts the file system.
The mount point /net is by default the location, where automountd mounts NFS filesystems, which are exported on other machines. Lets suppose, that you have the filesystem /home exported on the NFS server saphir, then the (Solaris) NFS client with an active automounter will automatically mount this NFS filesystem under /net/saphir/.
You probably doesn't want this default behavior. If you insert the following entry in /etc/auto_direct ....
/opt/local
-rw
remote_machine:/local
.... then, the directory /local on the remote machine "remote_machine" will be mounted on the local machine under /opt/local.
Solaris keyboard utility The Solaris utility kbd manipulates the state of the keyboard or display the type of keyboard or change the default keyboard abort sequence effect. Suppose, that you do not want that everybody can halt the the system you must change the default value. We also noticed, that the Solaris machines attached to a switch box, using a character terminal on a serial line, may halt when you switch from one machine to the other.
SYNOPSIS
DESCRIPTION
kbd manipulates the state of the keyboard, or displays the keyboard type or allows the default keyboard abort sequence effect to be changed. The default keyboard device being set is /dev/kbd.
The -i option reads and processes default values for the keyclick and keyboard abort settings from the keyboard default file, /etc/default/kbd. Only keyboards that support a clicker respond to the-c option. If you want to turn clicking on by default, add or change the current value of the KEYCLICK variable to the value on in the keyboard default file, /etc/default/kbd, as shown here.
KEYCLICK=on
Then, run the command 'kbd -i' to change the current setting. Valid settings for this variable are the values on and off. Other values are ignored. If the variable is not specified in the default file, the setting is unchanged.
The keyboard abort sequence (L1-A or STOP-A) on the keyboard and BREAK on the serial console input device on most systems) effect may only be changed by the superuser, using the -a option. On most systems, the default effect of the keyboard abort sequence is to suspend the operating system and enter the debugger or the monitor.
If you want to permanently change the software default effect of the keyboard abort sequence, you can add or change the current value of the KEYBOARD_ABORT variable to the value disable in the keyboard default file, /etc/default/kbd, as shown here.
KEYBOARD_ABORT=disable
Then, run the command 'kbd -i' to change the current setting. Valid settings for this value are the values enable and disable. Other values are ignored. If the variable is not specified in the default file, the setting is unchanged.
OPTIONS
-i
Set keyboard defaults from the keyboard default file. This option is mutually exclusive with all other options except for the -d keyboard device option. This option instructs the keyboard command to read and process keyclick and keyboard abort default values from the /etc/default/kbd file. This option can only be used by the superuser. -r Reset the keyboard as if power-up. -t Return the type of the keyboard being used. -c On/Off state Turn the clicking of the keyboard on or off. -a Enable/Disable state; Enable or disable the keyboard abort sequence effect.
Monitoring Performance This chapter describes procedures for monitoring system performance by using the vmstat, iostat, df, and sar commands. This is a list of the step-by-step instructions in this chapter.
The following example shows the vmstat display of statistics gathered at five-second intervals.
$ vmstat 5
procs memory
page
disk
faults
cpu
r b w swap free re mf pi po fr de sr f0 s3 -- -- in sy cs us sy id 0 0 8 28312 668 0 9 2 0 1 0 0 0 1 0 0 10 61 82 1 2 97 0 0 3 31940 248 0 10 20 0 26 0 27 0 4 0 0 53 189 191 6 6 88 0 0 3 32080 288 3 19 49 6 26 0 15 0 9 0 0 75 415 277 6 15 79 0 0 3 32080 256 0 26 20 6 21 0 12 1 6 0 0 163 110 138 1 3 96 0 1 3 32060 256 3 45 52 28 61 0 27 5 12 0 0 195 191 223 7 11 82 0 0 3 32056 260 0 1 0 0 0 0 0 0 0 0 0 4 52 84 0 1 99
procs
memory
page
re Pages reclaimed
pi Kbytes paged in
fr
Kbytes freed
sr Pages scanned by page daemon (not currently in use). If sr does not equal zero, the page daemon has been running.
disk
Reports the number of disk operations per second, showing data on up to four disks
faults
cpu
us User time
sy System time
id Idle time
Run vmstat -s to show the total of various system events that have taken place since the system was last booted.
0 pages swapped out 409376480 total address trans. faults taken 3075036 page ins 2601555 page outs 3812452 pages paged in 6525552 pages paged out 11007609 total reclaims 10927650 reclaims from free list 0 micro (hat) faults 409376480 minor (as) faults 2957386 major faults 102738273 copy-on-write faults 61711047 zero fill page faults 1002562077 pages examined by the clock daemon 7881 revolutions of the clock hand 16716370 pages freed by the clock daemon 4999048 forks 1138206 vforks 5747009 execs 741660225 cpu context switches 736047593 device interrupts 528054538 traps 2496638575 system calls 430283487 total name lookups (cache hits 95%) 81727 toolong 10484677 user cpu 9528364 system cpu
procs
memory
page
disk
faults
cpu
si = Average number of LWPs swapped in per second so = Number of whole processes swapped out
You can display disk activity information by using the iostat command with a time interval. The following example shows disk statistics gathered every five seconds.
iostat 5
tty
md1
md3
md4
md5
cpu
tin tout kps tps serv kps tps serv kps tps serv kps tps serv us sy wt id 0 2 10 1 28 2 0 22 0 0 0 1 0 10 2 2 3 92 0 47 58 7 39 16 2 34 0 0 0 0 0 0 0 2 19 78 0 16 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 98 0 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 99 0 16 2 0 22 0 0 0 0 0 0 0 0 0 2 3 1 95
0 24 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 98
Terminal
Disk
CPU
us In user mode
sy In system mode
id Idle
Run iostat -xtc to get extended disk statistics. This command displays a line of output for each disk.
tty
cpu
device r/s w/s kr/s kw/s wait actv svc_t %w %b tin tout us sy wt id md1 md3 md4 md5 md8 md10 md11 md30 md31 md40 md41 md50 md51 md80 md81 sd0 sd1 0.4 0.9 3.6 6.9 0.0 0.0 27.7 1 1 0 2 2 2 3 92 0.1 0.2 1.0 1.3 0.0 0.0 21.7 0 0 0.0 0.0 0.0 0.0 0. 0 0.0 0.0 0 0 0.0 0.0 0.7 0.0 0.0 0.0 9.9 0 0 0.8 0.3 6.7 14.2 0.0 0.0 13.1 0 1 0.2 0.9 1.8 6.8 0.0 0.0 15.5 0 1 0.2 0.9 1.8 6.8 0.0 0.0 14.8 0 1 0.0 0.2 0.5 1.3 0.0 0.0 11.4 0 0 0.0 0.2 0.5 1.3 0.0 0.0 10.2 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0.0 0.0 0.4 0.0 0.0 0.0 9.4 0 0 0.0 0.0 0.4 0.0 0.0 0.0 7.3 0 0 0.4 0.3 3.3 14.2 0.0 0.0 10.3 0 0 0.4 0.3 3.3 14.2 0.0 0.0 11.7 0 1 0.6 2.1 6.0 22.8 0.0 0.0 16.3 0 3 0.6 2.1 6.0 22.8 0.0 0.0 15.2 0 2
Display CPU utilization with the sar -u command. (The sar command without any options is equivalent to sar -u.) At any given moment, the processor is either busy or idle. When busy, the processor is in either user or system mode. When idle, the processor is either waiting for I/O completion or "sitting still" with no work to do.
sar -u 5 1
Measure CPU utilization during 60 secs 1440 times and write result in file sar.log.
sar -d -f sar.log
%sys Lists the percentage of time that the processor is in system mode
%user Lists the percentage of time that the processor is in user mode
%wio Lists the percentage of time the processor is idle and waiting for I/O completion
%idle Lists the percentage of time the processor is idle and is not waiting for I/O
Enable file system journaling on Solaris 7 and 8 Solaris 7 and 8 include a native implementation of file system journaling. This feature, known as "intent logging" or just "logging" enables FASTER file system operation and FASTER system boot.
It's trivial to implement and safe to use. The new logging feature is an option to the Unix File System (UFS), which is the standard file system for all disk partitions on SUN servers, except for partitions holding swap space. By default, the journaling option is disabled. Logging is enabled on a per file system basis, and it can even be enabled on / (root file system) and other operating system partitions.
Background
Solaris UFS logging works by allocating space from the file system's free blocks. Within that space, all metadata changes to the file system are written. Metadata includes directory and I-node information but not file data blocks, essentially everything but the actual data within the file. So, for example, a "file create" modifies the directory structure and allocates a new I-node, and those activities are written to the logging space. Once the metadata changes are made to the logging area, the system is free to perform other operations to the file system. In the background, the information in the log is flushed to the file system and updates the appropriate directory and I-node structures, completing the file system operations.
The logging data is written sequentially within the log space. It's therefore much faster for the operating system to complete metadata changes via logging and background flushing than by
directly modifying the metadata (via random I/O) spread across the disk. The size of the logging space is based on the size of the file system, and equals 1 MB per 1 GB of file system space, up to 64 MB. The space is used as a circular log: if the log space is about to fill up, new metadata change requests are paused while the log is emptied. As changes are moved from the log to the file system, that log space is made available, and new metadata changes can be written to the logging space.
Usually with UFS, if the system crashes during any file system operation, the entire system must have its consistency checked via the fsck command. That command can take several minutes per file system because it checks all metadata and file data to ensure the structures are correct, free, and used, and that the I-node block counts are correct. It also confirms that the free space available is current, repairs inconsistencies, and occasionally requires manual intervention to fix large problems. Files and even directories can be lost, depending on the operations occurring at the time of the crash.
Because metadata changes are made first to the log space rather than to the file system, the consistency check for a logged file system after a crash is a simple and fast operation. The system evaluates the logging data and determines which changes had completed against the underlying file system, which had yet to start, and which were in progress. Those completed or not yet started are removed from the log, and those partly completed are either undone or completed. If there's sufficient data in the log to complete the operation, it's completed. Otherwise, the changes made are removed from the underlying file system.
People familiar with database operation will recognize the similarity between database transaction processing and the activities here. The end result is that the underlying file system is consistent, and no thorough consistency checking is needed. That operation completes in a few seconds per file system.
Using logging
Starting with Solaris 7, there's a new logging option to the mount command and in the /etc/vfstab system configuration file. Logging only appears in a couple other places within Solaris. The mount command shows which partitions are mounted and lists logging in the options fields for each partition on which logging is enabled. Finally, at system boot time, the fsck phase reports per partition whether each is stable, logging, or being checked. There are no other status commands available to determine the state of logging.
A = Device to mount
B = Device to fsck C = Mount point D = Filesystem Type E = Fsck pass (unimportatnt with logging) F = Mount at boot G = Mount options
# -----------------------------------------------------------------#A B C D E F G
/dev/dsk/c0t0d0s3 -
/dev/dsk/c0t0d0s0 /dev/rdsk/c0t0d0s0 /
/dev/dsk/c0t0d0s6 /dev/rdsk/c0t0d0s6 /usr ufs 2 no logging /dev/dsk/c0t0d0s1 /dev/rdsk/c0t0d0s1 /var ufs 3 no logging /dev/dsk/c0t0d0s7 /dev/rdsk/c0t0d0s7 /home ufs 4 yes logging /dev/dsk/c0t0d0s5 /dev/rdsk/c0t0d0s5 /opt ufs 5 yes logging /dev/dsk/c0t8d0s0 /dev/rdsk/c0t8d0s0 /u01 ufs 6 yes logging /dev/dsk/c0t9d0s0 /dev/rdsk/c0t9d0s0 /u02 ufs 7 yes logging /dev/dsk/c0t10d0s0 /dev/rdsk/c0t10d0s0 /u03 ufs 8 yes logging /dev/dsk/c0t11d0s0 /dev/rdsk/c0t11d0s0 /u04 ufs 9 yes logging /dev/dsk/c0t12d0s0 /dev/rdsk/c0t12d0s0 /u05 ufs 10 yes logging /dev/dsk/c1t13d0s0 /dev/rdsk/c1t13d0s0 /app ufs 11 yes logging /dev/dsk/c1t14d0s0 /dev/rdsk/c1t14d0s0 /users ufs 12 yes logging swap /tmp tmpfs - yes -
Logging increases performance, decreases fsck time, removes the risk of a file system corruption, can be used on all UFS partitions (including root), and is free.
Solaris Syslog Daemon Debugging The log system messages daemon syslogd reads and forwards system messages to the appropriate log files and/or users, depending upon the priority of a message and the system facility from which it originates. The configuration file /etc/syslog.conf controls where messages are forwarded. The syslogd daemon ignores any faulty entry in /etc/syslog.conf, specially spaces instead of tabs are not recognized by syslogd. Therefore always check the entries in /etc/syslog.conf in the debugging mode of syslogd.
getnets() found 1 addresses, they are: 0.0.0.0.2.2 amiloghost() testing 193.247.121.196.2.2 cfline(*.err;kern.notice;auth.notice /dev/sysmsg) /var/adm/messages)
cfline(*.err;kern.debug;daemon.notice cfline(mail.info;mail.debug
/var/log/maillog)
operator)
cfline(user.emerg
*)
syslogd: version 1.70 Started: Sat Jan 6 10:11:47 2001 Input message count: system 0, network 0 # Outputs: 10
5 3 3 3 5 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 X CONSOLE: /dev/sysmsg 7 3 3 5 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 X FILE: /var/adm/messages X X 6 X X X X X X X X X X X X X X X X X X X X X X UNUSED: 3 1 1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 X USERS: operator 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 X USERS: root 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X WALL: X 3 X X X X X X X X X X X X X X X X X X X X X X X CONSOLE: /dev/sysmsg X 3 X X X X X X X X X X X X X X X X X X X X X X X FILE: /var/adm/messages X 1 X X X X X X X X X X X X X X X X X X X X X X X USERS: root, operator X 0 X X X X X X X X X X X X X X X X X X X X X X X WALL:
Per File Statistics File ---/dev/sysmsg /var/adm/messages 0 operator root WALL 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Tot --Dups Nofwd Errs ---- ----- ---0 0 0 0 0 0 0 0
0 0
0 0 0 0 0
0 0 0 0
0 0
# ^D # /etc/init.d/syslog start
Line 14 in /etc/syslog.conf are filled up with spaces instead of tabs. Replace the spaces with tabs and syslogd will accept the new entry in Line 14.
Does each Oracle Process use more than 100M memory ? If you check the oracle process with the OS comand "pmap" or "top", you can see that each oracle process use more than 100M memory. Is this a problem on the Oracle installation or something else? It seems that pmap counts the SGA size as the private memory segment of each oracle process, but we believe the SGA size should be shared.
PID USERNAME THR PRI NICE SIZE RES STATE TIME CPU COMMAND ----------------------------------------------------------------361 oracle 258 59 0 124M 88M sleep 0:01 0.00% oracle 373 oracle 11 59 0 122M 88M sleep 41:50 0.00% oracle 363 oracle 11 59 0 119M 88M sleep 0:01 0.00% oracle
365 oracle 11 58 0 119M 88M sleep 0:17 0.02% oracle 359 oracle 377 oracle 375 oracle 367 oracle 371 oracle 369 oracle 1 59 0 119M 89M sleep 0:00 0.00% oracle 1 59 0 119M 88M sleep 0:00 0.00% oracle 1 58 0 119M 88M sleep 0:00 0.00% oracle 1 58 0 118M 89M sleep 0:00 0.00% oracle 1 58 0 118M 89M sleep 0:00 0.00% oracle 1 58 0 118M 88M sleep 0:00 0.00% oracle
On many UNIX platforms and specially on Sun platforms, the text of the Oracle binary and shared libraries are actually shared between background processes if these instances share the same ORACLE_HOME. So you need to subtract the shared text of the oracle binary and the shared libraries in the result of the OS commands.
Even pmap and pmen utilities make mistakes between these memory divisions, and sometimes SGA and text executable are often added incorrectly.
This can be used by anyone who has privleges for the pmap, which can be found in /usr/proc/bin/. First, we need to find the process id (PID) of the Oracle background process you wish to determine the memory size for. This is done by issueing the following command:
# ps -u oracle -f
UID PID PPID C STIME TTY oracle 359 oracle 361 oracle 363 1 0 12:26:17 ? 1 0 12:26:17 ? 1 0 12:26:17 ?
oracle 365 oracle 367 oracle 369 oracle 371 oracle 373 oracle 375 oracle 377
0:18 ora_ckpt_DIA3 0:01 ora_smon_DIA3 0:00 ora_reco_DIA3 0:00 ora_snp0_DIA3 41:50 ora_s000_DIA3 0:00 ora_d000_DIA3 0:00 ora_d001_DIA3
Second, you then enter the following commands for the DB Writer process (ora_dbw0_DIA3) with process id = 361 as an example.
Then you take the total size: 124232K and subtract the SGA size which the line marked with "shmid=" above, in this case it is 82992K. So, 124232K minus 82992K is 41240K. So, the DBWR background process is approximately 41.2 MB. Repeat this steps for all the background processes.
Sizing up Solaris Memory with the RMCmem Package How much memory is needed on SUN Solaris? Explaining memory in Solaris by reviewing the different types of memory and introducing a set of tools, the RMCmem package.
Download the RMCmem tools available from ftp://playground.sun.com/pub/memtool. The package includes a kernel module that provides extra instrumentation.
Solaris is a virtual memory system. The total amount of memory that you can use is increased by adding swap space to the system. If you ever see "out of memory" messages, adding swap space is the usual fix. Performance of the system is very dependent on how much physical memory (RAM) you have. If you don't have enough RAM to run your workload, performance degrades rapidly.
Filesystem cache memory that is not mapped into any address space
# /opt/RMCmem/bin/prtmem
Total memory:
989 Megabytes
Kernel Memory: Application: Executable & libs: File Cache: Free, file cache: Free, free:
The total physical memory can be seen using prtconf. Memory is allocated in units called pages, and you can use the 'pagesize' command to see the size in bytes per page:
# /usr/bin/pagesize 8192
Kernel memory
Kernel memory is allocated to hold the initial kernel code at boot time, then grows dynamically as new device drivers and kernel modules are used. Kernel tables also grow dynamically, unlike some older versions of Unix. As you add hardware and processes to a system, the kernel will grow. In particular, to keep track of all the memory in a system, the kernel allocates a page table structure.
If you have several gigabytes of RAM this table gets quite large. The dynamic kernel memory allocator grabs memory in large "slabs," then allocates smaller blocks more efficiently. This means that the kernel tends to grab a bit more memory than it's really using. If there is a severe memory shortage, the kernel unloads unused kernel modules and devices and frees unused slabs. The simplest summary of kernel memory usage comes from sar. To show the kernel memory allocation (KMA) activities use (see man sar for more details).
# sar -k 1
sml_mem alloc fail lg_mem alloc fail ovsz_alloc fail 6873088 6044236 0 44818432 43761720 0 11231232 0
Application processes consist of an address space divided into segments, where each segment maps either to a file, anonymous memory (the swap space), System V shared memory, or a memory mapped device. The mapped files include the code and initialized data for the command and all its shared libraries.
What we really want to know, is the amount of RAM used by each segment. This is shown by the pmem command in the RMCmem package.
# /opt/RMCmem/bin/pmem 361
361: ora_dbw0_DIA3 Kbytes Resident Shared Private Permissions 82992 82992 82992 16 16 8 ........ 112 8 16 16 8 .. 80 8 8 8 .. 8 8 Mapped File
8 read/exec 8 read/exec
- read/write/exec libelf.so.1
16 8
16 8
8 8
8 read/exec
libkvm.so.1
- read/write/exec libkvm.so.1
Now we can see that the process address space size is 124232 kilobytes; 93040 kilobytes of that are currently resident in main memory, wherein 92728 kilobytes are shared with other processes while 312 kilobytes are private. When this command started only the 312 kilobytes of private memory were taken from the free list.
If we now go through all the processes on the system, add up how much private memory they use, and also add in the shared memory for each mapped file, we'll know how much application memory is in use. This summary is shown by prtmem as we saw in the beginning, and the detail is listed by the memps command in RMCmem.
# /opt/RMCmem/bin/memps
PID
Size Resident Shared Private Process .... ............. 808k ora_pmon_DIA3 448k ora_smon_DIA3 416k ora_reco_DIA3 416k ora_snp0_DIA3 408k ora_ckpt_DIA3 360k ora_d001_DIA3 336k ora_lgwr_DIA3 328k ora_d000_DIA3 312k ora_dbw0_DIA3 304k ora_s000_DIA3
359 118904k 93608k 92800k 367 118184k 93152k 92704k 369 117928k 93120k 92704k 371 118040k 93136k 92720k 365 119040k 93120k 92712k 377 118344k 93080k 92720k 363 119088k 93056k 92720k 375 118344k 93048k 92720k 361 124232k 93040k 92728k 373 121608k 93032k 92728k
This is the part of memory that is most confusing, as it is invisible. You can only tell it's there if you access the same file twice and it is quicker the second time.
The RMCmem package adds kernel instrumentation that counts up all the pages for each cached file. The memps -m command lists the files that are cached in order of the amount of memory they're consuming.
One problem is that within the kernel, the file is only known by its inode number and filesystem mount point. The directory pathname for the file may not be known.
The RMCmem package tries to solve this problem by catching file names as files are opened (by interposing on the vnode open code) and making an inode-to-name lookup cache in the kernel. This cache size is limited (to 8192 entries by default), and the file may have been opened before the kernel module was loaded, so it can't always find the name.
# memps -m
21064k 21064k F /usr (inode 540488) 8184k 824k F /usr (inode 260922) 7752k 7752k F /usr (inode 540429) 7480k 7480k F /usr (inode 540428) 7480k 7480k F /usr (inode 540427) 6896k 6896k F /usr (inode 540450) .... .... . .... ...... ......
More infos about the RMCmem package can be found here as PDF
Solaris 7:
DLT-TAPE UNIT INSTALLATION on Solaris 7/8/9 Installation Instructions will cover the installation of the DLT tape peripheral hardware and configuration of the system to communicate with the DLT tape peripheral. In this example we use a QUANTUM DLT7000.
The Solaris system must have the appropriate SCSI interface for DLT drive to attached to, a SCSI single-ended DLT drive can be attached only to a SCSI single-ended interface. The same is true for
SCSI differential attachment. Solaris includes a driver to efficiently communicate with SCSI tape drives, such as the DLT tape peripheral.
Shut down your Sun workstation/server and power off the machine and all scsi-devices. Connect the DLT to the scsi-bus using good cables and make sure the bus is terminated correctly. Set the scsi-id; id 4 or 5 are the most common to use.
If possible use a separate or underutilized SCSI bus for the DLT. Running the tape drive on the same bus as the disk drives will never let you achieve any good throughput. You bought the DLT because of performance didn't you ?
1. STOP-A (L1-A) Power on the devices/machine again and halt the boot process with.
(or press the BREAK key if you have an ASCII console). 2. probe-scsi-all Verify that the drive is connected properly.
Note: output from probe-scsi will not always be correct if you enter the PROM monitor by breaking the boot process! 3. boot -rv Boot the system and log in as root. When booting you should see a message similar to these: "st1: ". 4. cd /kernel/drv
Change directory to /kernel/drv. Edit the st.conf file by adding the following:
<DLT tape unit> is the vendor and product ID string for the DLT device.
Depending on the DLT tape peripheral you are installing, you must insert the appropriate vendor and product ID for <DLT tape unit> as described in the following table:
DLT7000 QUANTUM DLT7000 (Total string character count, including spaces, must equal 15).
<DLT reference name> is a name you select that the system will use to identify the DLT device. This reference does not change the DLT product ID. When the system boots, the reference name will be displayed in the list of peripheral devices recognized by the system.
<DLT-data> is a variable containing a series of additional DLT device configuration information. You select a name in place of the <DLT data> string. You will continue editing the st.conf file by defining the name you selected for <DLT data>. The definition depends on the DLT tape peripheral you are installing. For a DLT7000 series unit add the following line:
1,0x38,0,0x8639,4,0x82,0x83,0x84,0x85,3;
1 The first parameter, is the version number and should not change. 0x38 The second parameter, designates the DLT tape type as defined in /usr/include/sys/mtio.h. #define MT_ISOTHER 0x36 /* generic other type of tape drive */ #define MT_ISDLT 0x38 /* sun: SCSI DLT tape drive */
0 The third parameter is the block size. Since the DLT tape drive uses variable block size, this value should be zero. 0x8639 The fourth parameter, 0x8639, is a summation of values that represent selected device options. The table below lists the options and the corresponding value: Option Value
The man st page has more information about these and other possible device options. For certain applications, it may be necessary to consider adding or removing one or more of the device options.
The fifth parameter, 4, defines the number of densities. The maximum definable number of densities is 4. 0x82 0x83 0x84 0x85 The sixth, seventh, eighth and ninth parameter are used for system selection of tape densities. Use these values for a DLT 7000 Tape Drive. 3 The tenth parameter defines which density the system will use as the default density. The sixth, seventh, eighth and ninth parameters in the <DLT data>string are referenced by the system as 0, 1, 2 and 3, respectively. The 3 value for the tenth parameter selects the 0x85 density code as the system default density.
5. shutdown-i0-g0 boot -rv Reboot the System The -r switch in the boot command enables a kernel compile and includes the creation of device special files used for communication with the DLT device. The -v switch enables verbose mode display of system bootup. With verbose mode, the system should indicate that the DLT tape peripheral is attached by displaying the <DLT reference name>string you selected. 6. mt -t /dev/rmt/0 status Enter the following command to verify the installation: Vendor 'TANDBERG' Product 'DLT7000 ' tape drive: sense key(0x0)= No Additional Sense residual= 0 retries= 0 file no= 0 block no= 0
The target drive designations assigned by Solaris may take on values higher than already established in the /dev/rmt/ path. This is not a problem but during a boot -rv, Solaris does not remove tape device files for drives that are no longer attached to the system. This can increase the effort in locating the device file for the configured drive, however, this can be minimized by first deleting the tape device files:
rm /dev/rmt/*
boot -rv
If the DLTtape is the only drive on the system, it's target assignment should be zero. The Solaris man pages have more information on drvconfig and tapes.
Reconfigure Devices on Solaris If you remove or add a device on Solaris then the devices files must be recreated, either with boot rv or devfsadm. For example to renumber the logical tape drive devices do the following: Tape drives were numbered beginning with /dev/rmt/3 instead of /dev/rmt/0. The physical devices pointed to by the logical /dev/rmt/[012] devices no longer existed, and we wanted to renumber the valid devices beginning at /dev/rmt/0.
# devfsadm -C -c tape -v
# rm -f /dev/rmt/*
devfsadm(1M) maintains the /dev and /devices namespaces. It replaces the previous suite of devfs administration tools including drvconfig(1M), disks(1M), tapes(1M), ports(1M), audlinks(1M), and devlinks(1M).
OPTIONS
-C Cleanup mode. Prompt devfsadm to cleanup dangling /dev links that are not normally removed. If the -c option is also used, devfsadm only cleans up for the listed devices' classes. -c device_class Restrict operations to devices of class device_class. Solaris defines the following values for device_class: disk, tape, port, audio, and pseudo. This option may be specified more than once to specify multiple device classes.
OpenBoot Diagnostics The Solaris operating system gets the jumpstart for its booting from a hardware-level interface called the OpenBoot PROM or OBP for short. OpenBoot at its heart has an interactive command interpreter with a varied set of functions. OBP is a firmware which is stored in the socketed startup PROM of the computer and consists of two parts, the PROM and the NVRAM.
As stated earlier while the PROM acts as the interface for access to diagnostics and drivers, the NVRAM consists of some editable user defined parameters. Non Volatile information like the system identification information, device aliases etc are stored in the NVRAM.The OpenBoot PROM is programmable and can be programmed based on Forth, which is an interactive programming language much like shell scripting.
Initializing and Testing system hardware ( POST , power on self test) Interactive Debugging Management of NVRAM Parameters Start the Operating System boot Useful commands at OK prompt. Dignostics : boot General banner this command shows the following systems hardware informatiion : Model, architecture, processor,keyboard, openboot version, Serial no. ethernet address & host id.
test floppy - test floppy disk drive test net - test network loopbacks test scsi - test scsi interface test-all test for all devices with selftest method
probe-scsi-all Show attached SCSI devices for all host adapters- internal & external. boot - boot kernel from default device. Factory default is to boot from DISK if present, otherwise from NET.
boot net - boot kernel from network boot cdrom - boot kernel from CD-ROM boot disk1:h - boot from disk1 partition h boot tape - boot default file from tape boot disk myunix -as - boot myunix from disk with flags "-as" DEVALIAS
ok>show-devs ok cd /pci@1f,4000/scsi@3 ok .properties ok ls f00809d8 tape f007ecdc disk ok .speed CPU Speed : 200.00MHz UPA Speed : 100.00MHz
PCI Bus A : 66Mhz PCI Bus B : 33Mhz printenv Display all variables and current values.
set-defaults Reset variable values to the factory defaults. Key Sequences These commands are disabled if the PROM security is on. Also, if your system has full security enabled, you cannot apply any of the suggested commands unless you have the password to get to the ok prompt. Stop - Bypass POST. This command does not depend on security-mode. (Note: some systems bypass POST as a default; in such cases, use Stop-D to start POST.) Stop-A Abort. Stop-D - Enter diagnostic mode (set diag-switch? to true). Stop-F - Enter Forth on TTYA instead of probing. Use exit to continue with the initialization sequence. Useful if hardware is broken. Stop-N Reset NVRAM contents to default values.
OK reset-all
OK test-all or obdiag
Configure Graphics Console (e.g. Sun XVR-100 Graphics Accelerator) instead of serial TTYA
OK nvalias mydev <CTRL-Y> OK setenv output-device mydev OK setenv use-nvramrc? true OK reset-all
If you are having problems where you have created a $HOME/.forward file in your home directory to forward e-mails from one account to another and it just won't forward them?
-rwxrwxr-x 1 zahn dba 0 Jan 9 12:17 .forward # wrong -rwxr-xr-x 1 zahn dba 0 Jan 9 12:17 .forward # OK
Lastly, make sure your home directory isn't group or world writable.
drwxrwxr-x 14 zahn dba 4096 Jan 9 12:20 zahn # wrong drwxr-xr-x 14 zahn dba 4096 Jan 9 12:20 zahn # OK
A backup strategy is more complex than creating a redundant copy of disk storage and considering the strategy a success. A successful backup strategy must detail how the backup media are rotated, how the media are archived, how the system will be recovered, and what the backup software will do to create the backup. Although all parts of the backup strategy are equally important, this tip will focus on the backup script and will detail a flexible backup script that uses built-in Solaris software tools which create a reliable local backup of a Solaris machine.
Introduction
Create a backup archive that is as easy to restore a single file as it is to restore an entire file system. The backup script will run autonomously. The only human intervention will be to swap media and review output. The filesystems or directories to backup can be specified in the script. Using automounter you can even specify remote filesystems. The script will create a detailed log of the backup. The script will send an abbreviated email summary of the backup to the administrator. After a successful backup, the script will verify to some extent the contents of the backup media. The backup script will be able to run on any Solaris 2.6 or greater machine without modification. Tools used
We use the well known utilities TAR, GZIP and DD, because they are available on any Unix system. They are very well tested and simple to use. In case of an emergency it is important to have a simple way to restore, independent of complex tools and incompatible software releases.
The utility MT sends commands to a tape drive. Many of these commands are familiar, but some are not. The script will use these mt commands.
rewind rewind the tape rewoffl rewind the tape and eject it (go offline) eom space to end of recorded media on tape weof write count EOF marks at current position on tape status display current status of tape Script