Category: Solaris

Solaris – ls or df error: cannot canonicalize .: Permission denied

On systems that the umask is set to 027, the directory that is created to be used as a mount point appears to have the correct permissions but you can’t get the disk space utilization or list (ls -la) the permissions of the current directory (.) or the level above (..)

user@solaris:~ $ umask
027

user@solaris:~ $ df -k /backup_export
df: cannot canonicalize .: Permission denied

user@solaris:/ # ls -ld /backup_export
drwxr-xr-x 17 oracle oinstall 1024 Dec 12 15:33 /backup_export

You see that with the root user there is no problem to execute the same command you used as a regular user

root@solaris:~ # df -k /backup_export
Filesystem kbytes used avail capacity Mounted on
/dev/vx/dsk/dadosdg/vol_bkp
92409856 22803105 65256478 26% /backup_export

To solve this problem, umount the filesystem

root@solaris:/ # umount /backup_export

root@solaris:/ # ls -ld /backup_export
drwxr-x— 2 root root 512 Aug 13 2007 /backup_export

Now you apply the permission to make the directory browsable to regular users. I set the permissions to 777 and mounted the filesystem

root@solaris:/ # chmod 777 /backup_export

root@solaris:/ # mount /backup_export

root@solaris:/ # df -k /backup_export
Filesystem kbytes used avail capacity Mounted on
/dev/vx/dsk/dadosdg/vol_bkp
92409856 22803105 65256478 26% /backup_export

The permissions are back to what used to be and now the error message doesn’t appear anymore

user@solaris:~ $ df -k /backup_export
Filesystem kbytes used avail capacity Mounted on
/dev/vx/dsk/dadosdg/vol_bkp
92409856 22803105 65256478 26% /backup_export

user@solaris:/ # ls -ld /backup_export
drwxr-xr-x 17 oracle oinstall 1024 Dec 12 15:33 /backup_export

Discovering which drives the server will use to boot in a SPARC machine

Here is how to put more than one device on the variable devalias

root@solaris:/ # eeprom “nvramrc=devalias vx-rootdisk /pci@1c,600000/scsi@2/disk@0,0:a (press <Enter>)
> devalias vx-rootmirr /pci@1c,600000/scsi@2/disk@3,0:a” (press <Enter>)

Put more than one device to boot the system

root@solaris:/# eeprom “boot-device=vx-rootdisk vx-rootmirr”

List all the OpenBoot parameters

root@solaris:/# eeprom
asr-policy=normal
test-args: data not available.
diag-passes=1
local-mac-address?=true
fcode-debug?=false
scsi-initiator-id=7
oem-logo: data not available.
oem-logo?=false
oem-banner: data not available.
oem-banner?=false
ansi-terminal?=true
screen-#columns=80
screen-#rows=34
ttyb-rts-dtr-off=false
ttyb-ignore-cd=true
ttya-rts-dtr-off=false
ttya-ignore-cd=true
ttyb-mode=9600,8,n,1,-
ttya-mode=9600,8,n,1,-
output-device=ttya
input-device=ttya
auto-boot-on-error?=true
error-reset-recovery=sync
load-base=16384
auto-boot?=true
network-boot-arguments: data not available.
boot-command=boot
diag-file: data not available.
diag-device=disk0:a
boot-file: data not available.
boot-device=vx-rootdisk vx-rootmirr
use-nvramrc?=false
nvramrc=devalias vx-rootdisk /pci@1c,600000/scsi@2/disk@0,0:a
devalias vx-rootmirr /pci@1c,600000/scsi@2/disk@3,0:a
security-mode=none
security-password: data not available.
security-#badlogins=0
verbosity=normal
diag-trigger=error-reset power-on-reset
service-mode?=false
diag-script=normal
diag-level=max
diag-switch?=false

Discovering which disk is used when booting

In the case of this server, it is using vx-rootdisk and if it fails, it will use the next one, the vx-rootmirr

root@solaris:/:> eeprom | grep boot-device
boot-device=vx-rootdisk vx-rootmirr

I need to find the hardware address of these two alias

root@solaris:/:> eeprom | grep vx-root
boot-device=vx-rootdisk vx-rootmirr
nvramrc=devalias vx-rootdisk /pci@1c,600000/scsi@2/disk@0,0:a
devlias vx-rootmirr /pci@1c,600000/scsi@2/disk@3,0:a

