TNSLSNR

smart
Дата: 03.08.2005 12:16:53
Наш sysadmin подключает Linuxовые скрипты, чтобы после выкл/вкл сервера автоматом стартовал и Oracle. Но несмотря на то, что в скриптах прописаны и TNS_ADMIN и прочее, запускается tnslsnr, причем он сидит на порту 1521, хотя в listener.ora прописано 2010.
А сам lsnrctl запускаться не хочет. "TNS no listener".

Кто бы дал разумный совет что сделать для правильного автоматического запуска Oracle.
И хоть два слова, что такое tnslsnr?!

Спасибо!
Nickname
Дата: 03.08.2005 12:26:58
В скрипте по запуску необходимо прописывать переменные:
ORACLE_HOME=
Path=$ORACLE_HOME/bin
ORACLE_SID=

TNS_ADMIN прописывать не к чему - это клиенская настройка

запускать listener нужно $ORACLE_HOME/bin/lsnrctl start
он в свою очередь запускает саму "слушалку" tnslsnr

порт нужно править в файле $ORACLE_HOME/network/admin/listener.ora

запускать нужно от пользователя кто владеет ORACLE!!!
Вячеслав Любомудров
Дата: 03.08.2005 12:31:28
Nickname
TNS_ADMIN прописывать не к чему - это клиенская настройка
Она прекрасно работает на сервере и делает то, для чего предназначена
Nickname
запускать нужно от пользователя кто владеет ORACLE!!!
Совсем не обязательно
Более того, для листенера для внешних процедур крайне желательно запускать из-под более другого юзера (вот тогда и TNS_ADMIN пригождается)
popuass
Дата: 03.08.2005 12:33:18
Что-то типа этого.....
Исправьте под свои нужды...

5.3 Automating oracle startup and shutdown
To automatically start/shut oracle database during system startup/shutdown you need to write a script in /etc/rc.d/init.d directory. You can view this script as an example. Make sure that your script is in /etc/rc.d/init.d/ directory, owned by root, and that it has exec permission set. Next, you should put the links to this script in runlevel in which you want oracle so start or stop. Yo can also do it via GUI tool (e.g. ksysv, a part of KDE) For example, I named my script ora9, and I want oracle to start in runlevel 5, and to shut down when system goes to halt (runlevel 0) or reboot (runlevel 6):
[root@marvin]# ln -s /etc/rc.d/init.d/ora9 /etc/rc.d/rc5.d/S80ora9
[root@marvin]# ln -s /etc/rc.d/init.d/ora9 /etc/rc.d/rc0.d/K06ora9
[root@marvin]# ln -s /etc/rc.d/init.d/ora9 /etc/rc.d/rc6.d/K06ora9

#!/bin/bash
#
# name: /etc/rc.d/init.d/ora9
# description: starts and stops oracle 9i database, TNS listener
# http server, and fixes kernel parameters for oracle


#oracle environment
export ORACLE_HOME=/home/ora9/product/9.2
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin:$PATH
export NLS_LANG='croatian_croatia.ee8iso8859p2'
export ORACLE_SID=ora9
export DISPLAY=:0
oracle_user=ora9

# see how we're called

case $1 in
start)
# fix kernel parameters
echo 250 32000 100 128 > /proc/sys/kernel/sem
echo 2147483648 > /proc/sys/kernel/shmmax
echo 4096 > /proc/sys/kernel/shmmni
echo 2097152 > /proc/sys/kernel/shmall
# start listener, apache and database
su - "$oracle_user"<<EOO
lsnrctl start
apachectl start
sqlplus /nolog<<EOS
connect / as sysdba
startup
EOS
EOO
;;

stop)
# stop listener, apache and database
su - "$oracle_user"<<EOO
lsnrctl stop
apachectl stop
sqlplus /nolog<<EOS
connect / as sysdba
shutdown immediate
EOS
EOO
;;

*)
echo "Usage: ora9 [start|stop]"
;;

esac

Зачем tns_admin?

Исправте существующий listener.ora

Какая версия Linux и Oracle?

"Кто, реально, держит себя, тот знает перед кем ответ держать...." к/ф Мама,
не горюй.
Nickname
Дата: 03.08.2005 12:36:35
Вячеслав Любомудров
Nickname
TNS_ADMIN прописывать не к чему - это клиенская настройка
Она прекрасно работает на сервере и делает то, для чего предназначена

а для чего она предназначена? я всегда предпологал что данная переменная указывает на каталог где хранится файлик файл tnsnames.ora и в купе с переменной TWO_TASK определяет экземпляк к которому будет коннектиться клиент по "умолчанию"
Вячеслав Любомудров
Дата: 03.08.2005 12:41:23
Oracle9i Net Services Administrator's Guide
The search order for cman.ora, listener.ora, names.ora, and
tnsnames.ora is as follows:
1. The directory specified by the TNS_ADMIN environment variable
If the TNS_ADMIN environment variable is not defined as a variable on
Windows NT, it may be in the registry.
2. On UNIX operating systems, the global configuration directory
For example, on Sun SPARC Solaris, this directory is /var/opt/oracle.
3. The $ORACLE_HOME/network/admin directory on UNIX operating systems
and the ORACLE_HOME\network\admin directory on Windows operating
systems.
Для того, например, чтоб разные листенеры запускать с разными конфигами - на каждый свой пароль и т.д. - секурити, как минимум
Nickname
Дата: 03.08.2005 12:50:30
2 Вячеслав Любомудров
спсб за объяснение
просто никогда не конфигурил более 1 листенера