zoukankan      html  css  js  c++  java
  • 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服务器参数,参考http://www.zhongweicheng.com/?p=827

    确认:

      selinux、iptables、sysctl、limits.conf 等

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

    //查看当前数据库系统平台和当前数据库版本支持的平台
    C:> sqlplus / as sysdba

    SQL> col platform_name for a50
    SQL> set pages 100
    SQL> select platform_name from v$database;

    PLATFORM_NAME
    --------------
    Microsoft Windows IA (64-bit)

    SQL> select PLATFORM_NAME,ENDIAN_FORMAT from v$transportable_platform order by 1,2;

    PLATFORM_NAME ENDIAN_FORMAT
    ————————————————– ————–
    AIX-Based Systems (64-bit) Big
    Apple Mac OS Big
    HP IA Open VMS Little
    HP Open VMS Little
    HP Tru64 UNIX Little
    HP-UX (64-bit) Big
    HP-UX IA (64-bit) Big
    IBM Power Based Linux Big
    IBM zSeries Based Linux Big
    Linux IA (32-bit) Little
    Linux IA (64-bit) Little
    Linux x86 64-bit Little
    Microsoft Windows IA (32-bit) Little
    Microsoft Windows IA (64-bit) Little
    Microsoft Windows x86 64-bit Little
    Solaris Operating System (x86) Little
    Solaris Operating System (x86-64) Little

    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
    man.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 convert将数据文件转换成"Linux x86 64-bit")

    rman target /
    convert database new database 'orcl' transport script 'e:ak	rans.sql' to platform 'Linux x86 64-bit' db_file_name_convert 'e:appAdministratororadataorcl' 'e:ak';

    5.将备份导出到

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

    6.导入数据(Linux ,需要的目录要手动创建,通过pfile来创建spfile)

    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;
  • 相关阅读:
    读《猫城记》 | 人间失格
    如果这都算是佛系
    常规流(Normal flow)
    页面重绘(repaint)和回流(reflow)
    display:none和visiblity:hidden区别
    读《人类简史》 | 一本很值得读的书
    Mac shell笔记
    读《围城》
    珠海游记
    mouseout、mouseover和mouseleave、mouseenter区别
  • 原文地址:https://www.cnblogs.com/mologa-jie/p/7503081.html
Copyright © 2011-2022 走看看