Now with the hardware address, I invoke the format command and see that this particular system is using disks 2 and 5 to boot.

root@solaris:/:> echo | format
Searching for disks…done

AVAILABLE DISK SELECTIONS:
0. c1t0d0 <SUN-StorEdge3310-413B cyl 65533 alt 2 hd 64 sec 340>
/pci@1e,600000/scsi@3/sd@0,0
1. c1t1d0 <SUN-StorEdge3310-413B cyl 65533 alt 2 hd 64 sec 340>
/pci@1e,600000/scsi@3/sd@1,0
2. c2t0d0 <SUN72G cyl 14087 alt 2 hd 24 sec 424>
/pci@1c,600000/scsi@2/sd@0,0
3. c2t1d0 <SUN72G cyl 14087 alt 2 hd 24 sec 424>
/pci@1c,600000/scsi@2/sd@1,0
4. c2t2d0 <SUN146G cyl 14087 alt 2 hd 24 sec 848>
/pci@1c,600000/scsi@2/sd@2,0
5. c2t3d0 <SUN146G cyl 14087 alt 2 hd 24 sec 848>
/pci@1c,600000/scsi@2/sd@3,0
Specify disk (enter its number): Specify disk (enter its number):

To create the alias as stated in the beginning of this post, it will be necessary to get the hardware address and replace “sd” for “disk”.
Also Specify which disk slice that holds the root (/) filesystem. The slice 0 is the letter a, the slice 1 is b and so on.

5. c2t3d0 <SUN146G cyl 14087 alt 2 hd 24 sec 848>
/pci@1c,600000/scsi@2/sd@3,0

root@solaris:/:> ls -l /dev/dsk/c2t3d0s0
lrwxrwxrwx   1 root     root          43 Feb 22  2006 /dev/dsk/c2t3d0s0 -> ../../devices/pci@1c,600000/scsi@2/sd@3,0:a

To validate this hardware address use boot and specify it on the OpenBoot prompt

ok> boot /pci@1c,600000/scsi@2/disk@3,0:a

Two examples of using dumpadm on Solaris

I run dumpadm and saw that two things needed to be changed. The savecore directory and the dump device.

root@solaris:/ # dumpadm
Dump content: kernel pages
Dump device: /dev/dsk/c0t0d0s1 (dedicated)
Savecore directory: /var/crash/old_hostname
Savecore enabled: yes

To change the savecore directory, use the flag -s and specify the directory that you wish to use when Solaris need to save the crash dump file

root@solaris:/ # dumpadm -s /var/crash/solaris
Dump content: kernel pages
Dump device: /dev/dsk/c0t0d0s1 (dedicated)
Savecore directory: /var/crash/solaris
Savecore enabled: yes

Now, to change the dump device you pass the flag -d and the device to save the crash dump file

root@solaris:/ # dumpadm -d /dev/md/dsk/d1
Dump content: kernel pages
Dump device: /dev/md/dsk/d1 (swap)
Savecore directory: /var/crash/solaris
Savecore enabled: yes

Running fsck and automatically fix any errors encountered

Tried to mount a filesystem but the OS requested to run fsck

root@solaris:/ # mount /1a
mount: the state of /dev/md/dsk/d7 is not okay
and it was attempted to be mounted read/write
mount: Please run fsck and try again

To run fsck and try to automatically fix any errors encountered, pass the flag -y

root@solaris:/ # fsck -y /dev/md/dsk/d7
** /dev/md/rdsk/d7
** Last Mounted on /1a
** Phase 1 – Check Blocks and Sizes
** Phase 2 – Check Pathnames
** Phase 3a – Check Connectivity
** Phase 3b – Verify Shadows/ACLs
** Phase 4 – Check Reference Counts
UNREF FILE I=1762708 OWNER=patrol MODE=100644
SIZE=263127 MTIME=Jan 25 15:40 2009
RECONNECT? yes

LINK COUNT FILE I=1762708 OWNER=patrol MODE=100644
SIZE=263127 MTIME=Jan 25 15:40 2009 COUNT 0 SHOULD BE 1
ADJUST? yes

UNREF FILE I=2376356 OWNER=patrol MODE=10700
SIZE=0 MTIME=Jan 25 15:37 2009
CLEAR? yes

UNREF FILE I=2977939 OWNER=spectrum MODE=100600
SIZE=0 MTIME=Jan 25 15:37 2009
CLEAR? yes

UNREF FILE I=2977940 OWNER=spectrum MODE=100600
SIZE=0 MTIME=Jan 25 15:37 2009
CLEAR? yes

UNREF FILE I=2977941 OWNER=spectrum MODE=100600
SIZE=0 MTIME=Jan 25 15:37 2009
CLEAR? yes

** Phase 5 – Check Cylinder Groups

CORRECT BAD CG SUMMARIES FOR CG 34? yes

CORRECTED SUPERBLOCK SUMMARIES FOR CG 34
CORRECTED SUMMARIES FOR CG 34
FILE BITMAP WRONG
FIX? yes

FRAG BITMAP WRONG (CORRECTED)
CORRECTED SUPERBLOCK SUMMARIES FOR CG 69
CORRECTED SUMMARIES FOR CG 69
FRAG BITMAP WRONG (CORRECTED)
CORRECTED SUPERBLOCK SUMMARIES FOR CG 146
CORRECTED SUMMARIES FOR CG 146
FRAG BITMAP WRONG (CORRECTED)
CORRECTED SUPERBLOCK SUMMARIES FOR CG 147
CORRECTED SUMMARIES FOR CG 147
FRAG BITMAP WRONG (CORRECTED)
CORRECTED SUPERBLOCK SUMMARIES FOR CG 165
CORRECTED SUMMARIES FOR CG 165
FRAG BITMAP WRONG (CORRECTED)
CORRECTED SUPERBLOCK SUMMARIES FOR CG 168
CORRECTED SUMMARIES FOR CG 168
FRAG BITMAP WRONG (CORRECTED)
CORRECTED SUPERBLOCK SUMMARIES FOR CG 175
CORRECTED SUMMARIES FOR CG 175
FRAG BITMAP WRONG (CORRECTED)
CORRECTED SUPERBLOCK SUMMARIES FOR CG 202
CORRECTED SUMMARIES FOR CG 202
FRAG BITMAP WRONG (CORRECTED)
CORRECTED SUPERBLOCK SUMMARIES FOR CG 224
CORRECTED SUMMARIES FOR CG 224
FRAG BITMAP WRONG (CORRECTED)
CORRECTED SUPERBLOCK SUMMARIES FOR CG 233
CORRECTED SUMMARIES FOR CG 233
FRAG BITMAP WRONG (CORRECTED)
CORRECTED SUPERBLOCK SUMMARIES FOR CG 264
CORRECTED SUMMARIES FOR CG 264
FRAG BITMAP WRONG (CORRECTED)
CORRECTED SUPERBLOCK SUMMARIES FOR CG 269
CORRECTED SUMMARIES FOR CG 269
FRAG BITMAP WRONG (CORRECTED)
CORRECTED SUPERBLOCK SUMMARIES FOR CG 275
CORRECTED SUMMARIES FOR CG 275
FRAG BITMAP WRONG (CORRECTED)
CORRECTED SUPERBLOCK SUMMARIES FOR CG 286
CORRECTED SUMMARIES FOR CG 286
FRAG BITMAP WRONG (CORRECTED)
CORRECTED SUPERBLOCK SUMMARIES FOR CG 311
CORRECTED SUMMARIES FOR CG 311
FRAG BITMAP WRONG (CORRECTED)
CORRECTED SUPERBLOCK SUMMARIES FOR CG 316
CORRECTED SUMMARIES FOR CG 316
FRAG BITMAP WRONG (CORRECTED)
CORRECTED SUPERBLOCK SUMMARIES FOR CG 380
CORRECTED SUMMARIES FOR CG 380
FRAG BITMAP WRONG (CORRECTED)
CORRECTED SUPERBLOCK SUMMARIES FOR CG 386
CORRECTED SUMMARIES FOR CG 386
FRAG BITMAP WRONG (CORRECTED)
CORRECTED SUPERBLOCK SUMMARIES FOR CG 388
CORRECTED SUMMARIES FOR CG 388
FRAG BITMAP WRONG (CORRECTED)
CORRECTED SUPERBLOCK SUMMARIES FOR CG 395
CORRECTED SUPERBLOCK SUMMARIES FOR CG 495
CORRECTED SUPERBLOCK SUMMARIES FOR CG 516
CORRECTED SUMMARIES FOR CG 516
FRAG BITMAP WRONG (CORRECTED)
CORRECTED SUPERBLOCK SUMMARIES FOR CG 519
CORRECTED SUMMARIES FOR CG 519
FRAG BITMAP WRONG (CORRECTED)
CORRECTED SUPERBLOCK SUMMARIES FOR CG 539
CORRECTED SUMMARIES FOR CG 539
FRAG BITMAP WRONG (CORRECTED)
CORRECTED SUPERBLOCK SUMMARIES FOR CG 546
CORRECTED SUMMARIES FOR CG 546
FRAG BITMAP WRONG (CORRECTED)
CORRECTED SUPERBLOCK SUMMARIES FOR CG 576
CORRECTED SUMMARIES FOR CG 576
FRAG BITMAP WRONG (CORRECTED)
CORRECTED SUPERBLOCK SUMMARIES FOR CG 578
CORRECTED SUMMARIES FOR CG 578
FRAG BITMAP WRONG (CORRECTED)
CORRECTED SUPERBLOCK SUMMARIES FOR CG 579
CORRECTED SUMMARIES FOR CG 579
FRAG BITMAP WRONG (CORRECTED)
CORRECTED SUPERBLOCK SUMMARIES FOR CG 588
CORRECTED SUMMARIES FOR CG 588
FRAG BITMAP WRONG (CORRECTED)
CORRECTED SUPERBLOCK SUMMARIES FOR CG 631
CORRECTED SUMMARIES FOR CG 631
FRAG BITMAP WRONG (CORRECTED)
CORRECT GLOBAL SUMMARY
SALVAGE? yes

