zoukankan      html  css  js  c++  java
  • 使用 convert database 命令进行 RMAN 跨平台迁移 (同版本)

    使用 convert database 命令进行 RMAN 跨平台迁移

    概述

    oracle 从 10gR2 开始,Oracle 引入了 RMAN 的下一个神奇特性,它能够将数据库从一个平台转换到相同字节序格式的不同平台。此功能称为跨平台数据库迁移。现在这很容易,只需执行一些基本步骤即可将整个数据库从一个平台转换到另一个平台。下面的场景将使用RMAN的convert database命令,一步步讲解数据库从Windows OS(Source)迁移到Linux OS(Target)的机制。

    以下是执行迁移过程的以下步骤。

    过程

    1、要将数据库从一个平台转换到另一个平台,两个数据库的字节序格式应该相同。因此,作为第一步,请检查两个平台的 v$transportable_platform 视图

    col platform_name for a35
    set pagesize 1000
    select * from v$transportable_platform order by 2;

    image-20220106141550141

    从输出中可以看出,Windows 和 Linux 操作系统都是Little格式。所以在这种情况下,可以很容易地使用RMAN来转换整个数据库。

    2、数据库置于挂载模式并使用只读选项打开它。

    SQL>shutdown immediate
    SQL>startup mount
    SQL>alter database open read only;
    Database altered.
    SQL>

    3、使用 dbms_tdb.check_db 函数检查数据库是否可以传输到目标平台,使用 dbms_tdb.check_external 函数检查外部对象、目录和 BFILE 的存在。将目标平台的名称作为参数传递给第一个函数。函数的返回类型是boolean,所以声明一个boolean类型的变量,调用函数如下:

    set serveroutput on
    declare
    v_return boolean;
    begin
    v_return:=dbms_tdb.check_db('Linux x86 64-bit');
    end;
    /

    如果没有返回任何内容,则表示数据库已准备好传输到目标平台。

    现在调用第二个函数 dbms_tdb.check_external:

    declare
    v_return boolean;
    begin
    v_return:=dbms_tdb.check_external;
    end;
    /

    image-20220106141610920

    4、创建pfile文件并运行convert database命令 将整个数据库转换为Linux平台。

    • 创建pfile文件

    create pfile from spfile;
    • 运行convert database命令 将整个数据库转换为目标Linux平台。

      rman target /
      convert database new database 'orcl'
      transport script 'c:\Clone\transport.sql'
      db_file_name_convert 'C:\app\piyus\oradata\orcl'
      'c:\Clone' to platform 'Linux x86 64-bit';

    image-20220106141638622

    在执行转换数据库命令时,RMAN 不会将重做日志文件、控制文件、密码文件和临时表空间转换和传输到目标平台。RMAN 将所有数据文件转换为目标平台类型。

    5、目标主机创建相关目录

    cd $ORACLE_BASE
    mkdir -p admin/orcl/adump admin/orcl/bdump
    mkdir -p admin/orcl/cdump admin/orcl/udump
    mkdir -p oradata/orcl/
    mkdir -p fast_recovery_area/orcl  

    6、copy相关文件到目标主机

    把所有数据文件、位于 $ORACLE_HOME/dbs 目录中的参数文件和 创建数据库的transport.sql 复制到目标主机,具体如下:

    • 转换生成的所有数据文件

    • 生成的Pfile文件

    • TRANSPORT.SQL

    7、目标主机编辑pfile文件,具体如下:

    • adump location

    • control_files locations

    image-20220106141659634

     

    8、编辑 transportscript.sql file

    • change the locations of pdfile,

    • redolog files

    • data files

    • tempfile

    rman windows to linux migration - transportscript.sql

    9、运行 transport.sql

    现在再次检查上面所做的所有更改,导出 ORACLE_SID 环境变量并从 SQL*Plus 运行 transport.sql 命令:

    SQL> @/tmp/TRANSPORT.SQ

    通过运行这个 sql 文件,Oracle 执行以下步骤:

    • 从提供的pfile(由 RMAN 生成)创建spfile

    • 创建控制文件并使用resetlogs选项打开数据库

    • 创建临时表空间

    • 关闭数据库,使用升级模式启动它并运行utlirp.sql。此脚本以目标数据库平台所需的格式重新编译所有 PL/SQL 对象。

    • 运行 utlrp.sql文件,该文件重新编译所有状态无效的PL/SQL 对象 。

    完成上述所有步骤后,即可成功使用数据库。

    三、附录

    引用:https://www.support.dbagenesis.com/post/oracle-database-migration-from-windows-to-linux-using-rman

    喜欢请赞赏一下啦^_^

    微信赞赏

    支付宝赞赏

  • 相关阅读:
    雅虎笔试&面试题
    有道面试
    IBM笔试&面试
    20140916~17华宇笔试&面试
    操作系统知识梳理3-存储管理
    操作系统知识梳理2-哲学家就餐问题
    操作系统知识梳理1-概述及进程管理
    阿里面试总结
    2012-2015网易有道笔试题总结
    PostgresSQL在cmd中使用psql操作数据库
  • 原文地址:https://www.cnblogs.com/lkj371/p/15771331.html
Copyright © 2011-2022 走看看