Используйте файл трассировки для перестроения контрольного файла
1. Создайте файл трассировки:
SQL>alter database backup controlfile to trace;
2. Найдите сгенерированный файл трассировки:
SQL>show parameter user_dump_dest
Путь, соответствующий файлу user_dump_dest, является путем к файлу трассировки.
3. Закройте базу данных.
SQL>shutdown immediate
4. Просмотрите файл трассировки (мой путь к файлу трассировки: /u01/app/oracle/diag/rdbms/test/test/trace)
ls -lt /u01/app/oracle/diag/rdbms/test/test/trace |more
Представление: имя экземпляра _или номер _файл .trc
5. Скопируйте содержимое файла трассировки:
tail -100 /u01/app/oracle/diag/rdbms/test/test/trace/test_ora_7900.trc
Скопированное содержимое выглядит следующим образом (начиная с STARTUP NOMOUNT в файле и заканчивая
содержимым между – Команды для повторного создания таблицы воплощений):
6. Создайте сценарий sql:
создайте сценарий в любом каталоге и вставьте скопированное содержимое в 5 для сценарий:
$ vi createtcl.sql
$ cat createtcl.sql
CREATE CONTROLFILE REUSE DATABASE "TEST" NORESETLOGS FORCE LOGGING ARCHIVELOG
MAXLOGFILES 20
MAXLOGMEMBERS 3
MAXDATAFILES 200
MAXINSTANCES 8
MAXLOGHISTORY 747
LOGFILE
GROUP 1 '/oracle/oradata/test/redo01.log' SIZE 1024M BLOCKSIZE 512,
GROUP 2 '/oracle/oradata/test/redo02.log' SIZE 1024M BLOCKSIZE 512,
GROUP 3 '/oracle/oradata/test/redo03.log' SIZE 1024M BLOCKSIZE 512,
-- STANDBY LOGFILE
DATAFILE
'/oracle/oradata/test/system01.dbf',
'/oracle/oradata/test/sysaux01.dbf',
'/oracle/oradata/test/undotbs01.dbf',
'/oracle/oradata/test/users01.dbf'
CHARACTER SET AL32UTF8
;
7. Запускаем созданный скрипт в состоянии nomount:
$ sqlplus / as sysdba
SQL>startup nomount
SQL> @createtcl.sql
Control file created.
Приведенный выше сценарий выполняется, когда существуют все архивные журналы и онлайн-журналы. Файл управления может получить точное значение scn и момент времени из текущего файла журнала. Точное значение scn также можно получить из файла данных.
8. Запустите базу данных и выполните повтор контрольного файла:
alter database open
Примечание. Если в 8 появляется сообщение «ORA-01589: необходимо использовать параметр RESETLOGS или NORESETLOGS для открытия базы данных»,
решение: база данных работает в состоянии монтирования: изменить журналы сброса открытия базы данных;
Распространенные ошибки и методы обработки
1. ORA-12720
При использовании createtcl.sql для создания управляющего файла на шаге 7 может возникнуть следующая ошибка:
ORA-01503: CREATE CONTROLFILE не удалось
ORA-12720: для операции требуется, чтобы база данных находилась в ЭКСКЛЮЗИВНОМ режиме
Это может быть связано с тем, что другие экземпляры не отключаются в кластерной среде.
Метод обработки следующий:
выключите экземпляры в оставшихся узлах кластера, а затем выполните следующие операции над экземпляром текущего узла:
SQL>alter system set cluster_database=FALSE scope=spfile;
SQL>shutdown immediate
SQL>startup nomount;
Выполните createtcl.sql еще раз, и ошибка не появится.
Ссылка на ссылку:
https://www.cnblogs.com/NextAction/p/7366715.html
https://www.cnblogs.com/51linux/archive/2013/12/31/3499028.html