windows下Oracle 11.2.0.1 升级到 11.2.0.4

==========================================

Oracle 11.2.0.1 升级到 11.2.0.4

主库: 192.168.100.73

备库: 192.168.100.74

==========================================

==========================================

一、升级前检查

==========================================

-- 1.1 检查当前版本

select * from v$version;

-- 1.2 检查组件状态

select comp_name, version, status from dba_registry;

-- 1.3 检查归档模式 (确保归档开启)

archive log list;

-- 1.4 检查备库状态

-- 备库执行

select status, open_mode, database_role from v$database;

select process, status from v$managed_standby;

==========================================

二、停止Data Guard

==========================================

-- 2.1 停止备库MRP (备库执行)

set ORACLE_SID=orcldg

sqlplus / as sysdba

alter database recover managed standby database cancel;

shutdown immediate;

exit;

-- 2.2 停止主库

sqlplus / as sysdba

shutdown immediate;

exit;

==========================================

三、备份数据库 (在主库执行)

==========================================

-- 3.1 备份控制文件

rman target /

backup current controlfile format 'C:\app\Administrator\backup\control_%d_%s.bak';

-- 3.2 备份参数文件

create pfile='C:\app\Administrator\backup\initorcl_bak.ora' from spfile;

-- 3.3 备份数据文件 (可选,若有足够空间)

backup database format 'C:\app\Administrator\backup\full_%d_%s.bak';

==========================================

四、安装11.2.0.4软件

==========================================

-- 4.1 下载安装包

-- p13390677_112040_MSWIN-x86-64_1of7.zip (基础数据库软件,必需)

-- p13390677_112040_MSWIN-x86-64_2of7.zip (示例数据库,可选)

-- p13390677_112040_MSWIN-x86-64_3of7.zip (客户端,可选)

-- p6880880_112000_MSWIN-x86-64.zip (Opatch最新版本)

-- 4.2 在主库服务器上安装Oracle 11.2.0.4软件

-- 安装到新目录: C:\app\Administrator\product\11.2.0\dbhome_2

-- 4.3 在备库服务器上安装Oracle 11.2.0.4软件

-- 安装到相同路径: C:\app\Administrator\product\11.2.0\dbhome_2

-- 4.3 配置新HOME的监听 (主备库执行)

-- 复制tnsnames.ora到新目录的network/admin下

==========================================

五、升级主库

==========================================

-- 5.1 设置新ORACLE_HOME环境变量

set ORACLE_HOME=C:\app\Administrator\product\11.2.0\dbhome_2

set ORACLE_SID=orcl

set PATH=%ORACLE_HOME%\bin;%PATH%

本次卡住了,到配置监听这一步了。

关闭当前窗口

打开新的CMD,进入新软件目录配置监听

set ORACLE_HOME=C:\app\Administrator\product\11.2.0\dbhome_2

netca

然后检查软件是否安装成功:

set ORACLE_HOME=C:\app\Administrator\product\11.2.0\dbhome_2

sqlplus / as sysdba

如果能正常运行,说明软件已安装成功,只是监听没配置而已。

-- 然后再运行DBUA

dbua

-- 5.2 使用DBUA升级 (推荐方式)

-- 关闭原数据库后运行:

cd %ORACLE_HOME%\bin

dbua

-- 或使用手动升级 (备选方式):

sqlplus / as sysdba

shutdown immediate;

exit;

-- 然后手动升级:

cd %ORACLE_HOME%\bin

sqlplus / as sysdba

startup upgrade;

@?/rdbms/admin/catupgrd.sql

-- 5.3 升级后检查

select * from v$version;

select comp_name, version, status from dba_registry;

-- 5.4 重新编译失效对象

@?/rdbms/admin/utlrp.sql

-- 5.5 开启归档 (如果之前未开启)

shutdown immediate;

startup mount;

alter database archivelog;

alter database open;

-- 5.6 检查并启用归档传输到备库

select dest_id, status, target from v$archive_dest;

-- 如果DEST 2状态是DEFERRED,需要启用:

alter system set log_archive_dest_state_2=ENABLE scope=both;

-- 5.7 强制日志切换测试

alter system switch logfile;

shutdown immediate;

startup mount;

alter database archivelog;

alter database open;

==========================================

六、升级备库

==========================================

-- 6.1 复制必要文件到新目录 (备库执行)

xcopy /E /Y C:\app\Administrator\product\11.2.0\dbhome_1\database\* C:\app\Administrator\product\11.2.0\dbhome_2\database\

-- 6.2 设置新环境变量

set ORACLE_HOME=C:\app\Administrator\product\11.2.0\dbhome_2

set ORACLE_SID=orcldg

set PATH=%ORACLE_HOME%\bin;%PATH%

-- 6.3 删除旧服务,创建新服务 (如需要)

oradim -DELETE -SID orcldg

oradim -NEW -SID orcldg

-- 6.4 启动备库到mount状态 (新软件会自动跟随主库升级)

sqlplus / as sysdba

startup mount;

-- 6.5 启动MRP (备库会自动通过同步完成升级)

alter database recover managed standby database disconnect from session;

-- 6.6 检查状态 (等待同步完成后版本会自动变成11.2.0.4.0)

select * from v$version;

select open_mode, database_role from v$database;

select process, status from v$managed_standby;

-- 6.7 验证组件

select comp_name, version, status from dba_registry;

==========================================

七、验证Data Guard

==========================================

-- 7.1 主库执行日志切换

sqlplus / as sysdba

alter system switch logfile;

-- 7.2 备库检查

select sequence#, applied from v$archived_log order by sequence# desc;

-- 7.3 检查Data Guard状态

select database_role, protection_mode, protection_level from v$database;

-- 7.4 检查同步进程状态

select process, status, sequence# from v$managed_standby;

-- 7.5 检查延迟

select name, value from v$dataguard_stats;

==========================================

八、配置新版本监听 (可选)

==========================================

-- 8.1 更新listener.ora使用新ORACLE_HOME

-- 主库

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(GLOBAL_DBNAME = orcl)

(ORACLE_HOME = C:\app\Administrator\product\11.2.0\dbhome_2)

(SID_NAME = orcl)

)

)

-- 备库

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(GLOBAL_DBNAME = orcldg)

(ORACLE_HOME = C:\app\Administrator\product\11.2.0\dbhome_2)

(SID_NAME = orcldg)

)

)

-- 8.2 重启监听

lsnrctl stop

lsnrctl start

==========================================

九、升级后检查

==========================================

-- 检查版本

select * from v$version;

-- 检查组件

select comp_name, version, status from dba_registry;

-- 检查数据文件

select name, file#, status from v$datafile;

-- 检查日志

select group#, sequence#, status, bytes from v$log;

-- 检查备库同步

select * from v$archive_gap;

select sequence#, applied from v$archived_log order by sequence# desc;

-- 检查Data Guard状态

select open_mode, database_role, log_mode from v$database;

select process, status, sequence# from v$managed_standby;

select name, value from v$dataguard_stats;

==========================================

十、升级失败回退方案

==========================================

-- 如果升级失败,可以按以下步骤回退到11.2.0.1

-- 10.1 停止备库

set ORACLE_HOME=C:\app\Administrator\product\11.2.0\dbhome_1

set ORACLE_SID=orcldg

set PATH=%ORACLE_HOME%\bin;%PATH%

sqlplus / as sysdba

shutdown immediate;

exit;

-- 10.2 停止主库

set ORACLE_HOME=C:\app\Administrator\product\11.2.0\dbhome_1

set ORACLE_SID=orcl

set PATH=%ORACLE_HOME%\bin;%PATH%

sqlplus / as sysdba

shutdown immediate;

exit;

-- 10.3 恢复参数文件 (从备份)

rman target /

restore spfile from pfile='C:\app\Administrator\backup\initorcl_bak.ora';

-- 10.4 使用旧软件启动数据库

set ORACLE_HOME=C:\app\Administrator\product\11.2.0\dbhome_1

set ORACLE_SID=orcl

set PATH=%ORACLE_HOME%\bin;%PATH%

sqlplus / as sysdba

startup;

-- 10.5 恢复备库

set ORACLE_HOME=C:\app\Administrator\product\11.2.0\dbhome_1

set ORACLE_SID=orcldg

set PATH=%ORACLE_HOME%\bin;%PATH%

-- 删除新服务,创建旧服务

oradim -DELETE -SID orcldg

oradim -NEW -SID orcldg

-- 使用旧软件启动备库

sqlplus / as sysdba

startup mount;

alter database recover managed standby database disconnect from session;

-- 10.6 验证回退

select * from v$version;

select open_mode, database_role from v$database;

==========================================

十一、升级成功后的常规操作

==========================================

-- 11.1 删除旧软件 (可选,确认升级成功后再操作)

-- 确保新软件正常运行后再删除旧软件目录

-- 11.2 更新客户端连接

-- 客户端连接时可能会自动选择新版本,或更新tnsnames.ora指向新端口

-- 11.3 定期检查Data Guard状态

select open_mode, database_role from v$database;

select process, status from v$managed_standby;

select name, value from v$dataguard_stats;

==========================================

==========================================

十二、升级后打补丁 (Windows Bundle Patch)

==========================================

-- 12.1 下载补丁

-- 补丁号: 31659823 (11.2.0.4.201020)

-- 需要下载: p31659823_112040_MSWIN-x86-64.zip

-- 12.2 检查OPatch版本 (需要11.2.0.3.5或更高)

set ORACLE_HOME=C:\app\Administrator\product\11.2.0\dbhome_2

set PATH=%ORACLE_HOME%\bin;%PATH%

opatch version

-- 如需更新OPatch (当前版本太旧)

-- 下载: p6880880_112000_MSWIN-x86-64.zip

-- 解压覆盖OPatch目录

-- 或者直接运行:

xcopy /E /Y C:\6880880\OPatch\* C:\app\Administrator\product\11.2.0\dbhome_2\OPatch\

==========================================

十二、打补丁前提条件和注意事项

==========================================

-- 前提条件:

-- 1. OPatch版本必须 >= 11.2.0.3.5

-- 2. Oracle数据库版本必须是11.2.0.4.0 (已安装11.2.0.4软件)

-- 3. current_scn < 15169738620928 (查询: select current_scn from v$database;)

-- 4. 必须先安装: Microsoft Visual C++ 2005 Service Pack 1 Redistributable Package MFC

-- - 下载: vcredist_x64.exe 或 vcredist2005sp1_x64.exe

-- - 安装后再执行opatch apply

-- 注意事项:

-- 1. 必须完全停止所有Oracle服务,包括:

-- - 所有Oracle数据库实例: net stop OracleServiceORCL

-- - 所有Oracle监听器: net stop "OracleOraDb11g_home1TNSListener"

-- - OracleRemExecService: net stop OracleRemExecService

-- - OracleMTSRecoveryService: net stop OracleMTSRecoveryService

-- - msdtc (分布式事务协调器): net stop msdtc

-- - winmgmt (Windows管理工具,需禁用并停止):

-- sc config Winmgmt start= disabled

-- net stop winmgmt

-- - 如果遇到 "CheckActiveFilesAndExecutables" 错误,需要:

-- tasklist | findstr oracle

-- taskkill /F /IM oracle.exe

-- 2. 打补丁顺序: 主库先打,打完后备库再打

-- 3. 打补丁后必须执行: @catbundle.sql PSU apply

-- 4. 打好补丁后需要重启系统

==========================================

十二、打补丁步骤 (继续)

==========================================

-- 12.3 停止Data Guard

-- 备库执行

set ORACLE_SID=orcldg

sqlplus / as sysdba

alter database recover managed standby database cancel;

shutdown immediate;

exit;

-- 主库执行

set ORACLE_SID=orcl

sqlplus / as sysdba

shutdown immediate;

exit;

-- 主库执行

set ORACLE_SID=orcl

sqlplus / as sysdba

shutdown immediate;

exit;

-- 停止监听

lsnrctl stop

-- 停止msdtc服务 (Windows)

net stop msdtc

-- 12.4 打补丁 (主库执行)

set ORACLE_HOME=C:\app\Administrator\product\11.2.0\dbhome_2

set PATH=%ORACLE_HOME%\bin;%PATH%

-- 解压补丁

cd C:\31659823

-- 执行补丁

opatch apply

-- 12.5 打补丁 (备库执行)

