window2012 oracle 迁移 centos6 oracle

本文目的:

  oracle是大型数据库旺旺年限和版本及环境都比较陈旧,性能影响了业务正常,近日公司需求从Windows2003 32bit的Oracle服务器上将数据迁移到Windows2012/Linux Redhat 64bit Oracle,就涉及一个转码

Oracle 架构:

  Oracle Server = 实例 + 数据库 (Instance和Database是相互独立的)

运行原理:

  举个例子来看看Oracle RDBMS是怎么运作的 

    1. User访问Oracle Server之前提交一个请求(包含了db_name、instance_name、username、password等信息),Oracle Server接收到请求并通过Password File的验证后,分配SGA内存池,启动后台进程同时创建并启动实例。
    2. 在启动实例之后User Process与Server Process建立Connect。
    3. 再通过Server process和Oracle Instance完成建立Sesscion。
    4. 用户执行SQL语句,由server process接收到并直接与Oracle交互。
    5. SQL语句通过Server Process到达Oracle Instance,再将SQL载入数据库缓冲区。
    6. Server Process通知Oracle Database将与SQL语句相关的数据块副本加载到缓冲区中。
    7. 在数据库缓存区执行SQL语句,并产生”脏缓冲区”。
    8. 由CKPT检查点进程检查到”脏缓冲区”,并调用DBWn数据库写进程,但在DBWn执行之前,应该由LGWR先将数据文件的原始状态、数据库的改变等信息记录到Redo Log Files。
    9. 将更新的内容写入到磁盘中的数据文件。
    10. 返回结果给用户

具体也不赘述了;详细可参考http://blog.csdn.net/Jmilk/article/details/51583799



首先配置好迁移目标Linux服务器参数

确认:

  selinux、iptables、sysctl、limits.conf 等

SPOOL c:test.sql             //c:test.sql  这是文件保存的位置,从SPOOL开始所有的操作记录到SPOOL OFF结束
select * from tablename;
SPOOL OFF

1.建立测试表(Windows)

create table pp(num int);
begin
         for j in 1 .. 100 loop
             insert into pp  values ( j );
         end loop;
         commit;
 end;
 /

2.创建rman用户(Windows)

sql sysdba

create tablespace rman datafile ‘e:\app\rman.dat‘ size 100m autoextend on next 10m;
create user rman identified by rman default tablespace rman;
grant recovery_catalog_owner to rman;
grant connect,resource to rman; 
rman 

connect catalog rman/rman
create catalog;
rman catalog rman/rman@orcl target sys/密码@网络连接服务名;
register database; 

3.进入只读

run
{
select PLATFORM_NAME from v$database;
select PLATFORM_NAME,ENDIAN_FORMAT from v$transportable_platform order by 1,2;

shutdown immediate
startup mount
alter database open read only;

set serveroutput on

declare
v_check boolean;
begin
v_check:=dbms_tdb.check_db(‘Linux x86 64-bit‘,dbms_tdb.skip_none);
end;
/

declare
v_ext boolean;
begin
v_ext:=dbms_tdb.check_external;
end;
/
}

4.进入RMAN备份转码(Windows)

rman target /
convert database new database ‘orcl‘ transport script ‘e:\bak\trans.sql‘ to platform ‘Linux x86 64-bit‘ db_file_name_convert ‘e:\app\Administrator\oradata\orcl‘ ‘e:\bak‘;

5.将备份导出到

e:\bak 下的所有数据以及INIT_00SDUAAM_1_0.ORA文件上传至Linux服务器中分别的位置/home/oracle/app/oradata/orcl和INIT_00SDUAAM_1_0.ORA对应的目录下修改INIT_00SDUAAM_1_0.ORA文件中的路径和内存大小

6.导入数据(Linux)

sqlplus / as sysdba
STARTUP NOMOUNT PFILE=‘INIT_00SDUAAM_1_0.ORA‘
create spfile from pfile=‘INIT_00SDUAAM_1_0.ORA‘;
startup force nomount

CREATE CONTROLFILE REUSE SET DATABASE "ORCL" RESETLOGS  NOARCHIVELOG
      MAXLOGFILES 16
      MAXLOGMEMBERS 3
      MAXDATAFILES 100
      MAXINSTANCES 8
      MAXLOGHISTORY 292
LOGFILE
    GROUP 1 ‘/home/oracle/app/oradata/orcl/redolog01.log‘  SIZE 50M,
    GROUP 2 ‘/home/oracle/app/oradata/orcl/redolog02.log‘  SIZE 50M,
    GROUP 3 ‘/home/oracle/app/oradata/orcl/redolog03.log‘  SIZE 50M
DATAFILE
    ‘/home/oracle/app/oradata/orcl/SYSTEM01.DBF‘,
    ‘/home/oracle/app/oradata/orcl/UNDOTBS01.DBF‘,
    ‘/home/oracle/app/oradata/orcl/SYSAUX01.DBF‘,
    ‘/home/oracle/app/oradata/orcl/USERS01.DBF‘,
    ‘/home/oracle/app/oradata/orcl/EXAMPLE01.DBF‘
CHARACTER SET ZHS16GBK;

ALTER DATABASE OPEN RESETLOGS;
ALTER TABLESPACE TEMP ADD TEMPFILE ‘/home/oracle/app/oradata/orcl/temp01.dbf‘ SIZE 20971520  AUTOEXTEND ON;
SHUTDOWN IMMEDIATE
 STARTUP UPGRADE
 @?/rdbms/admin/utlirp.sql