90655 files, 5690552 used, 50760198 free (12494 frags, 6343463 blocks, 0.0% fragmentation)

***** FILE SYSTEM WAS MODIFIED *****

Since fsck encountered errors, we pass once again and see if more errors are encountered

root@solaris:/ # fsck -y /dev/md/dsk/d7
** /dev/md/rdsk/d7
** Last Mounted on /1a
** Phase 1 – Check Blocks and Sizes
** Phase 2 – Check Pathnames
** Phase 3a – Check Connectivity
** Phase 3b – Verify Shadows/ACLs
** Phase 4 – Check Reference Counts
** Phase 5 – Check Cylinder Groups
90655 files, 5690552 used, 50760198 free (12494 frags, 6343463 blocks, 0.0% fragmentation)

Since no more errors were encountered, we try to mount the filesystem once again

root@solaris:/ # mount /1a
root@solaris:/ # df -k /1a
Filesystem kbytes used avail capacity Mounted on
/dev/md/dsk/d7 56450750 5690552 50195691 11% /1a

Solaris SVM error when attaching a new disk – metattach I/O Error

I was trying to increase a metadevice with another disk but I was getting an I/O error

root@solaris:~ # metattach d200 /dev/rdsk/emcpower46c
metattach: solaris: /dev/dsk/emcpower46c: I/O error

Nothing strange was appearing in the emcpower disk

root@solaris:~ # powermt display dev=emcpower46
Pseudo name=emcpower46a
Symmetrix ID=000287752010
Logical device ID=01A1
state=alive; policy=SymmOpt; priority=0; queued-IOs=0
==============================================================================
—————- Host ————— – Stor – — I/O Path – — Stats —
### HW Path I/O Paths Interf. Mode State Q-IOs Errors
==============================================================================
3072 pci@8,600000/SUNW,emlxs@1/fp@0,0 c1t5006048449AFD288d18s0 FA 9aA active alive 0 0
3073 pci@8,600000/SUNW,emlxs@2/fp@0,0 c2t5006048449AFD287d18s0 FA 8aA active alive 0 0

A friend here at work asked if the disk has a label. It didn’t have one.

selecting emcpower46e
[disk formatted]
Disk not labeled. Label it now? yes

After that I was able to increase the metadevice.

root@solaris:~ # metattach d200 /dev/rdsk/emcpower46c
d200: component is attached

Solaris SVM – Metadevice in needs maintenance state. Invoke metareplace

On your Solaris server, a disk that is part of a mirror goes bad and needs replacement.

root@solaris:~ # metastat d50
d50: Mirror
Submirror 0: d51
State: Needs maintenance
Submirror 1: d52
State: Okay
Pass: 1
Read option: roundrobin (default)
Write option: parallel (default)
Size: 32776896 blocks (15 GB)

d51: Submirror of d50
State: Needs maintenance
Invoke: metareplace d50 c0t0d0s5

