Перенос oracle с linux на windows

Обновлено: 02.07.2024

в этом руководстве используется Помощник по миграции SQL Server (SSMA) для oracle на Windows для преобразования образца схемы HR Oracle в SQL Server 2017 в Linux.

  • Скачайте и установите SSMA на Windows
  • Создание проекта SSMA для управления миграцией
  • Соединение с Oracle
  • Запуск отчета о миграции
  • Преобразование образца схемы HR
  • Перенос данных

Предварительные требования

  • Экземпляр Oracle 12c (12.2.0.1.0) с установленной схемой HR
  • рабочий экземпляр SQL Server на Linux

те же действия можно использовать для SQL Server на Windows, но необходимо выбрать Windows в параметре перенести в проект.

Скачивание и установка SSMA для Oracle

в зависимости от базы данных источника доступно несколько выпусков Помощник по миграции SQL Server. скачайте текущую версию Помощник по миграции SQL Server для Oracle и установите ее с помощью инструкций, приведенных на странице загрузки.

В настоящее время Пакет расширений SSMA для Oracle не поддерживается в Linux, но это не обязательно для работы с этим руководством.

Создание и Настройка проекта

Чтобы создать новый проект SSMA, выполните следующие действия.

откройте SSMA для Oracle и выберите в меню файл пункт создать Project .

Укажите имя проекта.

выберите "SQL Server 2017 (Linux) — предварительная версия" в поле " перенести в ".

По умолчанию SSMA для Oracle не использует образцы схем Oracle. Чтобы включить схему HR, выполните следующие действия.

В SSMA выберите меню Сервис .

выберите Project по умолчанию Параметры, а затем выберите загрузка системных объектов.

Убедитесь, что флажок HR установлен, и нажмите кнопку ОК.

Соединение с Oracle

Далее Подключите SSMA к Oracle.

на панели инструментов щелкните Подключение для Oracle.

Введите имя сервера, порт, идентификатор безопасности Oracle, имя пользователя и пароль.

Соединение с Oracle

Щелкните Подключить. Через несколько секунд SSMA для Oracle подключается к базе данных и считывает ее метаданные.

Создание отчета

Чтобы создать отчет о миграции, выполните следующие действия.

В обозревателе метаданных Oracle разверните узел сервера.

Разверните узел схемы, щелкните правой кнопкой мыши элемент HR и выберите команду создать отчет.

Отчет о создании отчета в обозревателе метаданных Oracle

Откроется новое окно браузера с отчетом, в котором перечислены все предупреждения и ошибки, связанные с преобразованием.

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

Пример отчета о миграции

Подключение к SQL Server

затем выберите Подключение для SQL Server и введите соответствующие сведения о подключении. Если вы используете имя базы данных, которое еще не существует, SSMA для Oracle создаст ее автоматически.

Подключение к SQL Server

Преобразовать схему

Щелкните правой кнопкой мыши пункт HR в обозревателе метаданных Oracle и выберите команду Преобразовать схему.

Преобразовать схему

Синхронизация базы данных

Затем синхронизируйте базу данных.

после завершения преобразования используйте SQL Server обозреватель метаданных , чтобы перейти к базе данных, созданной на предыдущем шаге.

Щелкните правой кнопкой мыши базу данных, выберите синхронизировать с базой данных, а затем нажмите кнопку ОК.

Синхронизация с базой данных

Перенос данных

Последним шагом является перенос данных.

В обозревателе метаданных Oracle щелкните правой кнопкой мыши пункт HR и выберите пункт перенести данные.

шаг переноса данных требует повторного ввода учетных данных Oracle и SQL Server.

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

Отчет о миграции данных

Дальнейшие действия

Для более сложной схемы Оркале процесс преобразования требует больше времени, тестирования и возможных изменений клиентских приложений. Цель этого руководства — продемонстрировать, как можно использовать SSMA для Oracle в рамках общего процесса миграции.

Используйте RMAN для переноса базы данных на другой компьютер

Есть много способов перенастроить базу данных, и наиболее распространенным является использование RMAN для переноса. Использование RMAN для миграции базы данных относится к категории физического резервного копирования и восстановления базы данных, и соответствующая информация базы данных полностью отражается в течение всего процесса. Следовательно, восстановление восстановленной базы данных на основе этого метода тестирования будет иметь относительно небольшое различие с реальной производственной средой. В этой статье описывается процесс использования RMAN для восстановления базы данных Oracle 10g.

1. Основные шаги
1. Создайте резервную копию базы данных.
2. Резервное копирование ftp на целевой сервер
3. Создайте каталог проектов для целевой базы данных.
4. Создайте pfile или spfile для целевой базы данных (используйте RMAN для восстановления или копирования исходного pfile на целевой сервер)
5. Восстановите контрольный файл.
6. Восстановите файлы данных.
7. ОТКРЫТЬ базу данных

На самом деле, эти шаги проще понять, вся суть в понимании архитектуры базы данных и всего процесса запуска базы данных.
Вы можете обратиться к структуре системы и процессу запуска
Экземпляр Oracle и база данных Oracle (архитектура Oracle)
Процесс запуска и завершения работы экземпляра базы данных Oracle

Опишем это ниже
A. Сначала создайте соответствующий каталог для рабочей среды экземпляра, такой как расположение дампа, расположение файла данных, расположение архива и т. Д.
Если вы выполняете восстановление по другому пути, вам необходимо использовать set newname для файла данных, чтобы обновить контрольный файл в последующем RMAN
Б. Для запуска экземпляра требуется pfile, поэтому вам нужно восстановить pfile или spfile, а затем переключить базу данных в состояние nomount.
C. Следующим шагом является переключение базы данных в состояние монтирования через управляющий файл, поэтому вам нужно восстановить управляющий файл, а затем смонтировать
D. После монтирования базу можно восстановить (восстановить)
E. После завершения восстановления база данных восстанавливается (восстановление) (для восстановления и восстановления требуется резервная информация или каталоги восстановления на основе контрольного файла)
F. Наконец, откройте базу данных


2. Демонстрация миграции

Восстановление в другой каталог на другом компьютере (дополнительный контент @ 20130906)

Шаги в основном такие же, как и в том же каталоге, некоторые необходимо отметить, перечисленные ниже

1. Резервное копирование данных и ftp на целевой сервер, как и раньше.

2. Создайте соответствующий каталог.
Каталог здесь отличается от исходного каталога, например, в следующем примере
Исходный каталог: / u02 / database / SY5221 Исходное имя базы данных: SY5221 (хост: Linux1, ORACLE_SID = SY5221)
Новый каталог: / u02 / database / SY5223 Новое имя базы данных: SY5223 (хост: Linux2, ORACLE_SID = SY5223)

3. Создайте файл pfile и запустите экземпляр.
Извлеките файл параметров из исходной библиотеки на целевой сервер и при необходимости измените соответствующие параметры, например, увеличьте размер sga и т. Д.
Во-вторых, измените соответствующий путь в файле pfile, чтобы он указывал на новое местоположение, то есть все параметры, содержащие каталог SY5221 в файле параметров, должны быть изменены на SY5223
Обратите внимание, что параметр db_name не изменяется, это исходное db_name, используйте nid, чтобы изменить его после завершения восстановления.
Используйте файл pfile, чтобы перейти в состояние nomount

3. Восстановите контрольный файл.
RMAN> restore controlfile from '/u02/database/bak/SY5221cntl.bak';

- Переключитесь в состояние монтирования, обратите внимание, db_name должно сохранять исходное db_name, иначе он будет запрашивать при переключении на монтирование
--ORA-01103: database name 'SY5221' in control file is not 'SY5223'

RMAN> alter database mount;

4. Используйте начало каталога с, чтобы указать местоположение файла резервной копии.
RMAN> catalog start with '/u02/database/bak';

5. Чтобы восстановить и восстановить базу данных, поскольку используется другое расположение, нам нужно использовать предложение set newname, как показано в следующем примере.
run set newname for datafile 1 to '/u02/database/SY5223/oradata/sysSY5223.dbf';
set newname for datafile 2 to '/u02/database/SY5223/undo/undotbsSY5223.dbf';
set newname for datafile 3 to '/u02/database/SY5223/oradata/sysauxSY5223.dbf';
set newname for datafile 4 to '/u02/database/SY5223/undo/undotbsSY52232.dbf';
set newname for datafile 5 to '/u02/database/SY5223/oradata/SY5223_system_tbl.dbf';
set newname for datafile 6 to '/u02/database/SY5223/oradata/SY5223_account_tbl.dbf';
set newname for datafile 7 to '/u02/database/SY5223/oradata/SY5223_stock_tbl.dbf';
set newname for datafile 8 to '/u02/database/SY5223/oradata/SY5223_stock_l_tbl.dbf';
restore database;
switch datafile all;
recover database;>

-Мы используем предложение до, чтобы снова восстановить
RMAN>run 2> set until sequence 2872;
3> recover database;
4> alter database open resetlogs;
5> >

executing command: SET until clause

Starting recover at 06-SEP-13
using channel ORA_DISK_1

starting media recovery
media recovery complete, elapsed time: 00:00:03

Finished recover at 06-SEP-13

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of alter db command at 09/06/2013 22:52:04
ORA-00344: unable to re-create online log '/u02/database/SY5221/redolog/log1aSY5221.log'
ORA-27040: file create error, unable to create file
Linux-x86_64 Error: 2: No such file or directory

6. Измените расположение файла журнала и откройте базу данных.
$ sqlplus / as sysdba
SQL> select name,open_mode from v$database;

NAME OPEN_MODE
--------- ----------
SY5221 MOUNTED

SQL> set linesize 190
SQL> col member format a60
SQL> select * from v$logfile;

SQL> set heading off;
SQL> select 'alter database rename file '''||member||''' to '''||replace(member,'SY5221','SY5223')||''';' from v$logfile;

alter database rename file '/u02/database/SY5221/redolog/log1aSY5221.log' to '/u02/database/SY5223/redolog/log1aSY5223.log';
alter database rename file '/u02/database/SY5221/redolog/log1bSY5221.log' to '/u02/database/SY5223/redolog/log1bSY5223.log';
alter database rename file '/u02/database/SY5221/redolog/log2aSY5221.log' to '/u02/database/SY5223/redolog/log2aSY5223.log';
alter database rename file '/u02/database/SY5221/redolog/log2bSY5221.log' to '/u02/database/SY5223/redolog/log2bSY5223.log';

SQL> alter database rename file '/u02/database/SY5221/redolog/log5bSY5221.log' to '/u02/database/SY5223/redolog/log5bSY5223.log';
SQL> alter database rename file '/u02/database/SY5221/redolog/log6aSY5221.log' to '/u02/database/SY5223/redolog/log6aSY5223.log';
SQL> alter database rename file '/u02/database/SY5221/redolog/log6bSY5221.log' to '/u02/database/SY5223/redolog/log6bSY5223.log';
SQL> alter database rename file '/u02/database/SY5221/redolog/log7aSY5221.log' to '/u02/database/SY5223/redolog/log7aSY5223.log';

SQL> set heading on;
SQL> alter database open resetlogs;

7. Исправьте соответствующий временный файл данных.
SQL> select * from dba_temp_files;
select * from dba_temp_files
*
ERROR at line 1:
ORA-01157: cannot identify/lock data file 201 - see DBWR trace file
ORA-01110: data file 201: '/u02/database/SY5221/temp/tempSY5221.dbf'

SQL> select name from v$tempfile;

SQL> alter tablespace temp add tempfile '/u02/database/SY5223/temp/tempSY5223.dbf' size 50m;

SQL> alter tablespace goex_temp add tempfile '/u02/database/SY5223/temp/SY5223_tempSY5223.dbf' size 50m;

SQL> alter tablespace temp drop tempfile '/u02/database/SY5221/temp/tempSY5221.dbf';

SQL> alter tablespace goex_temp drop tempfile '/u02/database/SY5221/temp/SY5221_tempSY5221.dbf';

SQL> alter database tempfile '/u02/database/SY5223/temp/tempSY5223.dbf' autoextend on;

SQL> alter database tempfile '/u02/database/SY5223/temp/SY5223_tempSY5223.dbf' autoextend on;

SQL> select count(*) from dba_temp_files;

SQL> shutdown immediate;

9. Настройте listener и tnsnames и подготовьте базу данных по мере необходимости.

10. Постскриптум
Приведенное выше описание в основном представляет собой Oracle 10g, неспособный подключиться к целевой базе данных, то есть метод гетерогенного восстановления без использования метода дублирования.
Для Oracle 11g перейдите по следующей ссылке:
Клонирование базы данных на основе RMAN на одном компьютере
Клонирование гетерогенной базы данных на основе RMAN (дубликат rman)
На основе RMAN из активного клона базы данных (дубликат rman из активной БД)
Метод преобразования местоположения файла клона базы данных RMAN

Три, больше ссылки

Для получения информации о концепции резервного копирования и восстановления из резервных копий на основе управления пользователями см. контрольная работа

Связанный RMAN Для резервного копирования, восстановления и управления см. контрольная работа

Исходные данные: На предприятии используется БД Oracle для всего на свете. Крутилось оно на сервере с вин2003сервер эдишн. Однажды начальство задолбали глюки и нестабильность винды. Волевым решением начальник ИТ отдела велел единственному линуксоиду на заводе (который вовсе не админом там работает и юзает (как юзер юзает) исключительно Убунту) перевести сервер на Linux и установить на него БД Оракл. Смена парадигмы явилась поводом поапгрейдить сервер и установить на него побольше ОЗУ. Еще на горизонте проглядывалась проблема аппаратного рэйда. Неясна была перспектива установки на него ОС, поймет ли установщик такой девайс? Так как БД Оракл заточена под рпм-базед дистрибутивы в качестве боевого дистрибутива была выбрана Fedora 12 (sic!), причем выбрана, глядя на ЛОР, типа: там стоит, а чего у нас не будет? Ну еще причинами выбора были неосиляние РедХат Ентерпрайз и ЦентОС последней стабле. По словам «внедренца», Федора показала себя неплохо и костылей городить в ней нужно было не так много как в РХ или Центоси. Фишка БД Оракл еще в том, что для установки оно требует ГУИ даже на сервер.

Проба сил состоялась на домашней машине в виртуалбоксе. Домашняя машина имеет 6 гигов ОЗУ, потому все было вполне достойно. Проба сил включала в себя:

Установку родной для «внедренца» Убунту и проверка работоспособности Оракла на ней. Итог печальный: очень много костылей необходимо..и просто так и потому, что Оракл заточено под рпм-базед дистры. Установку Ред Хат Энтерпрайза и та же самая проверка. Результат вообще ошеломителен. Костыли остались, что вообще говоря странно, но факт есть факт. Итог: отметена из-за излишней интерпрайзности и ваще. Установка ЦентОСи и т.п. Итог: немногим отличается от Ред Хата, если вообще отличается. Установка Федоры и БД на ней….видимо поосвоившись и покопавшись в двух предыдущих осях «внедренец» смирился с неизбежным и осилил-таки рпм. Итог: вот он, выбор ОС для сервера)

Процесс пробы сил длился неделю во внерабочее время и выходные (ах Россия…т.е. Республика Беларусь).

Геометрия дисков источника и приёмника совпадает.
Если геометрия жёсткого диска с Linux и нового диска одинаковая (новый винчестер на компьютере точно такой же), то можно использовать наш любимый старый-добрый dd.
Для этого залогиниваемся как root (или используем sudo) и пишем в консоли:

  • /dev/sda : диск-источник (с настроенной системой)
  • /dev/sdb : диск-приемник (на который копируем систему).
По окончании копирования диск-приёмник готов к употреблению - разве что можно создать на нём другого пользователя или отредактировать уже имеющегося (о чём см. ниже). Кстати, если вместо /dev/sdb указать обычный файл вроде linux.img, то мы получим образ диска c Linux и можем использовать его для работы в виртуальных машинах.

Разная геометрия дисков источника и приёмника.
Это приведёт к тому, что предыдущий вариант будет неэффективен и нам срочно нужен инновационный прорыв. К счастью, это потребует лишь несколько простых телодвижений, так что мы сейчас прорвёмся и отчаянно ворвёмся в наше светлое линуксовое счастье.

1. Разметка винчестера и создание файловой системы.
Для создания таблицы разделов в Linux используем команду cfdisk (есть подробное описание по разметке дисков в Linux):

Нажимаем на New, создать раздел. Выбираем Primary (основной), когда он создастся, нажимаем Bootable (если нужно, чтобы он был загружаемый). После этого надо отформатировать раздел (например, в надёжную и стабильную файловую систему EXT3):
Если же вам нужно перекроить разделы, скажем, для установки Windows и Linux на одной машине, лучше всего воспользоваться Live CD Gparted. Теперь можно начинать копировать файлы с одного диска на другой.

2. Перенос Linux на другой диск или раздел.
Например, диск-источник, на котором хранятся все файлы, это /media/debian - туда примонтирован IMG-образ системы, которую нужно залить на свежий раздел. Теперь монтируем диск-приёмник куда-нибудь в укромное место (чтобы данные рекурсивно не копировались), например в пустующий в Debian каталог /srv

Переходим в каталог /media/debian/ и, находясь в этом каталоге, вводим длинную команду в одну строчку:
cp -a bin/ boot/ etc/ home/ lib/ opt/ root/ sbin/ tmp/ usr/ var/ /srv
Здесь серым выделены опциональные каталоги /home и /tmp : скопировать их можно, если они вам нужны (например, можно захотеть сделать нового пользователя в новой системе).

3. Досоздаем каталоги: /dev /proc /srv /sys /mnt
Копировать эти каталоги НЕ НАДО, вместо это досоздаём пустые каталоги для них - это все псевдо-файловые системы (кроме /mnt естественно).

Так же стоит поменять /srv/etc/fstab на предмет монтирования корневого каталога - если новый диск будет определён как /dev/sda1, а в fstab будет указан /dev/hda1, ядро этому не обрадуется и не загрузится (что не страшно при использовании загрузчика grub). Так же вносим изменения в /srv/etc/fstab новой системы на предмет подключения swap-разделов или файлов. Например, если новый своп-раздел будет находиться на втором разделе новой системы, пишем:

После этого осталось только установить загрузчик Linux.

4. Установка загрузчика Linux.
Это довольно просто сделать, загрузившись хотя бы с Knoppix. Например, при использовании загрузчика GRUB даём команду:

Здесь /dev/sdb это диск-приёмник (на который копируем систему). Так же можно установить загрузчик с помощью chroot:

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


Добавляем, меняем и удаляем Linux-пользователей в новой системе
Для этого залогиниваемся root-ом и начинаем борьбу с пользователями.

useradd - добавить нового пользователя

  • -d домашний каталог
  • -s задать стартовую оболочку (/bin/sh)
  • -p пароль
  • -g основная группа, к которой приписывается пользователь
  • -G другие группы к которой приписывается пользователь
  • -m создать для пользователя домашний каталог
  • -r удалить пользователя вместе с домашним каталогом
  • -d домашний каталог
  • -s задать стартовую оболочку (/bin/sh)
  • -p пароль
  • -g основная группа, к которой приписывается пользователь
  • -G другие группы к которой приписывается пользователь
  • имя_пользователя (для изменения пароля пользователя имя_пользователя )
Весь процесс переноса системы занимает от получаса до часа включая перекуры.

Внеклассное чтение
Пища для размышлений и медитаций в разных интернетах вкусна и обильна: о клонировании установленный систем, а так же о некоторых способах копирования Linux.

Так же представляет интерес метод с LVM, привнесённый в процессе дискуссии ув.тов.Анонимусом:
1) Создать LVM раздел на новом винчестере (fdisk).
2) Включить его в vg группу (vgextend).
3) Переместить все PE со старого винчестера на новый (pvmove).
4) Удалить разделы на старом винчестере из vg группы (vgreduce).

Читайте также: