powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Перенос БД с Windows на Linux
25 сообщений из 123, страница 1 из 5
Перенос БД с Windows на Linux
    #39804407
MalishPo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток,
Занялся переносом базы данных из одной ОС в другую. Делаю все по статье https://www.sql.ru/forum/240418/4faq-klonirovanie-bazy
Вроде бы неплохо....но попал в проблему при переименовании файлов БД.
Код: sql
1.
2.
3.
4.
alter database rename file 'D:\ORACLE11\ORADATA\ORCL\SYSTEM01.DBF' to '/u01/app/oracle/oradata/orcl/SYSTEM01.DBF';
ERROR at line 1:
ORA-01511: error in renaming log/data files
ORA-01516: nonexistent log file, data file, or temporary file "D:\ORACLE11\ORADATA\ORCL\SYSTEM01.DBF"



Проверил:
Код: plsql
1.
2.
3.
4.
SQL> select name from v$datafile;
D:\ORACLE11\ORADATA\ORCL\SYSTEM01.DBF
D:\ORACLE11\ORADATA\ORCL\SYSAUX01.DBF
D:\ORACLE11\ORADATA\ORCL\UNDOTBS01.DBF




Что делать? Куда копать?
...
Рейтинг: 0 / 0
Перенос БД с Windows на Linux
    #39804409
veep
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MalishPo,

Я бы переносил через RMAN
1) бэкап базы на источнике
2) восстановление на новом инстансе с переименованием файлов ( можно использовать OMF)
3) Ну и переустановка словарей и каталогов.

Можно ещё expdp/impdp делать

Вообще ищите статьи на оракловском металинке, а не в форуме как что делать.
...
Рейтинг: 0 / 0
Перенос БД с Windows на Linux
    #39804411
MalishPo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
veep,

Проблема в том что уже начал делать через форум :( БД весит 2Тб, бекап rman'ом займет часов 8(диски медленные) Перенос на новый сервер еще 6-8 часов....

Может как нибудь подскажете как переименовать лучше? :)
...
Рейтинг: 0 / 0
Перенос БД с Windows на Linux
    #39804413
MalishPo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
UPD.
При выполнении команды
Код: plsql
1.
select name from v$datafile_header;


выдается пустота.
Я так понимаю это печалька?
...
Рейтинг: 0 / 0
Перенос БД с Windows на Linux
    #39804415
veep
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MalishPoveep,

Проблема в том что уже начал делать через форум :( БД весит 2Тб, бекап rman'ом займет часов 8(диски медленные) Перенос на новый сервер еще 6-8 часов....

Может как нибудь подскажете как переименовать лучше? :)

В той статье я ни слова не вижу о кросплатформенном переносе базы. Это вариант для Linux to Linux или Windows to Windows.

Я скажу больше в разных платформах форматы файлов могут различаться ( и различаются).

Так что RMAN или expdp/impdp - это единственное средство. Потому не тратьте время и делайте бэкап. Только почитайте о том как это делается RMAN ом, в некоторых случаях там есть специфические ключики для кросплатформенном миграций. Сам точно подсказать не могу - я в дороге.

P/s перед тем как идти на production я бы потренировался не мелкой БД.
...
Рейтинг: 0 / 0
Перенос БД с Windows на Linux
    #39804417
MalishPo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
veep,

Жаль, ок спасибо. буду пробовать.

ПС: Не могу тренироваться, времени не дают. Текущий продакшн умирает, диски (чтение\запись) на 100% 95% времени. Все зависает. Те кто собирал эту БД не учли ее разрастания, а заказчик пихает новые модули, все больше и больше. Теперь нужно перенести на новый сервер..срочно :(
...
Рейтинг: 0 / 0
Перенос БД с Windows на Linux
    #39804422
veep
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MalishPo,

Ещё дам несколько советов.

На самом деле велика вероятность что у вас ничего не получится в эти выходные из-за отсутствия должной подготовки. Можно рассмотреть временные решения которые оттянут время но дадут подготовится.

1) Если проблема в дисках, то переносить не сервер а подключить более быструю дисковую систему.
2) перенести не всю базу, а только те модули которые создают наибольшую нагрузку или способны снять её с основной бд. Связь со старой БД держать на db линках.
3) если в вашем отделе больше чем один DBA то можно вести работы параллельно. Типа что быстрее получится.
4) Заняться оптимизацией системы - OLTP система так себя вести не должна, возможно где то не хватает индексов. Возможно увеличить размер реду, etc..
...
Рейтинг: 0 / 0
Перенос БД с Windows на Linux
    #39804426
