Title: Tips for database administrators
 1Tips for database administrators
Gus Björklund (gus_at_progress.com)
Wizard, Progress Software Corporation 
 2Ask questions as we goif I am not being clear 
about something.Warning there is a mistake 
somewhere in these slides. 
 3Topics
- Tip Nr. 0x00 
-  
- Tip Nr. 0x16 
numbered for easy reference 
 4Tip Number 0x00
If it is not broken, dont fix it ! 
 5Tip Number 0x01
If you do fix something, test your fix ! 
 6Tip Number 0x02
Read the man pages 
 7Read the man pages
- man man 
- man  -s section  name 
- Read the man pages!
8Tip Number 0x03
SSH is your friend!Like Linux, great software 
fromFinland 
 9SSH
- SSH replaces telnet, rlogin, rcp, rsh, etc. 
- All connections are encrypted 
- Use for remote access over Internet
10SSH
- Dont need username, password login 
- Can also use certificates for authentication 
- Can send output of 
- local commands to remote host 
- remote commands to local host 
- Can do secure file transfer 
- scp and sftp 
- Can tunnel other protocols (e.g. X windows)
11Simple remote command execution
gus_at_diracgus  ssh bespin ls gus_at_bespin's 
password 101arkt 90ajdk.txt GSI Mail News a.out 
a7 adb.man gus_at_diracgus 
Nothing much to see here 
 12Remote command output to local host
gus_at_diracgus  ssh bespin "ls echo DONE 
ls.dat gus_at_bespin's password gus_at_diracgus  
cat ls.dat 101arkt 90ajdk.txt GSI Mail News a.out 
a7 adb.man DONE gus_at_diracgus  
Output of remote commands written to local file 
 13Local output piped to remote host
gus_at_diracgus  cd 4gl tar -cf - .p  ssh 
bespin "cd foo tar -xf -" gus_at_bespin's password 
 gus_at_dirac4gl  
Backup files in a local directory to a remote 
directory 
 14Remote backup piped to local file
gus_at_dirac4gl  ssh bespin "cd pdr tar -cvf - ." 
backup.tar gus_at_bespin's password a ./ 0K a 
./Makefile 1K a ./pdrcache.c 131K a ./pdrproc.c 
23K a ./pdrtrig.c 175K a ./dsmcon.c 94K a 
./dsmrec.c 17K a ./dsmseq.c 15K gus_at_dirac4gl  
Backup files in a remote directory to a local 
directory 
 15Turning off sshd password authentication
in the file /etc/ssh/sshd_config, do this  
Protocol 1,2 Protocol 2 . . .  
Authentication PasswordAuthentication no then 
save changes. restart daemon  service sshd 
restart 
 16Enabling SSH certificate authentication
gus_at_diracgus  ssh-keygen Generating 
public/private rsa key pair. Enter file in which 
to save the key (/Users/gus/.ssh/id_rsa) Enter 
passphrase (empty for no passphrase) Enter same 
passphrase again Your identification has been 
saved in /Users/gus/.ssh/id_rsa. Your public key 
has been saved in /Users/gus/.ssh/id_rsa.pub. The 
key fingerprint is 3fa92ca6745e3659397f
ed3f5de3a6ee 
 gus_at_dirac.bedford.progress.com gus_at_di
racgus  gus_at_diracgus  ssh-copy-id -i id_rsa 
gus_at_bespin gus_at_diracgus  
 17Enabling SSH certificate authentication 2
gus_at_diracgus  cat /Users/gus/.ssh/id_rsa.pub. ss
h-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEApwswruyeETRbQ/T7
ZHdNxtXIC5J41XpnJwWND4HB3WTuXPLx/Qf2S83Y3VPSgGoc9
YqmLOc/hfs/gQryTQC9jGIPVYtW/E5PPvhh/HxTIKVc0eYMmp
KlxFCjfcv0KyDcAwnd7r/wczPqw2TpurzZcXfA0c2upqufJZbn
weXZtDrcs7bUwdQXskrqDj1EDBxACuH1/omZa2M/PdfFzyrRtb
RMeyrfIWAfoL5RNOFsPYYOxWJxfp11tuSF7OiBUQtcbXAfS8cd
HsQkJNNzSZqM6B69LvK28mlHZ8m2b5cXICA27aUyDZfsSlMLR
6rlAo3UByL8GZQBLUmhMsuRQ gus_at_dirac.bedford.pro
gress.com gus_at_diracgus  
 18More about SSH
