| Автоматично стартиране на базата под 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> |


Коментари