Heim  >  Artikel  >  Datenbank  >  Oracle 10g 10.2.0.1 32位迁移升级到10g 10.2.0.5 64位

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

WBOY
WBOYOriginal
2016-06-07 17:30:54861Durchsuche

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
查看数据库版本情况

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn