02.04.2021 17:10
t895394688
 
БД восстановили на новую машину.
В сервере приложений добавляем БД.
Ошибка "ORA-01017: неверно имя пользователя/пароль; вход в систему ".

Соединяемся с БД, смотрим список пользователей, пользователя "supermag" отсутсвует.
Как исправить?
02.04.2021 17:14
OlegON
 
Цитата:
t895394688 смотрим список пользователей
какую БД восстановили, с чего решили, что он там должен быть? показывай, где смотришь...
02.04.2021 17:25
t895394688
 
ранее на этой БД был такой пользователь
02.04.2021 17:29
t895394688
 
Смотрю аналогичную БД и в ней присутствует пользователь "supermag".
Получает на этой БД необходимо создать указанного пользователя.
Но вопрос в том, как это сделать правильно, чтобы были правильны роли
02.04.2021 19:11
OlegON
 
сделай
SQL код:
select created from v$database
у меня смутное подозрение, что это все еще база-пустышка, а не та, которую тебе надо было восстановить. Пользователя-то ты можешь создать, только данных в базе нет.
04.04.2021 15:43
DMaslov
 
>>> ранее на этой БД был такой пользователь

Никто, кроме вас, не знает, что происходило с БД.

Рассказывайте подробнее.
04.04.2021 17:52
OlegON
 
создали пустую базу, чтобы положить потом файлики от старой базы, а файлики не положили... или не все... я так думаю
05.04.2021 14:45
Cifer4th
 
Цитата:
t895394688 Соединяемся с БД, смотрим список пользователей, пользователя "supermag" отсутсвует.
Пустая БД скорее всего.

Вот вам краткий мануал по процедуре:

1. Создать БД с аналогичным именем, что и ранее.
2. При создании БД пользоваться инструкцией Установка Oracle 11.2.0.4 и Супермаг+1.030.3 на сервер 2008R2 или НОВЕЕ!
3. После создания БД убедиться, что информация о БД имеется в файле Listener.ora и Tnsnames.ora
При необходимости добавить необходимые записи.
4. Убедиться, что созданная БД нормально работает, останавливается и запускается.
5. Остановить службу с БД.
6. Переместить файлы БД в другую папку.
7. В каталог с БД скопировать файлы БД из архивной копии.
8. Среди скопированных файлов найти и удалить CONTROLFILE (2 или 3 штуки) и файлы REDO01,REDO02,REDO03. (обычно 3 шт., но возможно больше).
9.Запустить службу с БД.
10. Запускаем cmd:

set oracle_sid=<Имя БД>
set nls_lang=american_america.cl8mswin1251
sqlplus /nolog
conn sys/qqq@<Имя БД> as sysdba;
shutdown immediate
startup nomount

Если "conn sys/qqq@<Имя БД> as sysdba;" возвращает ошибку - раскомментировать строку SQLNET.AUTHENTICATION_SERVICES = (NTS) в файле "...\oracle\server\network\admin\sqlnet.ora"

11. Написать скрипт:
- указать имя БД (указываем то, которое должно быть при подключении к СМ)
//если указать другое имя, то БД переименуется. Например на шаге 2 мы создали БД DEMO2. Если теперь взять копии файлов БД нашей боевой, допустим MARKET, а в скрипте указать DEMO2, то после выполнения скрипта, наша БД MARKET станет DEMO2
- точные пути к файлам;
- полный перечень файлов (КРОМЕ файлов TEMP!)

CREATE CONTROLFILE SET DATABASE "PRODTORG" RESETLOGS NOARCHIVELOG
MAXLOGFILES 32
MAXLOGMEMBERS 2
MAXDATAFILES 254
MAXINSTANCES 1
MAXLOGHISTORY 3630
LOGFILE
GROUP 1 '<Путь к БД>\REDO01.LOG' SIZE 100M,
GROUP 2 '<Путь к БД>\REDO02.LOG' SIZE 100M,
GROUP 3 '<Путь к БД>\REDO03.LOG' SIZE 100M
DATAFILE
'<Путь к БД>\SYSTEM01.DBF',
'<Путь к БД>\UNDOTBS01.DBF',
'<Путь к БД>\SYSAUX01.DBF',
'<Путь к БД>\INDX01.DBF',
'<Путь к БД>\USERS01.DBF'
CHARACTER SET CL8MSWIN1251;

12. Выполнить скрипт:
@<путь до скрипта>
13. Далее по очереди выполнить команды:
alter database open resetlogs;
shutdown immediate;
startup;
14. Убедиться, что БД запустилась без ошибок.
15. Пересоздать табличное пространство и файл TEMP (также по очереди выполняем команды):

- создать табличное пространство TEMP2
CREATE TEMPORARY TABLESPACE TEMP2 TEMPFILE '<Путь к БД>\TEMP2.DBF' SIZE 50m;

- сделать его по умолчанию
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE temp2;

- удалить табличное пространство TEMP (проверить удалился ли в папке БД файл TEMP01.DBF, если нет - удалить в ручную)
DROP TABLESPACE temp INCLUDING CONTENTS AND DATAFILES;

- создать табличное пространство TEMP
CREATE TEMPORARY TABLESPACE TEMP TEMPFILE '<Путь к БД>\TEMP01.DBF' SIZE 50m autoextend on;

- сделать его по умолчанию.
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE temp;

- удалить табличное пространство TEMP2 и его файл
DROP TABLESPACE temp2 INCLUDING CONTENTS AND DATAFILES;

17. Проверить или изменить global name БД.
SELECT * FROM global_name;
ALTER DATABASE RENAME GLOBAL_NAME TO <Новое имя БД>;

18. Возможно, возникнет проблема с автостартом БД. В этом случае нужно создать новый файл паролей.

В командной строке:

orapwd file=PWDDEMO.ora password=qqq // (** PWDDEMO.ora -> PWD<Имя БД>.ora **)

Далее скопировать его в \ORACLE\<Каталог сервера>\database\
05.04.2021 14:48
Cifer4th
 
Не вижу что-то возможно редактировать пост. Здесь естественно тоже имя свой БД в кавычках:
CREATE CONTROLFILE SET DATABASE "PRODTORG" RESETLOGS NOARCHIVELOG

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.