RAC 攻击 - Oracle 集群数据库实战 / 修补网格和数据库软件
外观
- 对“基本版本”的升级非常复杂,始终使用完整的 Oracle 安装程序(runInstaller)。主要新功能仅在新的基本版本中引入。
- 修补集也使用完整的 Oracle 安装程序安装。历史上,每个修补集都是使用 runInstaller 安装在基本版本之上的(图示中的最上面一行)。但是,从 11.2.0.2 开始,修补集可以作为新的安装安装,而无需基本版本。现在建议以这种方式“就地”执行修补集升级。有时,修补集也会包含新功能(例如 RAT 数据收集)。
- PSU 使用opatch安装。它们包括安全更新和重要的错误修复。它们每季度发布一次,始终包含最新的 CPU。
- CPU 使用 opatch 安装。CPU 仅包含安全更新,也每季度发布一次。在应用任何 PSU 后,无法应用 CPU。(直到您升级到新的修补集或基本版本。)
在执行任何 Oracle 安装或升级之前,您应始终检查该版本的支持状态和已知问题。Metalink 说明161818.1始终是起点 - 打开该说明并进行查看。接下来,按照指向 11.2.0.X 的链接,查看 Metalink 说明880782.1。最后,按照指向说明880707.1的链接,查看 Oracle 11.2.0.1 的已知问题,我们将在此实验室中使用该版本。
这些说明已保存为 HTML 文件,位于讲师提供的虚拟 DVD 上。它位于您的虚拟 RAC 节点的/mnt/cdrom5中。 |
对于此实验室,讲师已提供最新的 PSU。PSU 和 CPU 是单一补丁的集合。如果单一补丁已通过滚动升级认证,则只能以滚动方式应用于 Oracle 数据库。
- 查看安装说明。我们将安装三个补丁,您可以在以下位置找到 README 文件
- /mnt/cdrom5/patch/psu6-db-12419378/12419378/README.html
- /mnt/cdrom5/patch/psu2-gi-9655006/README.html
- /mnt/cdrom5/patch/opatch-6880880/README.txt
- 首先,我们需要更新 OPatch 实用程序。在讲师提供的 CDROM 上找到补丁 6880880,并将其直接解压缩到网格主目录和数据库主目录中。在解压缩文件之前,请备份现有的 OPatch 程序。$ oenv 这里显示的 SID 为:grid +ASM1 RAC1 ORACLE_SID = [RAC1] ? grid $ cd $ORACLE_HOME $ tar czvf ~/gi-opatch-backup_$(date +%Y-%m-%d).tgz OPatch/ ... $ unzip -o /mnt/cdrom*/patch/opatch-6880880/p6880880_112000_LINUX.zip ... $ OPatch/opatch version 调用 OPatch 11.2.0.1.5 OPatch 版本:11.2.0.1.5 OPatch 成功。$ oenv 这里显示的 SID 为:grid +ASM1 RAC1 ORACLE_SID = [grid] ? RAC1 $ cd $ORACLE_HOME $ mv OPatch OPatch.backup $ unzip /mnt/cdrom*/patch/opatch-6880880/p6880880_112000_LINUX.zip ... $ OPatch/opatch version 调用 OPatch 11.2.0.1.5 OPatch 版本:11.2.0.1.5 OPatch 成功。
- 在节点collabn2上重复上一步。$ ssh collabn2 ... 重复上一步 ... $ exit
- 此新版本的 OPatch 要求某些操作使用“OCM 响应文件”。使用 OCM 实用程序生成此文件。我们不想配置 OCM;请将您的用户名留空,并确认“YES”您不想输入任何帐户信息。$ $ORACLE_HOME/OPatch/ocm/bin/emocmrsp -output /home/oracle/ocm.rsp OCM 安装响应生成器 10.3.4.0.0 - 生产版 版权所有 (c) 2005, 2010,Oracle 及其附属公司。保留所有权利。提供您的电子邮件地址,以便接收有关安全问题、安装和启动 Oracle 配置管理器的通知。如果您使用 My Oracle Support 电子邮件地址/用户名,则对您而言更便捷。请访问 http://www.oracle.com/support/policies.html 获取详细信息。电子邮件地址/用户名:<enter> 您尚未提供电子邮件地址,以便接收有关安全问题的通知。您是否希望继续不接收安全问题的通知 ([Y]es, [N]o) [N]: Y OCM 配置响应文件 (/home/oracle/ocm.rsp) 已成功创建。
- 在讲师提供的 DVD 上找到网格基础架构和数据库 PSU。$ cd /mnt/cdrom5/patch $ ls opatch-6880880 psu2-gi-9655006 psu6-db-12419378
- 我们知道这些 PSU 可以以滚动方式应用,但请验证这一点。$ for D in psu*/[0-9]*; do echo -n $D: cd $D $ORACLE_HOME/OPatch/opatch query -is_rolling_patch | grep rolling cd ../.. done psu2-gi-9655006/9654983: 补丁是否为滚动补丁:true psu2-gi-9655006/9655006: 补丁是否为滚动补丁:true psu6-db-12419378/12419378: 补丁是否为滚动补丁:true
- 我们还知道不会有任何补丁冲突(因为这些是我们安装的第一个补丁) - 但也要验证这一点。$ oenv ORACLE_SID = [RAC1] ? grid [grid]$ cd psu2-gi-9655006 psu2-gi-9655006[grid]$ $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir ./9655006 ... 调用先决条件“checkconflictagainstohwithdetail” 先决条件“checkConflictAgainstOHWithDetail” 已通过。[grid]$ oenv ORACLE_SID = [RAC1] ? RAC1 [RAC1]$ cd ../psu6-db-12419378/ psu6-db-12419378[RAC1]$ $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir ./12419378 ... 调用先决条件“checkconflictagainstohwithdetail” 先决条件“checkConflictAgainstOHWithDetail” 已通过。
- 自动补丁应用流程将自动关闭和重新启动节点上的所有数据库进程。但是,我们不想进行自动重启 - 因为我们正在应用两个 PSU(一个用于网格,一个用于数据库)。禁用节点collabn1的实例自动启动,并手动关闭实例以应用补丁。在生产系统中,所有活动连接都需要迁移到另一个实例,然后才能执行此操作(例如,使用服务)。
collabn1$ srvctl disable instance -d rac -i RAC1 collabn1$ srvctl stop instance -d rac -i RAC1
- 我们将使用自动补丁应用来应用网格基础架构 PSU。首先使用oenv进入网格环境,然后切换到root用户并运行opatch auto。
- 注意:此节点上的任何数据库进程都将在修补期间自动关闭。
- 当提示输入 OCM 响应文件路径时,请输入/home/oracle/ocm.rsp并按回车键。
- 当提示网格主目录是否已共享时,请键入yes以继续。
确保在命令行中指定网格主目录,以使补丁不会找到数据库主目录并将其应用到数据库主目录中。$ oenv SIDs here are: grid +ASM1 RAC1 ORACLE_SID = [RAC1] ? grid The Oracle base for ORACLE_HOME=/u01/grid/oracle/product/11.2.0/grid_1 is /u01/app/oracle [grid]$ cd /mnt/cdrom5/patch/psu2-gi-9655006 psu2-gi-9655006[grid]$ su Password: racattack psu2-gi-9655006# $ORACLE_HOME/OPatch/opatch auto . -oh $ORACLE_HOME Executing /usr/bin/perl /u01/grid/oracle/product/11.2.0/grid_1/OPatch/crs/patch112.pl -patchdir . -patchn . -oh /u01/grid/oracle/product/11.2.0/grid_1 -paramfile /u01/grid/oracle/product/11.2.0/grid_1/crs/install/crsconfig_params opatch auto log file location is /u01/grid/oracle/product/11.2.0/grid_1/OPatch/crs/../../cfgtoollogs/opatchauto2011-04-01_22-44-08.log Detected Oracle Clusterware install Using configuration parameter file: /u01/grid/oracle/product/11.2.0/grid_1/crs/install/crsconfig_params OPatch is bundled with OCM, Enter the absolute OCM response file path: /home/oracle/ocm.rsp Can't change permissions of ./.: Read-only file system Unable to determine if /u01/grid/oracle/product/11.2.0/grid_1 is shared oracle home Enter 'yes' if this is not a shared home or if the prerequiste actions are performed to patch this shared home (yes/no): yes Successfully unlock /u01/grid/oracle/product/11.2.0/grid_1 patch ././9655006 apply successful for home /u01/grid/oracle/product/11.2.0/grid_1 patch ././9654983 apply successful for home /u01/grid/oracle/product/11.2.0/grid_1 ACFS-9300: ADVM/ACFS distribution files found. ACFS-9312: Existing ADVM/ACFS installation detected. ACFS-9314: Removing previous ADVM/ACFS installation. ACFS-9315: Previous ADVM/ACFS components successfully removed. ACFS-9307: Installing requested ADVM/ACFS software. ACFS-9308: Loading installed ADVM/ACFS drivers. ACFS-9321: Creating udev for ADVM/ACFS. ACFS-9323: Creating module dependencies - this may take some time. ACFS-9327: Verifying ADVM/ACFS devices. ACFS-9309: ADVM/ACFS installation correctness verified. CRS-4123: Oracle High Availability Services has been started.
- 返回到 oracle 用户,并在讲师提供的 DVD 上找到数据库 PSU。使用oenv进入数据库环境,然后运行opatch apply。
- 以本地模式运行 OPatch,以使它不会尝试在整个集群上自动滚动安装。
- 当提示您有关 OCM 的信息时,请将您的用户名留空,并使用“y”确认您不想输入任何帐户信息。
- 当提示您本地主目录是否已准备好进行修补时,请键入“y”以继续。
- 在节点 collabn1 上启用并启动 Oracle 数据库实例。实例运行后,停止并禁用节点 collabn2 上的实例。数据库不应该在任何时间点停止运行。 $ srvctl enable instance -d rac -i RAC1 $ srvctl start instance -d rac -i RAC1在生产系统上,所有活动连接都需要迁移到另一个实例(例如,使用服务)。
$ srvctl disable instance -d rac -i RAC2 $ srvctl stop instance -d rac -i RAC2
- 使用自动补丁应用程序将网格基础结构 PSU 应用于 collabn2。
- 注意:此节点上的任何数据库进程都将在修补期间自动关闭。
- 将 OCM 响应文件 (/home/oracle/ocm.rsp) 复制到 collabn2。
- 当提示网格主目录是否已共享时,请键入yes以继续。
确保在命令行中指定网格主目录,以使补丁不会找到数据库主目录并将其应用到数据库主目录中。$ scp /home/oracle/ocm.rsp collabn2:/home/oracle/ $ ssh collabn2 $ oenv SIDs here are: grid +ASM2 RAC2 ORACLE_SID = [RAC2] ? grid The Oracle base for ORACLE_HOME=/u01/grid/oracle/product/11.2.0/grid_1 is /u01/app/oracle [grid]$ cd /mnt/cdrom5/patch/psu2-gi-9655006 psu2-gi-9655006[grid]$ su Password: racattack psu2-gi-9655006# $ORACLE_HOME/OPatch/opatch auto . -oh $ORACLE_HOME Executing /usr/bin/perl /u01/grid/oracle/product/11.2.0/grid_1/OPatch/crs/patch112.pl -patchdir . -patchn . -oh /u01/grid/oracle/product/11.2.0/grid_1 -paramfile /u01/grid/oracle/product/11.2.0/grid_1/crs/install/crsconfig_params opatch auto log file location is /u01/grid/oracle/product/11.2.0/grid_1/OPatch/crs/../../cfgtoollogs/opatchauto2011-04-02_16-42-52.log Detected Oracle Clusterware install Using configuration parameter file: /u01/grid/oracle/product/11.2.0/grid_1/crs/install/crsconfig_params OPatch is bundled with OCM, Enter the absolute OCM response file path: /home/oracle/ocm.rsp Can't change permissions of ./.: Read-only file system Unable to determine if /u01/grid/oracle/product/11.2.0/grid_1 is shared oracle home Enter 'yes' if this is not a shared home or if the prerequiste actions are performed to patch this shared home (yes/no): yes Successfully unlock /u01/grid/oracle/product/11.2.0/grid_1 patch ././9655006 apply successful for home /u01/grid/oracle/product/11.2.0/grid_1 patch ././9654983 apply successful for home /u01/grid/oracle/product/11.2.0/grid_1 ACFS-9300: ADVM/ACFS distribution files found. ACFS-9312: Existing ADVM/ACFS installation detected. ACFS-9314: Removing previous ADVM/ACFS installation. ACFS-9315: Previous ADVM/ACFS components successfully removed. ACFS-9307: Installing requested ADVM/ACFS software. ACFS-9308: Loading installed ADVM/ACFS drivers. ACFS-9321: Creating udev for ADVM/ACFS. ACFS-9323: Creating module dependencies - this may take some time. ACFS-9327: Verifying ADVM/ACFS devices. ACFS-9309: ADVM/ACFS installation correctness verified. CRS-4123: Oracle High Availability Services has been started.
- 返回到 oracle 用户并找到讲师提供的 DVD 上的数据库 PSU。使用 oenv 进入数据库环境,然后运行 opatch apply。
- 以本地模式运行 OPatch,以使它不会尝试在整个集群上自动滚动安装。
- 当提示您有关 OCM 的信息时,请将您的用户名留空,并使用“y”确认您不想输入任何帐户信息。
- 当提示您本地主目录是否已准备好进行修补时,请键入“y”以继续。
- 在节点 collabn2 上启用并重新启动 Oracle 数据库实例。 $ srvctl enable instance -d rac -i RAC2 $ srvctl start instance -d rac -i RAC2 $ srvctl status database -d rac 实例 RAC1 在节点 collabn1 上运行 实例 RAC2 在节点 collabn2 上运行
- 运行 catbundle.sql 脚本。 $ ss SQL> @?/rdbms/admin/catbundle.sql psu apply $ less /u01/app/oracle/product/11.2.0/db_1/cfgtoollogs/catbundle/ catbundle_PSU_RAC_APPLY_2011Apr02_17_28_19.log
- 可选:如果您想练习更多有关补丁的操作,请尝试回滚数据库 PSU,然后尝试在自动滚动模式(没有本地标志)或“最小停机时间”模式下应用它。