Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 ora-01031 Почему '/ as sysdba' можно, а '/@sid as sysdba' - нельзя ?  [new]
ora10g
Guest
Добрый день, коллеги.
Создал стандбай базу, но никак не могу подцепиться к ней через SID:
SQL> conn / as sysdba                                                                
Connected.
SQL> conn /@stnbapx as sysdba                                                        
ERROR:
ORA-01031: insufficient privileges

Warning: You are no longer connected to ORACLE.

SQL> conn sys/pass@stnbapx as sysdba                                    
ERROR:
ORA-01031: insufficient privileges

SQL> conn / as sysdba                                                                
Connected.
SQL> 

В чём может быть дело ?
15 май 08, 12:06    [5666846]     Ответить | Цитировать Сообщить модератору
 Re: ora-01031 Почему '/ as sysdba' можно, а '/@sid as sysdba' - нельзя ?  [new]
Аллах акбар
Guest
oracle_sid - ?
lstnctl status -?
15 май 08, 12:10    [5666893]     Ответить | Цитировать Сообщить модератору
 Re: ora-01031 Почему '/ as sysdba' можно, а '/@sid as sysdba' - нельзя ?  [new]
ora10g
Guest
Аллах акбар
oracle_sid - ?
lstnctl status -?


oracle@billing:~$ echo $ORACLE_SID
stnbapx

oracle@billing:~$ lsnrctl status

LSNRCTL for Linux: Version 10.1.0.2.0 - Production on 15-MAY-2008 14:05:48
Copyright (c) 1991, 2004, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 10.1.0.2.0 - Production
Start Date                15-MAY-2008 13:49:13
Uptime                    0 days 0 hr. 16 min. 35 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /oracle/home10g/network/admin/listener.ora
Listener Log File         /oracle/home10g/network/log/listener.log
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=billing.billing_apex)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=billing.billing_apex)(PORT=8080))(Presentation=HTTP)(Session=RAW))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=billing.billing_apex)(PORT=2100))(Presentation=FTP)(Session=RAW))
Services Summary...
Service "APEXREP" has 3 instance(s).
  Instance "APEXREP", status UNKNOWN, has 1 handler(s) for this service...
  Instance "STNBAPX", status READY, has 1 handler(s) for this service...
  Instance "apexrep", status READY, has 1 handler(s) for this service...
Service "OEMREP" has 2 instance(s).
  Instance "OEMREP", status UNKNOWN, has 1 handler(s) for this service...
  Instance "oemrep", status READY, has 1 handler(s) for this service...
Service "PLSExtProc" has 1 instance(s).
  Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "STNBAPX" has 1 instance(s).
  Instance "STNBAPX", status UNKNOWN, has 1 handler(s) for this service...
Service "oemrepXDB" has 1 instance(s).
  Instance "oemrep", status READY, has 1 handler(s) for this service...
The command completed successfully
oracle@billing:~$ 
15 май 08, 12:16    [5666953]     Ответить | Цитировать Сообщить модератору
 Re: ora-01031 Почему '/ as sysdba' можно, а '/@sid as sysdba' - нельзя ?  [new]
акбар аллах
Guest
orapwd -?
15 май 08, 12:20    [5666991]     Ответить | Цитировать Сообщить модератору
 Re: ora-01031 Почему '/ as sysdba' можно, а '/@sid as sysdba' - нельзя ?  [new]
ora10g
Guest
акбар аллах
orapwd -?


создавал
15 май 08, 12:28    [5667078]     Ответить | Цитировать Сообщить модератору
 Re: ora-01031 Почему '/ as sysdba' можно, а '/@sid as sysdba' - нельзя ?  [new]
RebusA
Member

Откуда: Украина
Сообщений: 192
Сдается мне что
conn / as sysdba
исключительно для подключения к локальной базе. По этому указывать сид через @ просто нет смысла. Измените ORACLE_SID, думаю поможет.
15 май 08, 12:37    [5667197]     Ответить | Цитировать Сообщить модератору
 Re: ora-01031 Почему '/ as sysdba' можно, а '/@sid as sysdba' - нельзя ?  [new]
як ши насос
Guest
listener.ora
sid_list -?
15 май 08, 12:39    [5667212]     Ответить | Цитировать Сообщить модератору
 Re: ora-01031 Почему '/ as sysdba' можно, а '/@sid as sysdba' - нельзя ?  [new]
RebusA
Member

Откуда: Украина
Сообщений: 192
И то, это поможет если у вас локальная база не одна. А на удаленную базу так не зайдешь :)
15 май 08, 12:39    [5667217]     Ответить | Цитировать Сообщить модератору
 Re: ora-01031 Почему '/ as sysdba' можно, а '/@sid as sysdba' - нельзя ?  [new]
denix1
Member

Откуда: Киев
Сообщений: 4656
RebusA
указывать сид через @ просто нет смысла.
так вроде там сид никогда и не указывался, и более того - подключение будет идти через листенер
15 май 08, 12:40    [5667230]     Ответить | Цитировать Сообщить модератору
 Re: ora-01031 Почему '/ as sysdba' можно, а '/@sid as sysdba' - нельзя ?  [new]
RebusA
Member

Откуда: Украина
Сообщений: 192
denix1
RebusA
указывать сид через @ просто нет смысла.
так вроде там сид никогда и не указывался, и более того - подключение будет идти через листенер

Ну так и я о том же :)
15 май 08, 12:41    [5667240]     Ответить | Цитировать Сообщить модератору
 Re: ora-01031 Почему '/ as sysdba' можно, а '/@sid as sysdba' - нельзя ?  [new]
ora10g
Guest
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = /oracle/home10g)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = APEXREP)
      (ORACLE_HOME = /oracle/home10g)
      (SID_NAME = APEXREP)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = OEMREP)
      (ORACLE_HOME = /oracle/home10g)
      (SID_NAME = OEMREP)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = STNBAPX)
      (ORACLE_HOME = /oracle/home10g)
      (SID_NAME = STNBAPX)
    )
  ) 
15 май 08, 12:55    [5667415]     Ответить | Цитировать Сообщить модератору
 Re: ora-01031 Почему '/ as sysdba' можно, а '/@sid as sysdba' - нельзя ?  [new]
ora10g
Guest
У меня не передаются архивлоги с примари на стандбай. В алерте такая ошибка. Надо чтобы коннектился через SID.

Сижу локально на сервере, база смонтирована для наката логов.

А вот интересно что, если пытаться цепляться без "as sysdba":

SQL> conn /                                                                          
ERROR:
ORA-01033: ORACLE initialization or shutdown in progress


SQL> conn sys/sys546sysdba08@stnbapx                                                 
ERROR:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux Error: 2: No such file or directory


SQL> conn / as sysdba                                                                
Connected.
SQL> 
15 май 08, 12:59    [5667474]     Ответить | Цитировать Сообщить модератору
 Re: ora-01031 Почему '/ as sysdba' можно, а '/@sid as sysdba' - нельзя ?  [new]
RebusA
Member

Откуда: Украина
Сообщений: 192
Мне кажется вам стоит почитать Database Administrator Authentication
15 май 08, 14:28    [5668293]     Ответить | Цитировать Сообщить модератору
 Re: ora-01031 Почему '/ as sysdba' можно, а '/@sid as sysdba' - нельзя ?  [new]
YAP
Member

Откуда: Киев
Сообщений: 2116
а что скажет:
sho parameter remote_login_passwordfile
15 май 08, 15:23    [5668735]     Ответить | Цитировать Сообщить модератору
 Re: ora-01031 Почему '/ as sysdba' можно, а '/@sid as sysdba' - нельзя ?  [new]
kapelan
Member

Откуда: хутор БольшойБугор
Сообщений: 722
с етой подсказкой: orapwd стоит поработать.
Туда добавить юзеров которые могут коннектится с систем привилегиями. ну и должно работать.

ну и листенер покрутить пока ето не исчезнет:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
15 май 08, 17:10    [5669683]     Ответить | Цитировать Сообщить модератору
 Re: ora-01031 Почему '/ as sysdba' можно, а '/@sid as sysdba' - нельзя ?  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18484
ora10g
oracle@billing:~$ echo $ORACLE_SID
stnbapx

oracle@billing:~$ lsnrctl status