7.验证(Linux)

sqlplus / as sysdba
startup
conn mologa/mologa
select * from tab;
select * from pp;
时间: 2024-11-08 20:30:16

window2012 oracle 迁移 centos6 oracle的相关文章

java项目数据库从oracle迁移到mysql 中 java部分的一些修改

java项目数据库从oracle迁移到mysql: mysql 连接url中useUnicode=true&characterEncoding=UTF-8 的作用:http://blog.csdn.net/afgasdg/article/details/6941712. pom.xml文件中dependency修改:http://mvnrepository.com/artifact/mysql/mysql-connector-java/6.0.6. =======================

oracle 11g centos6 安装

选型:32位的内存是个瓶颈,已经是64位的时代了.使用64位的CentOS6 和 64位的Oracle 11g R2在虚拟机器安装,采用hostonly方式设置网络注意:能上网的网卡要设置一下ICS(Internet连接共享)给VMware Network Adapter VMnet1这样对于虚拟机,网关是192.168.137.1,IP地址请也要设置在192.168.137.0/24段硬盘40G,内存2G 1.下载软件1.1.CentOS 6(x86_64)http://mirrors.163

oracle迁移postgres之-Ora2Pg

描述 Ora2Pg:甲骨文PostgreSQL数据库模式转换器是一个免费的工具用于Oracle数据库迁移到PostgreSQL兼容模式.它连接Oracle数据库,扫描它自动提取其结构或数据,然后生成SQL脚本,您可以加载到PostgreSQL数据库.Ora2Pg从Oracle数据库逆向工程可以使用巨大的企业数据库迁移或者复制一些Oracle数据成一个PostgreSQL数据库.它很容易使用,不需要任何Oracle数据库知识比提供所需的参数连接Oracle数据库. 安装 首先要感谢Gilles D

SQL迁移到ORACLE实例

nohup ./command.sh > output 2>&1 & 日常运维中,我们经常会有数据库不同类型的迁移,比较多的就是从sql server迁移到oracle 的情况,前一阶段正好有一个类似的项目进行,我将其中的一些注意事项记录下来. 一.迁移的方案 之前也进行过sql -> oracle的迁移,使用过sql server的dts也单独自己写过sqlloader脚本,但是两种方案都不是很满意,dts经常出错,sqlldr的手工编辑很费劲,稍不注意就会写错. 这次

核心业务系统数据库平台迁移: Oracle -> MySQL

为了对核心技术拥有更多的自主控制能力,为了解决数据库的线性扩展问题,为了尽量减少对商业软件的依赖,为了摆脱对高端硬件的依赖,为了… 基于以上多种原因,2年前,我们计划将公司某核心应用平台进行大手术:数据库平台从软件到硬件全部重构.当然,这其中应用架构的改造也不可避免的进行了大换血. 这个项目无论是从技术角度还是是业务角度来说,都对我们有着非常大的价值,也必定会带来非常深远的影响.项目历时2年多,分4个阶段才完成: 应用接口统一 这一阶段主要是为了后面真正迁移的时候做准备工作,将该核心应用系统的所

适用MySQL Migration Toolkit 1.0 将oracle迁移到mysql中遇到的问题

这里主要说一下我在适用中碰到的问题,主要过程参考 http://www.cnblogs.com/duwenlei/p/3520759.html. 首先启动MySQLMigrationTool.exe 提示“initialized java loader”错误,如下图 后来发现是因为我的jdk是64位,而工具需要32位,再装个32位jdk,我装的是1.7,如果不想改环境变量启动参考 http://javabyraj.blogspot.com/2013/09/solution-for-initial

Mysql迁移到Oracle简单记录

因业务的扩展和客户的要求,公司需要将原运行于Mysql上的数据迁移至Oracle. 参加工作的最初几年短暂接触过Mysql,但不经常使用,最初的印象已经所剩无几了. 本文主要记录在数据库迁移过程中,遇到相关问题的解决办法.主要集中于数据类型的选择.部分函数的替代以及其他数据库之间差异的问题. 对于存在相同需求的同学,能够有一点点帮助,我会感到很欣慰 : ) 1.数据类型的选择. 数值类型: Mysql有两种类型的数字:整数(whole number)和实数(real number). 存储整数可

oracle迁移到mysql分库分表方案之——ogg(goldengate)

之前文章主要介绍了oracle 迁移到mysql,主要是原表原结构迁移,但是实际运维中会发现,到mysql以后需要分库和分表的拆分操作,这个时候,用ogg来做,也是很强大好用的.主要结合ogg的2个参数 参数1:filterUse a FILTER clause to select rows based on a numeric value by using basic operators or one or more Oracle GoldenGate column-conversion fu

从Oracle迁移到MySQL的各种坑及自救方案

当企业内部使用的数据库种类繁杂时,或者有需求更换数据库种类时,都可能会做很多数据迁移的工作.有些迁移很简单,有些迁移可能就会很复杂,大家有没有考虑过为了顺利完成复杂的数据库迁移任务,都需要考虑并解决哪些问题呢? 在以前的工作中,我迁移过Oracle到Informix.Oracle和SQLServer.Oracle到MySQL. 在目前的公司又因为去O的关系,做了大量的迁移工作,栽了不少坑,所以和大家交流一下在迁移的过程中的一些实践. 分享大纲: 去O前的准备与考虑 确定目标数据库 表和数据对象的