Методика подготовки сервера Sun (OS Solaris + Oracle),
предназначенного для автономной работы в регионе и связанного с головным офисом
с помощью сети Frame Relay.
Основной диск (4.2G)
Part | Tag | Flag | Cylinders | Size | Blocks | |||
---|---|---|---|---|---|---|---|---|
0 | root | wm | 0 | - | 68 | 72.77MB | (69/0/0) | 149040 |
1 | swap | wu | 69 | - | 311 | 256.29MB | (243/0/0) | 524880 |
2 | backup | wm | 0 | - | 3879 | 4.00GB | (3880/0/0) | 8380800 |
3 | unassigned | wm | 0 | 0 | (0/0/0) | 0 | ||
4 | var | wm | 312 | - | 425 | 120.23MB | (114/0/0) | 246240 |
5 | unassigned | wm | 426 | - | 539 | 120.23MB | (114/0/0) | 246240 |
6 | usr | wm | 540 | - | 1203 | 700.31MB | (664/0/0) | 1434240 |
7 | home | wm | 1204 | - | 3879 | 2.76GB | (2676/0/0) | 5780160 |
Второй диск (4.2G)
Part | Tag | Flag | Cylinders | Size | Blocks | |||
---|---|---|---|---|---|---|---|---|
0 | root | wm | 0 | - | 121 | 128.67MB | (122/0/0) | 263520 |
1 | swap | wu | 122 | - | 243 | 128.67MB | (122/0/0) | 263520 |
2 | backup | wu | 0 | - | 3879 | 4.00GB | (3880/0/0) | 8380800 |
3 | unassigned | wm | 0 | 0 | (0/0/0) | 0 | ||
4 | unassigned | wm | 0 | 0 | (0/0/0) | 0 | ||
5 | unassigned | wm | 0 | 0 | (0/0/0) | 0 | ||
6 | usr | wm | 244 | - | 3879 | 3.74GB | (3636/0/0) | 7853760 |
7 | unassigned | wm | 0 | 0 | (0/0/0) | 0 |
#device device mount FS fsck mount mount #to mount to fsck point type pass at boot options # #/dev/dsk/c1d0s2 /dev/rdsk/c1d0s2 /usr ufs 1 yes - fd - /dev/fd fd - no - /proc - /proc proc - no - /dev/dsk/c0t0d0s1 - - swap - no - /dev/dsk/c0t0d0s0 /dev/rdsk/c0t0d0s0 / ufs 1 no - /dev/dsk/c0t0d0s6 /dev/rdsk/c0t0d0s6 /usr ufs 1 no - /dev/dsk/c0t0d0s4 /dev/rdsk/c0t0d0s4 /var ufs 1 no - /dev/dsk/c0t0d0s7 /dev/rdsk/c0t0d0s7 /export/home ufs 2 yes - /dev/dsk/c0t0d0s5 /dev/rdsk/c0t0d0s5 /opt ufs 2 yes - swap - /tmp tmpfs - yes - /dev/dsk/c0t1d0s6 /dev/rdsk/c0t1d0s6 /oravol1 ufs 2 yes -Примечания:
Файл: /etc/mnttab:
/dev/dsk/c0t0d0s0 / ufs rw,suid,dev=800000,largefiles 902315960 /dev/dsk/c0t0d0s6 /usr ufs rw,suid,dev=800006,largefiles 902315960 /proc /proc proc rw,suid,dev=2980000 902315960 fd /dev/fd fd rw,suid,dev=2a40000 902315960 /dev/dsk/c0t0d0s4 /var ufs rw,suid,dev=800004,largefiles 902315960 /dev/dsk/c0t0d0s7 /export/home ufs suid,rw,largefiles,dev=800007 902315961 /dev/dsk/c0t0d0s5 /opt ufs suid,rw,largefiles,dev=800005 902315961 swap /tmp tmpfs dev=1 902315961 /dev/dsk/c0t1d0s6 /oravol1 ufs suid,rw,largefiles,dev=80000e 902315961 -hosts /net autofs ignore,indirect,nosuid,nobrowse,dev=2bc0001 902315980 auto_home /home autofs ignore,indirect,nobrowse,dev=2bc0002 902315980 -xfn /xfn autofs ignore,indirect,dev=2bc0003 902315980Команда: mount
/ on /dev/dsk/c0t0d0s0 read/write/setuid/largefiles on Wed Aug 5 15:19:20 1998 /usr on /dev/dsk/c0t0d0s6 read/write/setuid/largefiles on Wed Aug 5 15:19:20 1998 /proc on /proc read/write/setuid on Wed Aug 5 15:19:20 1998 /dev/fd on fd read/write/setuid on Wed Aug 5 15:19:20 1998 /var on /dev/dsk/c0t0d0s4 read/write/setuid/largefiles on Wed Aug 5 15:19:20 1998 /export/home on /dev/dsk/c0t0d0s7 setuid/read/write/largefiles on Wed Aug 5 15:19:21 1998 /opt on /dev/dsk/c0t0d0s5 setuid/read/write/largefiles on Wed Aug 5 15:19:21 1998 /tmp on swap read/write on Wed Aug 5 15:19:21 1998 /oravol1 on /dev/dsk/c0t1d0s6 setuid/read/write/largefiles on Wed Aug 5 15:19:21 1998Команда: df -k
Filesystem kbytes used avail capacity Mounted on /dev/dsk/c0t0d0s0 69343 17442 44967 28% / /dev/dsk/c0t0d0s6 673759 382913 230208 63% /usr /proc 0 0 0 0% /proc fd 0 0 0 0% /dev/fd /dev/dsk/c0t0d0s4 114847 9472 93891 10% /var /dev/dsk/c0t0d0s7 2829583 484690 2288302 18% /export/home /dev/dsk/c0t0d0s5 114847 54408 48955 53% /opt swap 226792 184 226608 1% /tmp /dev/dsk/c0t1d0s6 3864782 9 3826126 1% /oravol1
# Place share(1M) commands here for automatic execution # on entering init state 3. # ... #share -F nfs -o ro /cdrom/solaris_srvr_intranet_ext_1_0
#ident "@(#)inetd.conf 1.27 96/09/24 SMI" /* SVr4.0 1.5 */ # ... # Ftp and telnet are standard Internet services. ftp stream tcp nowait root /usr/sbin/in.ftpd in.ftpd telnet stream tcp nowait root /usr/sbin/in.telnetd in.telnetd # # Tnamed serves the obsolete IEN-116 name server protocol.
name dgram udp wait root /usr/sbin/in.tnamed in.tnamed # # Shell, login, exec, comsat and talk are BSD protocols. #shell stream tcp nowait root /usr/sbin/in.rshd in.rshd #login stream tcp nowait root /usr/sbin/in.rlogind in.rlogind #exec stream tcp nowait root /usr/sbin/in.rexecd in.rexecd #comsat dgram udp wait root /usr/sbin/in.comsat in.comsat #talk dgram udp wait root /usr/sbin/in.talkd in.talkd # # Must run as root (to read /etc/shadow); "-n" turns off logging in utmp/wtmp. # #uucp stream tcp nowait root /usr/sbin/in.uucpd in.uucpd # # Tftp service is provided primarily for booting. Most sites run this # only on machines acting as "boot servers." #tftp dgram udp wait root /usr/sbin/in.tftpd in.tftpd -s /tftpboot # # Finger, systat and netstat give out user information which may be # valuable to potential "system crackers." Many sites choose to disable # some or all of these services to improve security. #finger stream tcp nowait nobody /usr/sbin/in.fingerd in.fingerd #systat stream tcp nowait root /usr/bin/ps ps -ef #netstat stream tcp nowait root /usr/bin/netstat netstat -f inet # # Time service is used for clock synchronization. time stream tcp nowait root internal time dgram udp wait root internal # # Echo, discard, daytime, and chargen are used primarily for testing. echo stream tcp nowait root internal echo dgram udp wait root internal discard stream tcp nowait root internal discard dgram udp wait root internal daytime stream tcp nowait root internal daytime dgram udp wait root internal chargen stream tcp nowait root internal chargen dgram udp wait root internal # # RPC services syntax: # <rpc_prog>/<vers> <endpoint-type> rpc/<proto> <flags> <user> \ # <pathname> <args> # # <endpoint-type> can be either "tli" or "stream" or "dgram". # ... # Rstatd is used by programs such as perfmeter. rstatd/2-4 tli rpc/datagram_v wait root /usr/lib/netsvc/rstat/rpc.rstatd rpc.rstatd # # The rexd server provides only minimal authentication and is often not run #rexd/1 tli rpc/tcp wait root /usr/sbin/rpc.rexd rpc.rexd # # rpc.cmsd is a data base daemon which manages calendar data backed # by files in /var/spool/calendar # # # Sun ToolTalk Database Server # # UFS-aware service daemon #ufsd/1 tli rpc/* wait root /usr/lib/fs/ufs/ufsd ufsd -p # # Sun KCMS Profile Server #100221/1 tli rpc/tcp wait root /usr/openwin/bin/kcms_server kcms_server # # Sun Font Server #fs stream tcp wait nobody /usr/openwin/lib/fs.auto fs # # CacheFS Daemon 100235/1 tli rpc/tcp wait root /usr/lib/fs/cachefs/cachefsd cachefsd # # Kerbd Daemon #kerbd/4 tli rpc/ticlts wait root /usr/sbin/kerbd kerbd # # Print Protocol Adaptor - BSD listener # #printer stream tcp nowait root /usr/lib/print/in.lpd in.lpd #dtspc stream tcp nowait root /usr/dt/bin/dtspcd /usr/dt/bin/dtspcd #xaudio stream tcp wait root /usr/openwin/bin/Xaserver Xaserver -noauth -inetd 100068/2-4 dgram rpc/udp wait root /usr/openwin/bin/rpc.cmsd rpc.cmsd 100083/1 stream rpc/tcp wait root /usr/openwin/bin/rpc.ttdbserverd /usr/openwin/bin/rpc.ttdbserverd #536870916/1 dgram rpc/udp wait root /opt/SUNWvts/bin/vtsk /opt/SUNWvts/bin/vtsk #
При этом файл /etc/services мы не трогаем. Оба файла должны иметь атрибуры 444.
... -rw-r--r-- 1 root root 956 Jun 30 11:46 Madrid -rw-r--r-- 1 root root 944 Jun 30 11:46 Malta -rw-r--r-- 1 root root 813 Jun 30 11:46 Minsk -rw-r--r-- 1 root root 1094 Jun 30 11:46 Monaco -rw-r--r-- 1 root root 818 Jun 30 11:46 Moscow -rw-r--r-- 1 root root 809 Jun 30 11:46 Oslo -rw-r--r-- 1 root root 1097 Jun 30 11:46 Paris ...
# @(#)init.dfl 1.2 92/11/26 # ... # TZ=Europe/Moscow
ntp.conf:
# # GO servers #server 172.16.255.15 server 172.16.255.15 prefer server 172.16.35.17 # goblin #server ntp.cs.strath.ac.uk #server ntp1.cs.wisc.edu #server tick.cs.unlv.edu restrict default nomodify restrict 172.16.35.17 restrict 172.16.35.6 restrict 172.16.35.5 restrict 172.16.35.4 restrict 127.0.0.1 driftfile /etc/ntp.driftntp.client:
# @(#)ntp.client 1.2 96/11/06 SMI # # /etc/inet/ntp.client # ... # multicastclient 224.0.1.1ntp.server:
# @(#)ntp.server 1.4 97/05/05 SMI # # /etc/inet/ntp.server # ... # # Either a peer or server. Replace "XType" with a value from the # table above. server 127.127.XType.0 prefer fudge 127.127.XType.0 stratum 0 # broadcast 224.0.1.1 ttl 4 enable auth monitor driftfile /var/ntp/ntp.drift statsdir /var/ntp/ntpstats/ filegen peerstats file peerstats type day enable filegen loopstats file loopstats type day enable filegen clockstats file clockstats type day enable keys /etc/inet/ntp.keys trustedkey 0 requestkey 0 controlkey 0
Фактически это должен быть один общий сценарий, на который просто сделаны символьные линки:
#!/bin/sh # #ident "@(#)xntpd 1.5 97/05/09 SMI" # # Copyright (c) 1996 by Sun Microsystems, Inc. # All Rights Reserved. # if [ ! -d /usr/sbin -o ! -d /usr/lib/inet ] then # /usr not mounted exit fi killproc() { # kill the named process(es) pid=`/usr/bin/ps -e | /usr/bin/grep -w $1 | /usr/bin/sed -e 's/^ *//' -e 's/ .*//'` [ "$pid" != "" ] && kill $pid } # Start/stop processes required for xntpd case "$1" in 'start') # Only start if there is a config file if [ -r /etc/inet/ntp.conf ] ; then ARGS=`cat /etc/inet/ntp.conf | /usr/bin/nawk ' BEGIN { first = 1 } /^#/ { next } /^multicastclient/ { if (first) { first = 0 printf("-s -w -m") } if (NF == 1) printf(" 224.0.1.1") else printf(" %s", $2) next } /^server 127.127/ { next } /^server/ { if (first) { first = 0 printf("-s -w") } printf(" %s", $2) next } '` if [ ! -z "$ARGS" ] then # wait until date is close before starting xntpd (/usr/sbin/ntpdate $ARGS; sleep 2; /usr/lib/inet/xntpd) & else /usr/lib/inet/xntpd fi fi ;; 'stop') killproc ntpdate killproc xntpd ;; *) echo "Usage: /etc/init.d/xntpd { start | stop }" ;; esac
a) После запуска системы команда ps –fA | grep ntp должна показать запущенный демон – примерно следующее:
root 1010 1 0 16:58:51 ? 0:00 /usr/lib/inet/xntpdb) А если запустить программу ntpq и дать ей команду peers, то молжны получить информацию о процессе общения данной системы с эталонными серверами точного времени:
ntpq> peers remote refid st t when poll reach delay offset disp ============================================================================== +gw-intra.in.ros gw-fr.in.rospri 4 u 171 1024 377 3.36 -39.152 13.50 *goblin.in.rospr spruce.cs.wisc. 3 u 634 1024 377 1.82 7.658 22.45
root::0:root other::1: bin::2:root,bin,daemon sys::3:root,bin,sys,adm adm::4:root,adm,daemon uucp::5:root,uucp mail::6:root tty::7:root,tty,adm lp::8:root,lp,adm nuucp::9:root,nuucp staff::10: daemon::12:root,daemon sysadmin::14:efremov nobody::60001: noaccess::60002: nogroup::65534: dba::101:
root:x:0:1:Super-User:/:/sbin/sh daemon:x:1:1::/: bin:x:2:2::/usr/bin: sys:x:3:3::/: adm:x:4:4:Admin:/var/adm: lp:x:71:8:Line Printer Admin:/usr/spool/lp: smtp:x:0:0:Mail Daemon User:/: uucp:x:5:5:uucp Admin:/usr/lib/uucp: nuucp:x:9:9:uucp Admin:/var/spool/uucppublic:/usr/lib/uucp/uucico listen:x:37:4:Network Admin:/usr/net/nls: nobody:x:60001:60001:Nobody:/: noaccess:x:60002:60002:No Access User:/: nobody4:x:65534:65534:SunOS 4.x Nobody:/: oracle:x:99:101:ORACLE:/export/home/oracle:/bin/sh
PS1='\u@\h:\w$ ' alias ll='ls -laF'
TERM=xterm; export TERM ORACLE_HOME=/oracle/app/oracle/product/8.0.4; export ORACLE_HOME ORACLE_BASE=/oracle; export ORACLE_BASE ORACLE_SID=c; export ORACLE_SID ORACLE_TERM=$TERM; export ORACLE_TERM ORA_NLS=$ORACLE_HOME/ocommon/nls/admin/data; export ORA_NLS ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data; export ORA_NLS ORACLE_DOC=/oracle/app/oracle/product/8.0.4/odoc; export ORACLE_DOC LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH PATH=/opt/SUNWspro/bin:$ORACLE_HOME/bin:/opt/bin:/usr/local/bin:/usr/openwin/bin:$PATH;export PATH MANPATH=/opt/SUNWspro/man:$MANPATH;export MANPATH ORAENV_ASK=NO # export PS1='$PWD> '
Здесь следует обратить внимание на запись
ORACLE_SID=c
В случае машины nv-sib этот параметр имеет значение "c", но на самом деле для каждого компьютера он должен быть уникален.sun-devel: | ORACLE_SID=a |
sun-huge: | ORACLE_SID=b |
nv-sib: | ORACLE_SID=c |
gobline: | ORACLE_SID=rs |
* Parameters for ORACLE set shmsys:shminfo_shmmax=4294967295 set shmsys:shminfo_shmmin=1 set shmsys:shminfo_shmmni=200 set shmsys:shminfo_shmseg=200 set semsys:seminfo_semmns=20000 set semsys:seminfo_semmni=100 set semsys:seminfo_semmsl=200
Дополнительно к нему поставить
a) В каталоге /etc/init.d создать файл dbora
# cd /etc/init.d # ls -l dbora -rwxr--r-- 1 root other 632 Aug 10 13:59 dbora # cat dbora # Set ORA_HOME to be equivalent to the ORACLE_HOME # from which you wish to execute dbstart and # dbshut # set ORA_OWNER to the user id of the owner of the # Oracle database in ORA_HOME ORA_HOME=/oracle/app/oracle/product/8.0.4 ORA_OWNER=oracle if [ ! -f $ORA_HOME/bin/dbstart -o ! -d $ORA_HOME ] then echo "Oracle startup: cannot start" exit fi case "$1" in 'start') # Start the Oracle databases: su - $ORA_OWNER -c $ORA_HOME/bin/dbstart & su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start" & ;; 'stop') # Stop the Oracle databases: su - $ORA_OWNER -c $ORA_HOME/bin/dbshut & su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop" & ;; esac #b) В каталогах /etc/rc0.d и /etc/rc2.d создать линки на этот файл
ln –s /etc/init.d/dbora /etc/rc0.d/K10dbora ln –s /etc/init.d/dbora /etc/rc2.d/S96dborac) В файле /var/opt/oracle/oratab найти строку, соответствующую базе данных и заменить последнюю букву с “N” на “Y”:
# # *:/oracle/app/oracle/product/8.0.4:N c:/oracle/app/oracle/product/8.0.4:Yd) Перезагрузить систему.
e) Проверить, запустилась ли база данных Oracle. О том, что это произошло, будет говорить присутствие в каталоге /oracle/app/oracle/product/8.0.4/dbs файла sgadef*.dbf
# cd /oracle/app/oracle/product/8.0.4/dbs # ls -l sga* -rw-r----- 1 oracle dba 193 Aug 10 15:25 sgadefc.dbf #f) Проверить, запустилась ли служба Unix Domain Socket IPC NT Protocol Adaptor for Solaris
su - oracle $ lsnrctl LSNRCTL for Solaris: Version 8.0.4.0.0 - Production on 10-AUG-98 14:56:00 (c) Copyright 1997 Oracle Corporation. All rights reserved. Welcome to LSNRCTL, type "help" for information. LSNRCTL> status Connecting to (ADDRESS=(PROTOCOL=IPC)(KEY=c)) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for Solaris: Version 8.0.4.0.0 - Production Start Date 10-AUG-98 14:02:50 Uptime 0 days 0 hr. 53 min. 14 sec Trace Level off Security OFF SNMP OFF Listener Parameter File /oracle/app/oracle/product/8.0.4/network/admin/listener.ora Listener Log File /oracle/app/oracle/product/8.0.4/network/log/listener.log Services Summary... c has 1 service handler(s) extproc has 1 service handler(s) The command completed successfully LSNRCTL> exit
root@sun-nvsib:/oracle$ cat oraset.sh ORACLE_HOME=/oracle/app/oracle/product/8.0.4; export ORACLE_HOME LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${ORACLE_HOME}/lib; export LD_LIBRARY_PATH ORACLE_BASE=/oracle; export ORACLE_BASE ORACLE_SID=c; export ORACLE_SID ORACLE_TERM=$TERM; export ORACLE_TERM ORA_NLS=$ORACLE_HOME/ocommon/nls/admin/data; export ORA_NLS ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data; export ORA_NLS ORACLE_DOC=/oracle/app/oracle/product/8.0.4/odoc; export ORACLE_DOC ORAENV_ASK=NO NLS_LANG=american_america.ru8pc866; export NLS_LANG PATH=${PATH}:${ORACLE_HOME}/bin
В дальнейшем, добавляя к системе нового пользователя (например, vdps), который должен будет работать с СУБД Oracle, в его личный файл конфигурации .profile следует поместить дополнительную строку:
. /oracle/oraset.shВ результате при подключении к серверу, данный пользователь будет автоматически получать дополнительные переменные окружения, необходимые для работы с СУБД Oracle.
Является внутренней разработкой компании и, соответственно, на персональной
страничке администратора публиковаться не должно.