MalishPo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
veep,
Спасибо за советы, к сожалению:
1) Нет у заказчика дисков :)
2) Думал над этим, но это временное решение, не исправляющее ситуацию :(
3) Я один, и только учусь. Куча админов, куча прогеров, а вот DBA по ораклу только я(недоучка)
4) Тоже пробую заниматься этим параллельно, но слишком много точек отказа. Не пойми куда смотреть. Даже собирал статистику запросов к БД, очень много информации на анализ которой нужно время.
В общем печаль-тоска, но прорвемся.

По поводу переноса, нашел статью Kamran Agayev Agamehdi по переносу БД с помощью rman. Вроде получается, правда времени требуется слишком много, но ничего не остается :(

ПС: Самая большая печаль отсутствие дисков для сервера с БД, из-за чего бекап/конвертация делаются по сети на СХД. При этом даже на СХД места только под БД+бекап, либо БД+конвертируемые файлы. Тупо некуда бекап сунуть.

Еще раз спасибо за помощь, если все выйдет, отпишусь дабы сообщить что еще жив и не уволили :)
...
Рейтинг: 0 / 0
Перенос БД с Windows на Linux
    #39804434
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MalishPo,
...
Рейтинг: 0 / 0
Перенос БД с Windows на Linux
    #39804467
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
MalishPo,

вот моя рыба для такого:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
connect target &1/&2@&3;
connect auxiliary &1/&2@&4;

DUPLICATE TARGET DATABASE TO &4 FROM ACTIVE DATABASE
   spfile
   set db_name='&4'
   set DB_FILE_NAME_CONVERT='{вставь свое}/&3','{вставь свое}/&4'
   set LOG_FILE_NAME_CONVERT='{вставь свое}&3','{вставь свое}&4','{вставь свое}&3','{вставь свое}&4',...
   set control_files='{вставь свое}/&4/control01.ctl,{вставь свое}/&4/control02.ctl,...'
   nofilenamecheck;
...
Рейтинг: 0 / 0
Перенос БД с Windows на Linux
    #39804612
landy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot veep]MalishPoveep,
Я скажу больше в разных платформах форматы файлов могут различаться ( и различаются).


Насколько я понимаю, организация с использованием датафайлов и выбрана для минимизации
затрат на кросплатформенном окружении.
Различаются разве, что - контролфайлы и архивлоги - и то в плане путей до датафайлов.

Я делал так:
1. переносил датафайлы
2. делал дамп контрольника в трейс, правил в нем пути
3. пересоздавал контрольник
4. запускал БД на linux

Для минимизации downtime, я бы попробовал на линуксе создать шару( smb/nfs),
смонтировать на виндовой машине, выполнить
1. backup as copy datafiles на нее
2. периодически выполнять инкрементальное обновление (включить block change tracking, если БД EE - очень сильно
помогает)

(downtime отсюда)

3. Останавливаем листенер
4. выполняем последнее инкрементальное обновление
5. останавливаем БД
6. пересоздаем контрольник а linux
7. запускаем БД на линукс

В случае проблем - остаемся на старой БД, оттестировать можно без остановки продуктива
...
Рейтинг: 0 / 0
Перенос БД с Windows на Linux
    #39804727
Фотография mefman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
landyДля минимизации downtime, я бы попробовал на линуксе создать шару( smb/nfs),

имхо - криповое решение.
...
Рейтинг: 0 / 0
Перенос БД с Windows на Linux
    #39804737
landy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И что же тут страшного?
...
Рейтинг: 0 / 0
Перенос БД с Windows на Linux
    #39804749
Фотография mefman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
landyИ что же тут страшного?
Не помню уже. Но не стал бы запускать БД из виндовой шары.
...
Рейтинг: 0 / 0
Перенос БД с Windows на Linux
    #39804798
