Когда требуется пересоздавать контрол-файлы Oracle?
- У Вас их нет или они повреждены.
- Меняется физическое расположение файлов БД
Делаем скрипт для создания контрол-файлов
sqlplus / as sysdba
SQL> alter database backup controlfile to trace;
Данная команда создаст trace-файл в каталоге udump
В моем случае это:
\ora\admin\work\udump\orcl_ora_2052.trc
В этом файле есть команды из которых можно легко сделать скрипт для создания контрол-файлов.
переименуем orcl_ora_2052.trc в ctl.sql и отредактируем как нам надо:
CREATE CONTROLFILE REUSE DATABASE "work" RESETLOGS ARCHIVELOG
MAXLOGFILES 5
MAXLOGMEMBERS 3
MAXDATAFILES 14
MAXINSTANCES 1
MAXLOGHISTORY 226
LOGFILE
GROUP 1 '\ora\oradata\work\REDO01.LOG' SIZE 100M,
GROUP 2 '\ora\oradata\work\REDO02.LOG' SIZE 100M,
GROUP 3 '\ora\oradata\work\REDO03.LOG' SIZE 100M
DATAFILE
'\ora\oradata\work\SYSTEM01.DBF',
'\ora\oradata\work\UNDOTBS01.DBF',
'\ora\oradata\work\EXAMPLE01.DBF',
'\ora\oradata\work\INDX01.DBF',
'\ora\oradata\work\TOOLS01.DBF',
'\ora\oradata\work\USERS01.DBF',
'\ora\oradata\work\OEM_REPOSITORY.DBF',
'\ora\oradata\work\CWMLITE01.DBF',
'\ora\oradata\work\DRSYS01.DBF',
'\ora\oradata\work\ODM01.DBF',
'\ora\oradata\work\XDB01.DBF',
'\ora\oradata\work\USERS02.DBF',
'\ora\oradata\work\USERS03.DBF',
'\ora\oradata\work\USERS04.DBF'
CHARACTER SET WE8MSWIN1252
;
ALTER DATABASE OPEN RESETLOGS;
Стартуем СУБД в nomount mode и запустим ctl.sql под sysdba
sqlplus / as sysdba
SQL> startup nomount
ORACLE instance started.
Total System Global Area 80812648 bytes
Fixed Size 453224 bytes
Variable Size 54525952 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
SQL> @ctl.sql
Control file created.
Database altered.
SQL> select status from v$instance;
STATUS
------------------------------------
OPEN
SQL> select name from v$controlfile;
NAME
--------------------------------------------------------
\ora\oradata\work\CONTROL01.CTL
\ora\oradata\work\CONTROL02.CTL
\ora\oradata\work\CONTROL03.CTL
Для переименования базы данных достаточно поменять в скрипте reuse на set:
CREATE CONTROLFILE SET DATABASE "work" RESETLOGS ARCHIVELOG
MAXLOGFILES 5
MAXLOGMEMBERS 3
MAXDATAFILES 14
MAXINSTANCES 1
MAXLOGHISTORY 226
LOGFILE
GROUP 1 '\ora\oradata\work\REDO01.LOG' SIZE 100M,
GROUP 2 '\ora\oradata\work\REDO02.LOG' SIZE 100M,
GROUP 3 '\ora\oradata\work\REDO03.LOG' SIZE 100M
DATAFILE
'\ora\oradata\work\SYSTEM01.DBF',
'\ora\oradata\work\UNDOTBS01.DBF',
'\ora\oradata\work\EXAMPLE01.DBF',
'\ora\oradata\work\INDX01.DBF',
'\ora\oradata\work\TOOLS01.DBF',
'\ora\oradata\work\USERS01.DBF',
'\ora\oradata\work\OEM_REPOSITORY.DBF',
'\ora\oradata\work\CWMLITE01.DBF',
'\ora\oradata\work\DRSYS01.DBF',
'\ora\oradata\work\ODM01.DBF',
'\ora\oradata\work\XDB01.DBF',
'\ora\oradata\work\USERS02.DBF',
'\ora\oradata\work\USERS03.DBF',
'\ora\oradata\work\USERS04.DBF'
CHARACTER SET WE8MSWIN1252
;
ALTER DATABASE OPEN RESETLOGS;
Удачи и всего самого хорошего!
Комментариев нет:
Отправить комментарий