Home
Up

Make Sybase Devices

#!/bin/sh
###
# Script to build all the Sybase devices filesystems and links on luddsyb01
# Disks for /syb_dumps not available at current time
# So it uses all the free space on $DEVICE1
#
# Usage: $0 { make_dir | make_fs | make_raw | make_links | chown_dev | make_dumps }
# For a new build do in the above order
#
# Andy Marshallsay
# Thu May 25 11:07:00 BST 2006
###


###
# Variables
###
PATH="/usr/bin:/usr/sbin:/usr/ucb:/usr/opt/SUNWmd/sbin:/usr/platform/sun4u/sbin:/usr/local/bin"
export PATH
ASE_NAME=ASE_GRIPSDR
DEVICE1=c7t0d0s6

# 1.15 is multipler for filesystem overheads, can probably reduce to 1.09 or less
# 2048 makes figures in blocks
# awk makes the figures intergers and appends "b" for blocks
filesystem_100mb=`echo "100 * 1.15 * 2048" | bc | awk -F'.' '{ print $1"b" }'`
filesystem_2gb=`echo "2000 * 1.15 * 2048" | bc | awk -F'.' '{ print $1"b" }'`
filesystem_5gb=`echo "5000 * 1.15 * 2048" | bc | awk -F'.' '{ print $1"b" }'`
filesystem_6gb=`echo "6000 * 1.15 * 2048" | bc | awk -F'.' '{ print $1"b" }'`
filesystem_7gb=`echo "7000 * 1.15 * 2048" | bc | awk -F'.' '{ print $1"b" }'`
filesystem_10gb=`echo "10000 * 1.15 * 2048" | bc | awk -F'.' '{ print $1"b" }'`
filesystem_15gb=`echo "15000 * 1.15 * 2048" | bc | awk -F'.' '{ print $1"b" }'`

if [ $USER != "root" ]; then
echo "$0: must be run as root"
exit 2
fi

case "$1" in
'make_dir')
###
# Directories
###

mkdir -p /syb_devices/$ASE_NAME/tempdb/data
mkdir -p /syb_devices/$ASE_NAME/raw
mkdir -p /syb_devices/$ASE_NAME/cooked
mkdir -p /syb_devices/$ASE_NAME/tempdb/log
mkdir -p /syb_devices/$ASE_NAME/tempdb_admin_data_1
mkdir -p /syb_devices/$ASE_NAME/tempdb_data_1
mkdir -p /syb_devices/$ASE_NAME/tempdb_admin_log_1
mkdir -p /syb_devices/$ASE_NAME/tempdb_log_1
mkdir -p /syb_reportS
mkdir -p /export/home
mkdir -p /opt/sybase
mkdir -p /syb_reports
mkdir -p /syb_dumps

chown sybase:sybase /syb_devices
chown sybase:sybase /syb_devices/$ASE_NAME
chown sybase:sybase /syb_devices/$ASE_NAME/tempdb
chown sybase:sybase /syb_devices/$ASE_NAME/raw

chmod 755 /syb_devices
chmod 755 /syb_devices/$ASE_NAME
chmod 755 /syb_devices/$ASE_NAME/tempdb
chmod 755 /syb_devices/$ASE_NAME/raw
chmod 777 /syb_devices/$ASE_NAME/tempdb_admin_data_1
chmod 777 /syb_devices/$ASE_NAME/tempdb_data_1
chmod 777 /syb_devices/$ASE_NAME/tempdb_admin_log_1
chmod 777 /syb_devices/$ASE_NAME/tempdb_log_1
chmod 777 /syb_devices/$ASE_NAME/cooked
chmod 777 /export/home
chmod 777 /opt/sybase
chmod 777 /syb_reports
chmod 777 /syb_dumps
;;

'make_fs')
###
# Filesystems
###
cd /syb_devices/$ASE_NAME/tempdb/data
metainit d200 -p $DEVICE1 $filesystem_100mb
ln -s /dev/md/rdsk/d200 tempdb_admin_data_1.dev
newfs /dev/md/rdsk/d200
echo "/dev/md/dsk/d200 /dev/md/rdsk/d200 /syb_devices/$ASE_NAME/tempdb_admin_data_1 ufs 3 yes -" >> /etc/vfstab
mount /syb_devices/$ASE_NAME/tempdb_admin_data_1
chown sybase:sybase /syb_devices/$ASE_NAME/tempdb_admin_data_1
chmod 755 /syb_devices/$ASE_NAME/tempdb_admin_data_1

metainit d201 -p $DEVICE1 $filesystem_2gb
ln -s /dev/md/rdsk/d201 tempdb_data_1.dev
newfs /dev/md/rdsk/d201
echo "/dev/md/dsk/d201 /dev/md/rdsk/d201 /syb_devices/$ASE_NAME/tempdb_data_1 ufs 3 yes -" >> /etc/vfstab
mount /syb_devices/$ASE_NAME/tempdb_data_1
chown sybase:sybase /syb_devices/$ASE_NAME/tempdb_data_1
chmod 755 /syb_devices/$ASE_NAME/tempdb_data_1

cd /syb_devices/$ASE_NAME/tempdb/log
metainit d202 -p $DEVICE1 $filesystem_100mb
ln -s /dev/md/rdsk/d202 tempdb_admin_log_1.dev
newfs /dev/md/rdsk/d202
echo "/dev/md/dsk/d202 /dev/md/rdsk/d202 /syb_devices/$ASE_NAME/tempdb_admin_log_1 ufs 3 yes -" >> /etc/vfstab
mount /syb_devices/$ASE_NAME/tempdb_admin_log_1
chown sybase:sybase /syb_devices/$ASE_NAME/tempdb_admin_log_1
chmod 755 /syb_devices/$ASE_NAME/tempdb_admin_log_1

metainit d203 -p $DEVICE1 $filesystem_2gb
ln -s /dev/md/rdsk/d203 tempdb_log_1.dev
newfs /dev/md/rdsk/d203
echo "/dev/md/dsk/d203 /dev/md/rdsk/d203 /syb_devices/$ASE_NAME/tempdb_log_1 ufs 3 yes -" >> /etc/vfstab
mount /syb_devices/$ASE_NAME/tempdb_log_1
chown sybase:sybase /syb_devices/$ASE_NAME/tempdb_log_1
chmod 755 /syb_devices/$ASE_NAME/tempdb_log_1

# /export/home
metainit d204 -p $DEVICE1 $filesystem_7gb
newfs /dev/md/rdsk/d204
echo "/dev/md/dsk/d204 /dev/md/rdsk/d204 /export/home ufs 3 yes -" >> /etc/vfstab
mount /export/home
chown root:other /export/home
chmod 755 /export/home

# /export/home/sybase
metainit d205 -p $DEVICE1 $filesystem_15gb
newfs /dev/md/rdsk/d205
echo "/dev/md/dsk/d205 /dev/md/rdsk/d205 /export/home/sybase ufs 3 yes -" >> /etc/vfstab
mkdir /export/home/sybase
chown root:other /export/home/sybase
chmod 777 /export/home/sybase
mount /export/home/sybase
chown sybase:sybase /export/home/sybase
chmod 755 /export/home/sybase

# /opt/sybase
metainit d206 -p $DEVICE1 $filesystem_10gb
newfs /dev/md/rdsk/d206
echo "/dev/md/dsk/d206 /dev/md/rdsk/d206 /opt/sybase ufs 3 yes -" >> /etc/vfstab
mount /opt/sybase
chown sybase:sybase /opt/sybase
chmod 755 /opt/sybase

# /syb_reports
metainit d207 -p $DEVICE1 $filesystem_6gb
newfs /dev/md/rdsk/d207
echo "/dev/md/dsk/d207 /dev/md/rdsk/d207 /syb_reports ufs 3 yes -" >> /etc/vfstab
mount /syb_reports
chown sybase:sybase /syb_reports
chmod 755 /syb_reports

# cooked
metainit d208 -p $DEVICE1 $filesystem_5gb
newfs /dev/md/rdsk/d208
echo "/dev/md/dsk/d208 /dev/md/rdsk/d208 /syb_devices/$ASE_NAME/cooked ufs 3 yes -" >> /etc/vfstab
mount /syb_devices/$ASE_NAME/cooked
chown sybase:sybase /syb_devices/$ASE_NAME/cooked
chmod 755 /syb_devices/$ASE_NAME/cooked
;;