Size: 32776896 blocks (15 GB)
Stripe 0:
Device Start Block Dbase State Reloc Hot Spare
c0t0d0s5 0 No Maintenance Yes

d52: Submirror of d50
State: Okay
Size: 32776896 blocks (15 GB)
Stripe 0:
Device Start Block Dbase State Reloc Hot Spare
c0t1d0s5 0 No Okay Yes

Device Relocation Information:
Device Reloc Device ID
c0t0d0 Yes id1,sd@n500000e013633ce0
c0t1d0 Yes id1,sd@n500000e013633810

After you physically replace the bad disk, the submirror will still show as needing maintenance. You need to invoke metareplace to sync the submirror

root@solaris:~ # metareplace -e d50 /dev/dsk/c0t0d0s5
d50: device c0t0d0s5 is enabled

root@solaris:~ # metastat d50
d50: Mirror
Submirror 0: d51
State: Resyncing
Submirror 1: d52
State: Okay
Resync in progress: 0 % done
Pass: 1
Read option: roundrobin (default)
Write option: parallel (default)
Size: 32776896 blocks (15 GB)

d51: Submirror of d50
State: Resyncing
Size: 32776896 blocks (15 GB)
Stripe 0:
Device Start Block Dbase State Reloc Hot Spare
c0t0d0s5 0 No Resyncing Yes

d52: Submirror of d50
State: Okay
Size: 32776896 blocks (15 GB)
Stripe 0:
Device Start Block Dbase State Reloc Hot Spare
c0t1d0s5 0 No Okay Yes

Device Relocation Information:
Device Reloc Device ID
c0t0d0 Yes id1,sd@n500000e013633ce0
c0t1d0 Yes id1,sd@n500000e013633810

Repeat the process to all the remaining submirrors that were on that disk

Growing a soft partition and resizing filesystem in Solaris Volume Manager

I need to increase the filesystem called /bkp

root@solaris:~ # df -h /bkp
Filesystem size used avail capacity Mounted on
/dev/md/dsk/d51 44G 26G 18G 60% /bkp

It’s mounted on a soft partition

root@solaris:~ # metastat d51
d51: Soft Partition
Device: d5
State: Okay
Size: 93298688 blocks (44 GB)
Extent Start Block Block count
0 20981760 10485760
1 54536288 82812928

d5: Concat/Stripe
Size: 143349312 blocks (68 GB)
Stripe 0:
Device Start Block Dbase State Reloc Hot Spare
c1t2d0s2 0 No Okay Yes

Device Relocation Information:
Device Reloc Device ID
c1t2d0 Yes id1,sd@SSEAGATE_ST373307LSUN72G_3HZ9R8BN00007523GZY7

Here I attach a LUN to metadevice d5

root@solaris:~ # metattach d5 /dev/rdsk/emcpower33c
d5: component is attached

Now d5 have an internal disk and a LUN from storage

root@solaris:~ # metastat -p d5
d5 2 1 c1t2d0s2 \
1 /dev/dsk/emcpower33c

Here is the command to increase the soft partition

root@solaris:~ # metattach d51 10g
d51: Soft Partition has been grown

After you increase the soft partition, you need to increase the filesystem with growfs

root@solaris:~ # growfs -M /bkp /dev/md/rdsk/d51
/dev/md/rdsk/d51: Unable to find Media type. Proceeding with system determined parameters.
Warning: 5376 sector(s) in last cylinder unallocated
/dev/md/rdsk/d51: 116367360 sectors in 11436 cylinders of 24 tracks, 424 sectors
56820,0MB in 1144 cyl groups (10 c/g, 49,69MB/g, 6016 i/g)
super-block backups (for fsck -F ufs -o b=#) at:
32, 102224, 204416, 306608, 408800, 510992, 613184, 715376, 817568, 919760,
Initializing cylinder groups:
………………….
super-block backups for last 10 cylinder groups at:
115401920, 115504112, 115606304, 115708496, 115810688, 115912880, 116015072,
116117264, 116219456, 116321648

root@solaris:~ # df -h /bkp
Filesystem size used avail capacity Mounted on
/dev/md/dsk/d51 55G 26G 28G 48% /bkp

ALOM – SC Alert: Failed to send email alert for recent event

When I was in the ALOM prompt I received the following error message

sc>
SC Alert: Failed to send email alert for recent event.

This ALOM card was set up to send emails but it was not configured to send the email to any particular host

sc> showsc
Advanced Lights Out Manager v1.5.4
parameter                value
———                —–
if_network               true
if_modem                 false
if_emailalerts           true
sys_autorestart          xir
sys_bootrestart          none
sys_bootfailrecovery     none
sys_maxbootfail          3
sys_xirtimeout           900
sys_boottimeout          900
sys_wdttimeout           60
netsc_tpelinktest        true
netsc_dhcp               false
netsc_ipaddr             148.95.150.176
netsc_ipnetmask          255.255.255.0
netsc_ipgateway          148.95.150.1
mgt_mailhost
mgt_mailalert
sc_customerinfo
sc_escapechars           #.
sc_powerondelay          true
sc_powerstatememory      false
sc_clipasswdecho         true
sc_cliprompt             sc
sc_clitimeout            0
sc_clieventlevel         2
sc_backupuserdata        true
sys_eventlevel           2
ser_baudrate             9600
ser_parity               none
ser_stopbits             1
ser_data                 8
netsc_enetaddr           00:03:ba:a3:3d:c4
sys_hostname             solaris9
sys_enetaddr             00:03:ba:a3:3d:bb

To set the if_emailalerts property to false, I typed the command below

sc> setsc if_emailalerts false

sc> showsc
Advanced Lights Out Manager v1.5.4
parameter                value
———                —–
if_network               true
if_modem                 false
if_emailalerts           false
sys_autorestart          xir
sys_bootrestart          none
sys_bootfailrecovery     none
sys_maxbootfail          3
sys_xirtimeout           900
sys_boottimeout          900
sys_wdttimeout           60
netsc_tpelinktest        true
netsc_dhcp               false
netsc_ipaddr             148.95.150.176
netsc_ipnetmask          255.255.255.0
netsc_ipgateway          148.95.150.1
mgt_mailhost
mgt_mailalert
sc_customerinfo
sc_escapechars           #.
sc_powerondelay          true
sc_powerstatememory      false
sc_clipasswdecho         true
sc_cliprompt             sc
sc_clitimeout            0
sc_clieventlevel         2
sc_backupuserdata        true
sys_eventlevel           2
ser_baudrate             9600
ser_parity               none
ser_stopbits             1
ser_data                 8
netsc_enetaddr           00:03:ba:a3:3d:c4
sys_hostname             solaris9
sys_enetaddr             00:03:ba:a3:3d:bb

And no more related error messages was shown after this

Checking file system type and resizing VXFS filesystem on Solaris

Here is the filesystem that I wish to expand

root@solaris:/ # df -h /filestorage
Filesystem             size   used  avail capacity  Mounted on
/dev/vx/dsk/datadg/datastore
2.1T 2.1T    16G   100%    /filestorage

Checking the filesystem type

root@solaris:/ # fstyp /dev/vx/dsk/datadg/datastore
vxfs

Resizing the vxfs filesystem

root@solaris:/ # vxresize -g datadg -F vxfs datastore +208309m

Expanded 200 GB (208,309 MB)

root@solaris:/ # df -h /filestorage
Filesystem             size   used  avail capacity  Mounted on
/dev/vx/dsk/datadg/datastore
2.3T 2.1T   207G    92%    /filestorage

Reinstaling Tivoli Data Protection for Oracle on Solaris SPARC

root@sol10sparc:~ # pkginfo -l TDPOrc64
PKGINST:  TDPOrc64
NAME:  IBM Tivoli Storage Manager for Databases – Oracle 64-bit Solaris 8/9/10
CATEGORY:  application
ARCH:  sparc
VERSION:  Version 5 Release 3 Level 3
BASEDIR:  /opt/tivoli/tsm/client
VENDOR:  IBM Tivoli
PSTAMP:  2006.167.17:10:16
INSTDATE:  Oct 09 2008 22:09
STATUS:  completely installed
FILES:        8 installed pathnames
2 shared pathnames
3 directories
4 executables
4420 blocks used (approx)

When you remove the Tivoli Data Protection for Oracle using pkgrm and you try to reinstall, you’ll notice that it will say that the install size will be 11 MBs but in reality it installs only 6 MBs. You need to uninstall it using a uninstaller script that comes with the package. After you run the uninstall script, you can run the installer script and it will install the 11 MBs.

root@sol10sparc:~ # /opt/tivoli/tsm/client/oracle/_uninst/uninstaller.bin