LSNRCTL for Linux: Version 10.1.0.2.0 - Production on 15-MAY-2008 14:05:48
Copyright (c) 1991, 2004, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 10.1.0.2.0 - Production
Start Date                15-MAY-2008 13:49:13
Uptime                    0 days 0 hr. 16 min. 35 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /oracle/home10g/network/admin/listener.ora
Listener Log File         /oracle/home10g/network/log/listener.log
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=billing.billing_apex)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=billing.billing_apex)(PORT=8080))(Presentation=HTTP)(Session=RAW))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=billing.billing_apex)(PORT=2100))(Presentation=FTP)(Session=RAW))
Services Summary...
Service "APEXREP" has 3 instance(s).
  Instance "APEXREP", status UNKNOWN, has 1 handler(s) for this service...
  Instance "STNBAPX", status READY, has 1 handler(s) for this service...
  Instance "apexrep", status READY, has 1 handler(s) for this service...
Service "OEMREP" has 2 instance(s).
  Instance "OEMREP", status UNKNOWN, has 1 handler(s) for this service...
  Instance "oemrep", status READY, has 1 handler(s) for this service...
Service "PLSExtProc" has 1 instance(s).
  Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "STNBAPX" has 1 instance(s).
  Instance "STNBAPX", status UNKNOWN, has 1 handler(s) for this service...
Service "oemrepXDB" has 1 instance(s).
  Instance "oemrep", status READY, has 1 handler(s) for this service...
The command completed successfully
oracle@billing:~$ 
Регистр имеет значение
Пока сам экземпляр не зарегистрировался динамически (передав свой instance_name), например экземпляр еще не поднят, будет использоваться статическая регистрация и там SID должен совпадать с ORACLE_SID
Т.е. у тебя получается, когда заходишь через листенер как SYSDBA, проверяется файл паролей orapwSTNBAPX. Его, естественно, нет и ты получаешь ORA-01031.
Если пытаешься как обычный юзер, ищется кусок разделяемой памяти, хеш которой основывается в том числе и на ORACLE_SID (это SID для статической регистрации). Соответственно, не находится и ты ловишь ORA-27101
16 май 08, 03:55    [5671135]     Ответить | Цитировать Сообщить модератору
 Re: ora-01031 Почему '/ as sysdba' можно, а '/@sid as sysdba' - нельзя ?  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18484
Э-ээ
SID = SID_NAME в listener.ora
16 май 08, 03:57    [5671137]     Ответить | Цитировать Сообщить модератору
 Re: ora-01031 Почему '/ as sysdba' можно, а '/@sid as sysdba' - нельзя ?  [new]
ora10g
Guest
Тока хотел отписаться, смотрю, а Вячеслав Любомудров уже всё ответил. Да проблема была именно в регистре. Просто после винды как-то не обратил на это внимание. Спасибо всем. Всё нормально теперь. Почти. Тока вот через /@apexrep всё равно не хочет цепляться:
SQL> conn / as sysdba                                                                             
Connected.
SQL> conn sys/pass@apexrep as sysdba                                                    
Connected.
SQL> conn /@apexrep as sysdba                                                                     
ERROR:
ORA-01031: insufficient privileges


Warning: You are no longer connected to ORACLE.
SQL> 

Так и должно быть ? По крайней мере в винде всё это работало.
16 май 08, 12:48    [5673295]     Ответить | Цитировать Сообщить модератору
 Re: ora-01031 Почему '/ as sysdba' можно, а '/@sid as sysdba' - нельзя ?  [new]
Сергей Арсеньев
Member

Откуда:
Сообщений: 4118
ora10g
Тока вот через /@apexrep всё равно не хочет цепляться:

Вы просите залогинить себя к БД через external коннект (ну например через ос авторизацию или LDAP) к базе данных а не internal как в случае с
"/ as sysdba"
похожий синтаксис и приводит к недоразумению.
16 май 08, 13:57    [5674045]     Ответить | Цитировать Сообщить модератору
 Re: ora-01031 Почему '/ as sysdba' можно, а '/@sid as sysdba' - нельзя ?  [new]
Alex Roudnev
Member

Откуда: Валнут Крик, Калифорния
Сообщений: 5547
RebusA
Сдается мне что
conn / as sysdba
исключительно для подключения к локальной базе. По этому указывать сид через @ просто нет смысла. Измените ORACLE_SID, думаю поможет.


К сведению - то что пишется после @ - это не ORACLE_SID а нечто другое (что может совпадать с сидом а может и нет). А как называется переменная, которая эквивалентна слову после @ - желающим дается найти в качестве домашнего задания.
17 май 08, 02:31    [5676997]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить