客戶需要,將windows下10g(10.2.0.3)32位數據庫遷移到11g64位。不過主要目的是為10g32位windows打補丁,怕出問題做的遷移。這里自己先做下測試。

參考文章:

測試環境:

Win server 2003 32位,先安裝oracle10.2.0.1,然后升級到10.2.0.5(因為10.2.0.1不能升到11g,所以得升級到10.2.0.2以上),最后遷移到11.2.0.1(Win server 2008 64位)。

安裝就不詳述了。

1、升級數據庫10.2.0.1到10.2.0.5

㈠升級前准備

打開命令行關閉EM:d:\> emctl stop dbconsole

關閉監聽:d:\> lsnrctl stop

進入sql提示符關閉數據庫:d:\> sqlplus / as sysdba

SQL> shutdown immediate

關閉服務:開始菜單》管理工具》服務,停止所有ORACLE開始的服務

備份:可直接復制或者壓縮,包括Oracle Inventory、Oracle HOME和數據庫

升級前檢查:sql提示符下

SQL> spool d:\logs\utlu102i.log       --保留日志信息,以便查看

SQL> @?/rdbms/admin/utlu102i.sql  ---@?默認的ORACLE HOME目錄

㈡升級

與安裝基本一致,指定ORACLE HOME目錄時,覆蓋原來HOME即可,我的是:E:\oracle\product\10.2.0\db_1

開戶OracleserviceSID服務

開啟監聽:d:\> lsnrctl start

升級數據字典:

SQL> startup upgrade

SQL> spool d:\logs\catupgrd.log

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

SQL> shutdown immediate

SQL> startup

SQL> spool d:\logs\utlrp.log

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

㈢升級后檢查

SQL> SELECT COMP_NAME, VERSION, STATUS FROM SYS.DBA_REGISTRY;

status輸出都為VALID說明升級成功

設置compatible參數,不是必須的,重啟后生效

SQL> alter system set compatible='10.2.0.5.0' scope=spfile;

使用catalog備份的可升級一下:

d:\> rman catalog username/passwd@alias

RMAN> upgrade catalog;

升級完成。

2、10.2.0.5(源庫)的數據遷移到11.2.0.1(目標庫)

因為是32位到64位,所以可分為四步:

㈠備份

備份前在源庫執行一個腳本,否則在目標庫recover后升級數據字典時報錯

SQL> spool e:\logs\utlu112i.log

SQL> @?/rdbms/admin/utlu112i.sql   ---此文件從目標庫復制過來的,避免出問題也可以在完成升級后先進行備份

備份:

RMAN> run{

backup as compressed backupset database format 'e:\backup\%d_%s_%T.db';

sql 'alter system switch logfile';

backup archivelog all format 'e:\backup\%d_%s_%T.arch';

backup spfile format 'e:\backup\%d_%s_%T.sp';

backup current controlfile format 'e:\backup\%d_%s_%T.ctl';

}

SQL> create pfile='d:\backup\inittest.ora' from spfile; ---目標庫上實例名為test,所以使用pfile並修改相關參數和目錄(不使用restore spfile)

然后把備份文件上傳到目標庫服務器上。

查看源庫DBID

SQL> select dbid from v$database;

DBID

---------------

274060241

㈡恢復

修改后的pfile文件

*.compatible='10.2.0.5.0'

*.control_files='d:\controlfile\control01.ctl'

*.db_block_size=8192

*.db_name='prod'

*.db_unique_name='test'

SQL> startup nomount pfile='d:\share\inittest.ora';

D:\>rman target /

連接到目標數據庫: PROD (未裝載)   --因為沒有Mount,不識別庫,需要設置dbid

RMAN> set dbid=274060241

RMAN> restore controlfile from 'd:\share\prod_20_20141030.ctl'; --恢復控制文件

RMAN> mount database;

SQL> create spfile from pfile='d:\share\inittest.ora';--生成spfile,然后重啟到mount狀態

SQL> startup mount force;

RMAN> catalog start with 'd:\share';     ---源庫的備份目錄為d:\backup,restore時不識別此目錄,可以catalog下,當然也可以使目錄一致。

恢復,因為不完全恢復,可以設置恢復到某個日志號(從源庫查看備份完成后的當前日志序列):

RMAN> run{

set newname for datafile 1 to 'd:\ORADATA\SYSTEM01.DBF';    --數據文件目錄一致可以不用newname

set newname for datafile 2 to 'd:\ORADATA\UNDOTBS01.DBF';

set newname for datafile 3 to 'd:\ORADATA\SYSAUX01.DBF';

set newname for datafile 4 to 'd:\ORADATA\USERS01.DBF';

set newname for datafile 5 to 'd:\ORADATA\EXAMPLE01.DBF';

set until sequence 60;

restore database;

switch datafile all;

recover database;

}

目錄一致可以不用如下操作,不一致需要rename下:

SQL> alter database rename file 'e:\onlinelog\prod\redo01.log' to 'd:\onlinelog\redo01.log';

SQL> alter database rename file 'e:\onlinelog\prod\redo02.log' to 'd:\onlinelog\redo02.log';

SQL> alter database rename file 'e:\onlinelog\prod\redo03.log' to 'd:\onlinelog\redo03.log';

以升級模式打開:

SQL> alter database open resetlogs upgrade;

添加臨時表空間文件:

SQL> alter tablespace temp add tempfile 'd:\oradata\temp01.dbf' size 500m autoextend on next 50m;

SQL> select name from v$tempfile;

NAME

----------------------------------------------------------------------

E:\ORADATA\PROD\TEMP01.DBF

D:\ORADATA\TEMP01.DBF

