加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 湛江站长网 (https://www.0759zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

Migrating Oracle 18c To 19c

发布时间:2021-03-18 09:06:41 所属栏目:站长百科 来源:网络整理
导读:副标题#e# 本文包含了以下两个知识点: 静默安装Oracle 19c; 通过rman升级数据库。 一、静默安装Oracle 19c 1.1 安装并配置Gird组件 创建响应文件grid.rsp,内容如下: oracle.install.responseFileVersion=/oracle/install/rspfmt_crsinstall_response_sc

使用下面的命令开始安装:

[[email?protected] ~]$ cd $ORACLE_HOME
[[email?protected] db_1]$ unzip /u02/software/19c/LINUX.x64_193000_db_home.zip
[[email?protected] db_1]$ ./gridSetup.sh  -silent -ignorePrereq -responseFile /tmp/db.rsp
[[email?protected] ~]# /u01/app/oracle/product/19.0.0/db_1/root.sh

到此,整个19c的环境搭建完毕。

二、迁移准备工作

注意:新旧环境的数据库实例名必须保持一致。

2.1 创建参数文件

使用18c的spfile创建pfile,并复制到19c的目录。

SQL> create pfile=‘/tmp/initcdb.ora‘ from spfile;
[[email?protected] ~]$ scp /tmp/initcdb.ora db03:$ORACLE_HOME/dbs

2.2 拷贝密码文件

将18c的密码参数文件复制到19c的目录。

[[email?protected] ~]$ scp $ORACLE_HOME/dbs/orapwcdb db03:$ORACLE_HOME/dbs

2.3 创建adump目录

必须创建19c的adumo文件夹,否则使用pfile初次启动实例会报错。

[[email?protected] ~]$ mkdir -p /u01/app/oracle/admin/cdb/adump

2.4 备份18c数据库

[[email?protected] ~]$ rman target /
run {
allocate channel c1 device type disk;
backup database format ‘/u02/orabak/rhndb_%U‘;
sql ‘alter system archive log current‘;
backup format ‘/u02/orabak/%d_arch_%s_%p_%h‘ archivelog all delete all input;
backup format ‘/u02/orabak/controlfile_%d_%s_%p‘ current controlfile;
release channel c1;
}

备份后的文件名如下图所示:

Migrating Oracle 18c To 19c

三、正式迁移过程

整个过程就是一个异机恢复过程。只不过在恢复完成后,要以upgrade方式打开数据库,完成后续升级操作。

3.1 恢复控制文件

[[email?protected] ~]$ rman target /

Recovery Manager: Release 19.0.0.0.0 - Production on Sun May 5 15:47:32 2019
Version 19.3.0.0.0

Copyright (c) 1982,2019,Oracle and/or its affiliates.  All rights reserved.

connected to target database (not started)

RMAN> set dbid 2122265785

executing command: SET DBID

RMAN> startup nomount;

Oracle instance started

Total System Global Area    4294965360 bytes

Fixed Size                     9144432 bytes
Variable Size                771751936 bytes
Database Buffers            3506438144 bytes
Redo Buffers                   7630848 bytes

RMAN> restore controlfile from ‘/u02/orabak/controlfile_CDB_19_1‘;

Starting restore at 05-MAY-2019 15:48:12
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=773 device type=DISK

channel ORA_DISK_1: restoring control file
channel ORA_DISK_1: restore complete,elapsed time: 00:00:04
output file name=+DATA/CDB/CONTROLFILE/current.257.1007480897
output file name=+FRA/CDB/CONTROLFILE/current.256.1007480897
Finished restore at 05-MAY-2019 15:48:19

RMAN> alter database mount;

released channel: ORA_DISK_1
Statement processed

3.2 创建spfile并注册资源

RMAN> create spfile=‘+data/cdb/spfilecdb.ora‘ from pfile;

Statement processed
[[email?protected] ~]$ srvctl add database -db cdb -oraclehome /u01/app/oracle/product/19.0.0/db_1 -pwfile $ORACLE_HOME/dbs/orapwcdb -spfile ‘+DATA/CDB/spfilecdb.ora‘ -dbname cdb -diskgroup data,fra 
[[email?protected] ~]$ echo ‘SPFILE=‘+DATA/CDB/spfilecdb.ora‘‘ >$ORACLE_HOME/dbs/initcdb.ora

3.3 恢复整个数据库

--在rman中运行如下命令进行全库恢复
run {
 allocate channel c1 device type disk;
 restore database;
 recover database;
 release channel c1;
 }

(编辑:PHP编程网 - 湛江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!