www.openssh.com http//www.ietf.org/rfc/rfc4251.t
xt 
 19Tip Number 0x04
Windows can do SSH too 
 20SSH for Windows
Client use Putty http//www.chiark.greenend.org.
uk/sgtatham/putty/ Server get Cygwin 
http//www.cygwin.com 
 21Tip Number 0x05
After-image journalling is your friend! 
 22After Imaging
- Do you use after-image journalling? 
- YOU SHOULD 
- AI records 
- all database changes after a backup 
- Intended for 
- disaster recovery 
- hot standby on another machine
23AI Basics
- Add AI extents to database 
- Back up the database 
- Enable after-imaging 
- Archive ai extents as they become full 
- 10.1 has an automatic archiver 
- OpenEdge DBA guide has details
24AI basics 2
- A failure occurs and you lose your database .. 
- Fix the failure 
- replace disk, memory, machine, etc. 
- Restore the backup copy of your database 
- Roll forward all ai extents you archived 
- You do know where you put them, dont you? 
- I hope they werent on the failed disk 
- When roll forward done, start database 
- Now you are back to where you were
25Tip Number 0x06
Specify scratch space for index rebuild 
 26Index rebuild scratch space
Command line looks like this proutil dbname -C 
idxbuild table customer \ -SS dbname.srt -TB 31 
-TM 32 -B 1000 Scratch space spec file 
(dbname.srt) looks like this 300 
/user2/db1/first/ 400 /user3/junk/ 0 /user4/last/ 
note multiple drives in this example 
 27Tip Number 0x07
Tools you should know about 
 28Tools
- uptime 
- find 
- top 
- lsof 
- ifconfig 
- vmstat 
- iostat 
- netstat 
- bzip2 
29Tools uptime
 uptime 1126am up 17 day(s), 916, 163 
users, load average 3.09, 3.36, 3.76  
 30Tools top
gus_at_diracgus  top -l 1 Processes 65 total, 3 
running, 62 sleeping... 183 threads 
105124 Load Avg 0.04, 0.06, 0.07 CPU 
usage 11.1 user, 44.4 sys, 44.4 
idle SharedLibs num  170, resident  37.0M 
code, 5.30M data, 6.44M LinkEdit MemRegions num 
 6460, resident  166M  16.3M private, 164M 
shared PhysMem 161M wired, 758M active, 879M 
inactive, 1.76G used, 248M free VM 9.47G  
102M 230499(0) pageins, 16746(0) pageouts 
PID COMMAND CPU TIME TH PRTS MREGS 
RPRVT RSHRD RSIZE VSIZE 606 top 
0.0 000.05 1 17 19 276K 684K 
748K 26.9M 586 bash 0.0 000.02 1 
 14 16 224K 1.05M 844K 27.1M 585 
login 0.0 000.01 1 16 40 172K 
 768K 636K 26.9M 583 Terminal 0.0 
001.56 5 130 197 2.64M 11.9M 8.93M 
364M 563 TextEdit 0.0 000.23 1 67 
 149 2.05M 8.94M 5.80M 355M 558 TeXShop 
 0.0 003.18 2 109 238 4.49M 20.2M 
25.6M 365M 467 firefox-bi 0.0 131.55 
6 96 389 48.1M 29.4M 67.4M 428M 
 31Toolsfind
- find files modified more than 30 days ago 
- find . -mtime 30 -print 
- delete files modified more than 30 days ago 
- find . -mtime 30 -exec rm  \ 
- find files bigger than 16k 
- find . -size 16384c -print 
- find . -size 32 -print 
- delete files bigger than 16k 
- find . -size 16384c -print  xargs -i rm 
 \Read the man page for lots more!
32Toolslsof
_progres 26240 bleicher /usr/lib/librt.so.1 _prog
res 26240 bleicher /usr/lib/libsocket.so.1 _progr
es 26240 bleicher /usr/lib/libintl.so.1 _progres 
 26240 bleicher /usr/lib/ld.so.1 _progres 26240 
bleicher /usr/lib/libdl.so.1 . . . _progres 
26240 bleicher /tools/solaris/dlc100b/promsgs _pro
gres 26240 bleicher /tools/solaris/dlc100b/bin/_p
rogres 
ftp//vic.cc.purdue.edu/pub/ 
 33Toolsifconfig
1-bespin-gus- /usr/sbin/ifconfig -a lo0 
flags1000849
 mtu 8232 index 1 inet 127.0.0.1 netmask ff000000 
 ce0 flags1000843,IPv4 mtu 1500 index 2 inet 172.16.7.168 
netmask ffff0000 broadcast 172.16.255.255 
 34Toolsifconfig
gus_at_diracgus  ifconfig en0 en0 
flags8863ICAST mtu 1500 tunnel inet -- 
inet6 fe80217f2fffeccb686en0 prefixlen 64 
scopeid 0x4 inet 172.16.114.99 netmask 
0xffff0000 broadcast 172.16.255.255 ether 
0017f2ccb686 media autoselect 
(1000baseT ) status 
active supported media autoselect 
10baseT/UTP 10baseT/UTP 10baseT/UTP 
10baseT/UTP 
100baseT 100baseTX 
100baseTX 
100baseTX 1000baseT 
 1000baseT 
1000baseT none 
vlan 0 parent interface bond 
interfaces 
 35Toolsnetstat
1-bespin-gus- netstat TCP IPv4 Local 
Address Remote Address Swind Send-Q 
Rwind Recv-Q State -------------------- 
-------------------- ----- ------ ----- ------ 
------- bespin.1023 rdlserv.nfsd 
26280 0 49640 116 ESTABLISHED bespin.32880
 bespin.6015 49152 0 49152 
 0 ESTABLISHED bespin.32879 bespin.6014 
 49152 0 49152 0 ESTABLISHED bespin.6
014 bespin.32879 49152 0 49152 
 0 ESTABLISHED bespin.6015 
bespin.32880 49152 0 49152 0 
CLOSE_WAIT . . . 
 36Tools netstat -s
gus_at_dirac4gl  netstat -s tcp 794419 
packets sent 37468 data packets 
(22991001 bytes) 51 data packets 
(11242 bytes) retransmitted 0 
resends initiated by MTU discovery 
 430311 ack-only packets (196294 delayed) 
 0 URG only packets 0 
window probe packets 322074 
window update packets 4516 
control packets 1308690 packets received 
 33675 acks (for 22967429 bytes) 
 2270 duplicate acks 
0 acks for unsent data 1248341 
packets (1521010141 bytes) received in-sequence 
 385 completely duplicate packets 
(343882 bytes) 0 old duplicate 
packets 41 packets with some dup. 
data (28512 bytes duped) 33202 
out-of-order packets (38094369 bytes) 
 1 packet (376 bytes) of data after window 
 37vmstat
vmstat 3 50 procs -----------memory---------- 
---swap-- -----io---- --system-- ----cpu---- r 
b swpd free buff cache si so bi 
bo in cs us sy id wa 0 7 3656 226920 
16528 5294120 0 0 360 636 281 823 4 
 4 49 42 0 6 3656 205504 16584 5302288 0 
 0 2688 903 1066 4675 7 6 11 75 2 0 
3656 186088 16584 5310512 0 0 2656 684 
1010 4687 6 6 8 80 22 28 3656 165196 16600 
5319748 0 0 2887 871 1096 4623 8 6 8 
78 0 94 3656 138524 16648 5331008 0 0 
3909 815 1292 3455 8 6 6 79 
 . . . 
 38iostat
 gus_at_diracgus  iostat 5 5 disk0 
cpu KB/t tps MB/s us sy id 18.07 4 0.07 
7 3 90 0.00 0 0.00 2 1 97 0.00 0 
0.00 4 1 95 0.00 0 0.00 2 2 96 0.00 
 0 0.00 3 1 95 
 39Toolsbzip2
 ls -l tips_for_dbas_00.ppt -rw-r--r-- 1 gus 
staff 644096 Apr 23 0918 tips_for_dbas_00.ppt 
 bzip2 tips_for_dbas_00.ppt  ls -l 
tips_for_dbas_00.ppt.bz2 -rw-r--r-- 1 gus 
staff 246356 Apr 23 0918 tips_for_dbas_00.ppt.bz
2 
 40Tools Windows tabbed console 
 41Tools windows tabbed console
