Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Работа с Oracle из под одного пользователя одновременно с разных компьютеров

Написана программа(на Foxpro), которая использует Oracle сервер через ODBC. Коннект на Oracle жестко прописан внутри программы. Таким образом получается, что все пользователи программы заходят на сервер под одним пользователем ORACLE. Пользователей более 500 вроде все работает, но меня терзают смутные сомненья по поводу количества сессий. У меня сейчас единовременно сидит в базе данных пользователь ЮЗЕР в 100 сессиях. Какие могут быть проблемы ???
Ответ:
так для инфы
мож чета и старенькое...но всеж для инфы


Из хранимых процедур можно возвращать на клиентскую сторону Resultset'ы, но только с помощью параметра курсорного типа. Такой подход не поддерживается ни одним универсальным API типа ODBC или ADO. Это вынуждает пользоваться специализированными интерфейсами от Oracle (OO4O, OCI) или продуктами, на них основанными (Oracle Forms, Oracle Pro*C, Oracle Pro*COBOL и т.п.).


в трехзвенке с потоком пула тож на раp-два делается...ну к примеру с валлет и ключами
Вопрос: Поиск причины ошибки Ora-01034 в Oracle XE по рекомендациям пользователей cyberforum.ru

Причину отсутствия соединения, я, возможно, нашёл. Будет много букв, возможно совсем лишних букв, но проверял свою СУБД по рекомендациям, найденных в темах этого раздела (Grossmeister - поклон за простые и точные советы по всем вопросам, которые задавали все неучи вроде меня до меня. Это очень ценно). И спросить больше некого, т.к. учиться я теперь буду здесь и всё тут. Прошу оценить результаты и помочь сделать окончательные выводы (если конечно предварительные верные). Всё это конечно же тут было не считаемое количество раз, но новичкам, наверное, всё равно может пригодиться, т.к. всё что видел, собрал в этот пост.

Имеется:

1. Oracle XE 11g, установленная на мою рабочую машину техподдержкой компании (нельзя у нас самим);
2. Sql developer 4.2.0;
3. Win 7 Pro 64 SP1 и касперский es 10.

Проблемы:

1: при попытке соединения возникает ошибка ora-01034 oracle not available;
2: не запускается веб морда через "Get Started With Oracle Database 11g Express Edition";
3: при попытке создания подключения в Sql developer 4.2.0 возникает ошибка Ora-12505, TNS:Listener does not currently know of SID given in connector descriptor.

Поиск причины:

1. Проверил службы и процессы (пуск - панель управления - система и безопаность - администрирование - службы):

• Активность службы OracleServiceXE (сервиса экземпляра БД), использующейся для запуска сервера БД: тип запуска службы установлен автоматическим, а сама служба запускается и работает, поэтому проблемы здесь быть не должно – сервер, как я понимаю, должен стартовать и позволять получить доступ к базе данных (Если бы служба не была запущена, то БД бы однозначно лежала);
• Активность службы OracleXETNSListener. Аналогично – служба в статусе работающей и запускается автоматически, что и требуется для работы (сервис listener-а должен быть запущен обязательно, если приложения и база размещаются на разных машинах, но если приложения и БД находятся на одном компьютере, то это не столь обязательно. Для меня это необязательно (всё на одной машине), но у меня оно тоже работает);
• Активность прочих служб Oracle – OracleJobSchedulerXE, OracleMTSRecoveryService и OracleXEClrAgent – все 3 службы отключены и я не могу их включить, но, насколько я понял, на запуск сервера и базы данных они не влияют (может быть знающие люди уточнят, что они делают, я не успел загуглить);
• Наличие процесса Oracle в диспетчере задач. Процесс отсутствует, но вроде как должен быть обязательно. Тут появляется вопрос номер 1 - так это или не так.

Поскольку 2 обязательные службы запущены, можно сделать предварительный вывод, что сервер должен был запуститься, но базу он по какой-то причине не поднял. Причиной этого чего могут быть неверные настройки сервера или недоступность файлов БД. Поэтому:

2. Проверил доступность файлов:
• Наличие каталога Oracle Home (C:\oraclexe\app\oracle\product\11.2.0\server) и вложенных подкаталогов от apex, asp.net и bin до xde, где на первый взгляд всё на месте - папки есть, начинаются и заканчиваются нужными, но сколько их точно должно быть и каких, мне, конечно, не известно.
• Наличие каталога Oracle base (C:\oraclexe\app\oracle\oradata\XE) и файлов данных Data Files, хранящих все данные БД: control.dbf, sysaux.dbf, system.dbf, temp.dbf, undo.dbf и users.dbf. Каталог создан, но файлы отсутствуют. Это вопрос номер 2. Для меня отсутствие файлов - это отсутствие базы. На этом форуме легко выяснить, что что при установке Oracle XE база данных создаётся автоматически (в других редакциях, не XE, при инсталяции уточняется, создавать или нет базу данных). Но создаётся база вроде как при условии запуска инсталлятора от имени пользователя, который является локальным администратором компьютера. Если этого не сделать, то установка выполнится без ошибок, как корректная, но база данных создана не будет. Было это сделано или нет, мне не известно.

3. Попытался найти и проверить содержание alert.log, "содержащего все существенные действия по запуску, останову экземпляра, изменения его параметров и т.д". Сссылка на alert.log должна находится или в ORACLE_HOME\database или ORACLE_HOME\dbs в файлах параметров экземляра с именем init.ora или spfile.ora. В моём случае есть файла init.ora, в содержании которого следующее:

Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# Change '<ORACLE_BASE>' to point to the oracle base (the one you specify at
# install time)
 
db_name='ORCL'
memory_target=1G
processes = 150
audit_file_dest='<ORACLE_BASE>/admin/orcl/adump'
audit_trail ='db'
db_block_size=8192
db_domain=''
db_recovery_file_dest='<ORACLE_BASE>/flash_recovery_area'
db_recovery_file_dest_size=2G
diagnostic_dest='<ORACLE_BASE>'
dispatchers='(PROTOCOL=TCP) (SERVICE=ORCLXDB)'
open_cursors=300 
remote_login_passwordfile='EXCLUSIVE'
undo_tablespace='UNDOTBS1'
# You may want to ensure that control files are created on separate physical
# devices
control_files = (ora_control1, ora_control2)
compatible ='11.2.0'
Ссылки на alert.log я не вижу или не понимаю, что что-то из этого оно. Это вопрос номер 3.

4. Хочу попробовать создать базу данных вручную через sql plus и create database. Я конечно же прочитал, что есть ограничение Oracle, не позволяющее создавать несколько БД, но если файлы данных Data Files из пункта 2 указывают на отсутствие базы, то можно сделать вывод что она не создавалась. Раз не создавалась, то create database создаёт как раз первую и единственную базу. Но это конечно очень смелое предположение и мне неизвестно, какая тут логика на самом деле. Это вопрос номер 4.

Итого 4 вопроса:
1. Критично ли отсутствие процесса Oracle в диспетчере задач;
2. Подтверждает ли отсутствие всех файлов данных control.dbf, sysaux.dbf, system.dbf, temp.dbf, undo.dbf и users.dbf в каталоге каталога Oracle base отсутствие установленной базы.
3. Как всё-таки найти alert.log
4. И можно ли создать базу вручную, если предположить, что при установке СУБД она не устанавливалась и по логике это вроде не нарушает ограничения на создание 2 базы?
Ответ: установил на домашнем компе, база поднялась. Скопировал на рабочий комп папку seeddb и развернул базу через XE.bat, как писал выше. Всё работает.
Вопрос: Oracle BI analytics. Выдать пользователю заранее сформированный отчет

Добрый день!

Пользователь работает с отчетом, задает параметры, выполняет отчет, получает свой репорт и счастлив. Но уже после получения файла он может вносить какие-то правки в него, правки разного рода. Повторить его действия при обычном выполнении отчета невозможно. А потребность такая - после того, как юзер внес свои правки, то он хочет вернуть правленный файл и просит о том, чтобы, если он в параметре "Вернуть правленный файл" выберет "Да", то не нужно будет собираться отчет обращением к БД, а просто вернуть ему тот файл, что он раньше вернул(в названии или в теле будут даты, к примеру - то есть идентифицировать каждый конкретный файл не проблемно).
В связи с этим вопрос - как это сделать? Допустим, тот файл, что был возвращен после правок, мы пересохраним как "Таблица XML" с сохранением форматирования и всего прочего(правда, если больше 65к строк - тут вопрос), поместим его в CLOB. Но как BI вернет его? Можно ли в репозиторий BI подсунуть нужный файл каким-то образом, чтобы он вернул его?

Спасибо.
Ответ: Jack Carver,

Не подскажите путь?
Вопрос: ORA-01017 sqlplus / as sysdba

Здравствуйте!

При sqlplus / as sysdba из консоли на сервере получаю ORA-01017: invalid username/password; logon denied

Red Hat Enterprise Linux Server release 6.5
Oracle 11.2.0.4 EE x86_64

Ниже показано, что я проверил. Есть соображения, что не так?
[oracle@m-tst ~]$ export ORACLE_SID=tst
[oracle@m-tst ~]$ export ORACLE_HOME=/ora/app/oracle/product/11.2.0/dbhome_1
[oracle@m-tst ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Thu Apr 16 17:56:58 2015

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

ERROR:
ORA-01017: invalid username/password; logon denied


Enter user-name: ^C
[oracle@m-tst ~]$ cd $ORACLE_HOME/dbs
[oracle@m-tst dbs]$ rm orapwtst
[oracle@m-tst dbs]$ orapwd file=orapwtst password="password"
[oracle@m-tst ~]$ sqlplus sys/password@tst as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Thu Apr 16 17:57:20 2015

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


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL>
SQL> alter user sys identified by "password";

User altered.

SQL> show parameter passw

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
remote_login_passwordfile            string      EXCLUSIVE

SQL> select * from v$pwfile_users;

USERNAME                       SYSDB SYSOP SYSAS
------------------------------ ----- ----- -----
SYS                            TRUE  TRUE  FALSE

SQL> Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
[oracle@m-tst dbs]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Thu Apr 16 18:02:48 2015

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

ERROR:
ORA-01017: invalid username/password; logon denied


Enter user-name: ^C


[oracle@m-tst dbs]$ cd ../network/admin/
[oracle@m-tst admin]$ cat sqlnet.ora
# sqlnet.ora Network Configuration File: /ora/app/oracle/product/11.2.0/dbhome_1/network/admin/sqlnet.ora
# Generated by Oracle configuration tools.

[oracle@m-tst admin]$
Ответ: Vadim Lejnin, спасибо - помогло!

было так:
[oracle@m-tst lib]$ id
uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),10(wheel),54323(beoper)

сделал:
[root@m-tst ~]# groupmems -g dba -a oracle

стало так:
[oracle@m-tst ~]$ id
uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),10(wheel),54322(dba),54323(beoper)

[oracle@m-tst ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Thu Apr 16 19:01:57 2015

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


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL>
Вопрос: Oracle наносит ответный удар или как залогиниться хоть кем-нибудь

Всем привет. С ораклом раньше дел иметь не доводилось, но вот принесла нелегкая.

1. Oracle 11.2

2. sqlnet.ora
SQLNET.AUTHENTICATION_SERVICES = (NONE)

3. После создания БД, например, TEST, выполняю:
set ORACLE_SID=TEST
sqlplus / as sysdba

Получаю:
ERROR:
ORA-01031: insufficient privileges

Пользователь тот же самый, которым делал все до этого, включен в группу ora_dba

4. ok, хочу подключиться к БД хотя бы пользователем system
sqlplus /nolog
conn system/password

ORA-01017: invalid username/password
хотя пароль точно тот, что я указывал при создании БД

ну ладно, пересоздаю файл паролей при помощи orapwd, перезапускаю службу - опять то же самое
не удается подключиться ни из командной строки, ни из Oracle Sql Developer, ни из какой-то спец тулзы из пакета поставки

Уже голову сломал чего от меня хотят, ищу совета у местных гуру оракла.
Ответ: Shu_Shu,
1)
SQLNET.AUTHENTICATION_SERVICES = (NTS)

2) Пользователь из под которого логинишься - член локальной группы ORA_DBA
Вопрос: Oracle 11gXE: ошибка при загрузке системных таблиц , вьюшек и прочих объектов БД

Здравствуйте. Короче у меня получилось добавить экземпляр БД ORCL и создать БД в ней. Запросы делать теперь и кодить я могу и всякое такое. Однако что-то пошло не так , когда я начал делать запрос к системной таблице : ошибка , что данной таблицы не существует и я не понимаю почему , хотя такого быть категорически не должно.

select * from DBA_TABLESPACES;

select * from DBA_TABLESPACES
              *
ERROR at line 1:
ORA-00942: table or view does not exist


Вот я и подумал , что если перезагрузить службу Oracle , которая запускает экземпляр ORCL , то при запуске экземпляра БД ORCL, системные сгенерированные таблицы и прочие объекты для пользователя SYS появятся автоматом. Я так и сделал , но такого не произошло. Проблема не исчезла. Поэтому дальше я попробовал запустить скрипт , который как я понимаю создаёт все стандартные системные объекты , таблицы , вьюшки и.т.д. т.е. не ограничивается в запуске скриптов в процедурном режиме как указано в описании:

NAME
Rem catproc.sql
Rem DESCRIPTION
Rem Run all sql scripts for the procedural option

Он называется catproc.sql. Я его запустил. Но некоторые объекты БД при записи оказались инвалидными. Опять же почему-то с ошибками созданы были некоторые объекты. Поэтому в надежде , что все объекты перепишутся , решил запустить заново этот скрипт , но случилось следующее:

SQL> @C:\oraclexe\app\oracle\product\11.2.0\server\rdbms\admin\catproc.sql
        DOC>######################################################################
        DOC>######################################################################
        DOC>    The following PL/SQL block will cause an ORA-20000 error and
        DOC>    terminate the current SQLPLUS session if the user is not SYS.
        DOC>    Disconnect and reconnect with AS SYSDBA.
        DOC>######################################################################
        DOC>######################################################################
        DOC>#


А мне нужно как бы , чтобы удалить всё , что создано было скриптом catproc.sql , чтобы им же при повторном его запуске все системные объекты перезаписать заново. Как это сделать ? И что я должен сделать , чтобы при этом все системные объекты , вьюшки , таблицы записались без ошибок ? Прошу вас скажите , а то я вообще не знаю куда копать(на заметку: я захожу всегда в БД как SYS пользователь).
Ответ: Блин. Оказывается , что oracle версию нельзя обновить с текущей её версией на ту же самую при этом не удалив и не поставив заново , либо просто выделить память под новый кластер и туда гонять апгрейд новой БД , изменив при этом путь к ORACLE_HOME. Мой фейл. тож буду знать. Тема закрыта.
Вопрос: Редактирование конфигурации запуска ORACLE

Привет .
Настройки конфигурации находятся в файле init.ora а также в файле spfile (бинарный файл) .
Я хотел бы посмотреть содержимое этого файла и отредактировать его через создание pfile . Затем новые настройки конвертировать назад в spfile .

Подскажите так это сделать ?
У меня по умолчанию БД использует spfile

Запрос это подтверждает
Oracle 11 SQL
1
show parameter spfile;
spfile string G:\APP\APP\ORACLE\PRODUCT\11.2.0\SERVER\DBS\SPFILEXE.ORA

Когда я конвертирую его в pfile командой
Oracle 11 SQL
1
CREATE pfile FROM spfile; 
Получаю ошибку
SQL Error: ORA-01031: insufficient privileges
01031. 00000 - "insufficient privileges"
*Cause: An attempt was made to perform a database operation without
the necessary privileges.
*Action: Ask your database administrator or designated security
administrator to grant you the necessary privileges
Помогите создать файл pfile
Ответ:
Сообщение от koza4ok
Как войти под ним ?
SQL
1
2
3
4
5
> sqlplus /nolog
 
SQL> conn / AS sysdba      -- если находишься на сервере
 
SQL> conn sys/psw@db AS sysdba    -- если находишься на клиенте (на сервере так тоже можно)
Вопрос: oracle 12,

Здравствуйте! После того как логи гетерогенного сервиса съели все место на жестком диске Оракл перестал пускать к себе:

$ sqlplus sys/oracle as sysdba

SQL*Plus: Release 12.1.0.2.0 Production on Mon Apr 18 12:12:42 2016

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

ERROR:
ORA-01017: invalid username/password; logon denied


Что надо сделать чтобы диагностировать ошибку?
Ответ:
Vadim Lejnin
potam,
автор
[oracle@front-life app]$ echo "TWO_TASK=$TWO_TASK"
TWO_TASK=orcl


$ unset TWO_TASK
$ sqlplus / as sysdba


Спасибо, помогло!
Вопрос: Не работает учебная база в Oracle Express (idle)

Добрый день!

Не особо владею установкой и настройкой. Раньше вроде получалось.
Последовательность действий. ОС Wndows 7 (x64)

1. Полностью удалил и переустановил Oracle Database 11g Express Edition x64, перезагрузился
2. Открываю SQL*Plus, набираю conn / as sysdba, результат Connected to an idle instance.
3. Пробовал запускать ярлык Start Database и вручную смотрел запущены ли службы - запущены (OracleServiceXE, OracleXETNSListener)

Устанавливал под правами администратора.

Подскажите пожалуйста что еще нужно сделать чтобы подключиться.
Ответ: Все-таки посмотреть алерт очень желательно, есть подозрение, что подключение в SQLPLUS как conn / as sysdba не подключает тебя к нужному экземпляру. Так что для полноты картины найди алерт и посмотри что пишется там, и попробуй перед запуском SQLPLUS указать экземпляр, для этого в одном окне cmd выполнить:
SET ORACLE_SID=<сид экземпляра>
SQLPLUS /NOLOG
Вопрос: Доступ к объектам sysdba.

Привет

Есть схема, на ней под обычным пользователем заведены какие-то объекты, и на той же схеме заведены объекты под sysdba. Теперь нужно из под обычного пользователя получитть доступ к процедурам пакетов sysdba, но из под обычного пользователя эти пакеты не вызываются - insufficient privelegies. Как-то можно сделать чтобы решить это? DBLink создать под или ещё как-то? Пробовал создать из dblink:

create shared database link link1
connect to user1 identified by password
authenticated by sysdba identified by sysdbapassword
using 'schema'

выдаёт insufficient privelegies. Подскажите плз.
Ответ:
rigor mortis
как это можно показать?


Проделайте сами то, о чем нам пытаетесь рассказать в переводе с SQL на русский. Создать объект одним способом, создать другим, показать, как он виден из-под одного пользователя, из-под другого. Это и будет test case. В процессе его написания (сюрприз) многое узнаете. Если лень-матушка позволит.