SlideShare a Scribd company logo
МИГРАЦИЯ СУБД ORACLE С
RISC-ПЛАТФОРМ НА LINUX
X86 С МИНИМАЛЬНЫМ
ВРЕМЕНЕМ ПРОСТОЯ
Игорь Мельников
Независимый консультант
ИГОРЬ МЕЛЬНИКОВ
2016 - 2022: Oracle Corporation: главный консультант
2022 - 2024: Postgres Pro: ведущий консультант
2024 – настоящее время: независимый консультант
Сфера деятельности : внедрение Extended RAC,,
апгрейд версии СУБД Oracle, уменьшение
размера БД с помощью Advanced Compression,
оптимизация кода PL/SQL (статический анализ
кода с помощью PL/Scope и выбор методов
оптимизации), миграция с RISC-платформ на Linux
x86 и т.д.
Также в последнее время занимаюсь проектами
по миграции с Oracle на PostgreSQL.
ПЛАН
1. Введение в задачу миграции с RISC на x86
2. Способы миграции
3. Использование технологии Cross Platform TTS
4. Проблемы и способы их решения
ВВЕДЕНИЕ В МИГРАЦИЮ C RISC НА X86
Необходимость миграции
Проблема разного формата файлов БД
Что такое Endian
ПРЕДПОСЫЛКИ ДЛЯ МИГРАЦИИ С RISC НА X86
1. Прекращено развитие SPARC-архитектуры – последняя модель (SPARC M8)
вышел в 2017 году
2. Высокая стоимость сопровождения и комплектующих для RISC-серверов
3. Недорогая альтернатива в виде серверов Linux-x86 – дешевле стоимость,
сопровождение и апгрейд
4. Бурное развитие платформы x86 – появление на рынке AMD Epyc c 64/128
ядрами
5. Поддержка платформы ARM в СУБД Oracle Database 19c
РАЗЛИЧИЕ RISC-ПЛАТФОРМ И X86
Различный порядок записи байтов ( Endian ) – это способ, который определяет
порядок хранения байтов в памяти сервера. Соответственно, он же используется в
файлах данных БД.
Существуют 2 порядка записей байтов:
• Big Endian (BE) – байты в машинном слове расположены по возрастанию адресов
(слева направо)
• Little Endian (LE) – байты в машинном слове расположены по убыванию адресов
(порядок байтов “перевернут”)
7 29.06.2025
ENDIAN ЗАВИСИТ ОТ ПЛАТФОРМЫ (CPU + ОС)
Small endiian платформы
• Linux (Intel x86 32/64 bit)
• Linux (Intel IA32/64)
• Windows (Intel x86 32/64 bit)
• Windows (Intel IA32/64)
• Open VMS (Intel IA64)
• Tru64 UNIX (Alpha)
• Solaris for x86
При миграции СУБД Oracle между платформами c
разным Endian необходима конвертация файлов
данных
Big endian платформы
• Solaris (SPARC)
• HP-UX (Intel IA64)
• HP-UX (PA-RISC)
• AIX (PowerPC)
• Linux (PowerPC)
• Linux (zSeries)
СПОСОБЫ МИГРАЦИИ C RISC НА X86
Перечень способов миграции
Их достоинства и недостатки
СПОСОБЫ КОНВЕРТАЦИИ ENDIAN
9
29.06.2025
Small ending платформы
• Linux (Intel x86 64 bit)
Big ending платформы
• Solaris (SPARC)
Система
хранения
данных
Система
хранения
данных
№ Способы конвертации
1 RMAN Convert (с помощью утилиты
RMAN)
2 Встроенный пакет DBMS_FILE_TRANSFER
3 Datapump Export/Import (с помощью
утилит expdp/impdp)
4 Логическая репликация (GoldenGate)
Конвертация данных
КОНВЕРТАЦИЯ ФАЙЛОВ ДАННЫХ
 В ходе конвертации RMAN создает копию файла данных
 Может быть выполнен на исходной или целевой платформе
 СХД должна быть доступна для обеих хостов
 Время конвертации примерно равно времени получения бэкапа
соответствующих файлов данных, требуется объем СХД равный исходному
размеру
 Параллельность поддерживается
 Пример:
 DBMS_FILE_TRANSFER можно использовать для копирования файлов - конвертирует
неявно “на лету”
RMAN> CONVERT DATABASE
NEW DATABASE 'newdb'
TRANSPORT SCRIPT
'/tmp/convertdb/transportscript'
TO PLATFORM 'Linux x86 64-bit';
БД должна быть в read-only - большой downtime
…
Исходная система
dmp-файлы
Экспорт
МИГРАЦИЯ ЧЕРЕЗ DATAPUMP ЭКСПОРТ-ИМПОРТ
Способы увеличения скорости
Целевая система
Импорт
Включено сжатие и параллельность
•expdp FULL=Y COMPRESSION=ALL PARALLEL=8
DUMPFILE=start%u.dmp
Включена параллельность
•impdp PARALLEL=8 DUMPFILE=start%u.dmp
Большой downtime на экспорт-импорт
TRANSPORTABLE TABLESPACE WITH INCREMENTAL
BACKUPS
Миграция с помощью транспортируемые табличные пространств с
конвертацией и “применением” инкрементальных бэкапов
13
TRANSPORTABLE TABLESPACE WITH INCREMENTAL
BACKUPS
TTS с сменой Endian - xTTS
DESTINATION Database 19c Linux
SCOTT
HUGO
SOURCE Database 19c SPARC
VIEWS
CODE
PRIVS
SCOTT
HUGO
USERS
SYSTEM
SYSAUX
UNDO
TEMP
SYSTEM
SYSAUX
UNDO
TEMP
VIEWS
CODE
PRIVS
Data Pump
Convert and apply
backups
IncSet 0
IncSet 1
IncSet 1
Read Only
expdp/impdb "'"sys/sys as sysdba"'" …
TRANSPORT_TABLESPACES=TS1,TS2 …
Downtime!!!
Read Write
XTTS – ОПИСАНИЕ НА МЕТАЛИНКЕ
xTTS v4 PERL scripts in MOS Note: 2471245.1
Исходная БД: 10.2.0.3 +
Целевая БД: 11.2.0.4 +
xTTS v1
Doc ID 1389592.1
xTTS v2
Doc ID 1389592.1
xTTS v3
Doc ID 1389592.1
xTTS v4
Doc ID 2471245.1
M5
Doc ID 2999157.1
2
0
1
8
2
0
2
4
15
FTEX – FULL TRANSPORTABLE EXPORT/IMPORT BACKUPS
impdp … FULL=Y TRANSPORTABLE=ALWAYS …
XTTS M5 – FTEX MIGRATION
 FTEXT поддерживает:
 Зашифрованные табличные пространства
 Multisection бэкапы
 Миграция нескольких баз данных в одну CDB одновременно
 Сжатые бэкапы (compressed backupset)
 Улучшенный параллелизм
 Целевая и исходная БД должны быть:
 Версии 19.18.0 и выше
 Установлен Data Pump Bundle Patch
 Целевая БД должна использовать Oracle Managed Files (OMF)
 Установлен параметр DB_CREATE_FILE_DEST
XTTS - ПРОБЛЕМЫ И СПОСОБЫ ИХ РЕШЕНИЯ
XTTS - ПРОБЛЕМЫ
 Ошибка при миграции таблиц с столбцом типа XMLType
 33720650: TCH19C :: OCI-21500: INTERNAL ERROR CODE [QMCXDGETQNAMEINFO2],
[14003] IN XMLTYPE CLOUMN TYPE
 Патч вошел в Data Pump Recommended Proactive 19.15+
 Большой downtime для баз с десятками тысяч и более сегментов
 Удалить небольшие индексы в исходной БД, после plug-in в целевой БД быстро
пересоздать в parallel online
 Удалить все промежуточные таблицы, которые можно легко пересоздать и
наполнить данными
 Переносить замкнутые группы табл. пространств параллельно
 Де-материализовать пустые сегменты с помощью пакета DBMS_SPACE_ADMIN:
exec dbms_space_admin.drop_empty_segments;
 Почистить БД - удалить сегменты, которые уже не используются
 Очистить мусорную корзину: purge dba_recyclebin;
XTTS – ПРОБЛЕМЫ (ПРОДОЛЖЕНИЕ)
 Ошибка при миграции с большим количеством файлов данных smallfile
 ORA-39123: Data Pump transportable tablespace job aborted
 ORA-01240: too many data files to add in one command
 ORA-39123 ORA-1240 Error On Import Of Transportable Tablespace (Doc ID
740983.1)
 “during TTS plugin phase we generate a single redo record containing the name of
all the datafiles in the operation.”
 Варианты решения:
 Переименовать файлы данных и пути, чтобы сделать их короче
 Создать новые табличные пространства в режиме BIGFILE, и перенести в них
сегменты (alter table move online, alter index rebuild online), старые удалить
 Переносить по отдельности замкнутые группы табличных пространств (если это
возможно)
XTTS - РЕКОМЕНДАЦИИ
 Не забыть про выравнивание последовательностей: SQL> @reset_seq.sql
 Проверить на отсутствие INVALID-объектов в целевой БД: SQL> @check_objects.sql
 Пересоздание очередей Advanced Queuing: SQL> @recreate_queues.sql
 Сбор статистики: перенести статистику заранее
 На целевой БД временно перенести файлы табличных пространств SYSTEM и
SYSAUX на RAM-диск (БД в nologging), после окончания миграции перенести их на
обычный диск, удалить RAM-диск, вернуть память в SGA и рестартовать экземпляр
(перевод БД в logging mode)
XTTS – ЗАВЕРШАЮЩИЕ ШАГИ
 Проверка логической целостности словаря БД: Health Check (hcheck.sql)
 Cкачать скрипт hcheck.sql с MOS Note:136697.1
 Проверяет также известные проблемы с словарем для версий Oracle8i,
Oracle9i, Oracle10g и Oracle 11g
 Требует hOut Helper Package (hout.sql) с MOS Note:101468.1
 Проверка файлов данных: RMAN Validation Check
 RMAN> validate database check logical;
 См. MOS Note:836658.1 для детальной информации
 Проверка может производиться в несколько потоков – для увеличения
скорости, - может производится только на выбранных файлах данных или
табличных пространствах
XTTS – ИСТОРИЯ УСПЕХА
 Миграция с Solaris на SPARC M7 на AMD c Oracle Linux
 Число пользовательских сегментов: ~5000
 Количество пакетов: ~1000
 Использовались скрипты M5 – миграция с помощью FTEX
 Объем БД: ~7 ТБ
Суммарный downtime БД составил ~30 минут!
“
”
МИГРАЦИЯ СУБД ORACLE С RISC-
ПЛАТФОРМ НА LINUX X86 С
МИНИМАЛЬНЫМ ВРЕМЕНЕМ ПРОСТОЯ
ИГОРЬ МЕЛЬНИКОВ
Независимый консультант
Email: melnikov_ii@mail.ru
Tel: +7 915 205 26 27

More Related Content

ODP
СУБД Firebird: Краткий обзор, Дмитрий Еманов (in Russian)
PDF
Новости семейства Cisco UCS
PPT
SAMag2007 Conference: PostgreSQL 8.3 presentation
PDF
ERP-системы в облаке: разбор кейсов DataLine
PPTX
Nutanix Acropolis - облако на базе KVM под ключ, Максим Шапошников (Nutanix)
PDF
Cisco Hyperflex
PDF
C++ весна 2014 лекция 2
СУБД Firebird: Краткий обзор, Дмитрий Еманов (in Russian)
Новости семейства Cisco UCS
SAMag2007 Conference: PostgreSQL 8.3 presentation
ERP-системы в облаке: разбор кейсов DataLine
Nutanix Acropolis - облако на базе KVM под ключ, Максим Шапошников (Nutanix)
Cisco Hyperflex
C++ весна 2014 лекция 2

Similar to migrate Oracle Database from RISC platform to x86 with minimal downtime (20)

PDF
Whats new in_mikro_tik_ros_6_(megis,_mosсow_2013)_(russian_translate_by_white...
PPT
Лекция № 3 Организация ЭВМ и систем
PPT
Лекция №3 Организация ЭВМ и систем
PPTX
Что такое Postgresql (Максим Богук)
PDF
Максим Богук. Postgres-XC
PDF
Безопасность Центров Обработки Данных
PDF
Виртуализация сетевой инфраструктуры на примере использования IOS-XRv 9000 и ...
PPT
prezlec_Історія.ppt
ODP
Data storage systems
PDF
Операционные системы
PDF
Лекция 3. Векторизация кода (Code vectorization: SSE, AVX)
PDF
"Новые возможности MySQL 5.7"
PPTX
High Load 2009 Dimaa Rus Ready
PDF
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...
PDF
ETegro: решения для ЦОД
PDF
Технологические решения для импортозамещения в программной инфраструктуре
PPTX
GRANIT — Global Russian Advanced Network Initiative
PPT
Aricent ISS integration for Marvell - requirements to candidates
PDF
Как запустить виртуализированный ЦОД за час?
PDF
Облако рядом. От теории к кейсам.
Whats new in_mikro_tik_ros_6_(megis,_mosсow_2013)_(russian_translate_by_white...
Лекция № 3 Организация ЭВМ и систем
Лекция №3 Организация ЭВМ и систем
Что такое Postgresql (Максим Богук)
Максим Богук. Postgres-XC
Безопасность Центров Обработки Данных
Виртуализация сетевой инфраструктуры на примере использования IOS-XRv 9000 и ...
prezlec_Історія.ppt
Data storage systems
Операционные системы
Лекция 3. Векторизация кода (Code vectorization: SSE, AVX)
"Новые возможности MySQL 5.7"
High Load 2009 Dimaa Rus Ready
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...
ETegro: решения для ЦОД
Технологические решения для импортозамещения в программной инфраструктуре
GRANIT — Global Russian Advanced Network Initiative
Aricent ISS integration for Marvell - requirements to candidates
Как запустить виртуализированный ЦОД за час?
Облако рядом. От теории к кейсам.
Ad

migrate Oracle Database from RISC platform to x86 with minimal downtime

  • 1. МИГРАЦИЯ СУБД ORACLE С RISC-ПЛАТФОРМ НА LINUX X86 С МИНИМАЛЬНЫМ ВРЕМЕНЕМ ПРОСТОЯ Игорь Мельников Независимый консультант
  • 2. ИГОРЬ МЕЛЬНИКОВ 2016 - 2022: Oracle Corporation: главный консультант 2022 - 2024: Postgres Pro: ведущий консультант 2024 – настоящее время: независимый консультант Сфера деятельности : внедрение Extended RAC,, апгрейд версии СУБД Oracle, уменьшение размера БД с помощью Advanced Compression, оптимизация кода PL/SQL (статический анализ кода с помощью PL/Scope и выбор методов оптимизации), миграция с RISC-платформ на Linux x86 и т.д. Также в последнее время занимаюсь проектами по миграции с Oracle на PostgreSQL.
  • 3. ПЛАН 1. Введение в задачу миграции с RISC на x86 2. Способы миграции 3. Использование технологии Cross Platform TTS 4. Проблемы и способы их решения
  • 4. ВВЕДЕНИЕ В МИГРАЦИЮ C RISC НА X86 Необходимость миграции Проблема разного формата файлов БД Что такое Endian
  • 5. ПРЕДПОСЫЛКИ ДЛЯ МИГРАЦИИ С RISC НА X86 1. Прекращено развитие SPARC-архитектуры – последняя модель (SPARC M8) вышел в 2017 году 2. Высокая стоимость сопровождения и комплектующих для RISC-серверов 3. Недорогая альтернатива в виде серверов Linux-x86 – дешевле стоимость, сопровождение и апгрейд 4. Бурное развитие платформы x86 – появление на рынке AMD Epyc c 64/128 ядрами 5. Поддержка платформы ARM в СУБД Oracle Database 19c
  • 6. РАЗЛИЧИЕ RISC-ПЛАТФОРМ И X86 Различный порядок записи байтов ( Endian ) – это способ, который определяет порядок хранения байтов в памяти сервера. Соответственно, он же используется в файлах данных БД. Существуют 2 порядка записей байтов: • Big Endian (BE) – байты в машинном слове расположены по возрастанию адресов (слева направо) • Little Endian (LE) – байты в машинном слове расположены по убыванию адресов (порядок байтов “перевернут”)
  • 7. 7 29.06.2025 ENDIAN ЗАВИСИТ ОТ ПЛАТФОРМЫ (CPU + ОС) Small endiian платформы • Linux (Intel x86 32/64 bit) • Linux (Intel IA32/64) • Windows (Intel x86 32/64 bit) • Windows (Intel IA32/64) • Open VMS (Intel IA64) • Tru64 UNIX (Alpha) • Solaris for x86 При миграции СУБД Oracle между платформами c разным Endian необходима конвертация файлов данных Big endian платформы • Solaris (SPARC) • HP-UX (Intel IA64) • HP-UX (PA-RISC) • AIX (PowerPC) • Linux (PowerPC) • Linux (zSeries)
  • 8. СПОСОБЫ МИГРАЦИИ C RISC НА X86 Перечень способов миграции Их достоинства и недостатки
  • 9. СПОСОБЫ КОНВЕРТАЦИИ ENDIAN 9 29.06.2025 Small ending платформы • Linux (Intel x86 64 bit) Big ending платформы • Solaris (SPARC) Система хранения данных Система хранения данных № Способы конвертации 1 RMAN Convert (с помощью утилиты RMAN) 2 Встроенный пакет DBMS_FILE_TRANSFER 3 Datapump Export/Import (с помощью утилит expdp/impdp) 4 Логическая репликация (GoldenGate) Конвертация данных
  • 10. КОНВЕРТАЦИЯ ФАЙЛОВ ДАННЫХ  В ходе конвертации RMAN создает копию файла данных  Может быть выполнен на исходной или целевой платформе  СХД должна быть доступна для обеих хостов  Время конвертации примерно равно времени получения бэкапа соответствующих файлов данных, требуется объем СХД равный исходному размеру  Параллельность поддерживается  Пример:  DBMS_FILE_TRANSFER можно использовать для копирования файлов - конвертирует неявно “на лету” RMAN> CONVERT DATABASE NEW DATABASE 'newdb' TRANSPORT SCRIPT '/tmp/convertdb/transportscript' TO PLATFORM 'Linux x86 64-bit'; БД должна быть в read-only - большой downtime
  • 11. … Исходная система dmp-файлы Экспорт МИГРАЦИЯ ЧЕРЕЗ DATAPUMP ЭКСПОРТ-ИМПОРТ Способы увеличения скорости Целевая система Импорт Включено сжатие и параллельность •expdp FULL=Y COMPRESSION=ALL PARALLEL=8 DUMPFILE=start%u.dmp Включена параллельность •impdp PARALLEL=8 DUMPFILE=start%u.dmp Большой downtime на экспорт-импорт
  • 12. TRANSPORTABLE TABLESPACE WITH INCREMENTAL BACKUPS Миграция с помощью транспортируемые табличные пространств с конвертацией и “применением” инкрементальных бэкапов
  • 13. 13 TRANSPORTABLE TABLESPACE WITH INCREMENTAL BACKUPS TTS с сменой Endian - xTTS DESTINATION Database 19c Linux SCOTT HUGO SOURCE Database 19c SPARC VIEWS CODE PRIVS SCOTT HUGO USERS SYSTEM SYSAUX UNDO TEMP SYSTEM SYSAUX UNDO TEMP VIEWS CODE PRIVS Data Pump Convert and apply backups IncSet 0 IncSet 1 IncSet 1 Read Only expdp/impdb "'"sys/sys as sysdba"'" … TRANSPORT_TABLESPACES=TS1,TS2 … Downtime!!! Read Write
  • 14. XTTS – ОПИСАНИЕ НА МЕТАЛИНКЕ xTTS v4 PERL scripts in MOS Note: 2471245.1 Исходная БД: 10.2.0.3 + Целевая БД: 11.2.0.4 + xTTS v1 Doc ID 1389592.1 xTTS v2 Doc ID 1389592.1 xTTS v3 Doc ID 1389592.1 xTTS v4 Doc ID 2471245.1 M5 Doc ID 2999157.1 2 0 1 8 2 0 2 4
  • 15. 15 FTEX – FULL TRANSPORTABLE EXPORT/IMPORT BACKUPS impdp … FULL=Y TRANSPORTABLE=ALWAYS …
  • 16. XTTS M5 – FTEX MIGRATION  FTEXT поддерживает:  Зашифрованные табличные пространства  Multisection бэкапы  Миграция нескольких баз данных в одну CDB одновременно  Сжатые бэкапы (compressed backupset)  Улучшенный параллелизм  Целевая и исходная БД должны быть:  Версии 19.18.0 и выше  Установлен Data Pump Bundle Patch  Целевая БД должна использовать Oracle Managed Files (OMF)  Установлен параметр DB_CREATE_FILE_DEST
  • 17. XTTS - ПРОБЛЕМЫ И СПОСОБЫ ИХ РЕШЕНИЯ
  • 18. XTTS - ПРОБЛЕМЫ  Ошибка при миграции таблиц с столбцом типа XMLType  33720650: TCH19C :: OCI-21500: INTERNAL ERROR CODE [QMCXDGETQNAMEINFO2], [14003] IN XMLTYPE CLOUMN TYPE  Патч вошел в Data Pump Recommended Proactive 19.15+  Большой downtime для баз с десятками тысяч и более сегментов  Удалить небольшие индексы в исходной БД, после plug-in в целевой БД быстро пересоздать в parallel online  Удалить все промежуточные таблицы, которые можно легко пересоздать и наполнить данными  Переносить замкнутые группы табл. пространств параллельно  Де-материализовать пустые сегменты с помощью пакета DBMS_SPACE_ADMIN: exec dbms_space_admin.drop_empty_segments;  Почистить БД - удалить сегменты, которые уже не используются  Очистить мусорную корзину: purge dba_recyclebin;
  • 19. XTTS – ПРОБЛЕМЫ (ПРОДОЛЖЕНИЕ)  Ошибка при миграции с большим количеством файлов данных smallfile  ORA-39123: Data Pump transportable tablespace job aborted  ORA-01240: too many data files to add in one command  ORA-39123 ORA-1240 Error On Import Of Transportable Tablespace (Doc ID 740983.1)  “during TTS plugin phase we generate a single redo record containing the name of all the datafiles in the operation.”  Варианты решения:  Переименовать файлы данных и пути, чтобы сделать их короче  Создать новые табличные пространства в режиме BIGFILE, и перенести в них сегменты (alter table move online, alter index rebuild online), старые удалить  Переносить по отдельности замкнутые группы табличных пространств (если это возможно)
  • 20. XTTS - РЕКОМЕНДАЦИИ  Не забыть про выравнивание последовательностей: SQL> @reset_seq.sql  Проверить на отсутствие INVALID-объектов в целевой БД: SQL> @check_objects.sql  Пересоздание очередей Advanced Queuing: SQL> @recreate_queues.sql  Сбор статистики: перенести статистику заранее  На целевой БД временно перенести файлы табличных пространств SYSTEM и SYSAUX на RAM-диск (БД в nologging), после окончания миграции перенести их на обычный диск, удалить RAM-диск, вернуть память в SGA и рестартовать экземпляр (перевод БД в logging mode)
  • 21. XTTS – ЗАВЕРШАЮЩИЕ ШАГИ  Проверка логической целостности словаря БД: Health Check (hcheck.sql)  Cкачать скрипт hcheck.sql с MOS Note:136697.1  Проверяет также известные проблемы с словарем для версий Oracle8i, Oracle9i, Oracle10g и Oracle 11g  Требует hOut Helper Package (hout.sql) с MOS Note:101468.1  Проверка файлов данных: RMAN Validation Check  RMAN> validate database check logical;  См. MOS Note:836658.1 для детальной информации  Проверка может производиться в несколько потоков – для увеличения скорости, - может производится только на выбранных файлах данных или табличных пространствах
  • 22. XTTS – ИСТОРИЯ УСПЕХА  Миграция с Solaris на SPARC M7 на AMD c Oracle Linux  Число пользовательских сегментов: ~5000  Количество пакетов: ~1000  Использовались скрипты M5 – миграция с помощью FTEX  Объем БД: ~7 ТБ Суммарный downtime БД составил ~30 минут!
  • 23. “ ” МИГРАЦИЯ СУБД ORACLE С RISC- ПЛАТФОРМ НА LINUX X86 С МИНИМАЛЬНЫМ ВРЕМЕНЕМ ПРОСТОЯ ИГОРЬ МЕЛЬНИКОВ Независимый консультант Email: melnikov_ii@mail.ru Tel: +7 915 205 26 27