目錄不一致的要刪除,因數據文件目錄不一致所致,否則之后執行腳本會報錯:

SQL> alter tablespace temp drop tempfile 'e:\oradata\prod\temp01.dbf';

㈢升級

下面腳本執行時間很長,一個小時:

SQL> spool d:\share\catupgrd.log

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

跑完庫關閉了,要重新打開

修改一下compatible參數

SQL> alter system set compatible='11.2.0.1.0' scope=spfile;

如下腳本可選擇執行:

SQL> spool d:\share\utlu112s.log

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

因需位數轉換,可到最后再編譯無效對象。

㈣64位的轉換

SQL> shutdown immediate

SQL> startup migrate

SQL> spool d:\logs\utlirp.log

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

最后重啟數據庫,重新編譯無效對象

SQL> shutdown immediate

SQL> startup

SQL> spool d:\logs\utlrp.logSQL> @?/rdbms/admin/utlrp.sql

重啟下,總體檢查一下,主要查看是否還有無效對象。

select count(*) from dba_invalid_objects;

oracle32位迁移64位,Windows下Oracle10g32位遷移到11g64位相关推荐

  1. linux和windows下分别如何查看电脑是32位的还是64位?

    WINDOWS下查看的方法: 方法一. 在开始→运行中输入"winver",如果您的系统是64位的,会明确标示出"x64 edition". 方法二.(推荐) ...

  2. python封装成exe win7不能用_pyinstaller打包python的执行文件如何在32位和64位操作系统下也能运行...

    我在64位的windows 10 操作系统下,用64位Python环境,PyInstaller 打包一个py程序. 如 pyinstaller -F -w my.py 你会看到一些警告信息WARNIN ...

  3. 在32位、64位操作系统下各数据类型所占的字节数

    点击打开链接 在32位.64位系统当中,唯一改变的是指针的长度;在32位系统当中是4个字节.64位则是8个字节.所谓的32位.64位,这个指的是寄存器的位宽. 32位平台下结果: 64位平台下结果: ...

  4. 控制器POX在windows下使用教程

    POX安装 准备环境 POX安装使用需要python2.7支持,所以在安装POX之前需要先安装python2.7. POX支持的系统: Windows Mac OS Linux 一般来说,作为open ...

  5. Winio驱动在64位windows下无法使用的解决方法

    C#在使用WinIo的驱动开发类似按键精灵一类工具的时候,需要对相关的驱动进行注册才能正常启动,找了下资料,资料来自: http://jingyan.baidu.com/article/642c9d3 ...

  6. PyTorch在64位Windows下的Conda包

    昨天发了一篇PyTorch在64位Windows下的编译过程的文章,有朋友觉得能不能发个包,这样就不用折腾了.于是,这个包就诞生了.感谢@Jeremy Zhou为conda包的安装做了测试. 更新:已 ...

  7. Windows下VS2015 MPI编译64位Boost1.64

    Windows下VS2015编译64位Boost1.64 2017年12月08日 15:51:48 阅读数:346 参考原帖:https://gist.github.com/UnaNancyOwen/ ...

  8. 在64位windows下使用instsrv.exe和srvany.exe创建windows服务

    在64位windows下使用instsrv.exe和srvany.exe创建windows服务 在32位的windows下,包括windows7,windows xp以及windows 2003,都可 ...

  9. Boost在Linux和windows下的编译 32位 64位

    一 简言 1. Boost库是一个可移植.提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一 2. Boost官网地址:http://www.boost.org/ 3. 本博客示 ...

  10. linux32位运行64位程序,32位windows下可以运行的程序在64位linux下报错

    已结贴√ 问题点数:20 回复次数:3 32位windows下可以运行的程序在64位linux下报错 filt.c在32位windows code:blocks 10.05下运行无任何异样. 传到64 ...

最新文章

  1. 测试半桥电路 TPS28225,NCP3420驱动MOS半桥
  2. python类型-python基础之五大标准数据类型
  3. 著名加密库收集 Encrypt
  4. maven缺少jar包问题
  5. [CSA49G][XSY3315] Bunny on Number Line (DP)
  6. 使用Spring-Retry重试处理
  7. Luogu 1941 【NOIP2014】飞扬的小鸟 (动态规划)
  8. (转)Openlayers 2.X加载高德地图
  9. 实战演练!CISCO交换机端口安全一点通 (
  10. 虚拟机开启Linux时出现“我以复制虚拟机”、“我已移动虚拟机”
  11. pythonindex函数的使用格式_Python正课31 —— 函数参数的使用
  12. 台式计算机如何连接网络,台式机如何去连接网络
  13. Monkey工具详解
  14. 惊!又一家知名企业被查!
  15. TabIndex 属性 Tabindex=-1 与Tabindex=0、任意数字
  16. https证书怎么申请?
  17. 快速将Word文件转换成PPT的方法
  18. 小程序---仿百思不得姐
  19. Python 绘制中国地图并标上国家名
  20. Cloudsim 3.0.3中VM调度策略系列类解析(带迁移的策略)

热门文章

  1. Latex Beamer 入门教程
  2. android8 avb检验,android avb(Android Verified Boot)验证
  3. 物联计算机大赛,计算机与物联网学院在本次计算机设计大赛中喜获佳绩
  4. 正确的序号及标点使用格式(参考文)
  5. 量化框架backtrader之一文读懂可视化
  6. mysql中between..and的用法
  7. 电视浏览器Emotn V1.0.0.2+悟空跨屏电视输入法
  8. JavaScript:实现Comb sort梳排序算法(附完整源码)
  9. Java程序设计基础——setSize()和setBounds()的区别
  10. 手机丢了,微信、支付宝绑了银行卡,第一时间该怎么办?