用rman備份64位的備份集 恢復32位數據庫過程

1. 拷貝文件到linux系統
AfterSVC_SJTICKET_20081211_88
AfterSVC_SJTICKET_20081211_91
AfterSVC_SJTICKET_20081211_94
rmanback_2008_12_11_11_32.log
AfterSVC_SJTICKET_20081211_89
AfterSVC_SJTICKET_20081211_92
arch_SJTICKET_20081211_95
spfile_SJTICKET_20081211_97.bak
AfterSVC_SJTICKET_20081211_90
AfterSVC_SJTICKET_20081211_93
control_SJTICKET_20081211_96

2. export ORACLE_SID=SJTICKET
3. rman target /
4. startup nomount
5. restore spfile from ‘/opt/oracle/SJTICKET/ spfile_SJTICKET_20081211_97.bak’
6. 根據spfile建需要的文件夾 /opt/oracle/admin/SJTICKET/bdump cdump udump
/opt/oracle/oradata/SJTICKET/ 和 /opt/oracle/oradata/SJTICKET/Redo_archivelog/
Spfile 內容如下:
*.aq_tm_processes=1
*.background_dump_dest='/opt/oracle/admin/SJTICKET/bdump'
*.compatible='9.2.0.0.0'
*.control_files='/opt/oracle/oradata/SJTICKET/control01.ctl','/opt/oracle/oradata/SJTICKET/control02.ctl','/opt/oracle/oradata/SJTICKET/control03.ctl'
*.core_dump_dest='/opt/oracle/admin/SJTICKET/cdump'
*.db_block_size=8192
*.db_cache_size=838860800
*.db_domain='sjticket.com.cn'
*.db_file_multiblock_read_count=16
*.db_name='SJTICKET'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=SJTICKETXDB)'
*.fast_start_mttr_target=300
*.hash_join_enabled=TRUE
*.instance_name='SJTICKET'
*.java_pool_size=33554432
*.job_queue_processes=10
*.large_pool_size=8388608
*.log_archive_dest_1='location=/opt/oracle/oradata/SJTICKET/Redo_archivelog/'
*.log_archive_format='ora_%t_%s'
*.log_archive_start=TRUE
*.open_cursors=300
*.pga_aggregate_target=536870912
*.processes=150
*.query_rewrite_enabled='FALSE'
*.remote_login_passwordfile='EXCLUSIVE'
*.shared_pool_size=209715200
*.sort_area_size=524288
*.star_transformation_enabled='FALSE'
*.timed_statistics=TRUE
*.undo_management='AUTO'
*.undo_retention=10800
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='/opt/oracle/admin/SJTICKET/udump'
7. 建立密碼文件
Orapwd file=$ORACLE_HOME/dbs/orapwSJTICKET.ora password=sysdba entries=20
8. 回到rman下 恢復控制文件
restore controlfile from ‘/opt/oracle/SJTICKET/ control_SJTICKET_20081211_96’

9. alter database mount;
10. list backup;
Piece Name: /opt/rman_bak/SJTICKET/2008-12-11/AfterSVC_SJTICKET_20081211_92
查看備份文件路徑,將備份的數據文件和日誌文件cp到備份中記錄的目標文件夾下/opt/rman_bak/SJTICKET/2008-12-11(這是9i做法,如果是10g的話 ,可以用catalog start with ‘文件夾路徑’即可)
11. 還原數據庫 restore database
12. 恢復數據庫 recover database until cancel(因爲在線日誌沒有)
13. alter database open resetlog;

打開庫 查詢時 報錯:ORA-06553: PLS-801: internal error [56319]
這是因爲原庫是64位數據庫,而恢復在32位庫上:

1、修改初始化文件,增加 _SYSTEM_TRIG_ENABLED = false參數
2、Stratup nomount
3、從源庫備份一個控制文件,在目標庫上重新創建控制文件。
4、Shutdown immediate
5、 Startup migrate

startup migrate|startup upgrade 區別
you can downgrade db using startup migrate since 10g.
you can upgrade db using startup upgrade since 10g.
you can upgrade/downgrade db using startup migrate till 9i.

6、@$ORACLE_HOME/rdbms/admin/utlirp.sql;
7、Shutdown immediate
8、Startup
9、@$ORACLE_HOME/rdbms/admin/utlrp.sql;
10、Shutdown immediate
11、再次修改初始化參數文件,刪除參數 _SYSTEM_TRIG_ENABLED = false
12、Startup

轉換完成(當時是照網上一個文檔做的,現在仔細看來1、2、3、4、11這些步驟貌似都不需要的,最最主要的就是使用utlirp來把相關內容全部在32位平臺下編譯一遍)

參看網址:http://zhang41082.itpub.net/post/7167/456910
http://hi.baidu.com/rain_at_dna/blog/item/bc0d87178b9546044b90a76b.html



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