Как создать control-файлы Oracle / Как создать контрол-файлы Oracle

Как создать control-файлы Oracle / Как создать контрол-файлы Oracle

oracle

oracle

Всем привет в данной статье рассмотрим вопрос как создать control-файлы Oracle. Когда требуется пересоздавать control-файлы Oracle?
  1. У Вас их нет или они повреждены.
  2. Меняется физическое расположение файлов БД

Делаем скрипт для создания control-файлов
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;

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

я в гугл