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;

相关推荐
码农阿豪9 小时前
行标识符的抉择:深入理解数据库领域的OID与ROWID机制
数据库·oracle
xiaokangzhe9 小时前
PG数据库日常应用
数据库·oracle
高梦轩12 小时前
PG数据库
数据库·oracle
MrMua13 小时前
ODPS JOIN(MaxComputer) 与 Oracle JOIN 用法对比
数据库·oracle·maxcompute
百结21414 小时前
postgresql日常运用
数据库·postgresql·oracle
炸炸鱼.15 小时前
PostgreSQL 日常维护速查手册
数据库·oracle
瀚高PG实验室19 小时前
HGDB 4.5.8.8开启oracle兼容执行带聚合函数的SQL导致数据库进程被信号11杀死
数据库·sql·oracle·瀚高数据库
倔强的石头10621 小时前
数据库行标识符机制探究:OID、ROWID与自增主键的实现与应用
数据库·oracle·kingbase