-- 先复制补丁到备库相同目录

set ORACLE_HOME=C:\app\Administrator\product\11.2.0\dbhome_2

set PATH=%ORACLE_HOME%\bin;%PATH%

cd C:\31659823

opatch apply

-- 12.6 启动数据库和监听

-- 主库

set ORACLE_HOME=C:\app\Administrator\product\11.2.0\dbhome_2

set ORACLE_SID=orcl

set PATH=%ORACLE_HOME%\bin;%PATH%

lsnrctl start

sqlplus / as sysdba

startup;

exit;

-- 备库

set ORACLE_HOME=C:\app\Administrator\product\11.2.0\dbhome_2

set ORACLE_SID=orcldg

set PATH=%ORACLE_HOME%\bin;%PATH%

sqlplus / as sysdba

startup mount;

alter database recover managed standby database disconnect from session;

exit;

-- 12.7 运行catbundle.sql加载SQL文件

-- 主库执行

set ORACLE_HOME=C:\app\Administrator\product\11.2.0\dbhome_2

set ORACLE_SID=orcl

set PATH=%ORACLE_HOME%\bin;%PATH%

cd %ORACLE_HOME%\rdbms\admin

sqlplus /nolog

SQL> CONNECT / AS SYSDBA

SQL> STARTUP

SQL> @catbundle.sql PSU apply

SQL> QUIT

-- 12.8 验证补丁安装成功

opatch lsinventory

select * from v$version;

select patch_id, patch_description, status from dba_registry_patch;

-- 12.9 检查Data Guard状态

-- 主库

alter system switch logfile;

-- 备库

select sequence#, applied from v$archived_log order by sequence# desc;

select process, status from v$managed_standby;

select name, value from v$dataguard_stats;

==========================================

十三、补丁回退 (如需回退)

==========================================

-- 13.1 停止数据库和监听

-- 主库

set ORACLE_HOME=C:\app\Administrator\product\11.2.0\dbhome_2

set ORACLE_SID=orcl

set PATH=%ORACLE_HOME%\bin;%PATH%

sqlplus / as sysdba

shutdown immediate;

exit;

lsnrctl stop

-- 备库

set ORACLE_SID=orcldg

sqlplus / as sysdba

shutdown immediate;

exit;

-- 13.2 回退补丁

set ORACLE_HOME=C:\app\Administrator\product\11.2.0\dbhome_2

cd 31659823

opatch rollback -id 31659823

-- 备库相同操作

opatch rollback -id 31659823

-- 13.3 运行回退脚本

-- 主库

cd %ORACLE_HOME%\rdbms\admin

sqlplus /nolog

SQL> CONNECT / AS SYSDBA

SQL> STARTUP

SQL> @catbundle_PSU_<SID>_ROLLBACK.sql

SQL> QUIT

-- 13.4 启动数据库

lsnrctl start

sqlplus / as sysdba

startup;

相关推荐
泡海椒11 小时前
JQuickExcel 批量导入:用 importDataInBatch 控制大文件消费边界
数据库·oracle
赵渝强老师12 小时前
【赵渝强老师】Oracle的行地址:ROWID
数据库·oracle
DB哥讲数据库1 天前
【达梦数据库安装教程】超详细图文讲解-附达梦安装包
数据库·oracle
Aric_Jones2 天前
WAL / CDC / 复制槽 /位点
数据库·oracle
细嗅蔷薇@2 天前
排序和分⻚(order by 、limit)
数据库·oracle
梦想平凡2 天前
棋牌游戏技术实战(五):从对局事件重新执行规则,核对棋盘和最终状态
数据库·游戏·oracle
白露与泡影2 天前
Oracle AI Database 26ai RAC 部署步骤、关键命令与一键脚本
数据库·人工智能·oracle
腾科IT教育2 天前
Oracle OCP和MySQL OCP怎么选?方向对比指南
mysql·oracle·ocp·oracle ocp·ocp怎么选·mysql ocp
行业研究员2 天前
Agent Memory降低Token消耗原理解析
数据库·人工智能·oracle·腾讯云·智能体
薛晓刚3 天前
Oracle ADG 备库归档丢了怎么办?RMAN 增量前滚实战
数据库·oracle