Я переместил базу данных из 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';
Теперь у меня было несколько недопустимых объектов, но они зависят от приложения и их довольно легко исправить.
У меня больше не было проблем с преобразованием. Однако, если есть какие-либо упущения или другие проблемы с этим подходом, я буду рад услышать об этом.