Цитата: 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\