landy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А ее не нужно запускать из шары, шара только для инкрементально обновляемого бэкапа,
который создается на виндовой машине и периодически обновляет датафайлы на шаре
Сама БД будет запускаться с локальных дисков linux, на ext4, xfs и т п
...
Рейтинг: 0 / 0
Перенос БД с Windows на Linux
    #39804802
MalishPo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем кто откликнулся, вроде бы справился(частично)

Сделал миграцию через rman(есть там миграция с windows на linux)
не обошлось без проблем, но таки получилось БД запустить.

Дополнительный вопрос:
Если сделана миграция с помощью rman:
Код: plsql
1.
2.
convert database new database 'newsid'
transport script....


Это считается бекапом?
Т.е. могу ли я чистить архивлоги таким образом:
Код: plsql
1.
2.
CHANGE ARCHIVELOG ALL CROSSCHECK;
delete archivelog all;


Мне это нужно понимать потому что после конверта пришлось включать старый продакшн и теперь мне нужно сделать инкрементальный бекап, чтобы обновить данные в БД на linux.
...
Рейтинг: 0 / 0
Перенос БД с Windows на Linux
    #39804821
Oleg M.Ivanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MalishPo,

impdp через network_link неплохо работает. Я сам, буквально, на прошлой неделе тестировал время переноса 2,3 Тб базы с HP-UX на Oracle Linux.

Задачу разбил на несколько этапов:
1. Получил список табличных пространств и создал их на новой базе.
2. Получил DDL всех юзеров и грантов, кроме системных и создал их на новой базе.
3. Получил список всех таблиц и таблиц с партициями более 1 Гб (остальных "мелких" осталось на 84 Гб).
4. Перелил все большие таблицы impdp по network_link, но с параметрами
EXCLUDE=INDEX \
EXCLUDE=STATISTICS \
tables= \
BIG_TABLE_1, \
BIG_TABLE_2, \
...
BIG_TABLE_n
5. Получил дамп DDL индексов expdp на исходной базе
CONTENT=METADATA_ONLY \
include=index \
tables= \
BIG_TABLE_1, \
BIG_TABLE_2, \
...
BIG_TABLE_n
6. Получил SQLFILE на новом сервере из этого дампа
impdp
dumpfile=$DUMPFILE \
SQLFILE=$SQLFILE \
EXCLUDE=INDEX_STATISTICS
7.Исправил в получившемся SQL-файле PARALLEL 1 на PARALLEL 16 для всех индексов, после чего прогнал скрипт в sqlplus, построение индексов заняло, порядка, 10 минут.
8. Выбрал все схемы кроме системных из исходной базы и залил impdp через network_link, за исключением ранее перелитых больших таблиц
schemas= schema_1, schema_2, ..... schema_n \
EXCLUDE=STATISTICS \
TABLE_EXISTS_ACTION=TRUNCATE \
EXCLUDE= \
TABLE:\"LIKE \'BIG_TABLE_1\'\", \
TABLE:\"LIKE \'BIG_TABLE_2\'\", \
...
TABLE:\"LIKE \'BIG_TABLE_n\'\"

Первый раз все прошло без 2-х часов двое суток. ХМ... Неприемлемо долго.
Со второй попытки пересоздал редо, темп и undo на tmpfs и переливка больших таблиц заняла 7 ч 20 минут, а схемы с остатками данных 84 Гб перелились за 1 ч 40 минут. Общее время переноса составило порядка 9 часов, что уже приемлемо.

После чего отдал новую базу бизнесу для проверки на предмет: "все ли перенеслось нормально?". Вроде, все норм. Перенос осуществлялся при работающем исходном сервере, а мне нужно было только обозначить бизнесу время необходимое для переноса с последующим переходом на него. Когда будет реальный переход, то там уже будут выгнаны все пользователи из исходной базы и остановлены задания, поэтому может получиться даже быстрее 9-ти часов, поскольку, сервер сейчас очень не слабо нагружен.
...
Рейтинг: 0 / 0
Перенос БД с Windows на Linux
    #39804823
Oleg M.Ivanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Во, пока описывал вариант, тут уже задача решилась.
...
Рейтинг: 0 / 0
Перенос БД с Windows на Linux
    #39804837
