Назад | Перейти на главную страницу

Преобразование базы данных Oracle 11g из 32-битной в 64-битную

Я переместил базу данных из 32-битной версии Oracle 11g под Linux в 64-битную среду. Однако у меня возникли проблемы в новой среде (также в Linux).

Есть ли способ обновления базы данных до 64-битной версии

Я забыл упомянуть одну вещь: база данных была обновлена ​​с более ранней версии, исходная и обновленная версии были 32-битными.

Если у вас достаточно места на диске, проще всего установить новый 64-разрядный экземпляр Oracle 11g, экспортировать 32-разрядные данные, а затем импортировать в 64-разрядный Oracle. Это также позволит вам на некоторое время запустить оба экземпляра бок о бок, чтобы убедиться, что оба экземпляра идентичны и работают должным образом.

В основном это должно быть: схема экспорта, обновление, схема импорта. Не могли бы вы подробнее рассказать о своих проблемах?

После некоторых проб и ошибок я обнаружил, что следующее решило большинство проблем, с которыми я столкнулся.

#Shutdown and restart instance in upgrade mode.
Shutdown immediate;
Startup upgrade;

#now invalidate the existing packages 
@$ORACLE_HOME/rdbms/admin/utlirp.sql

#As i have already patched the system to DST V10 i needed to do the following
@$ORACLE_HOME/rdbms/admin/utlu111i.sql

#now i started to convert/upgrade the database, i started with the upgrade catalog 
# as it resolve a lot of issues i experienced.

@$ORACLE_HOME/rdbms/admin/catupgrd.sql

#Then the more standard catalog procs were applied.
@$ORACLE_HOME/rdbms/admin/catalog.sql
@$ORACLE_HOME/rdbms/admin/catproc.sql

#Finally, get all of the procs recompiled.
@$ORACLE_HOME/rdbms/admin/utlrp.sql

shutdown immediate;
startup;

#then check for any outstanding issues

select * from sys_objects where Status != 'VALID';

Теперь у меня было несколько недопустимых объектов, но они зависят от приложения и их довольно легко исправить.

У меня больше не было проблем с преобразованием. Однако, если есть какие-либо упущения или другие проблемы с этим подходом, я буду рад услышать об этом.