使用 convert database 命令进行 RMAN 跨平台迁移(同版本)
oygpt 2024-09-23 12:15 122 浏览 0 评论
概述
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;
从输出中可以看出,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;
/
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';
在执行转换数据库命令时,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
8、编辑 transportscript.sqlfile
- change the locations of pdfile,
- redolog files
- data files
- tempfile
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.cnblogs.com/lkj371/p/15771331.html
相关推荐
- PLSQL 命令行模式常见错误(plsql执行命令行)
-
日常运维过程中,经常使用PLSQL的command模式运行SQL脚本,对于一些常见的错误,你知道原因在哪里吗?1.SQL脚本执行后弹出输入框原因:SQL*PLUS默认环境里会把'&字符'...
- 了解 PL/SQL 的异常处理(sql数据库异常处理)
-
6.PL/SQL的异常处理在程序运行时出现的镇误,称为异常。发生异常后语句将停止执行,PL/SQL引擎立即将控制权转到PL/SQL块的异常处理部分。异常处理机制简化了代码中的错误检测。PL/SQ...
- PL/SQL 泛型编程详解(泛型调用)
-
PL/SQL中的通用函数,也称为泛型函数,是一种可以接受任意数据类型参数的函数。这使得开发者能够编写可重用的代码,以处理不同的数据类型,而无需为每种数据类型编写专门的函数。PL/SQL的泛型函数通过使...
- PL/pgSQL编写postgresql函数之基本语句
-
目录基本语句1赋值赋值运算符:=或=2单一行结果返回SELECT...INTO语法赋值更新操作结果返回3多行结果返回方式一:使用表充当容器方式二:使用自定义TYPE充当容器方式三:ret...
- PLSQL安装教程(plsql安装教程及配置)
-
2.安装,双击上图Plsqldev.exe文件;3.单击确定,进行下一步安装;4.软件询问是否遵守协议,单击“IAgree”,进行下一步安装;5.选择软件安装在计算机中的路径,(客户端的安装...
- PL/SQL字符函数概览(sqlplus 字符集)
-
PL/SQL提供了一系列内置的字符函数,这些函数可以对字符串进行各种操作,如转换、比较、搜索和替换等。以下是一些常用的PL/SQL字符函数及其用法示例:CONCAT:连接两个或多个字符串。示例:DEC...
- instantclient + PLSQL安装与配置小结
-
一、软件1、instantclient-basic-windows.x64-11.2.0.4.0.zip到官网下载。2、PLSQLDeveloper13.rar到网上下载,找破解版的,网上有V...
- 如何使用 PL/SQL 块 ?(pl/sql 使用教程)
-
2.PL/SQL块PL/SQL是一种块结构的诺言,一个PL/SQL程序包含了一个或者多个逻辑块,逻辑块中可以声明变量,变量在使用之前必须先声明。除了正常的执行程序外,PL/SQL还提供了专门的异...
- PL/SQL(Procedural Language(procedural objects)
-
PL/SQL(ProceduralLanguage/StructuredQueryLanguage)是由OracleCorporation开发的一种用于与Oracle数据库配合使用的编...
- Oracle数据库扩展语言PL/SQL之块结构
-
【本文详细介绍了Oracle数据库扩展语言PL/SQL的块结构,欢迎读者朋友们阅读、转发和收藏!】1基本概念1.1PL/SQL块结构块(block)是PL/SQL的基本程序单元,编写P...
- 记一次生产数据库sql优化案例--with用法改写(11分钟优化到7秒)
-
概述前段时间开发丢了一个超长的sql给我,说需要优化,因为太长,连PL/SQL的美化工具都美化不了...下面简单记录一下优化的过程。with改写WITHAS短语,也叫做子查询部分(subquery...
- 如何在生产库与测试库做数据结构对比--PL/SQL工具
-
概述领导要求做个数据库之间的数据结构对比,这里我简单用PL/SQL工具来实现,下面介绍下使用过程。功能PLSQLDeveloperTools菜单下有CompareUserObjects和Com...
- PLSQL使用教程——(1)基本使用教程
-
一、登录1、在这里配置好数据库服务,之后就可以登录了2、输入用户名和密码,并选择之前配置好的数据库服务。我这服务名取为localhost。(这个名字随意起。)二、创建表空间1、在SQL窗口中执行以下S...
- PL/SQL调试存储过程?看这篇就够了
-
概述虽然现在存储过程相对比较少用了,但是平时接触不可避免的要跟存储过程打交道,当需要自己写的时候总会碰到这或那的错误,这个时候一般要怎么调试呢?PL/SQL调试PL/SQL中提供了【调试存储过程】的功...
- IT运维基础篇之oracle sqlldr数据批量导入,比plsqldev还简单
-
在oralce中导入数据的方式有很多,比如:PL/SQL文本导入器、对表forupdate之后直接复制粘贴等等,导入方式有很多,今天我们介绍另一种大批量数据导入方式:sqlldr,具体其用法可以上网查...