http//sourceforge.net/projects/console/ 
 42Tools More Windoze Stuff
http//www.microsoft.com/technet/sysinternals
Some useful stuff you can get there Handle 
 who has what files open Process Monitor lots of 
information about processes and disk 
activity Autorun what programs get started 
automatically Regmon monitors registry 
activity Tcpview shows all active TCP and UDP 
endpoints PsTools list processes, system info, 
who is logged on Zoomit zoom in on parts of 
screen Lots more 
 43Tools Still More Windoze Stuff
http//www.baremetalsoft.com/baretail 
 44Tools Solaris
pldd List the dynamic libraries linked into each 
 process pfiles Report fstat(2) and fcntl(2) 
information for all open files in each 
process. pmap print information about the 
address space of a process plimit get or set the 
resource limits of running processes pargs print 
 process arguments, environment 
variables preap force a defunct process to be 
reaped by its parent pkginfo list what packages 
are installed 
 45Tools AIX svmon
svmon -G -I size inuse 
free pin virtual memory 1048576 
 425275 623301 66521 159191 pg 
space 262144 31995 work 
 pers clnt pin 46041 
 0 0 in use 129600 275195 
 0 PageSize PoolSize inuse 
pgsp pin virtual s 4 KB - 
 404795 31995 46041 159191 L 16 
MB 5 0 0 5 
 0
List top 15 memory consumers svmon -Pt15  perl 
-e while()print if(.2!s).0 
if(/-/) 
 46Tools AIX vmstat
vmstat -v 1048576 memory pages 
 1002054 lruable pages 478136 free 
pages 1 memory pools 
95342 pinned pages 80.1 maxpin 
percentage 10.0 minperm percentage 
 50.0 maxperm percentage 
36.1 numperm percentage 362570 file 
pages . . . Use vmo command to 
adjust minperm, maxperm, numperm as needed
http//users.ca.astound.net/baspence/AIXtip/AIX5_I
nitial_Tuning.htm 
 47Tip Number 0x08
Windows scripting 
 48Windows scripting
Windows .bat scripts are brain damaged
- Cygwin 
- provides lots of Unix tools and a shell for 
 Windows. Also SSH server
- Download from www.cygwin.com 
- Windows Services for UNIX Version 3.5 
- From Microoft, but free 
- Lots of goodies Korn, C, bash shells, 350 UNIX 
 commands, NFS, NFS gateway, telent, telnetd
- Download from http//technet.microsoft.com/en-us/i
 nteropmigration/bb380242.aspx
- UWIN 
- http//www.research.att.com/sw/tools/uwin/
49Tip Number 0x09
how to turn off Windows indexing service 
 50Stop Windows indexing service
- Go to the Start menu, pick run. 
- Type services.msc, click OK. 
- Services dialog will show. 
- Right-click on indexing service to show 
 properties dialog,
- if service running, click stop. 
- select disabled. 
- click apply 
- close.
51Tip Number 0x0a
What not to do 
 52What Not To Do 
 53Tip Number 0x0b
How to telnet to Windows 
 54Enable Windows telnet login by name/passwd
- NTLM authentication by default 
- To fix 
- run TLNTADMN 
- take menu pick no 3 (display/change ) 
- pick 7 (NTLM) 
- set value to 1 
- take menu pick no 4 (restart service) 
- BUT dont use telnet
enables you to telnet into a Windows machine 
 55Tip Number 0x0c
scripting Progress backup 
 56Scripting backup
bkupdev"DB_bkupdir/DB_name.bkup" rm -f 
bkupdev 21  echo "Backing up database 
DB_dir/DB_name to bkupdev"  DLC/bin/probkup 
online DB_dir/DB_name bkupdev01 \ -vs 250000 
-bf 40 . bkupdev12 bkupdev_overflow EOF 
source PEG, from Jared Middleton 
 57Tip Number 0x0d
scripting promon 
 58Scripting promon
Set page size, capture list of IO operations by 
process
DLC/bin/promon DBNAME promon.log \ "EOF" 2 /dev/null RD 5 1 9999 p 3 2 x EOF 
 59Tip Number 0x0e
scripting after imaging 
 60Scripting ai archiving
EXTENT_NAME_rfutil DB_DIR/DB -C aimage extent 
full  EXTENT_DATEdate Ymd-HMS  like 
this 20070516-140856, but change to suit tar 
-czvf /anotherdisk/aiarchives/EXTENT_DATE 
EXTENT_NAME md5 -q /anotherdisk/aiarchives/EXTE
NT_DATE EXTENT_NAME \ /anotherdisk/aiarchives/
EXTENT_DATE EXTENT_NAME.md5 rfutil 
DB_DIR/DB -C aimage extent empty EXTENT_NAME 
or use ssh to send archived extents to another 
machine 
 61Tip Number 0x0f
How much space is being used by storage areas? 
 62How much space is being used?
for each _AreaStatus where ( not 
_AreaStatus-Areaname matches "After Image Area" 
) no-lock display _AreaStatus-Areanum
 format "" column-label "Num" 
_AreaStatus-Areaname format "x(20)" column-label 
"Area Name" _AreaStatus-Totblocks 
column-label "Tot blocks" _AreaStatus-Hiwater
 column-label "High water mark" 
_AreaStatus-Hiwater / _AreaStatus-Totblocks  100 
column-label " use" _AreaStatus-Extents 
format "" column-label "Num Extents" 
. end.
from PEG Dmitri Levin 
 63Tip Number 0x10
List tables by storage area 
 64List tables by storage area
for each _Area, each _Storageobject 
where (_Storageobject._Area-number  
_Area._Area-number), each _File 
 where (_File._File-Number  _Storageobject._Objec
t-number) and 
(_File._File-Number 0) break by 
_File._File-name display _Area._Area-name 
_File._File-name. end. 
 65Listing of tables by storage area
Area-name 
File-Name Schema Area 
agedar Schema Area 
agedar Schema Area 
customer Schema Area 
customer Schema Area 
item Schema Area item Schema 
Area monthly Schema Area 
 monthly
Why are the areas listed twice? 
 66List tables by storage area
for each _Area, each _Storageobject 
where (_Storageobject._Area-number  
_Area._Area-number), each _File 
 where (_File._File-Number  _Storageobject._Objec
t-number) and 
(_File._File-Number 0) break by 
_File._File-name display _Area._Area-name 
_File._File-name. end. 
 67List tables by storage area 2
for each _Area, each _Storageobject 
where (_Storageobject._Area-number  
_Area._Area-number), each _File 
 where (_File._File-Number  _Storageobject._Objec
t-number) and 
(_File._File-Number 0) and 
(_StorageObject._Object-type eq 1) break by 
_File._File-name display _Area._Area-name 
_File._File-name. end. 
 68Tip Number 0x11
List indices by storage area and table 
 69List indexes by storage area and table
for each _Area, each _Storageobject 
where (_Storageobject._Area-number  
_Area._Area-number), each _Index 
 where (_Index._Idx-num  _Storageobject._Object-
number) and (_StorageObject._Obj
ect-type eq 2)  find _File of _Index. 
 if (_File._File-number 0) then 
display _Area._Area-name _File._File-name 
_Index._Index-name. end. 
 70Tip Number 0x12
Learn to use vi 
 71vi cheat sheet 
 72Tip Number 0x13
Tom Bascoms protop 
 73protop
- Tom Bascoms Open Source Progress 4GL VST-based 
 performance monitoring program
- A promon  written in the 4GL 
- Displays tons of useful information 
- Study source code to learn how it is done 
- Download from 
- http//www.greenfieldtech.com/articles/protop.shtm
 l
74Tip Number 0x14
Adam Backmans DBA scripts 
 75Adam Backmans dba scripts
- Available on PEG http//www.peg.com/utilities.htm
 l
- Been around awhile, but very good 
- Stuff they do 
- backup 
- check ai status 
- check db status 
- look for blocked clients 
- more  
- Study code to learn how it is done 
76Tip Number 0x15
Where to get more tips 
 77Where to learn more
- OpenEdge Database Administration Guide 
- OpenEdge RDBMS Performance Tuning Made Simple 
 on PSDN or PEG
- PSDN www.psdn.progress.com 
- Classes (not the only ones) 
- Bravepoint bravepoint.com 
- White Star Software wss.com 
- Progress DBA classes 
- http//www.progress.com/openedge/services/educatio
 n/index.ssp
- PSC Tech Support Knowledge Center 
78Tip Number 0x16
Join the PEG www.peg.com Ask questions there 
 79Questions
?