oracle数据库如何启动集群(使用convertdatabase)

概述

本场景将使用RMAN的convert database命令,一步步讲解数据库从Windows OS(Source)迁移到linux OS(Target)的机制,window平台的oracle数据库版本由12C升级到Linux的19C

oracle数据库如何启动集群(使用convertdatabase)(1)

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

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

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

oracle数据库如何启动集群(使用convertdatabase)(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; /

oracle数据库如何启动集群(使用convertdatabase)(3)

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

oracle数据库如何启动集群(使用convertdatabase)(4)

在执行转换数据库命令时,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

oracle数据库如何启动集群(使用convertdatabase)(5)

8、编辑 transportscript.sqlfile
  • change the locations of pdfile,
  • redolog files
  • data files
  • tempfile
  • 移除STARTUP UPGRADE之后所有的行,具体如下图所示

oracle数据库如何启动集群(使用convertdatabase)(6)

9、运行 transport.sql --目标主机

设置ORACLE_SID to orcl ,同时在sqlplus运行如下脚本

SQL> @/tmp/TRANSPORT.SQL

10、由12C升级到19C--目标主机

cd $ORACLE_HOME/rdbms/admin $ORACLE_HOME/perl/bin/perl catctl.pl catupgrd.sql

这个过程大概需要40-50分钟左右的时间。

oracle数据库如何启动集群(使用convertdatabase)(7)

oracle数据库如何启动集群(使用convertdatabase)(8)

11、生成spfile

create SPFILE from PFILE;

12、重新编译无效的对象

SQL> @?/rdbms/admin/utlrp.sql

oracle数据库如何启动集群(使用convertdatabase)(9)

等脚本执行完成时你的数据库将成功由windows平台迁移到linux平台,并成功由12C升级到19C!

三、附录

我的博文:https://www.cnblogs.com/lkj371/p/15776089.html

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页