Oracle 12.1升级到12.2的两种方法(r12笔记第92天)
数据库升级有很多种方式,比如下面的这个升级方案概览,就涉及到很多种场景的考虑。
一般来说,图形的DBUA升级方式比较方便,虽然升级的过程很简便,但是有一个最大的风险点就是不可控因素,所以对于大中型的升级项目,还是会优先选择手工方式升级。
那么对于12.1升级到12.2,是否有什么方案呢,因为单纯看上面的方案还是有一定的局限性,这么说还是有一定的背景的。
对于启用多租户的12c环境,抛开升级,单纯的创建PDB,我们可以有两种方式,一种是远程克隆,基于db link,另外一种是unplug,plugin的方式,而和升级结合起来,思路还是很相似。
我们来简单看看这两种方案。
SQL> CREATE PLUGGABLE DATABASE tbillmob FROM tbillmob@tbillmob_link
file_name_convert=('/U01/app/oracle/oradata/new12c/NEW12C/tbillmob','/U01/app/oracle/oradata/test12cs/tbillmob') ;
CREATE PLUGGABLE DATABASE tbillmob FROM tbillmob@tbillmob_link
*
ERROR at line 1:
ORA-17628: Oracle error 17630 returned by remote Oracle server
ORA-17630: Mismatch in the remote file proto col version client server
出现这个问题还是因为版本的差异,这里需要在源库打一个补丁,可以参考mos文档。
Patch 18633374: COPYING ACROSS REMOTE SERVERS: ASMCMD-8016, ORA-17628, ORA-17630, ORA-06512
这样对于源库来说,打补丁就需要停源库的服务,也就意味着维护窗口。
另外一类方案就是在源库unplug,在目标库plugin,
SQL> create pluggable database upg121 using '/U01/app/oracle/oradata/test12cs/upg121/UPG121.xml' nocopy tempfile reuse;
看起来迁移一个PDB从12.1到12.2真是太容易了,其实不然,因为对于相应的PDB还是需要单独升级,可以使用一个新的命令来做。比如PDB的名字是upg121,就可以使用如下的命令。
$ORACLE_HOME/bin/dbupgrade -c upg121
- CDH内存调拨过度警告分析
- Ztorg:从 root 到 SMS
- [LeetCode]Math主题系列{第7,9,13,273题}
- 被忽视的攻击面:Python package 钓鱼
- [LeetCode]LinkedList主题系列{第2题}
- [LeetCode]HashTable主题系列{第3题}
- 如何使用Oozie API接口向Kerberos集群提交Java程序
- [LeetCode]Array主题系列{35,39,40,48题}
- 如何使用Sqoop2
- [LeetCode]Array主题系列{1,11,15,16,18,26,27,31,33,34题}
- Bwapp漏洞平台答案全解-A1(第三篇)
- pom.xml配置文件中所有标签及作用简单描述
- 关于C#获取动态的时间差函数
- SQL Server 存储过程
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- SpringAOP + 注解实现日志管理
- 删除一个表中所有含重复字段的数据
- stm32mp157开发板常用系统工具使用
- android实现筛选菜单效果
- AppCMS注入及评论xss漏洞
- css属性为 { flex: 1 }时表示的意思
- Android studio 实现手机扫描二维码功能
- Nginx 平滑升级与回滚
- Android实现通用筛选栏
- Android实现关机后数据不会丢失问题
- Canvas 进阶(五)实现图片滤镜效果
- 将IP地址字符串分割成数组
- android监听器实例代码
- (火狐)Selenium WebDriver测试 NotADirectoryError: [WinError 267] 目录名称无效。
- 浅析Android高斯模糊实现方案