Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Поднятие БД RMANом на другой машине  [new]
Бухтелко
Member

Откуда:
Сообщений: 16
День добрый всем.

Столкнулся с задачей. Надо перетащить базу с линукса на винды (Win 2008 R2 x64). Бэкапится БД RMANом. Что делаю:

0. Скопировал все содержимое каталога с бэкапом.
1. oradim -new -sid <SID> -startmode auto -syspwd <SysPass>
2. sqlplus sys/<SysPass>@<SID> as sysdba
3. startup force nomount;
4. set DBID=<DBID>
5. Восстановил pfile из бэкапа. В файле поправил все линуксовые пути на новые виндовые. Прописал *.db_recovery_file_dest и *.db_recovery_file_dest_size
6. Запустил несмонтированную БД на этом файле
7. Восстановил контролфайл из бэкапа.
8. Смонтировал БД.
9.
RUN {
CATALOG START with 'd:\backup\rmen\vetxtep9';
set newname for datafile '/oradata/oradata1/xtep8/users01.dbf' to 'd:\oradata\vetxtep9\users01.dbf';
set newname for datafile '/oradata/oradata1/xtep8/users02.dbf' to 'd:\oradata\vetxtep9\users02.dbf';
set newname for datafile '/oradata/oradata1/xtep8/users03.dbf' to 'd:\oradata\vetxtep9\users03.dbf';
set newname for datafile '/oradata/oradata1/xtep8/users04.dbf' to 'd:\oradata\vetxtep9\users04.dbf';
set newname for datafile '/oradata/oradata2/xtep8/indx01.dbf' to 'd:\oradata\vetxtep9\indx01.dbf';
set newname for datafile '/oradata/oradata2/xtep8/indx02.dbf' to 'd:\oradata\vetxtep9\indx02.dbf';
set newname for datafile '/oradata/oradata2/xtep8/indx03.dbf' to 'd:\oradata\vetxtep9\indx03.dbf';
set newname for datafile '/oradata/oradata3/xtep8/sysaux01.dbf' to 'd:\oradata\vetxtep9\sysaux01.dbf';
set newname for datafile '/oradata/oradata3/xtep8/system01.dbf' to 'd:\oradata\vetxtep9\system01.dbf';
set newname for datafile '/oradata/oradata3/xtep8/temp01.dbf' to 'd:\oradata\vetxtep9\temp01.dbf';
set newname for datafile '/oradata/oradata3/xtep8/undotbs01.dbf' to 'd:\oradata\vetxtep9\undotbs01.dbf';
SQL "ALTER database rename file ''/oradata/oradata5/xtep8/redo01.log'' to ''d:\oradata\vetxtep9\redo01.log''";
SQL "ALTER database rename file ''/oradata/oradata5/xtep8/redo02.log'' to ''d:\oradata\vetxtep9\redo02.log''";
SQL "ALTER database rename file ''/oradata/oradata5/xtep8/redo03.log'' to ''d:\oradata\vetxtep9\redo03.log''";
SQL "ALTER database rename file ''/oradata/oradata5/xtep8/redo04.log'' to ''d:\oradata\vetxtep9\redo04.log''";
SQL "ALTER database rename file ''/oradata/oradata5/xtep8/redo05.log'' to ''d:\oradata\vetxtep9\redo05.log''";
restore database;
switch datafile all;
recover database;
}


На выходе получаю:
автор
RMAN> RUN {
2> CATALOG START with 'd:\backup\rman\vetxtep9';
3> set newname for datafile '/oradata/oradata1/xtep8/users01.dbf' to 'd:\oradata\vetxtep9\users01.dbf';
4> set newname for datafile '/oradata/oradata1/xtep8/users02.dbf' to 'd:\oradata\vetxtep9\users02.dbf';
5> set newname for datafile '/oradata/oradata1/xtep8/users03.dbf' to 'd:\oradata\vetxtep9\users03.dbf';
6> set newname for datafile '/oradata/oradata1/xtep8/users04.dbf' to 'd:\oradata\vetxtep9\users04.dbf';
7> set newname for datafile '/oradata/oradata2/xtep8/indx01.dbf' to 'd:\oradata\vetxtep9\indx01.dbf';
8> set newname for datafile '/oradata/oradata2/xtep8/indx02.dbf' to 'd:\oradata\vetxtep9\indx02.dbf';
9> set newname for datafile '/oradata/oradata2/xtep8/indx03.dbf' to 'd:\oradata\vetxtep9\indx03.dbf';
10> set newname for datafile '/oradata/oradata3/xtep8/sysaux01.dbf' to 'd:\oradata\vetxtep9\sysaux01.dbf';
11> set newname for datafile '/oradata/oradata3/xtep8/system01.dbf' to 'd:\oradata\vetxtep9\system01.dbf';
12> set newname for datafile '/oradata/oradata3/xtep8/temp01.dbf' to 'd:\oradata\vetxtep9\temp01.dbf';
13> set newname for datafile '/oradata/oradata3/xtep8/undotbs01.dbf' to 'd:\oradata\vetxtep9\undotbs01.dbf';
14> SQL "ALTER database rename file ''/oradata/oradata5/xtep8/redo01.log'' to ''d:\oradata\vetxtep9\redo01.log''";
15> SQL "ALTER database rename file ''/oradata/oradata5/xtep8/redo02.log'' to ''d:\oradata\vetxtep9\redo02.log''";
16> SQL "ALTER database rename file ''/oradata/oradata5/xtep8/redo03.log'' to ''d:\oradata\vetxtep9\redo03.log''";
17> SQL "ALTER database rename file ''/oradata/oradata5/xtep8/redo04.log'' to ''d:\oradata\vetxtep9\redo04.log''";
18> SQL "ALTER database rename file ''/oradata/oradata5/xtep8/redo05.log'' to ''d:\oradata\vetxtep9\redo05.log''";
19> restore database;
20> switch datafile all;
21> recover database;
22> }

<здесь выполнена каталогизация файлов>

Выполняется команда: SET NEWNAME
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: сбой команды set в 04/28/2015 16:02:44
RMAN-20201: файл данных не найден в каталоге восстановления
RMAN-06010: ошибка при просмотре файла данных: D:\ORADATA\ORADATA1\XTEP8\USERS01.DBF


Почему она пытается найти файл users01.dbf в d:\oradata\oradata1\xtep8??? Этого пути нигде не указано! И почему она вообще его ищет? На виндовом сервере его разумеется нет.
28 апр 15, 09:06    [17573386]     Ответить | Цитировать Сообщить модератору
 Re: Поднятие БД RMANом на другой машине  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18487
Безотносительно всего остального, простым восстановлением перенос между OS не делается
См. команду RMAN CONVERT
28 апр 15, 09:11    [17573395]     Ответить | Цитировать Сообщить модератору
 Re: Поднятие БД RMANом на другой машине  [new]
Бухтелко
Member

Откуда:
Сообщений: 16
Хм, пошукаю. Спасибо.
28 апр 15, 09:18    [17573418]     Ответить | Цитировать Сообщить модератору
 Re: Поднятие БД RMANом на другой машине  [new]
SergeT
Member

Откуда: Самара
Сообщений: 26
Database Migration From Windows to Linux Using RMAN
28 апр 15, 09:29    [17573466]     Ответить | Цитировать Сообщить модератору
 Re: Поднятие БД RMANом на другой машине  [new]
KoTTT
Member

Откуда: Екб
Сообщений: 1511
Можно перенести датафайлы и поднять базу на другой платформе. Между линуксом и виндой точно.
Проблемы будут с recover фазой. Но все решаемо, если поднимать новую базу из холодного бэкапа или через кроссплатформенный стэндбай.
Restore From Windows To Linux using RMAN Fails (Doc ID 2003327.1)
RMAN DUPLICATE/RESTORE/RECOVER Mixed Platform Support (Doc ID 1079563.1)
28 апр 15, 12:34    [17574767]     Ответить | Цитировать Сообщить модератору
 Re: Поднятие БД RMANом на другой машине  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18487
Пока автор ничего не сказал про версию (видно, что минимум 10)
А из 1079563.1 видно, что минимум нужно 11.1

Ну и раз ты так рьяно защищаешь этот метод -- продемонстрируй мастер-класс
А мы будем на него всех страждущих отправлять
29 апр 15, 01:59    [17578926]     Ответить | Цитировать Сообщить модератору
 Re: Поднятие БД RMANом на другой машине  [new]
KoTTT
Member

Откуда: Екб
Сообщений: 1511
Вячеслав, да, наверное так было бы правильнее с демонстрацией. Заодно некоторые свои полузабытые сомнения развеять.
Попробую соорудить как-нибудь скучным майским теплым вечером :)
29 апр 15, 07:33    [17579040]     Ответить | Цитировать Сообщить модератору
 Re: Поднятие БД RMANом на другой машине  [new]
Vadim Lejnin
Member

Откуда:
Сообщений: 7136
Живой скрипт для 11.2.0.4
Миграция OMF и Не OMF DB windows -> linux x64 ASM db
set echo on
host 'rm -f $ORACLE_HOME/dbs/spfilepstb.ora';
run {
allocate channel d1 type disk;
allocate channel d2 type disk;
allocate auxiliary channel aux type disk;
duplicate target database to drp from active database
spfile
parameter_value_convert 'vv','drp'
reset control_files
set db_unique_name='drp'
set db_create_file_dest='+DATA'
set db_create_online_log_dest_1='+DATA'
set log_archive_max_processes='1'
set db_recovery_file_dest='+DATA'
set "__oracle_base"='/oracle/app/oracle'
set audit_file_dest='/tmp'
set diagnostic_dest='/tmp'
set log_archive_dest_10='location=use_db_recovery_file_dest';
}

Приду на работу, кину лог

P.s. Аккуратно проверяйте патчи версий.
А то при первом прогоне, аккуратно влип на отсутствующий на Linux DST23
29 апр 15, 08:42    [17579128]     Ответить | Цитировать Сообщить модератору
 Re: Поднятие БД RMANом на другой машине  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18487
11.2.0.4 умеет и между эндианами бэкапы на конвертить (хотя заявлено, что целевая может быть только Linux x64)
29 апр 15, 09:05    [17579201]     Ответить | Цитировать Сообщить модератору
 Re: Поднятие БД RMANом на другой машине  [new]
Vadim Lejnin
Member

Откуда:
Сообщений: 7136
приеду, попробую наоборот
29 апр 15, 09:10    [17579221]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить