У меня есть база данных Oracle 9.2.0.1, работающая в Windows XP. Он имеет несколько схем и включает ссылку общедоступной базы данных на удаленную базу данных Oracle.
Я хотел бы перенести эту базу данных на Oracle 11g, работающую на Oracle Enterprise Linux, и сохранить связь базы данных с удаленной базой данных.
Как лучше всего это сделать?
Можно ли это сделать с помощью exp / imp?
Спасибо.
Вы можете попробовать посмотреть Руководство по обновлению для 11 г
Один из вариантов - выполнить обновление с 9iR2 до 11g в Windows, а затем перенести базу данных 11g с Windows на Linux. Одна из проблем заключается в том, что 11gR2 недоступен в Windows. Кроме того, я думаю, вам нужно будет выполнить обновление до терминальной версии для 9iR2 (я думаю, 9.2.0.8) перед обновлением базы данных.
Другой вариант - это имп / эксп вариант. Вы можете выполнить полную версию исходной базы данных, но вам нужно будет выполнить импорт уровня схемы в место назначения (поскольку вы не хотите переопределять встроенные объекты с версиями 9i). Вам потребуется вручную воссоздать ОБЩЕСТВЕННЫЕ объекты (например, общедоступные синонимы, каталоги, ссылки на базы данных). DBMS_METADATA.GET_DDL может помочь извлечь для этого SQL.
Если объемы данных достаточно малы, я бы выбрал второй вариант. Если они слишком велики, а exp / imp занимает слишком много времени, я бы, вероятно, выбрал первое, где вы должны иметь возможность использовать кросс-платформенные переносимые табличные пространства (которые пришли с 10g) для ускорения перемещения данных. Это может означать подождать пару месяцев для 11gR2 в Windows или перейти на 11gR1 в Windows, выполнить миграцию на этом уровне, а затем (необязательно) перейти на 11gR2 в Linux.