Отредактируйте контрольный файл в Oracle 10g Release 2 - PullRequest
1 голос
/ 17 марта 2011

Я пытался клонировать сервер базы данных oracle на другой сервер базы данных oracle. После завершения клонирования при попытке подключения к базе данных, запустив SQL Plus Я получил следующие ошибки:

ORA-01157: cannot identify/lock data file 1 - see DBWR trace file
ORA-01110: data file 1: '/home/oracle/oradata/ccisv2/system01.dbf'

Я обнаружил, что при клонировании управляющий файл исходного расположения базы данных также был клонирован.

Теперь на новом сервере у меня есть файлы данных, расположенные в другом месте. , и это не затрагивается в контрольном файле, что является причиной ошибки.

Короче мне нужно изменить вышеуказанный путь

/home/oracle/oradata/ccisv2/

на новый путь

/home2/oracle/oradata/ccisv2/

Я не уверен, как я могу изменить управляющий файл и отредактировать путь к местоположению файла данных.

Изменение местоположения файлов данных невозможно, так как у меня меньше места в /home/oracle/oradata/..

Может кто-нибудь помочь мне с этим ...

Ответы [ 2 ]

1 голос
/ 17 марта 2011

Вам нужно будет смонтировать базу данных (не открывать ее) и заново создать контрольный файл, переименовывая файлы данных в процессе (см. Команду CREATE CONTROLFILE ):

STARTUP MOUNT;
CREATE CONTROLFILE REUSE SET DATABASE "ORCL" RESETLOGS 
    MAXLOGFILES NN
    MAXLOGMEMBERS N
    MAXDATAFILES 254
    MAXINSTANCES 1
    MAXLOGHISTORY 1815
LOGFILE
  GROUP 1 '/home2/oracle/oradata/ccisv2/REDO01.LOG'  SIZE 56M,
  GROUP 2 '/home2/oracle/oradata/ccisv2/REDO02.LOG'  SIZE 56M,
  GROUP 3 '/home2/oracle/oradata/ccisv2/REDO03.LOG'  SIZE 56M
DATAFILE
  '/home2/oracle/oradata/ccisv2/SYSTEM.DBF',
  '/home2/oracle/oradata/ccisv2/USERS.DBF',
  '/home2/oracle/oradata/ccisv2/sysaux.DBF',
  '/home2/oracle/oradata/ccisv2/TOOLS.DBF',
etc...
CHARACTER SET WE8ISO8859P1;

ALTER DATABASE OPEN RESETLOGS;

QUIT;

Все ваши файлы базы данных должны быть повторно идентифицированы в контрольном файле с их новым расположением.

0 голосов
/ 17 марта 2011

Проще всего переименовать файлы данных в новые места:

startup mount;
alter database rename file '/home/oracle/oradata/ccisv2/system01.dbf' to '/home2/oracle/oradata/ccisv2/system01.dbf';

и сделать это для всех ваших файлов.Обычно мы используем rman duplicate и используем конвертирование file_name, чтобы сделать это для нас.Пересоздание контрольного файла также является опцией, переименование файлов проще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...