windows環境下10.2.0.1到11gr2 遷移升級

windows 環境下 10g 數據庫到11g 數據庫遷移

一。10g 環境做好遷移準備

在數據庫中創建test表,並插入一條數據以便確認遷移是否成功

SQL> create table test(id number,name varchar(20));

SQL> insert into test(id,name) values(1,'test'


由於10.2.0.1版本不能直接升級到11gr2,所以需要先將源數據庫升級爲10.2.0.2

 

登陸rman

C:\Documentsand Settings\Administrator>rman target /

 

恢復管理器: Release10.2.0.1.0 - Production on 星期二 4 14 16:47:24 2015

 

Copyright(c) 1982, 2005, Oracle.  All rightsreserved.

 

連接到目標數據庫: TEST(DBID=2175164748)


修改rman參數

RMAN>configure controlfile autobackup on;

RMAN>configure datafile backup copies for device type disk to 'd:\backup\%F';

RAMN>CONFIGURERETENTION POLICY TO REDUNDANCY 2;


備份數據庫以及歸檔日誌文件

$ORACLE_HOME/rdbms/admin下的utlu112i.sql腳本copy10g$ORACLE_HOME/rdbms/admin 下,並在10g上執行


備份數據庫以及歸檔日誌文件

RMAN> backupdatabase format ' /data/backup/2014-04-17-allbackupfull_%d_%T_%s_P.bak';

RMAN> backuparchivelog all format /data/backup/2014-04-17-allbackup/arch_%d_%T_%s_%p.bak'


將生成備份集全部拷貝到新環境中(要拷貝一份口令文件)

======================================================================

設置oracle-sid ,登錄rman
oradim -new -sid test ---創建test實例

C:\Users\Administrator>rmantarget / nocatalogg

exportORACLE_SID=test


恢復spfile到指定目錄下

startup nomount
RMAN>restore spfile to

'C:\app\Administrator\product\11.2.0\dbhome_1\dbs\spfiletest.ora'from

'C:\backup\C-2175164748-20150416-00';


創建pfile並修改其中參數,並創建相關文件夾(所有路徑需要與當前安裝路徑匹配)

SQL> create pfilefrom spfile='C:\app\Administrator\product\11.2.0\dbhome_1\dbs\

spfiletest.ora';

test.__db_cache_size=167772160

test.__java_pool_size=4194304

test.__large_pool_size=4194304

test.__shared_pool_size=109051904

test.__streams_pool_size=0

*.audit_file_dest='C:\oracle\product\10.2.0/admin/test/adump'

*.background_dump_dest='C:\oracle\product\10.2.0/admin/test/bdump'--delete

*.compatible='10.2.0.1.0'  --修改爲當前數據庫版本

*.control_files='C:\oracle\product\10.2.0/oradata/test/\control01.ctl','C:\oracle\product\10.2.0/oradata/test/\control02.ctl','C:\oracle\product\10.2.0/oradata/test/\control03.ctl'

*.core_dump_dest='C:\oracle\product\10.2.0/admin/test/cdump'  --delete

*.db_block_size=8192

*.db_domain=''

*.db_file_multiblock_read_count=16 --delete

*.db_name='test'

*.db_recovery_file_dest='C:\oracle\product\10.2.0/flash_recovery_area'

*.db_recovery_file_dest_size=2147483648

*.dispatchers='(PROTOCOL=TCP) (SERVICE=testXDB)'

*.job_queue_processes=10

*.log_archive_format='ARC%S_%R.%T'

*.nls_language='SIMPLIFIED CHINESE'

*.nls_territory='CHINA'

*.open_cursors=300

*.pga_aggregate_target=96468992

*.processes=150

*.remote_login_passwordfile='EXCLUSIVE'

*.sga_target=290455552

*.undo_management='AUTO'

*.undo_tablespace='UNDOTBS1'

    *.user_dump_dest='C:\oracle\product\10.2.0/admin/test/udump'  --delete


恢復控制文件

RMAN>restorecontrolfile from 'C:\backup\C-2175164748-20150416-00';

需要把擴展名從.ora 改成.ctl

啓動到mount狀態,恢復數據文件

alter database mount

重置數據文件路徑,並恢復數據庫

run{

set newname for datafile 1 to'C:\app\Administrator\oradata\test\SYSTEM01.DBF';

set newname for datafile 2 to'C:\app\Administrator\oradata\test\UNDOTBS01.DBF';

set newname for datafile 3 to'C:\app\Administrator\oradata\test\SYSAUX01.DBF';

set newname for datafile 4 to'C:\app\Administrator\oradata\test\USERS01.DBF';

restore database;

SWITCH DATAFILE ALL;

SWITCH TEMPFILE ALL;

}

修復數據庫

recover database

重命名重做日誌,並以resetlogs方式打開數據庫

alter database rename file'C:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\REDO03.LOG' to

'C:\app\Administrator\oradata\test\redo03.log';

alter database renamefile 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\REDO02.LOG' to'C:\app\Administrator\oradata\test\redo02.log';

alter database renamefile 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\REDO01.LOG' to'C:\app\Administrator\oradata\test\redo01.log';

  1. upgrade方式打開數據庫

sqlplus / as sysdba

startup upgrade

  1. 執行升級腳本

SQL>@?/RDBMS/ADMIN/utlu112i.sql

SQL>@?/rdbms/admin/catupgrd.sql

SQL> @?/rdbms/admin/catuppst.sql

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章