Oracle 10g 10.2.0.1 32位迁移升级到10g 10.2.0.5 64位


说明:
官方推荐迁移到相同版本,比如:10.2.0.1(32)迁移到10.2.0.1(64)。
再进行升级到10.2.0.5(64)。

一、环境介绍
源库
操作系统版本:OEL5.8 32bit
数据库版本:10.2.0.1 32bit
数据库sid名:orcl
测试库
操作系统版本:OEL5.8 x64
数据库版本:10.2.0.5 x64
数据库sid名:orcl

二、源库
1. 关闭源库
# su - Oracle
$ sqlplus / as sysdba;
SQL> shutdown immediate;
2. 打包备份/u01/app/oracle/oradata目录为oradata.tar.gz
3. 打包备份/u01/app/oracle/product/10.2.0/db_1/dbs目录为dbs.tar.gz
4. 将oradata.tar.gz dbs.tar.gz 拷贝到测试库。

三、测试库
1. 关闭测试库,
2. 将oradata.tar.gz恢复到/u01/app/oracle/oradata目录
3. 将dbs.tar.gz 恢复到/u01/app/oracle/product/10.2.0/db_1/dbs目录
4. 创建备库pfile文件
说明:
由于源库与迁移库的目录位置与实例名都是一样的,所以控制文件与参数文件内容不需要重建与修改。
# su - oracle
[oracle@rman ~]$ sqlplus / as sysdba;
SQL*Plus: Release 10.2.0.5.0 - Production on D25 21:05:39 2013
Copyright (c) 1982, 2010, Oracle.  All Rights Reserved.
Connected to an idle instance.
SQL> create pfile from spfile;
File created.
SQL> quit
Disconnected
 
5. 修改pfile文件
#增加如下参数文件
_SYSTEM_TRIG_ENABLED = false
 
$ vi /u01/app/oracle/product/10.2.0/db_1/dbs/initorcl.ora
orcl.__db_cache_size=448790528
orcl.__java_pool_size=4194304
orcl.__large_pool_size=4194304
orcl.__shared_pool_size=146800640
orcl.__streams_pool_size=0
*.audit_file_dest='/u01/app/oracle/admin/orcl/adump'
*.background_dump_dest='/u01/app/oracle/admin/orcl/bdump'
*.compatible='10.2.0.1.0'
*.control_files='/u01/app/oracle/oradata/orcl/control01.ctl','/u01/app/oracle/oradata/orcl/control02.ctl','/u01/app/oracle/oradata/orc
l/control03.ctl'
*.core_dump_dest='/u01/app/oracle/admin/orcl/cdump'
*.db_block_size=8192
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_name='orcl'
*.db_recovery_file_dest='/u01/app/oracle/flash_recovery_area'
*.db_recovery_file_dest_size=2147483648
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'
*.job_queue_processes=10
*.log_archive_format='%t_%s_%r.dbf'
*.open_cursors=300
*.pga_aggregate_target=201326592
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=605028352
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='/u01/app/oracle/admin/orcl/udump'
_SYSTEM_TRIG_ENABLED = false

6. 通过pfile创建spfile文件,并通过升级模式启动
[oracle@rman ~]$ sqlplus / as sysdba;
SQL*Plus: Release 10.2.0.5.0 - Production on  25 21:18:41 2013
Copyright (c) 1982, 2010, Oracle.  All Rights Reserved.
Connected to an idle instance.
SQL> create spfile from pfile;
File created.
SQL>
SQL> startup upgrade ;
ORACLE instance started.
Total System Global Area  608174080 bytes
Fixed Size                  2022696 bytes
Variable Size            155189976 bytes
Database Buffers          448790528 bytes
Redo Buffers                2170880 bytes
Database mounted.
Database opened.
SQL>

7. 在64位平台下编绎所有对象
SQL> @?/rdbms/admin/utlirp.sql

8. 重建数据字典(10.2.0.5)
SQL> @$ORACLE_HOME/rdbms/admin/catupgrd.sql
大约40多分钟,提示有部分无效对象,需要编绎这些无效对象。

9. 执行如下过程编绎失效对象
SQL> conn / as sysdba;
SQL> @?/rdbms/admin/utlrp.sql

开另一窗口查看执行进程,只到0才能完成。
SQL> SELECT COUNT(*) FROM obj$ WHERE status IN (4, 5, 6);
  COUNT(*)
----------
      0
SQL> select object_name,object_type,owner from dba_objects where status <>'VALID';
0

10. 关闭数据库,修改参数文件,去掉增加的参数。
(1) 修改pfile参数文件
$ vi /u01/app/oracle/product/10.2.0/db_1/dbs/initorcl.ora
#去掉以下参数
_SYSTEM_TRIG_ENABLED = false
(2) 重新通过spfile启动
SQL> shutdown immediate;
SQL> create spfile from pfile;
SQL> startup;

11. 测试数据库
归档模式
SQL> archive log list;
Database log mode              Archive Mode
Automatic archival            Enabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence    13
Next log sequence to archive  15
Current log sequence          15
原来帐号与数据
SQL> conn abc/abc;
Connected.
SQL> select * from tab;
TNAME                          TABTYPE  CLUSTERID
------------------------------ ------- ----------
ABC                            TABLE
查看数据库版本情况

SQL> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bi
PL/SQL Release 10.2.0.5.0 - Production
CORE    10.2.0.5.0      Production
TNS for Linux: Version 10.2.0.5.0 - Production
NLSRTL Version 10.2.0.5.0 - Production

推荐阅读:

expdp/impdp做Oracle 10g 到11g的数据迁移

Oracle 10g stored outline迁移到11g 

Oracle迁移导致sqlplus报告ora-15180 错误信息

相关内容