使用Convert Database 命令进行 RMAN 跨平台迁移(同版本)

数据库 Oracle
oracle 从 10gR2 开始,Oracle 引入了 RMAN 的下一个神奇特性,它能够将数据库从一个平台转换到相同字节序格式的不同平台。

概述

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

使用 convert database 命令进行 RMAN 跨平台迁移(同版本)

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

过程

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

  1. col platform_name for a35 
  2. set pagesize 1000 
  3. select * from v$transportable_platform order by 2; 
使用 convert database 命令进行 RMAN 跨平台迁移(同版本)

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

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

  1. SQL>shutdown immediate 
  2. SQL>startup mount 
  3. SQL>alter database open read only
  4. Database altered. 
  5. SQL> 

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

  1. set serveroutput on 
  2. declare 
  3. v_return boolean; 
  4. begin 
  5. v_return:=dbms_tdb.check_db('Linux x86 64-bit'); 
  6. end

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

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

  1. declare 
  2. v_return boolean; 
  3. begin 
  4. v_return:=dbms_tdb.check_external; 
  5. end
使用 convert database 命令进行 RMAN 跨平台迁移(同版本)

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

创建pfile文件

  1. 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';

使用 convert database 命令进行 RMAN 跨平台迁移(同版本)

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

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

  1. cd $ORACLE_BASE 
  2. mkdir -p admin/orcl/adump admin/orcl/bdump 
  3. mkdir -p admin/orcl/cdump admin/orcl/udump 
  4. mkdir -p oradata/orcl/ 
  5. mkdir -p fast_recovery_area/orcl    

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

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

  • 转换生成的所有数据文件
  • 生成的Pfile文件
  • TRANSPORT.SQL

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

  • adump location
  • control_files locations
使用 convert database 命令进行 RMAN 跨平台迁移(同版本)

8、编辑 transportscript.sqlfile

  • change the locations of pdfile,
  • redolog files
  • data files
  • tempfile
使用 convert database 命令进行 RMAN 跨平台迁移(同版本)

9、运行 transport.sql

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

  1. SQL> @/tmp/TRANSPORT.SQ 

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

  • 从提供的pfile(由 RMAN 生成)创建spfile
  • 创建控制文件并使用resetlogs选项打开数据库
  • 创建临时表空间
  • 关闭数据库,使用升级模式启动它并运行utlirp.sql。此脚本以目标数据库平台所需的格式重新编译所有 PL/SQL 对象。
  • 运行 utlrp.sql文件,该文件重新编译所有状态无效的PL/SQL 对象 。

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

 

责任编辑:姜华 来源: 今日头条
相关推荐

2022-01-13 08:30:06

Convert Datoracle数据库

2010-10-26 12:03:25

Oracle备份

2024-03-12 00:05:00

开发编程语言IDE

2009-04-02 18:13:34

Vmwareesx虚拟化

2009-03-23 09:05:01

2010-03-09 09:49:01

Oracle跨平台迁移

2012-05-08 15:57:30

李剑英Windows Pho手机游戏

2012-04-11 13:51:17

ibmdw

2010-07-15 15:15:48

SQL Server使

2011-03-11 10:11:08

平台仿真Bochs

2021-05-07 08:00:19

应用程序框架

2019-11-18 14:00:40

开发工具环境搭建vagrant

2021-04-08 11:10:07

C语言版本Cmake

2009-10-23 14:58:05

VB.NET传输表空间

2013-06-08 14:50:10

rman数据恢复

2012-09-04 10:12:19

IBMdw

2010-04-27 10:04:52

Oracle rman

2021-11-03 09:51:45

鸿蒙HarmonyOS应用

2011-08-15 22:51:34

Oraclerman

2010-08-17 09:18:29

DB2 备份
点赞
收藏

51CTO技术栈公众号