脚本升级_手把手教你升级到Database 19c(3)| 终章教程

点击▲关注 “ITPUB”   给公众号标星置顶

更多精彩 第一时间直达

 前文回顾:

手把手教你升级到 Oracle  19c(1)| 教程来了 手把手教你升级到 Oracle 19c(2)|  教程来了 今天的内容是本套教材的第三部分,也是最后一部分。今天将向您介绍插拔式升级以及导入导出式升级。今天的内容由三部分组成,我们继续沿用之前的实验环境。 -1- non-CDB 插入 CDB 我们在之前的实验当中,将upgr这个数据库从11.2.0.4升级到19.3,但这个数据库目前还是non-CDB数据库。在本实验当中,想将这个升级后的non-CDB插入到19.3的CDB当中。这里需要注意的是,如果是non-CDB以PDB的形式插入CDB,首先要将这个non-CDB升级到与目标CDB相同的版本。我们在当前的环境中,有一个叫做CDB2的19.3的容器数据库,我们稍后就将upgr这个19.3的non-CDB以PDB的形式插入CDB2. 第一步:来到upgr,将这个数据库设定为只读模式 00ca881328ad897a8e1a0af472267d5f.png 第二步:生成目标PDB的描述文件 我们生成upgr这个数据库的描述文件,为下一步将它插入到CDB2这个容器数据库做准备。 32e59072be6fca50fd2dbcc78bc446b2.png 第三步:关闭upgr数据库,为插入CDB2做准备 6849eecf84bbdd98e4d3c1e71f0a1f06.png 第四步:来到目标容器数据库CDB2,检查兼容性,看是否满足插入条件 92e829d13600c79c282c26a99b20db8c.png 441098770c2f176716cd5f8f7810c608.png 我们查看结果,显示当前的CDB2满足插入条件。 第五步:将upgr插入CDB2 刚才我们在upgr环境下生成了upgr的描述文件,现在我们在cdb2的环境下执行插入动作。请注意,这个操作是在cbd2环境的SQL Plus当中完成的。我们将upgr这个数据库插入到cdb2当中,给它的新名字是pdb1。 325e0419f127766ccaff8fa01b9eb35f.png e21fe0bb63799dd19182fe1ab9328587.png 大家通过观察发现,我们新插入的数据库pdb1(原来的upgr),只能启动到mount状态,我们尝试启动它,会收到如下错误信息。告诉我们要执行一个脚本,将原来的non-CDB进行转换。 47046043b28b9a6a3ecc8900dc1bf4e3.png 第六步:执行脚本,修正pdb1的错误 我们来到pdb1,然后执行将non-CDB转换成pdb的脚本,这个脚本大概要执行20-30分钟,具体的执行时间要看您的机器配置。 0bd2a45034adb7b5a4641f1c916c3f80.png 执行完毕的结果如下: c2af9edfc9f3911fe2e0f68986634789.png 第七步:将pdb1打开,尝试连接 在这里,我们将刚转换好的pdb1先关闭,然后再打开,之后执行save state。这些操作都是在pdb1的环境当中完成的。您接着上面的会话直接执行就可以了。这里给大家留一个小问题,我们执行save state的目的是什么呢?执行之后,我们在下次打开数据库的时候会怎样呢?请大家自己去网路上检索答案。 2839a512f20b0ea8d532b15394916add.png 接下来,我们来到容器数据库,看看pdb1的状态。 0d15818abd93ef6c33bc1bdd9575b61d.png 我们退出SQL Plus,尝试连接看看。 697efbf7f81d49ace6e879b457b4ed29.png pdb1已经可以连接并使用了,到这里,这小节的实验完成啦。 -2- 使用Full Transportable Export/Import技术 在这小节实验当中,我们使用Full Transportable Export/Import技术将一个11.2.0.4的数据库中的表空间直接插入到19.3的容器数据库中的PDB里面。我们现在有一个11.2.0.4的数据库叫做FTEX,我们要将它通过使用Full Transportable Export/Import技术,将它的users表空间直接插入19.3的CDB2当中的pdb2。 第一步:我们在CDB2当中创建一个新的PDB名字叫做pdb2 5cc9131fe9fd32b55b4a59bfdf2a3f06.png 第二步:打开pdb2,创建目录对象并授权,创建指向11.2.0.4 FTEX的database link 这一步有好多的动作要完成,首先要将pdb2打开,并设定save state,当然您不设定也可以。save state是做什么的?有答案了吗? 我们将pdb2打开之后,创建一个目录对象,并给system用户授予访问权限。之后我们创建一个指向11.2.0.4数据库FTEX的database link。 22169efe9538d1b5913c0a598aa238e4.png 第三步:我们来到FTEX数据库将users表空间设定为只读模式,并拷贝数据文件 这一步,我们先来到FTEX数据库,将要导入的表空间设为只读模式,之后在操作系统上,将这个表空间的数据文件复制到19.3的环境下。 4f5799983af1eac7cbca83fa04df7167.png 68dbb9fb124e32d9dc5cb10c3d47d8d9.png 第四步:使用数据泵导入 来到cdb2,使用数据泵导入,这个操作要执行几分钟。执行结果有25个错误,暂时不必理会。 5943eb1716d1fc914c219339c36eb035.png 2bc35b1b078969aebc725c9c2e9838f4.png 第五步:将FTEX数据库的users表空间恢复读写状态,然后将这个数据库关闭 既然导入的操作已经完成,我们将原来的11.2.0.4当中的users表空间恢复为读写状态,后面暂时也不用FTEX数据库,所以可以将它关闭了。 5f7f3c35edd1dc3910c3bfc43a9b7311.png 第六步:连接pdb2 如果当初您在ftex数据库的users表空间下创建一些测试表,您在cdb2中的pdb2里面就可以看到这些表数据了。我在操作的时候,没有在ftex的users表空间创建数据,这里就不做演示了。 6fdefd60906a518fc80294708616cfd9.png -3- 将 12c 的PDB 直接插入  19.3 CDB的实现升级 我们在12.2.0.1 CDB1当中有一个pdb叫做pdb3,将这个数据库插入到CDB2(19.3)当中实现升级。 第一步:我们先来到12.2.0.1数据库cdb1的环境,将当中的pdb3打开 c9f79dd2612b49e6ba09af50d8377e26.png 第二步:Preupgrade.jar and Unplug 我们通过jar包对pdb3做unplug操作。 d263e4ebd56d202b597efe1846d9754b.png 第三步:将pdb3从cdb1中删除 执行升级前的预备脚本,然后将pdb3删除,这个脚本要执行2-3分钟。 7e8a6ca3ea671587d5faa0aaefaf495a.png b75a5615735ea3a8ecc3fad456f05b71.png 第四步:将pdb3插入cdb2 我们首先执行检测脚本,这个脚本比较长,大家可以来到Mike的部落格去复制原始脚本,https://mikedietrichde.com/hol-19c-unplug-plug-upgrade/ 0fe8cc759dfe8a8d788a7181edaf69c7.png d169aa51aaf6e677535083ddb755bdb2.png 我们发现检查结果出现了NO,我们要通过语句查询一下是什么原因。 e0aec0f41047c065cba504fd7b9acc4a.png 目前找到3个原因,我觉得第一个是主要原因,后两个可以暂时忽略。第一个原因说的是,pdb的版本与cdb不兼容,我们要通过下面的操作将它升级。 第五步:执行pdb转换动作 首先通过pdb转换的方式创建pdb3 654d6ccbb7db993c767bf6859cb26d1f.png 然后将pdb3打开到升级模式。 4cf2d05b0fc2c2fadd4509878e76c89e.png 第六步:升级pdb3,这个过程耗时要20-40分钟 本文主要展示升级步骤,具体每个知识点的内容都足够拿出来分为多期进行讲解,所以关于命令的细节,请各位参考Oracle官方文档。在文档中有针对每个参数的详细描述。 a10e882778764ea583cfd1ab7d8b3630.png 经过差不多20分钟的等待,您将看到如下结果,表明升级成功。 48dfc21ce38c801678d3702f3abe68b9.png 第七步:清理无效对象,执行升级后脚本 这两个脚本将清除数据库中无效数据及完成升级后的一些修复动作。 3b823abb112ba00963f21f2b45006f59.png 75d3e433a09356c38e2c630a514fe9b5.png 312e436784a6b9f4d5fa437319e8e68b.png 到此,升级完成。我们查看一下pdb3的状态。 cef9f50c67324b847588ec216ecb566d.png 到这里,使用Mike大神的教程做的所有试验都完成了,在Mike大神的教程中另有一个将本地数据库升级入云端的实验,也许在后续的文章中再向大家介绍。本文译者为数据库初学者,有疏漏和不足之处,还请各位多多包涵。感谢您点阅,谢谢!  相关链接:    手把手教你升级到Database 19c(1)   手把手教你升级到Database 19c(2) ecb3016361bf6cbce5d8a80ab1ce627c.png 编辑:殷海英 本文由甲骨文云技术独家授权ITPUB  转载请联系 甲骨文云技术

7c7faac186b53726ddd3b97371556da8.png

61dadd830c35386e13cba49b8e64750b.png

3a0e7b03c355869289b871d93346736e.png

379f696a5f8e4761ec10694f01a281bc.png

fb49177ab00b5d117e898e8b0513df12.png

「在看」吗?17337ee5769c9c63c181b73c3f206662.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值