'make_raw')
###
# make_raw
###
metainit d100 -p $DEVICE1 100mb # master_mixed_1.dev
metainit d101 -p $DEVICE1 200mb # sybsystemprocs_mixed_1.dev
metainit d102 -p $DEVICE1 80mb # fidessa_recon_data_1.dev
metainit d103 -p $DEVICE1 20480mb # GRIPS_data_1.dev
metainit d104 -p $DEVICE1 2048mb # GRIPS_log_1.dev
metainit d105 -p $DEVICE1 2000mb # dba_mixed_1.dev
metainit d106 -p $DEVICE1 22528mb # GRIPS_data_2.dev
metainit d107 -p $DEVICE1 1250mb # dbccdb_data_1.dev
metainit d108 -p $DEVICE1 250mb # dbccdb_log_1.dev
metainit d109 -p $DEVICE1 200mb # GNI_reporting_mixed_1.dev
metainit d110 -p $DEVICE1 500mb # GNI_CUSTODY_mixed_1.dev
metainit d111 -p $DEVICE1 22528mb # GRIPS_data_3.dev
metainit d112 -p $DEVICE1 4mb # sybsystemdb_mixed_1.dev
metainit d113 -p $DEVICE1 20mb # fidessa_recon_log_1.dev
metainit d114 -p $DEVICE1 400mb # sybsecurity_data_1.dev
metainit d115 -p $DEVICE1 400mb # sybsecurity_data_2.dev
metainit d116 -p $DEVICE1 100mb # sybsecurity_log_1.dev
metainit d117 -p $DEVICE1 100mb # GNI_CATS_data_1.dev
metainit d118 -p $DEVICE1 100mb # GNI_CATS_log_1.dev
metainit d119 -p $DEVICE1 200mb # GNI_Pricing_mixed_1.dev
metainit d120 -p $DEVICE1 22528mb # GRIPS_data_4.dev
metainit d121 -p $DEVICE1 1024mb # MMI_data_1.dev
metainit d122 -p $DEVICE1 200mb # MMI_log_1.dev
metainit d123 -p $DEVICE1 1024mb # J2EE_ERRORS_data_1.dev
metainit d124 -p $DEVICE1 200mb # J2EE_ERRORS_log_1.dev
metainit d125 -p $DEVICE1 200mb # DBStats_mixed_1.dev
metainit d126 -p $DEVICE1 250mb # GRIPS_BCP_mixed_1.dev
metainit d127 -p $DEVICE1 22528mb # GRIPS_archive_data_1.dev
metainit d128 -p $DEVICE1 22528mb # GRIPS_archive_data_2.dev
metainit d129 -p $DEVICE1 22528mb # GRIPS_archive_data_3.dev
;;

'make_links')
###
# make_links
###
cd /syb_devices/$ASE_NAME/raw
su sybase -c "ln -s /dev/md/rdsk/d100 master_mixed_1.dev"
su sybase -c "ln -s /dev/md/rdsk/d101 sybsystemprocs_mixed_1.dev"
su sybase -c "ln -s /dev/md/rdsk/d102 fidessa_recon_data_1.dev"
su sybase -c "ln -s /dev/md/rdsk/d103 GRIPS_data_1.dev"
su sybase -c "ln -s /dev/md/rdsk/d104 GRIPS_log_1.dev"
su sybase -c "ln -s /dev/md/rdsk/d105 dba_mixed_1.dev"
su sybase -c "ln -s /dev/md/rdsk/d106 GRIPS_data_2.dev"
su sybase -c "ln -s /dev/md/rdsk/d107 dbccdb_data_1.dev"
su sybase -c "ln -s /dev/md/rdsk/d108 dbccdb_log_1.dev"
su sybase -c "ln -s /dev/md/rdsk/d109 GNI_reporting_mixed_1.dev"
su sybase -c "ln -s /dev/md/rdsk/d110 GNI_CUSTODY_mixed_1.dev"
su sybase -c "ln -s /dev/md/rdsk/d111 GRIPS_data_3.dev"
su sybase -c "ln -s /dev/md/rdsk/d112 sybsystemdb_mixed_1.dev"
su sybase -c "ln -s /dev/md/rdsk/d113 fidessa_recon_log_1.dev"
su sybase -c "ln -s /dev/md/rdsk/d114 sybsecurity_data_1.dev"
su sybase -c "ln -s /dev/md/rdsk/d115 sybsecurity_data_2.dev"
su sybase -c "ln -s /dev/md/rdsk/d116 sybsecurity_log_1.dev"
su sybase -c "ln -s /dev/md/rdsk/d117 GNI_CATS_data_1.dev"
su sybase -c "ln -s /dev/md/rdsk/d118 GNI_CATS_log_1.dev"
su sybase -c "ln -s /dev/md/rdsk/d119 GNI_Pricing_mixed_1.dev"
su sybase -c "ln -s /dev/md/rdsk/d120 GRIPS_data_4.dev"
su sybase -c "ln -s /dev/md/rdsk/d121 MMI_data_1.dev"
su sybase -c "ln -s /dev/md/rdsk/d122 MMI_log_1.dev"
su sybase -c "ln -s /dev/md/rdsk/d123 J2EE_ERRORS_data_1.dev"
su sybase -c "ln -s /dev/md/rdsk/d124 J2EE_ERRORS_log_1.dev"
su sybase -c "ln -s /dev/md/rdsk/d125 DBStats_mixed_1.dev"
su sybase -c "ln -s /dev/md/rdsk/d126 GRIPS_BCP_mixed_1.dev"
su sybase -c "ln -s /dev/md/rdsk/d127 GRIPS_archive_data_1.dev"
su sybase -c "ln -s /dev/md/rdsk/d128 GRIPS_archive_data_2.dev"
su sybase -c "ln -s /dev/md/rdsk/d129 GRIPS_archive_data_3.dev"
;;

'chown_dev')
###
# chown_dev
###
chown sybase:sybase /dev/md/rdsk/d100
chown sybase:sybase /dev/md/rdsk/d101
chown sybase:sybase /dev/md/rdsk/d102
chown sybase:sybase /dev/md/rdsk/d103
chown sybase:sybase /dev/md/rdsk/d104
chown sybase:sybase /dev/md/rdsk/d105
chown sybase:sybase /dev/md/rdsk/d106
chown sybase:sybase /dev/md/rdsk/d107
chown sybase:sybase /dev/md/rdsk/d108
chown sybase:sybase /dev/md/rdsk/d109
chown sybase:sybase /dev/md/rdsk/d110
chown sybase:sybase /dev/md/rdsk/d111
chown sybase:sybase /dev/md/rdsk/d112
chown sybase:sybase /dev/md/rdsk/d113
chown sybase:sybase /dev/md/rdsk/d114
chown sybase:sybase /dev/md/rdsk/d115
chown sybase:sybase /dev/md/rdsk/d116
chown sybase:sybase /dev/md/rdsk/d117
chown sybase:sybase /dev/md/rdsk/d118
chown sybase:sybase /dev/md/rdsk/d119
chown sybase:sybase /dev/md/rdsk/d120
chown sybase:sybase /dev/md/rdsk/d121
chown sybase:sybase /dev/md/rdsk/d122
chown sybase:sybase /dev/md/rdsk/d123
chown sybase:sybase /dev/md/rdsk/d124
chown sybase:sybase /dev/md/rdsk/d125
chown sybase:sybase /dev/md/rdsk/d126
chown sybase:sybase /dev/md/rdsk/d127
chown sybase:sybase /dev/md/rdsk/d128
chown sybase:sybase /dev/md/rdsk/d129
;;

'make_dumps')
###
# /syb_dumps
###
# must be run last
# will build a volume the size of the largest chunk of free-space
# untested with fragment volumes and therefore multiple free chunks
FREE_SPACE=`metarecover -v -n /dev/rdsk/$DEVICE1 -p | grep "FREE" | awk '{ print $5 }' | sort -nr | head -1`
# need to take off 1 block and append b !!!!!!
FREE_SPACE_1=`expr $FREE_SPACE - 1`
FREE_SPACE_1b=$FREE_SPACE_1"b"
metainit d209 -p $DEVICE1 $FREE_SPACE_1b
newfs /dev/md/rdsk/d209
echo "/dev/md/dsk/d209 /dev/md/rdsk/d209 /syb_dumps ufs 3 yes -" >> /etc/vfstab
mount /syb_dumps
chown sybase:sybase /syb_dumps
chmod 755 /syb_dumps
;;

*)
echo "Usage: $0 { make_dir | make_fs | make_raw | make_links | chown_dev | make_dumps }"
echo "For a new build do in the above order"

exit 1
;;
esac
exit 0

 

© Andrew Marshallsay 2008