百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 优雅编程 > 正文

Oracle升级该怎么选版本,目前看已经没有异议了

sinye56 2024-10-06 01:01 41 浏览 0 评论

这是学习笔记的第 2222篇文章

读完需要

9

分钟

速读仅需7分钟

如果是在几年前讨论Oracle升级的问题,其实会存在很多的异议,如今再来看待这个问题,我觉得情况有了变化,我来尝试重新解读一下这个问题。

Oracle数据库版本背景

首先来说下Oracle的版本背景。

根据Oracle的产品线规划,18c开始的新版本将是年度版,版本将是发布年度的最后两位数字。原本计划作为12.2.0.2的版本就是现在发布中的18c,12.2.0.3将以19c的版本形式发布。预期Oracle数据库19将是12.2的最后一个版本(“长期支持”版本)。

所以经历了8,8i,9i,10g,11g,12c之后,接下来的就是18c,19c,现在是2020年了,最新版本按照规划还是19c,可没有20c,要不会被笑话。

从版本V2发展至今,我细数了如下的一些版本情况。

版本发布年
版本
19792.3
19833.1.3
19844.1.4.0
19855.0.22
19886.0.17
19927.0.12
19978.0.3
19988.1.5.0
20019.0.1.0
20029.2.0.1
200310.1.0.2
200510.2.0.1
200711.1.0.6
200911.2.0.1
201312.1.0.1
201612.2.0.1
201818.1.0
201919c

如果要从整体看出版本的差异情况,可以看下面的柱状图。

这个图没有体现版本之间的时间差,仅仅从版本的变化情况来看。

仅仅从这个图上就能够看出一种鲜明的差异,那就是类似SQL Server这样的年度版本,能够对于版本的差异没有那么敏感。

Oracle数据库版本规划

我们能够看到有很多的版本,如果要选择升级数据库,到底是选择12c还是18c,还是19c呢,我们来看一个版本路线图,可以参考在MOS 官方文章:Release Schedule of Current Database Releases (文档 ID 742060.1)

这个图是理解整个内容的核心,可以看到19c的定位是长期版本,而且扩展服务的截止时间是目前最长的。

相比而言18c的生命周期就会短许多,有点像昙花一些的过渡版本,从性价比来看似乎还不如早一些的12.2.0.1这个版本,如何和当时的时间背景联系起来,应该是一批早期用户从11g升级,在没有12.2版本发布时,选择了升级到12.1.0.2,所以看到的12.2.0.1和18c的发布时间也很接近。

值得一提的是,在2020年4月15日,Oracle修改了12.2.0.1的扩展服务截止时间,从2020年12月1日扩展到了2020年3月31日。(Added Limited Error Correction for 12.2.0.1 from Dec 1, 2020 until March 31, 2022)

Oracle数据库服务支持

对于扩展服务,我们可能有些陌生,大体分来,支持的强度分为三个级别:Premier Support(最高优先级的支持),Extended Support(中等优先级的支持),Sustaining Support(最低优先级的支持)。

如果和上面的图联系起来,其实就是对于扩展服务打了一些补丁,可以举个例子来说明,比如主流版本是11g,那么会有一个相对稳定产品生命周期,比如是5年,那么在这5年内是官方大力支持的阶段,会修复一系列的版本bug,推出一些改进和新功能,临近产品生命周期,就需要考虑升级,如果不升级服务支持力度上就会打一定的折扣,比如说扩展服务周期是2年,那么2年后正常来说是无法下载一些补丁更新的,如果过了扩展服务周期还没有升级,如果是大客户,花钱继续支持也可以,如果又跨越了多个时段,但是原来的版本支持还是需要,就需要做定制化的支持了。

对于数据库版本来说,10g是个坎,升级到11g是个坎,升级到12c的选择空间从上图来看就比较有限了,目前可选的就是12.2.0.1,18c和19c了。我们来看下这3个版本,我来划一下重点。

版本

补丁截止时间

备注和说明

19c

Long-Term Release

Mar 31, 2023 with no ES/ULA

Mar 31, 2026 with ES/ULA

  • Premier Support (PS) ends Mar 31, 2023, Extended Support (ES) fees will be required beginning Apr 01, 2023 through Mar 31, 2026

  • Error Correction / Patching is available through Mar 31, 2026 with paid ES. Without paid ES, patching is only available until Mar 31, 2023.

18c

Annual Release

Jun 08, 2021

  • Error Correction / Patching is available until Jun 08, 2021

  • 18c is not eligible for Extended Support (ES)

12.2.0.1

Annual Release

* March 31, 2022 with Limited Error Correction from Dec 1, 2020

  • Error Correction / Patching is available until Nov 30, 2020

  • Limited Error Correction (Sev 1 and Security Updates only) is available from Dec 1, 2020 - March 31, 2022 See Note 161818.1 for details.

  • 12.2.0.1 is not eligible for Extended Support (ES)

  • Gen 1 ExaCC, OCC DBCS, and ODA will have 3 additional months of support life. The end of life dates for databases on these platforms is: 28-Feb-2021

从上面的图来看,为了求稳,我们不是选择最接近的低版本,而是要首选尽可能稳定的大版本,避免后续的大版本改动。如果说得更清楚些,那就是选择19c.

版本的情况基本说完了,我们来看下升级的正确姿势,因为环境的差异,肯定初始版本都不大相同。

Oracle数据库版本升级矩阵

对于11g的数据库来说,如果是11g的最新版本,则可以直接升级到19c,这是一个极大的利好消息,避免了过渡升级带来的潜在隐患和服务不可用过长。

对于12c以上的版本(12.1.0.2以上),则可以直接升级到19c。

升级的过程可以考虑纯手工方式升级数据字典,也可以考虑使用DBUA来做。

Oracle 19c - Complete Checklist for Upgrading to Oracle Database 19c (19.x) using DBUA (Doc ID 2545064.1)

如果使用DBUA来升级,直接升级可以参考如下的表格:

Source Database

Target Database

11.2.0.4 and Higher

19.x

12.1.0.2

19.x

12.2.0.1

19.x

18.1

19.x

对于有些版本来说,则不可以直接升级,就需要过渡,比如你的版本是11.2.0.2,则需要先升级到11.2.0.4之后才可以升级到19c.



Source Database

Intermediate upgrade path

Target database

11.2.0.1/11.2.0.2/11.2.0.3

-->

11.2.0.4

-->

19.x

11.1.0.6/11.1.0.7

-->

11.2.0.4

-->

19.x

10.2.0.2, 10.2.0.3, 10.2.0.4, 10.2.0.5

-->

11.2.0.4/12.1.0.2

-->

19.x

10.1.0.5

-->

11.2.0.4/12.1.0.2

-->

19.x

9.2.0.8 or earlier

-->

11.2.0.4

-->

19.x

12.1.0.1

-->

12.1.0.2/12.2.0.1

-->

19.x

5 尝鲜新版本

此外,如果我们想先尝尝鲜,做下测试,

Oracle提供了另外两种方式来体验新版本,一种是LiveSQL,链接是https://livesql.oracle.com,同时也可以通过dosc.oracle.com进行了解。

  • 去IOE or Not?

  • 拉里·佩奇(Larry Page)的伟大归来

  • 《吊打面试官》系列-Redis基础

  • 唯一ID生成算法剖析,看看这篇就够了

  • 关于大数据运维能力的一些思考

  • DBA菜鸟的进化简史:不忘初心,记工作中踩过的三个坑

  • 美女主持直播,被突发意外打断!湾区网友却高喊: 我懂!超甜

相关推荐

linux 查看当前应用内存状况,以及内存参数含义

1、查看进程号ps-ef|greptomcat2、查看当前内存分配,200ms打印一次jstat-gc进程号2001jstat-gc344802001S0CS1C...

如何显示 Linux 系统上的可用内存?这几个命令很好用!

在Linux系统中,了解可用内存是优化系统性能、故障排查以及资源管理的重要一环。本文将详细介绍如何在Linux系统上显示可用内存,包括多种方法和工具的使用。在讨论可用内存之前,我们需要了解一些...

Linux 下查看内存使用情况方法总结

Q:我想监视Linux系统的内存使用情况,在Linux下有哪些视图或者命令行工具可用呢?在做Linux系统优化的时候,物理内存是其中最重要的一方面。自然的,Linux也提供了非常多的方法来监控宝贵的内...

2、linux命令-用户管理

linux命令-用户管理用户切换[root@eric~]#sueric#切换到用户eric[eric@ericroot]$[eric@ericroot]$su#切换到rootPas...

Centos 7 进入单用户模式详解

1、开机在启动菜单按e进入编辑模式找到linux16行,在最后添加init=/bin/sh编辑完后,按ctrl+x退出2、进单用户模式后,使用passwd修改密码,提示以下错误:passwd:Aut...

每日一个Linux命令解析——newusers

newusers:在Linux系统中,newusers是一个用于批量创建用户的命令。它从一个文件中读取多行用户信息,每行描述一个用户的详细信息,并根据这些信息创建多个用户或对现有用户进行批量修改。一...

openEuler操作系统管理员指南:管理用户与用户组

在Linux中,每个普通用户都有一个账户,包括用户名、密码和主目录等信息。除此之外,还有一些系统本身创建的特殊用户,它们具有特殊的意义,其中最重要的是管理员账户,默认用户名是root。同时Linux也...

Linux用户管理

1、用户信息文件/etc/passwdroot:x:0:0:root:/root:/bin/bash第一列:用户名第二列:密码位第三列:用户ID0超级用户UID。如果用户UID...

centos7基础-用户、组、权限管理

用户和组(1)用户、组、家目录的概念linux系统支持多用户,除了管理员,其他用户一般不应该使用root,而是应该向管理员申请一个账号。组类似于角色,系统可以通过组对有共性的用户进行统一管理。每个用户...

LINUX基础 ----------组及用户的概念

在Linux中,用户和组都是非常重要的概念,可以控制文件访问权限和资源的管理。用户是标识一个进程、应用程序或系统管理员的账号,Linux中每个用户用一个用户ID(UID)来标识。对于一个...

从零入门Linux(四)用户与权限管理

在Linux系统中,用户和权限管理是系统安全的重要组成部分。通过合理配置用户和权限,可以确保系统的安全性和资源的合理分配。以下是一些与用户和权限管理相关的常用命令和概念。1.用户管理1.1添加...

如何在 Linux 中管理用户?

在Linux系统中,用户是系统资源的主要使用者,每个用户都有一个唯一的标识符(用户ID)。为了更好地组织和管理用户,Linux还引入了用户组的概念。用户组是用户的集合,有助于更有效地分配权限和资...

在 Linux 中将用户添加到特定组的四种方法

在Linux多用户操作系统中,用户组管理是系统安全架构的基石。通过合理的组权限分配,管理员可以实现:精确控制文件访问权限(chmod775project/)简化批量用户权限管理(setfacl-...

我不是网管 - 如何在Ubuntu Linux下创建sudo用户

Sudo用户是Linux系统的普通用户,具有一定的管理权限,可以对系统执行管理任务。在Linux中,root是超级用户,拥有完全的管理权限,但不建议将root凭证授予其他用户或作为r...

Linux创建普通用户,为密钥方式登录做准备

Hi,我是聪慧苹果8,就是江湖上人见人爱、花见花开,土到掉榨的Linux爱好者,一起学习吧!上一篇关于SSH安全加固的文字,有网友点评通过密钥登录更加安全,先创建一个普通用户,拒绝直接使用密码登录,这...

取消回复欢迎 发表评论: