Перенос 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, имя пользователя и пароль.
Щелкните Подключить. Через несколько секунд SSMA для Oracle подключается к базе данных и считывает ее метаданные.
Создание отчета
Чтобы создать отчет о миграции, выполните следующие действия.
В обозревателе метаданных Oracle разверните узел сервера.
Разверните узел схемы, щелкните правой кнопкой мыши элемент HR и выберите команду создать отчет.
Откроется новое окно браузера с отчетом, в котором перечислены все предупреждения и ошибки, связанные с преобразованием.
Для работы с этим руководством вам не нужно ничего делать с этим списком. При выполнении этих действий для собственной базы данных Oracle следует изучить отчет, чтобы устранить все важные проблемы, связанные с преобразованием базы данных.
Подключение к SQL Server
затем выберите Подключение для SQL Server и введите соответствующие сведения о подключении. Если вы используете имя базы данных, которое еще не существует, SSMA для Oracle создаст ее автоматически.
Преобразовать схему
Щелкните правой кнопкой мыши пункт 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 : диск-приемник (на который копируем систему).
Разная геометрия дисков источника и приёмника.
Это приведёт к тому, что предыдущий вариант будет неэффективен и нам срочно нужен инновационный прорыв. К счастью, это потребует лишь несколько простых телодвижений, так что мы сейчас прорвёмся и отчаянно ворвёмся в наше светлое линуксовое счастье.
1. Разметка винчестера и создание файловой системы.
Для создания таблицы разделов в Linux используем команду cfdisk (есть подробное описание по разметке дисков в Linux):
Если же вам нужно перекроить разделы, скажем, для установки Windows и Linux на одной машине, лучше всего воспользоваться Live CD Gparted. Теперь можно начинать копировать файлы с одного диска на другой.
2. Перенос Linux на другой диск или раздел.
Например, диск-источник, на котором хранятся все файлы, это /media/debian - туда примонтирован IMG-образ системы, которую нужно залить на свежий раздел. Теперь монтируем диск-приёмник куда-нибудь в укромное место (чтобы данные рекурсивно не копировались), например в пустующий в Debian каталог /srv
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).
Читайте также: