使用AutoUpgrade进行Oracle数据库升级_1

https://docs.oracle.com/en/database/oracle/oracle-database/19/upgrd/using-autoupgrade-oracle-database-upgrades.html#GUID-71883C8C-7A34-4E93-8955-040CB04F2109

Using AutoUpgrade for Oracle Database Upgrades

使用AutoUpgrade进行Oracle数据库升级

About Oracle Database AutoUpgrade

AutoUpgrade可在升级之前识别问题,执行升级前和升级后操作,部署升级,执行升级后操作以及启动升级Oracle数据库。

AutoUpgrade旨在在升级开始之前,升级部署期间以及升级后检查和配置迁移期间自动执行升级过程。在为新的Oracle数据库版本下载了二进制文件并设置了新的Oracle主目录之后,可以使用AutoUpgrade。使用自动升级时,可以使用单个配置文件同时升级多个Oracle数据库,该配置文件根据每个数据库部署的需要进行了自定义。

支持的版本和升级版本矩阵以及下载最新的autoupgrade.jar,参考My Oracle Support文档2485457.1。

在Oracle Database 19c(19.3)和更高版本的目标Oracle主目录中,该文件autoupgrade.jar默认存在。但是,在使用AutoUpgrade之前,Oracle强烈建议您下载最新的AutoUpgrade版本。每个发行更新(RU)都包含AutoUpgrade,但始终可以从My Oracle Support文档2485457.1获得最新的AutoUpgrade版本。

注意:AutoUpgrade可用于Oracle数据库企业版和Oracle数据库标准版。它不适用于Oracle Database Express Edition。

Preventing Issues: Analyze and Fixup Modes  预防问题:分析和修复模式

升级之前,在分析(Analyze)模式下,AutoUpgrade在升级之前对数据库执行只读分析,以便可以识别需要修复的问题。您可以在正常的数据库操作期间运行该实用程序。在Fixup模式下,AutoUpgrade可以检测并识别需要手动干预的两个修补程序,以及AutoUpgrade可以在升级部署阶段执行的修补程序。

Simplifying Upgrades: Deploy and Upgrade Modes  简化升级:部署和升级模式

在部署(Deploy)阶段,AutoUpgrade会修改您在配置文件中指示的数据库。它使您可以在升级期间调用自己的自定义脚本来配置数据库。在许多情况下,AutoUpgrade可以在升级过程中对数据库执行自动修复,而无需人工干预。

Deploy and Upgrade Postupgrade Checks and Fixes  部署和升级后检查和修复

使用部署或升级模式完成升级后,AutoUpgrade将执行升级后检查。它提供了一个过程,您可以根据在AutoUpgrade配置文件中提供的配置说明,在每个升级的数据库上运行自定义脚本,还可以在升级后过程中运行自动升级后修复程序。在部署模式,自动升级也证实,已成功升级,并复制数据库文件,例如sqlnet.oratnsname.ora和 listener.ora从原始HOME到目标HOME,完成这些操作后,将在新的Oracle主目录中启动升级的Oracle数据库版本。

Checking for Java Version Support  检查Java版本支持

通常,您从要升级的Oracle主目录中启动AutoUpgrade JAR文件。但是,Oracle主目录必须包含Java 8。

AutoUpgrade是Java 8发行版JAR文件,在Oracle Database 12c Release 1 (12.1.0.2)之后的发行版中的Oracle数据库Oracle主页中提供。Oracle主目录中Java版本的路径是Oracle-home/jdk/bin/java,其中Oracle-home源数据库Oracle主目录(您要升级的早期Oracle数据库版本)。例如:

$ORACLE_HOME/jdk/bin/java -version

结果应该是Java 8版本。例如:

[oracle@sales]$ $ORACLE_HOME/jdk/bin/java -version
build.version 20191125
build.date 2019/11/25 17:49:18
build.max_target_version 19
build.type production-19.7.2

升级Oracle Database 11g Release 2 (11.2.0.4)或更早的版本时,可以使用AutoUpgrade。但是,由于Java 8在Oracle Database 11g Release 2及更早版本的Oracle数据库Oracle主页中不可用,因此您必须从目标Oracle主页(要升级到的Oracle主页)中的Java版本启动AutoUpgrade。

成功的响应autoupgrade.jar -version应该类似于以下内容:

[oracle@sales ~]$ $ORACLE_HOME/jdk/bin/java -jar autoupgrade.jar -version
build.version 20190201
build.date 2019/02/01 11:50:22
build.label RDBMS_PT.AUTOUPGRADE_LINUX.X64_190131.1800

如果您尝试使用Java 8之前的Java版本启动AutoUpgrade,则会发生以下错误:

$ORACLE_HOME/jdk/bin/java -jar autoupgrade.jar -version
Exception in thread "main" java.lang.UnsupportedClassVersionError: Bad version number in .class file
    at java.lang.ClassLoader.defineClass1(Native Method)
    at ... 

Examples of AutoUpgrade Workflows

AutoUpgrade with Source and Target Database Homes on Same Server (Typical)

在同一服务器上使用源数据库主页和目标数据库主页进行自动升级(典型)

当您的Oracle数据库源和目标Oracle主目录安装在同一台物理服务器上时,请使用此示例。

上下文:源ORACLE_HOME和目标ORACLE_HOME位于同一服务器上。

要开始分析(analysis),请输入以下命令。

java -jar autoupgrade.jar -config config.txt -mode analyze

该命令将生成一个报告,该报告指示该命令发现的所有错误情况。查看错误条件。如果相关,请自定义自动升级为解决错误情况而创建的修补程序。

要开始部署升级,请输入以下命令:

java -jar autoupgrade.jar -config config.txt -mode deploy

AutoUpgrade with Source and Target Database Homes on Different Servers

在不同服务器上使用源数据库主页和目标数据库主页进行自动升级

当Oracle数据库源和目标Oracle主目录位于不同的物理服务器上时,您必须在两个服务器上完成任务。

上下文:源ORACLE_HOME和目标ORACLE_HOME位于不同的物理服务器上。

要开始分析(analysis),请输入以下命令。

java -jar autoupgrade.jar -config config.txt -mode analyze

该命令将生成一个报告,该报告指示该命令发现的所有错误情况。查看错误条件。如果相关,请自定义自动升级为解决错误情况而创建的修补程序。

由于源和目标Oracle数据库Oracle主目录位于不同的服务器上,因此您需要在每个服务器上运行修订。

  1. 在源服务器上运行修补程序:

    java -jar autoupgrade.jar -config config.txt -mode fixups
  2. 完成将源Oracle数据库从源服务器移动到目标服务器的任务。

  3. 在目标服务器上,以升级模式启动数据库,然后以upgrade模式运行自动升级:

    java -jar autoupgrade.jar -config config.txt -mode upgrade

AutoUpgrade Messages and Process Description Terms

Overview of AutoUpgrade Job IDs

AutoUpgrade JOB是与升级关联的工作单元,由job标识符(jobid)标识。

Job代表AutoUpgrade执行的一组操作。每个Job都经过一系列阶段来实现其目的。Job由唯一的正整数标识jobid。每个新的AutoUpgrade job都会为在AutoUpgrade的配置文件中找到的每个数据库生成一个新的作业ID(jobid)。如果AutoUpgrade检测到jobid系统上不存在先前启动的数据库 ,则AutoUpgrade会将其识别jobid恢复(resume)操作。在恢复操作中,由jobid 从先前的AutoUpgrade运行中未完成的操作将从停止它们的位置继续。

Overview of AutoUpgrade Stages

AutoUpgrade jobs经过一系列阶段,称为stage,在这些阶段中执行特定操作。

在阶段中发生的操作由您为AutoUpgrade选择的处理模式定义:AnalyzeFixupsDeploy and Upgrade

自动升级具有以下阶段:

  • SETUP:AutoUpgrade job管理器在开始job时创建的初始阶段。
  • PREUPGRADE:AutoUpgrade阶段,在此阶段,您将根据当前系统配置来确定系统是否准备升级,例如检查以确定您是否有足够的可用磁盘空间。
  • PRECHECKS:AutoUpgrade分析您的源Oracle主目录以确定数据库是否满足升级要求的阶段。
  • GRP:保证的还原点(GRP),由AutoUpgrade在开始升级过程之前创建。此选项仅适用于Oracle Database Enterprise Edition。它不适用于Oracle Database Standard Edition。即使AutoUpgrade默认情况下会创建GRP,Oracle还是强烈建议您在开始升级之前执行备份
  • PREFIXUPS:在开始升级之前,AutoUpgrade执行升级前修正的阶段。例如,这是AutoUpgrade在源Oracle主目录上收集字典统计信息的阶段。
  • DRAIN:AutoUpgrade关闭数据库的阶段。
  • DBUPGRADE:AutoUpgrade执行升级并编译在升级完成后发现的所有无效对象的阶段。
  • POSTCHECKS:在启动升级后修订之前,AutoUpgrade对目标Oracle主目录(升级的Oracle数据库)执行检查的阶段。
  • POSTFIXUPS:AutoUpgrade执行升级后修订程序(例如升级时区)的阶段。
  • POSTUPGRADE:该阶段,其中AutoUpgrade副本或合并源Oracle主配置文件(tnsnames.ora, sqlnet.ora,和其他文件)到目标ORACLE_HOME。

Overview of AutoUpgrade Stage Operations and States

AutoUpgrade中,operation描述了阶段操作期间执行的操作state表示阶段操作的状态。

Understanding Operation Messages  了解操作消息

操作消息是内部阶段消息,描述了在自动升级状态期间发生的情况。有两种类型的操作消息。

准备(PREPARING:正在创建,初始化或调用AutoUpgrade实例,以准备完成AutoUpgrade阶段。这是一条信息消息。当您看到此消息时,没有任何操作要执行。

执行(EXECUTING:AutoUpgrade正在执行阶段的主要工作流程。这是一条信息消息。您无需执行任何操作。

Understanding State Messages 了解状态消息

状态消息指示显示该消息的阶段的当前工作流程的状态。有四种状态消息:

  • ABORTED:AutoUpgrade停止执行阶段的工作流程中,响应于用户请求。

  • ERROR:执行阶段工作流程时遇到错误。查看错误原因。

  • FINISHED:AutoUpgrade成功地完成了阶段的工作流程。

  • RUNNING:AutoUpgrade正在执行阶段工作流程。

About AutoUpgrade Processing Modes

Preparations for Running AutoUpgrade Processing Modes

您必须完成准备工作,然后才能运行AutoUpgrade处理(processing)模式。

在使用AutoUpgrade处理模式之前,请确认您满足以下要求:

  • 您已经创建了用户配置文件。

  • AutoUpgrade已在原始Oracle主目录中启动并运行。如果重新启动AutoUpgrade,则必须在Oracle主目录中启动与升级流程中的阶段相对应的数据库。
  • 运行数据库的服务器已在服务器主机文件(例如/etc/hosts)或域名服务器(DNS)上注册。

    如果您登录到目标数据库所在的服务器,那么在输入命令时应返回目标数据库主机名 hostname。例如:

    $ hostname sales3

  • 在容器数据库(CDB)上,要在其上运行升级的可插拔数据库(PDB)已打开,并使用AutoUpgrade本地参数pdbs在用户配置文件中对其进行了配置。
  • 您已经下载或可以使用AutoUpgrade jar文件(autoupgrade.jar),并且可以使用Java 8发行版运行它。

从2019年1月发行更新(DBJAN2019RU)起,Oracle Database 12c Release 2 (12.2) and Oracle Database 18c (18.5) 目标HOME支持AutoUpgrade。对于Oracle Database 12c Release 2 (12.2) and Oracle Database 18c (18.5) 目标目录,必须从My Oracle Support Document 2485457.1下载AutoUpgrade。

Oracle Database 19c (19.3)和更高版本的目标Oracle主目录中,该文件autoupgrade.jar默认存在。但是,在使用自动升级之前,Oracle强烈建议您下载最新版本,该版本可从My Oracle Support Document 2485457.1获得。

About the AutoUpgrade Analyze Processing Mode

AutoUpgrade Analyze(analyze)处理模式将检查数据库以查看是否已准备好进行升级。

当您在分析模式下运行AutoUpgrade时,AutoUpgrade仅从数据库中读取数据,而不对数据库执行任何更新。您可以在正常工作时间使用Analyze模式运行AutoUpgrade。在设置目标版本的Oracle Database home之前,您可以在源Oracle Database home上以Analyze模式运行AutoUpgrade。

您可以使用以下语法在Analyze模式下启动AutoUpgrade,其中Java-8-home Java 8发行版的位置或Java 8 home的环境变量设置为:

Java-8-home/bin/java -jar autoupgrade.jar -config yourconfig.txt -mode analyze

Oracle Database Release 12.2 (12.2.0.1) 或更高版本的Oracle主目录默认具有有效的Java版本。使用以下语法在Analyze模式下启动AutoUpgrade,其中Oracle_home是Oracle主目录或为Oracle主目录设置的环境变量,并且 yourconfig.txt是您的配​​置文件:

Oracle_home/jdk8/bin/java -jar autoupgrade.jar -config yourconfig.txt -mode analyze

autoupgrade-analyze-flow.eps的描述如下

AutoUpgrade Analyze模式将生成两个输出文件,这些文件的名称分别为您检查的数据库的系统标识符(SID):

  • SID.html:使用网络浏览器查看此文件。

  • SID_preupgrade.log:使用文本编辑器查看此文件。

每个报告都标识了如果您不纠正它们而发生的升级错误,这些错误是通过运行自动修复脚本或通过手动纠正来进行的。如果发生错误,则会在用户日志文件和status.json文件中报告这些错误。

分析模式还会在cfgtoollogs/upgrade/auto/status路径中生成状态目录。该目录包含指示分析是成功还是失败的文件。此目录有两个JSON文件, status.json 和 progress.json

  • status.json :一个高级状态JSON文件,其中包含升级的最终状态。
  • progress.json:一个JSON文件,其中包含代表配置文件执行的所有升级的当前进度。如果发生错误,则会在运行AutoUpgrade的用户的日志文件中以及status.json文件中报告这些错误。

如果目标数据库Oracle主目录在服务器上不可用,则必须在配置文件中将源Oracle主目录参数设置为相同的路径,以便可以运行AutoUpgrade分析处理模式。例如:

#
# Source Home
#
sales3.source_home=d:\app\oracle\product\12.1.0\dbhome_1
#
# Target Oracle Home
#
sales3.target_home=d:\app\oracle\product\12.1.0\dbhome_1

较早版本的AutoUpgrade需要您进行设置 target_home。在更高版本的AutoUpgrade中,对于分析(Analyze)和修正(Fixups)模式都取消了此限制。

About the AutoUpgrade Fixup Processing Mode

AutoUpgrade Fixup (fixups处理模式将分析您的数据库,并对必须进行更正的项目进行修复,然后才能执行升级。

在修复(fixups)模式下运行AutoUpgrade时,AutoUpgrade执行的检查也将在分析(Analyze)模式下执行。完成这些检查后,AutoUpgrade将在开始升级之前执行修复所需的所有自动修复。当您计划将数据库移动到其他平台时,使用修复(fixups)模式将准备升级数据库。

警告:Oracle建议您先在分析(Analyze)模式下运行AutoUpgrade,然后再在修复(fixups)模式下运行AutoUpgrade修复(fixups)模式可以对源数据库进行更改。

作为升级准备的一部分,如果源数据库要求对可能在升级过程中导致错误的条件进行更正,则以修复(fixups)模式运行的AutoUpgrade将对源数据库执行自动修复。因为在修复(fixups)模式下运行AutoUpgrade是您在移至另一个系统时要执行的一个步骤,所以它不会创建有保证的还原点。Oracle建议您在正常工作时间之外运行此模式。

您可以使用以下语法在修复(fixups)模式下启动AutoUpgrade,其中Java-8-home Java 8发行版的位置,或为Java 8主目录设置的环境变量:

Java-8-home/bin/java -jar autoupgrade.jar -config yourconfig.txt -mode fixup

如果Java 8在您的源Oracle主Oracle_home目录中,请使用以下语法在Fixup模式下启动AutoUpgrade,其中是Oracle主目录或为Oracle主目录设置的环境变量,并且yourconfig.txt是您的配​​置文件:

Oracle_home/jdk8/bin/java -jar autoupgrade.jar -config yourconfig.txt -mode fixup

以下是autoupgrade-fixup-flow.eps的描述

由于AutoUpgrade在Fixup模式下运行,因此它通过运行与Analyze模式下相同的预检查开始。然后,它在源数据库中运行自动修复程序以准备升级,并生成一个高级状态文件,指示修复程序操作的成功或失败。如果发生错误,则会在运行AutoUpgrade的用户的日志文件中报告这些错误。

警告:修复(fixups)模式下的自动升级不会创建保证的还原点。在以Fixup模式启动AutoUpgrade之前,请确保已备份数据库。

About the AutoUpgrade Deploy Processing Mode

AutoUpgrade Deploy(deploy)处理模式执行数据库的实际升级,并执行所有挂起的修补程序。

在运行Deploy之前,除了作为AutoUpgrade脚本的一部分运行的备份计划之外,还必须已经安装了目标Oracle主目录,并且还必须有一个备份计划。

您可以使用以下语法在Deploy模式下启动AutoUpgrade,其中Oracle_home是Oracle主目录或为Oracle主目录设置的环境变量,并且yourconfig.txt是您的配​​置文件: 

Oracle_home/jdk8/bin/java -jar autoupgrade.jar -config yourconfig.txt -mode deploy

Description of autoupgrade-deploy-flow.png follows

Deploy模式下运行AutoUpgrade时,AutoUpgrade在数据库上运行所有升级操作,从升级前源数据库分析到升级后检查。 每个操作为下一个操作做准备。 如果发生错误,则操作将停止。 所有错误都记录到运行AutoUpgrade脚本的用户的日志文件中。 将为每个操作生成一个高级状态文件,该文件显示该操作的成功或失败。 如果仍然有未解决的修订程序(例如,如果您在Deploy模式下运行AutoUpgrade而不先在“分析和修补程序”模式下运行AutoUpgrade),则AutoUpgrade可以在Deploy模式下完成修订程序。

About the AutoUpgrade Upgrade Processing Mode

通过AutoUpgrade Upgrade (upgrade)处理模式,可以在无法访问源Oracle主目录的情况下升级目标Oracle主目录

您可以使用升级(Upgrade)模式将升级分为两个部分:首先,如果选择,则可以在其Oracle主目录上运行的源数据库上运行prefixups模式。其次,您使用升级模式在其新主目录上执行数据库的升级。要使用升级(Upgrade)模式,必须先在目标Oracle主目录中启动并运行数据库,然后才能在升级模式下运行AutoUpgrade

您可以使用以下语法在升级(Upgrade )模式下启动AutoUpgrade,其中Oracle_home是Oracle主目录或为Oracle主目录设置的环境变量,并且yourconfig.txt是您的配​​置文件:
Oracle_home/jdk8/bin/java -jar autoupgrade.jar -config yourconfig.txt -mode upgrade

Description of autoupgrade-upgrade-flow.eps follows

此命令在数据库上运行升级和升级后操作。当您将Oracle数据库移动到与原始源系统不同的系统时,请使用此选项,以使您无法使用自动升级部署模式。

由于AutoUpgrade在升级模式下运行,因此错误记录到运行AutoUpgrade脚本的用户的日志文件中。将为每个操作生成一个高级状态文件,该文件显示该操作的成功或失败。在升级模式下运行自动升级时,不执行升级后操作。

Understanding AutoUpgrade Workflows and Stages

AutoUpgrade工作流程可自动执行典型升级过程的每个步骤。运行的阶段取决于您选择的处理模式。

AutoUpgrade旨在使您能够以最少的人工干预执行升级。启动AutoUpgrade时,使用命令标识的配置文件将传递到AutoUpgrade作业管理器。作业管理器为您选择的处理模式创建所需的作业,并将该模式​​所需的数据结构传递给调度程序。然后,调度程序启动执行每个单独任务的低级模块。

AutoUpgrade Processing Mode Workflow Processing

要了解AutoUpgrade如何处理工作流程模式,请查看下图,该图显示了如何处理部署处理模式:

以下是autoupgrade-workflow.eps的描述

AutoUpgrade Processing Mode Stages

AutoUpgrade作业的阶段取决于您选择的处理模式。

以下是autoupgrade-options.eps的说明

有四种AutoUpgrade模式。对于每种模式,依次执行AutoUpgrade步骤。注意每种模式的步骤差异

  • 分析(Analyze)模式:设置,预检查。

  • 修复(Fixups)模式:安装,预检查,and Prefixups。

  • 部署(Deploy)模式:设置,预升级,预检查,保证的还原点(GRP),前缀,排水,DB(数据库)升级,后检查和后升级。您可以在升级之前(升级前阶段)或升级之后(升级后阶段)运行自己的脚本,或者在升级之前和之后都运行自己的脚本。

  • 升级(Upgrade)模式:安装程序,DB (database) 升级,后检查和后修复。

Understanding Non-CDB to PDB Upgrades with AutoUpgrade

您可以在单个操作中将non-CDB升级并转换为new CDB中的PDB,也可以先将Non-CDB数据库升级并转换为现有CDB中的PDB。

Oracle Database 19c是支持non-CDB Oracle Database体系结构的终端版本。Oracle强烈建议您转而使用可插拔数据库(PDB)。当您将数据库从non-CDB体系结构迁移到Oracle Database 19c中的PDB时,您在容器数据库(CDB)中最多可获得三个用户可配置的PDB,而无需多租户许可证。如果选择配置四个或更多PDB,则需要多租户许可证。

AutoUpgrade从non-CDB到PDB的功能为您提供了灵活的选项,以控制您在升级并将较早版本的non-CDB体系结构的Oracle数据库转换为多租户体系结构的数据库时如何升级现有的Oracle数据库。您可以通过一次操作执行此升级和转换。

Description of Figure 3-1 follows

示例3-1 Non-CDB到PDB的AutoUpgrade配置文件

要使用Non-CDB到PDB选项,必须在AutoUpgrade配置文件中设置参数target_cdb。 target_cdb参数值定义要将非CDB Oracle数据库插入其中的容器数据库的Oracle系统标识符(SID)。 例如:

global.autoupg_log_dir=/home/oracle/autoupg
upg1.sid=s12201
upg1.source_home=/u01/product/12.2.0/dbhome_1
upg1.log_dir=/home/oracle/autoupg
upg1.target_home=/u01/product/20.1.0/dbhome_1
upg1.target_base=/u01
upg1.target_version=19.1.0
upg1.target_cdb=cdb19x

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值