Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Клонирование базы с Windows на Linux / 23 сообщений из 23, страница 1 из 1
27.02.2008, 10:21
    #35157167
AlexanderFloyd
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Клонирование базы с Windows на Linux
Возможно ли произвести дублирование базы работающей в среде OS MS Windows, на Linux с помощью rman'а. Поэкспериментировав некоторое время я так и не продвинулся дальше начала процесса восстановления датафайлов.
А проблема вот в чем, не смотря на параметры db_file_name_convert и log_file_name_convert файлы восстанавливаются по виндовскому пути.
Выдержка из лога RMAN'а:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
.....................
   set newname for datafile   42  to
 "/u02/oracle/oradata/CPBASE/OBSOLETE.DBF";
   set newname for datafile   43  to
 "/u02/oracle/oradata/CPBASE/DOC_COMMON.DBF";
   restore
   check readonly
   clone database
   ;
.....................

restoring datafile  00042  to C:\U02\ORACLE\ORADATA\CPBASE\OBSOLETE.DBF
restoring datafile  00043  to C:\U02\ORACLE\ORADATA\CPBASE\DOC_COMMON.DBF
released channel: ch1
released channel: ch2
......................

RMAN- 03002 : failure of Duplicate Db command at  02 / 27 / 2008   09 : 53 : 41 
RMAN- 03015 : error occurred in stored script Memory Script
ORA- 07217 : sltln: environment variable cannot be evaluated.

Относительно ошибки ORA-07217 параметры среды ORACLE_SID и ORACLE_PATH корректны.
...
Рейтинг: 0 / 0
27.02.2008, 11:46
    #35157402
badm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Клонирование базы с Windows на Linux
Версия базы какая?

-------------------------------------

Все хрустальные мечты детства разбились о чугунную жопу действительности!
...
Рейтинг: 0 / 0
27.02.2008, 12:24
    #35157507
AlexanderFloyd
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Клонирование базы с Windows на Linux
На Win 10.2.0.3, Linux 10.2.0.1

Есть подозрение что формат полного имени файла зависит от некой переменной окружения, т.к.
и set_newname, и db_file_name_convert путь к файлам то переименовывают, но восстановление начинается по вин-образному пути. Отсюда, похоже, и ошибка ORA-07217

restoring datafile 00043 to C:\U02\ORACLE\ORADATA\CPBASE\DOC_COMMON.DBF
...
Рейтинг: 0 / 0
27.02.2008, 13:13
    #35157674
Bambino
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Клонирование базы с Windows на Linux
AlexanderFloydВозможно ли произвести дублирование базы работающей в среде OS MS Windows, на Linux с помощью rman'а. Поэкспериментировав некоторое время я так и не продвинулся дальше начала процесса восстановления датафайлов.
А проблема вот в чем, не смотря на параметры db_file_name_convert и log_file_name_convert файлы восстанавливаются по виндовскому пути.
Выдержка из лога RMAN'а:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
.....................
   set newname for datafile   42  to
 "/u02/oracle/oradata/CPBASE/OBSOLETE.DBF";
   set newname for datafile   43  to
 "/u02/oracle/oradata/CPBASE/DOC_COMMON.DBF";

switch datafile all;

   restore
   check readonly
   clone database
   ;
.....................


Относительно ошибки ORA-07217 параметры среды ORACLE_SID и ORACLE_PATH корректны.
...
Рейтинг: 0 / 0
27.02.2008, 13:29
    #35157737
AlexanderFloyd
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Клонирование базы с Windows на Linux
Bambino AlexanderFloydВозможно ли произвести дублирование базы работающей в среде OS MS Windows, на Linux с помощью rman'а. Поэкспериментировав некоторое время я так и не продвинулся дальше начала процесса восстановления датафайлов.
А проблема вот в чем, не смотря на параметры db_file_name_convert и log_file_name_convert файлы восстанавливаются по виндовскому пути.
Выдержка из лога RMAN'а:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
.....................
   set newname for datafile   42  to
 "/u02/oracle/oradata/CPBASE/OBSOLETE.DBF";
   set newname for datafile   43  to
 "/u02/oracle/oradata/CPBASE/DOC_COMMON.DBF";

switch datafile all;

   restore
   check readonly
   clone database
   ;
.....................


Относительно ошибки ORA-07217 параметры среды ORACLE_SID и ORACLE_PATH корректны.

До переключения датафайлов дело не доходит, процесс прерывается при восстановлении (restore).
...
Рейтинг: 0 / 0
27.02.2008, 15:12
    #35158103
Bambino
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Клонирование базы с Windows на Linux
AlexanderFloyd Bambino AlexanderFloydВозможно ли произвести дублирование базы работающей в среде OS MS Windows, на Linux с помощью rman'а. Поэкспериментировав некоторое время я так и не продвинулся дальше начала процесса восстановления датафайлов.
А проблема вот в чем, не смотря на параметры db_file_name_convert и log_file_name_convert файлы восстанавливаются по виндовскому пути.
Выдержка из лога RMAN'а:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
.....................
   set newname for datafile   42  to
 "/u02/oracle/oradata/CPBASE/OBSOLETE.DBF";
   set newname for datafile   43  to
 "/u02/oracle/oradata/CPBASE/DOC_COMMON.DBF";

switch datafile all;

   restore
   check readonly
   clone database
   ;
.....................


Относительно ошибки ORA-07217 параметры среды ORACLE_SID и ORACLE_PATH корректны.

До переключения датафайлов дело не доходит, процесс прерывается при восстановлении (restore).

Switch надо делать до restore
...
Рейтинг: 0 / 0
27.02.2008, 15:17
    #35158128
tru55
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Клонирование базы с Windows на Linux
Bambino
Switch надо делать до restore

А что делает switch datafile all ?
...
Рейтинг: 0 / 0
27.02.2008, 15:23
    #35158153
AlexanderFloyd
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Клонирование базы с Windows на Linux
Bambino

Switch надо делать до restore

Хм, а на что он будет переключаться, если файлы еще не восстановлены !?
...
Рейтинг: 0 / 0
27.02.2008, 15:24
    #35158155
Bambino
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Клонирование базы с Windows на Linux
tru55 Bambino
Switch надо делать до restore

А что делает switch datafile all ?

Это "поточное" выполнение команды
alter database rename file....
После этого они в контролфайле будут уже смотреть на новые каталоги и rman их туда заресторит
...
Рейтинг: 0 / 0
27.02.2008, 15:27
    #35158165
AlexanderFloyd
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Клонирование базы с Windows на Linux
AlexanderFloyd Bambino

Switch надо делать до restore

Хм, а на что он будет переключаться, если файлы еще не восстановлены !?

PS
В первом топике не сам скрипт, а вырезки из лога RMAN'а.
...
Рейтинг: 0 / 0
27.02.2008, 15:29
    #35158175
AlexanderFloyd
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Клонирование базы с Windows на Linux
Bambino tru55 Bambino
Switch надо делать до restore

А что делает switch datafile all ?

Это "поточное" выполнение команды
alter database rename file....
После этого они в контролфайле будут уже смотреть на новые каталоги и rman их туда заресторит

Блин, сча попробую
...
Рейтинг: 0 / 0
27.02.2008, 15:29
    #35158176
Bambino
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Клонирование базы с Windows на Linux
AlexanderFloyd AlexanderFloyd Bambino

Switch надо делать до restore

Хм, а на что он будет переключаться, если файлы еще не восстановлены !?

PS
В первом топике не сам скрипт, а вырезки из лога RMAN'а.
Упс.. точно. но сути дела не менят

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
run{
set newname for datafile  1  to .....
set newname for datafile  2  to ...
......
switch datafile all;
restore database;
recover database;
}
...
Рейтинг: 0 / 0
27.02.2008, 15:31
    #35158185
tru55
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Клонирование базы с Windows на Linux
Bambino tru55 Bambino
Switch надо делать до restore

А что делает switch datafile all ?

Это "поточное" выполнение команды
alter database rename file....
После этого они в контролфайле будут уже смотреть на новые каталоги и rman их туда заресторит

Хорошо.
А что делает set newname ?
...
Рейтинг: 0 / 0
27.02.2008, 15:37
    #35158213
tru55
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Клонирование базы с Windows на Linux
Bambino AlexanderFloyd AlexanderFloyd Bambino

Switch надо делать до restore

Хм, а на что он будет переключаться, если файлы еще не восстановлены !?

PS
В первом топике не сам скрипт, а вырезки из лога RMAN'а.
Упс.. точно. но сути дела не менят

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
run{
set newname for datafile  1  to .....
set newname for datafile  2  to ...
......
switch datafile all;
restore database;
recover database;
}


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Oracle9i Recovery Manager User’s Guide

Restoring Datafiles to a New Location

RUN
{
SQL 'ALTER TABLESPACE users OFFLINE IMMEDIATE';
SQL 'ALTER TABLESPACE tools OFFLINE IMMEDIATE';
# restore the datafile to a new location
SET NEWNAME FOR DATAFILE '?/oradata/trgt/users01.dbf' TO '/tmp/users01.dbf';
SET NEWNAME FOR DATAFILE '?/oradata/trgt/tools01.dbf' TO '/tmp/tools01.dbf';
RESTORE TABLESPACE users, tools;
SWITCH DATAFILE ALL; # point control file to new filenames
RECOVER TABLESPACE users, tools;
}
...
Рейтинг: 0 / 0
27.02.2008, 15:45
    #35158258
AlexanderFloyd
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Клонирование базы с Windows на Linux
Bambino AlexanderFloyd AlexanderFloyd Bambino

Switch надо делать до restore

Хм, а на что он будет переключаться, если файлы еще не восстановлены !?

PS
В первом топике не сам скрипт, а вырезки из лога RMAN'а.
Упс.. точно. но сути дела не менят

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
run{
set newname for datafile  1  to .....
set newname for datafile  2  to ...
......
switch datafile all;
restore database;
recover database;
}



Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
...........................

executing command: SET NEWNAME

released channel: ch1
released channel: ch2
released channel: ch3
released channel: ch4
released channel: ch5
RMAN- 00571 : ===========================================================
RMAN- 00569 : =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN- 00571 : ===========================================================
RMAN- 03002 : failure of switch command at  02 / 27 / 2008   15 : 37 : 03 
RMAN- 20230 : datafile copy not found in the recovery catalog
RMAN- 06015 : error while looking up datafile copy name: C:\U02\ORACLE\ORADATA\CPBASELI\SYSTEM

Recovery Manager complete.

Ну собственно, вполне ожидаемый результат.
...
Рейтинг: 0 / 0
27.02.2008, 15:48
    #35158269
Bambino
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Клонирование базы с Windows на Linux
AlexanderFloyd Bambino AlexanderFloyd AlexanderFloyd Bambino

Switch надо делать до restore

Хм, а на что он будет переключаться, если файлы еще не восстановлены !?

PS
В первом топике не сам скрипт, а вырезки из лога RMAN'а.
Упс.. точно. но сути дела не менят

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
run{
set newname for datafile  1  to .....
set newname for datafile  2  to ...
......
switch datafile all;
restore database;
recover database;
}



Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
...........................

executing command: SET NEWNAME

released channel: ch1
released channel: ch2
released channel: ch3
released channel: ch4
released channel: ch5
RMAN- 00571 : ===========================================================
RMAN- 00569 : =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN- 00571 : ===========================================================
RMAN- 03002 : failure of switch command at  02 / 27 / 2008   15 : 37 : 03 
RMAN- 20230 : datafile copy not found in the recovery catalog
RMAN- 06015 : error while looking up datafile copy name: C:\U02\ORACLE\ORADATA\CPBASELI\SYSTEM

Recovery Manager complete.

Ну собственно, вполне ожидаемый результат.

Блин, ну конечно я осел...
...
Рейтинг: 0 / 0
27.02.2008, 16:05
    #35158347
Bambino
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Клонирование базы с Windows на Linux
Но я все-таки помогу товарищу перенести базу. А делать надо вот как...
Модератор: Текст документа удален.
Cross-Platform Migration Using Rman Convert Database on Destination Host ( Windows 32-bit to Linux 32-bit )
...
Рейтинг: 0 / 0
27.02.2008, 16:11
    #35158371
AlexanderFloyd
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Клонирование базы с Windows на Linux
BambinoНо я все-таки помогу товарищу перенести базу. А делать надо вот как...

Спасибо тебе Bambino , респект и уважуха !!! :)
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
20.06.2024, 03:44
    #40138664
dayas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Клонирование базы с Windows на Linux
Прямо моя задача,
НО
1.Нельзя останавливать базу. То есть, бэкап надо сделать на горячую. Неважно, если данные будут не полностью актуальные на последнюю дату.
2.База на Windows должна остаться рабочей. А насколько я понимаю после CONVERT её нельзя будет заново включить на том же самом месте.

План такой:
1.Уже сделал промежуточный сервер. Установил туда такую же версию Oracle 12, как на основном сервере.
2.Теперь надо как-то сделать горячий бэкап, который я разверну на промежуточном сервере.
3.А вот на промежуточном сервере я уже остановлю базу и сделают CONVERT и перенесу базу на Linux.

Зачем такая заморочка? Потренироваться в переносе. И вообще вспомнить Oracle. Админил его в 2001-2009, потом был перерыв.
Когда дело дойдёт до реального переноса базы, то конечно остановлю основную базу, сделаю холодный бэкап и CONVERT.
Но сейчас без остановки и через промежуточный сервер.

Пока что вопрос по пункту 2. Сделать горячий бэкап. Хватит двух команд:
RMAN> backup current controlfile;
RMAN> backup database;
или ещё что-то нужно?

Если что ARCHIVELOG включён.
...
Рейтинг: 0 / 0
20.06.2024, 13:14
    #40138665
SeaGate
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Клонирование базы с Windows на Linux
dayas [игнорируется] 

Primary может быть на Windows, standby на Linux:
Data Guard Support for Heterogeneous Primary and Physical Standbys in Same Data Guard Configuration (Doc ID 413484.1)
Развертывать standby, например, через active database duplication (тут primary - Linux, standby - Windows): Using Active Database Duplication to Create Cross Platform Data Guard Setup (Windows/Linux) (Doc ID 881421.1)
Нужно только аккуратно прописать db_file_name_convert, log_file_name_convert, настроить удаление архивных логов на standby.
Standby можно будет для тестов открыть в snapshot standby. В момент финального переключения, просто выполнить switchover. Тем самым, при необходимости можно будет переключиться обратно.
Convert здесь не нужен.
...
Рейтинг: 0 / 0
20.06.2024, 13:25
    #40138666
SeaGate
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Клонирование базы с Windows на Linux
dayas [игнорируется] 
dayas 
[игнорируется]
Oracle 12
Oracle 12 встречается в двух видах сейчас: 12.1.0.2 (12.1), 12.2.0.1 (12.2)
Если 12.2, то можно через dbca -createDuplicateDB попробовать создать standby. Между Linux это всё без проблем работает (примеры в интернете). Между Windows и Linux не проверял, но стоит попробовать.
...
Рейтинг: 0 / 0
26.06.2024, 03:25
    #40138672
dayas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Клонирование базы с Windows на Linux
SeaGate [игнорируется] 

К сожалению, 12.1, и к тому же standby - это немного другое. Я вспомнил, что настраивал standby примерно в 2013.

На данный момент мне надо сделать просто горячий бэкап, чтобы развернуть его на другом сервере. Поэтому решил использовать обычный backup через RMAN.

НО появилась ещё одна проблема.
На исходном сервере нет места под бэкап. Трогать сервер, как я уже говорил, нельзя.
А сетевой диск не даёт задать. Или я что-то не так делаю? Через location тоже пробовал.
Код: SQL
1.
2.
3.
4.
5.
6.
7.
8.
9.
SQL> alter system set db_recovery_file_dest='H:\oracle';
alter system set db_recovery_file_dest='H:\oracle'
*
ERROR at line 1:
ORA-02097: parameter cannot be modified because specified value is invalid
ORA-01261: Parameter db_recovery_file_dest destination string cannot be translated
ORA-01263: Name given for file destination directory is invalid
OSD-04018: Unable to access the specified directory or device.
O/S-Error: (OS 3) ┐┐┐┐┐┐┐┐ ┐┐┐┐┐┐┐┐┐┐ ┐┐┐.
Что можно придумать?
...
Рейтинг: 0 / 0
26.06.2024, 13:19
    #40138673
SeaGate
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Клонирование базы с Windows на Linux
dayas [игнорируется] 
dayas 
[игнорируется]
К сожалению, 12.1, и к тому же standby - это немного другое
Standby это именно то, что я имел в виду в моем комментарии.
dbca -createDuplicateDB
См параметр `-createAsStandby` этой команды.
dayas 
[игнорируется]
Что можно придумать?
Делать active duplicate как я писал ранее.
Using Active Database Duplication to Create Cross Platform Data Guard Setup (Windows/Linux) (Doc ID 881421.1)
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Клонирование базы с Windows на Linux / 23 сообщений из 23, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]