原文地址:AutoUpgrade One-liner
原文作者:
您可以使用 AutoUpgrade 仅使用单个命令行来升级数据库,并且不需要配置文件!
每当我们谈论 AutoUpgrade 时,我们也会提到配置文件。包含有关必须升级的信息的文件。这种配置文件的一个非常简单的版本可能如下所示:
upg1.sid=DB12 upg1.source_home=/u01/app/oracle/product/12.2.0.1 upg1.target_home=/u01/app/oracle/product/19
复制
这是使用 AutoUpgrade 的首选和推荐方式。但是您实际上可以在命令行上指定所有内容。
一站式升级
通过使用命令行选项config_values,您现在可以在命令行上指定配置文件条目。您可以执行以下命令,而不是使用上述配置文件:
java -jar autoupgrade.jar \ -config_values "sid=DB12,source_home=/u01/app/oracle/product/12.2.0.1,target_home=/u01/app/oracle/product/19" \ -mode analyze
复制
请注意我过去是如何config_values
指定配置文件的内容的。您必须在配置文件中使用的前缀(在本例中为upg1)未在此处使用(仅用于全局条目,例如global.autoupg_log_dir
)。
如果您有多个数据库要升级,则用星号 (*) 将它们分开:
-config_values "sid=DB1,...,*,sid=DB2,...,*,sid=DB3,..."
复制
使用环境变量
一些配置文件条目可以指定为环境变量:
配置文件入口 | 环境变量 |
---|---|
席位 | $ORACLE_SID |
source_home | $ORACLE_HOME |
target_home | $ORACLE_TARGET_HOME |
目标版本 | $ORACLE_TARGET_VERSION |
因此,您也可以像这样启动 AutoUpgrade:
export ORACLE_SID=DB12 export ORACLE_HOME=/u01/app/oracle/product/12.2.0.1 export ORACLE_TARGET_HOME=/u01/app/oracle/product/19 java -jar autoupgrade.jar -config_values -mode analyze
复制
它在 Windows 上也能正常工作。只需使用set而不是export.
如何做
AutoUpgrade 首先需要确定全局日志目录 ( global.autoupg_log_dir)。
如果您指定全局日志记录目录,它将被使用。
如果您未指定全局日志记录目录,则将使用以下之一:
- Linux/Unix:/tmp/autoupgrade
- Windows:C:\Users\name\AppData\Local\Temp\autoupgrade
接下来,AutoUpgrade 将使用环境提供的信息config_values或从环境提供的信息创建一个配置文件。
从这里开始,AutoUpgrade 将照常运行。
结论
如果需要,您可以在一个命令行中向 AutoUpgrade 提供所有输入。如果您在脚本或 Ansible 或类似的编排工具中使用 AutoUpgrade,这将非常有用。
我仍然建议使用配置文件。在格式良好的文本文件中读取和写入选项更容易。此外,您还避免了在命令行上转义字符的潜在麻烦。最后,您可以避免使用很长的不可读的命令行。顺便说一下,这些参数与我们推荐使用 Data Pump 的参数文件 (.par) 时使用的参数相同。