landy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну с HP-UX на Linux вариантов кроме transportable table space и expdp/impdp вроде как и нет (т к разные endianless)
...
Рейтинг: 0 / 0
Перенос БД с Windows на Linux
    #39804854
MalishPo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Oleg M.Ivanov,

Спасибо, интересно почитать, может когда нибудь и опробую. К сожалению на тесты у меня была всего неделя. Сейчас уже нет недели :) Я таки перенес БД с помощью статьи http://www.dba-oracle.com/t_migrate_windows_to_linux.htm

Осталось понять могу ли я удалить архивлоги командой
Код: plsql
1.
2.
CHANGE ARCHIVELOG ALL CROSSCHECK;
delete archivelog all;


а после сделать инкрементальный бекап, чтобы добить новую БД данными за сегодня-завтра. Далее собираюсь сменить ip-адрес на продовский, чтобы не перенастраивать кучу приложений завязаных на БД.
...
Рейтинг: 0 / 0
Перенос БД с Windows на Linux
    #39804896
witte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
landyНу с HP-UX на Linux вариантов кроме transportable table space и expdp/impdp вроде как и нет (т к разные endianless)
Если говорить только о штатных средствах (без использования всяких CDC), то с версии 11.2.0.4 можно rman-ом мигрировать на другой endian. Более того, можно инкриментально это делать для минимизации простоя.
См. ноту 11G - Reduce Transportable Tablespace Downtime using Cross Platform Incremental Backup (Doc ID 1389592.1)
...
Рейтинг: 0 / 0
Перенос БД с Windows на Linux
    #39804898
Фотография mefman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MalishPoOleg M.Ivanov,

Спасибо, интересно почитать, может когда нибудь и опробую. К сожалению на тесты у меня была всего неделя. Сейчас уже нет недели :) Я таки перенес БД с помощью статьи http://www.dba-oracle.com/t_migrate_windows_to_linux.htm

Осталось понять могу ли я удалить архивлоги командой
Код: plsql
1.
2.
CHANGE ARCHIVELOG ALL CROSSCHECK;
delete archivelog all;


а после сделать инкрементальный бекап, чтобы добить новую БД данными за сегодня-завтра. Далее собираюсь сменить ip-адрес на продовский, чтобы не перенастраивать кучу приложений завязаных на БД.
Если новую БД уже запускали. то ее бэкапом не догонишь уже.
Идеально было бы сделать стендбай с винды на линь, а по окончании миграции свитч.
...
Рейтинг: 0 / 0
Перенос БД с Windows на Linux
    #39804915
MalishPo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mefman,

Ну у меня сохранились нетронутые файлы БД.

По поводу стендбая, я так понимаю это rman'ом сделать DUPLICATE?
...
Рейтинг: 0 / 0
Перенос БД с Windows на Linux
    #39804918
landy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wittelandyНу с HP-UX на Linux вариантов кроме transportable table space и expdp/impdp вроде как и нет (т к разные endianless)
Если говорить только о штатных средствах (без использования всяких CDC), то с версии 11.2.0.4 можно rman-ом мигрировать на другой endian. Более того, можно инкриментально это делать для минимизации простоя.
См. ноту 11G - Reduce Transportable Tablespace Downtime using Cross Platform Incremental Backup (Doc ID 1389592.1)
Да - все правильно.
Но только(если мне не изменяет память) мигрировать можно, но инкрементальное обновление с HP-UX на linux x86
не работает(может сам накосячил?). В обратную сторону - работает.
Я видел в какой-то ноте явное упоминание об этом - сейчас не нахожу
Проверял где-то год назад, когда стояла такая задача.
И да - из ноты
the current version does NOT support Windows.
...
Рейтинг: 0 / 0
Перенос БД с Windows на Linux
    #39804950
Фотография mefman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MalishPomefman,

Ну у меня сохранились нетронутые файлы БД.

По поводу стендбая, я так понимаю это rman'ом сделать DUPLICATE?
да типа такого:
Код: plsql
1.
2.
3.
rman target sys/oracle@prima auxiliary sys/oracle@physt
duplicate target database for standby from active database;
...
Рейтинг: 0 / 0
25 сообщений из 123, страница 1 из 5
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Перенос БД с Windows на Linux
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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