首页 >数据库 >mysql教程 >将Oracle数据库从32位平台迁移到64位

将Oracle数据库从32位平台迁移到64位

WBOY
WBOY原创
2016-06-07 16:45:491144浏览

客户的32位Oracle数据库系统磁盘出现损坏,庆幸的是Oracle数据库完好无损。客户要求将数据库迁移到新购的设备上,新设备内存为64

客户的32位Oracle数据库系统磁盘出现损坏,庆幸的是Oracle数据库完好无损。客户要求将数据库迁移到新购的设备上,,新设备内存为64G,系统RedHat 6.2 64位,直接拷贝数据文件肯定是不行的,因为Oracle 的存储过程在32位和64位平台下的wordsize不同,虽然用户的存储过程可以在使用时自行完成重新编译,但Oracle的系统存储过程确需要我们来手工转换。

Oracle 单实例 从32位 迁移到 64位 方法 

在CentOS 6.4下安装Oracle 11gR2(x64)

Oracle 11gR2 在VMWare虚拟机中安装步骤

Debian 下 安装 Oracle 11g XE R2

总结,迁移过程如下:

1:备份Oracle数据库

2:备份控制文件到trace(以备需要新建控制文件)

SQL> alter database backup controlfile to trace;

Database altered.

SQL> oradebug setmypid
已处理语句。
SQL> oradebug tracefile_name
/u01/app/admin/easy/udump/easy_ora_18830.trc
SQL>;主机 cat /u01/app/admin/easy/udump/easy_ora_18830.trc
......
--
--    设置 #1。 NORESETLOGS case
--
-- 以下命令将创建一个新的控制文件并使用它
-- 打开数据库。
-- 恢复管理器使用的数据将丢失。
-- 离线媒体恢复可能需要额外日志
-- 仅当所有在线日志的当前版本
-- 可用时才使用此
-- 挂载创建的控制文件后,以下内容SQL
-- 语句将数据库置于适当的
-- 保护模式:
-- ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE PERFORMANCE
STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "EASY" NORESETLOGS NOARCHIVELOG
    MAXLOGFILES 16
    MAXLOGMEMBERS 3
    MAXDATAFILES 100
    MAXINSTANCES 8
    MAXLOGHISTORY 292
LOGFILE
  组 1 '/ora数据/easy/redo01.log'大小11200K,
  第 2 组 '/oradata/easy/redo02.log'  大小 11200K
-- 备用日志文件
数据文件
  '/oradata/easy/system01.dbf',
  '/oradata/easy/ undotbs01.dbf',
  '/oradata/easy/sysaux01​​.dbf',
  '/oradata/easy/users01.dbf'
字符集 ZHS16GBK
;
-- 重新命令-创建化身表
--下面的日志名称必须更改为
-磁盘上的现有文件名。每个分支中的任何一个日志文件都可用于
-- 重新创建化身记录。
-- ALTER DATABASE REGISTER LOGFILE '/u01/app/flash_recovery_area/EASY/archivelog/2014_11_05/o1_mf_1_1_%u_.arc ';
-- ALTER DATABASE REGISTER LOGFILE '/u01/app/flash_recovery_area/EASY/archivelog/2014_11_05/o1_mf_1_1_%u_.arc';
-- 如果任何数据文件恢复备份,则需要恢复,
-- 或者如果上次关闭不是正常或立即的。
恢复数据库
-- 数据库现在可以正常打开。
ALTER DATABASE OPEN;
-- 将临时文件添加到临时文件的命令表空间。
-- 在线临时文件具有完整的空间信息。
-- 其他临时文件可能需要调整。
ALTER TABLESPACE TEMP ADD TEMPFILE '/oradata/easy/temp01.dbf'
    SIZE 20971520  REUSE AUTOEXTEND ON NEXT 655360  MAXSIZE 32767M;
-- 临时文件添加结束。
--
--    设置 #2。 RESETLOGS case
--
-- 以下命令将创建一个新的控制文件并使用它
-- 打开数据库。
-- 恢复管理器使用的数据将丢失。
-- 在线日志的内容将丢失,所有备份将
-- 失效。仅当在线日志损坏时才使用此选项。
-- 挂载创建的控制文件后,以下 SQL
-- 语句会将数据库置于适当的
-- 保护模式:
--  ALTER数据库 设置备用数据库以最大化性能
启动NOMOUNT
创建控制文件重用数据库“简单”重置日志  NOARCHIVELOG
    MAXLOGFILES 16
    MAXLOGMEMBERS 3
    MAXDATAFILES 100
    最大实例 8
    最大日志历史记录 292
日志文件
 组1'/oradata/easy/redo01.log' 大小11200K,
 组2'/oradata/easy/redo02.log' 大小11200K
--备用日志文件
数据文件
  '/oradata/easy/system01.dbf',
  '/oradata/easy/undotbs01.dbf',
  '/oradata/easy/sysaux01​​.dbf',
  '/oradata/easy/ users01.dbf'
字符集 ZHS16GBK
;
-- 重新创建 incarnation 表的命令
-- 下面的日志名称必须更改为
-- 磁盘上现有的文件名。每个分支中的任何一个日志文件都可用于
-- 重新创建化身记录。
-- ALTER DATABASE REGISTER LOGFILE '/u01/app/flash_recovery_area/EASY/archivelog/2014_11_05/o1_mf_1_1_%u_.arc ';
-- ALTER DATABASE REGISTER LOGFILE '/u01/app/flash_recovery_area/EASY/archivelog/2014_11_05/o1_mf_1_1_%u_.arc';
-- 如果任何数据文件恢复备份,则需要恢复,
-- 或者如果上次关闭不是正常或立即的。
使用备份控制文件恢复数据库
-- 现在可以打开数据库,清零在线日志。
ALTER DATABASE OPEN RESETLOGS;
- - 将临时文件添加到临时表空间的命令。
-- 在线临时文件具有完整的空间信息。
-- 其他临时文件可能需要调整。
ALTER TABLESPACE TEMP ADD TEMPFILE '/oradata/easy/temp01.dbf'
    大小 20971520  在下一个 655360 上重复使用自动扩展  MAXSIZE 32767M;
-- 临时文件添加结束。
--

更多详情见请继续阅读下一页的精彩内容:

将Oracle数据库从32位平台迁移到64位

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn