Начало Database 10g Автоматично стартиране на базата под Enterprise Linux
Автоматично стартиране на базата под Enterprise Linux
Сряда, 19 Август 2009 07:42
Стандартната инсталация на Oracle Database 10gR2 върху Linux не включва настройването на автоматично стартиране на базата при рестартиране на операционната система.

В Database 10gR2 съществуват два готови скрипта, чрез които можем да автоматизираме стартирането и спирането на базата под Linux. Те се намират в $ORACLE_HOME/bin и се наричат dbstart и dbshut. Официалната позиция на Oracle е, че тези скриптове не могат да се използват за инсталации с ASM извън клъстер, но с малко допълнителни усилия можем да ги накараме да ни свършат работа.

Първото което трябва да направим е да поправим една грешка в скрипта dbstart. Отваряме го с редактор по избор и намираме следните редове:

# Set this to bring up Oracle Net Listener
ORACLE_HOME_LISTNER=/ade/vikrkuma_new/oracle

Както се вижда, пътя към listener-а е зададен твърдо и няма да работи коректно. Поправяме го по следния начин:

# Set this to bring up Oracle Net Listener
ORACLE_HOME_LISTNER=$ORACLE_HOME

След като сме извършили въпросната редакция, трябва да отворим файла /etc/oratab. В него са записани Oracle инстанциите на нашия хост, като за всяка инстанция има отделен запис във формат $ORACLE_SID:$ORACLE_HOME:N/Y. Точно последната част на записа указва дали тази инстанция трябва да се стартира автоматично от dbstart скрипта. Ако на хоста имаме две инстанции (една за базата и една за ASM) то записите във файла може да изглеждат така:

+ASM:/u01/app/oracle/product/10.2.0/db_asm:N
ORCL:/u01/app/oracle/product/10.2.0/db_db:N

За да бъдат горните инстанции стартирани автоматично променяме oratab така:

+ASM:/u01/app/oracle/product/10.2.0/db_asm:Y
ORCL:/u01/app/oracle/product/10.2.0/db_db:Y

Като root потребител създаваме файл /etc/init.d/dbora, със следното съдържание (като задаваме точния път за ORA_HOME и за собственика на инсталацията):

#!/bin/sh
# chkconfig: 345 99 10
# description: Oracle auto start-stop script.
#
# 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=/u01/app/oracle/product/10.2.0/db_db
ORA_OWNER=oracle

if [ ! -f $ORA_HOME/bin/dbstart ]
then
echo "Oracle startup: cannot start"
exit
fi

case "$1" in
'start')
# Start the Oracle databases:
# The following command assumes that the oracle login
# will not prompt the user for any values
su - $ORA_OWNER -c $ORA_HOME/bin/dbstart
;;
'stop')
# Stop the Oracle databases:
# The following command assumes that the oracle login
# will not prompt the user for any values
su - $ORA_OWNER -c $ORA_HOME/bin/dbshut
;;
esac

Променяме правата на dbora по следния начин (при положение, че ползваната при инсталация OS DBA група е dba):

[root@el5 ~]# chgrp dba /etc/init.d/dbora
[root@el5 ~]# chmod 750 /etc/init.d/dbora

След което конфигурираме автоматичното стартиране на скрипта, като използваме командата chkconfig.

[root@el5 ~]# chkconfig --level 345 dbora on
[root@el5 ~]#

Последното, което трябва да направим е да редактираме файла /etc/inittab. В края му ще видим ред, който изглежда така:

h1:35:respawn:/etc/init.d/init.cssd run >/dev/null 2>&1

Преместваме го между l2 и l3 по следния начин:

# System initialization.
si::sysinit:/etc/rc.d/rc.sysinit

l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
h1:35:respawn:/etc/init.d/init.cssd run >/dev/null 2>&1
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6

Правим това, за да отстраним известен бъг свързан със стартирането на ASM (и по-точно бъг 3458327).

С това конфигурирането приключва. Рестартираме системата и по време на зареждането ще видим следните редове:

Processing ASM instance "+ASM": log file /u01/app/oracle/product/10.2.0/db_asm/startup.log
Processing Database instance "ORCL": log file /u01/app/oracle/product/10.2.0/db_db/startup.log

След като зареждането приключи, можем да проверим дали базата е стартирана успешно.

$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on Wed Aug 19 09:37:43 2009

Copyright (c) 1982, 2005, Oracle. All rights reserved.


Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

SQL>

Коментари

Име
URL
Код   
Запис
 

КНИГАТА

Oracle Database Security Book
(c) 2004-2008 Николай Манчев. Освен ако изрично не е споменато нещо друго, всички материали публикувани тук се разпространяват под Creative Commons Attribution License. Материали, коментари и изображения, които не са създадени и подписани от мен са собственост на съответните им автори.