Oracle DataGuard 升级 [11.2.0.1 -> 11.2.0.4]
Oracle DataGuard 升级 [11.2.0.1 -> 11.2.0.4]
**Primary: **11.2.0.1 单机,Site A。
Standby: 11.2.0.1 单机,Site B、Site C。
当前DG环境示意图:

需求:升级至11.2.0.4
升级思路:
主库暂停归档传输;备库安装新版本软件,备库启动到mount;主库安装软件,主库升级数据库,主库启用归档传输,备库开启日志恢复。
注意:
11g新版本软件安装到一个新目录下,注意copy之前的spfile、密码文件、network file等(监听配置文件的静态监听部分需要修改);
备库只升级软件版本。数据库升级是通过主库升级后通过应用主库归档完成升级和同步的。
- 1.主库暂停归档向备库传输
- 2.备库在新目录下安装新版本软件
- 3.备库启动到mount状态
- 4.主库安装软件,升级数据库
- 5.主库启用归档向备库传输
- 6.备库开启日志恢复
- 7.检查备库、主库升级情况
- 8.定时任务检查修正
1.主库暂停归档向备库传输
show parameter log_archive_dest_state_X
alter system set log_archive_dest_state_X=defer scope=both sid='*';
这里是暂停Site A的主库的log_archive_dest_state_2和log_archive_dest_state_3
show parameter log_archive_dest_state_2
show parameter log_archive_dest_state_3
alter system set log_archive_dest_state_2=defer scope=both sid='*';
alter system set log_archive_dest_state_3=defer scope=both sid='*';
2.备库在新目录下安装新版本软件
**2.1 关闭数据库,监听。**
shutdown immediate
lsnrctl stop
2.2 备库在新目录下安装Oracle 11.2.0.4 软件。
两个备库操作方法一样,以Site C为例:
--Site C:
--创建新的$ORACLE_HOME目录
$ mkdir -p /u01/app/oracle/product/11.2.0.4/dbhome_1
--编辑oracle用户环境变量,修改ORACLE_HOME变量值为新的目录
vi ~/.bash_profile
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0.4/dbhome_1
3.备库启动到mount状态
环境变量修改为新目录 ORACLE_HOME 11.2.0.4
新目录注意copy之前的spfile和network file(tnsnames.ora listener.ora)等
两个备库操作方法一样,以Site C为例:
--Site C:
--network file(tnsnames.ora listener.ora sqlnet.ora)
[oracle@oracle2 admin]$ cp /u01/app/oracle/product/11.2.0/network/admin/*.ora /u01/app/oracle/product/11.2.0.4/dbhome_1/network/admin/
--SPFILE
cp /u01/app/oracle/product/11.2.0/dbs/spfileorcl.ora /u01/app/oracle/product/11.2.0.4/dbhome_1/dbs/
启动数据库到mount状态,启动监听。
4.主库安装软件,升级数据库
安装、升级相关过程:
4.1 备份数据库
升级是一个很大的动作,升级前需要事先备份数据库。
--rman.sql
more rman.sql
run{
allocate channel d1 TYPE disk;
allocate channel d2 TYPE disk;
allocate channel d3 TYPE disk;
allocate channel d4 TYPE disk;
backup as compressed backupset database format '/home/oradata/rman/data_%d_%T_%s.bak' plus archivelog format '/home/oradata/rman/arch_%d_%T_%s.bak';
release channel d1;
release channel d2;
release channel d3;
release channel d4;
}
--rman.sh
cat rman.sh
#!/bin/bash
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0
export ORACLE_SID=orcl
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin
rman target / @/home/oradata/rman/rman.sql log=/home/oradata/rman/rman.log
--nohup 执行 备份数据库
nohup sh rman.sh &
4.2 关闭数据库,监听
停止监听,关闭数据库:
$ lsnrctl stop
SQL> shutdown immediate
4.3 新目录下安装新版本软件
主库:
./runInstaller 图形安装新版本软件(upgrade)。
root需要执行的脚本按提示执行。
注意,监听程序不需要配置。
4.4 旧版本软件执行升级检查
在11.2.0.1的sqlplus 执行11.2.0.4的utlu112i.sql,进行升级检查。
$ sqlplus / as sysdba
SQL> startup
SQL> SPOOL upgrade_info.log
SQL> @/u01/app/oracle/product/11.2.0.4/dbhome_1/rdbms/admin/utlu112i.sql
SQL> SPOOL OFF
根据提示修正不符合升级条件的地方。
--purge DBA_RECYCLEBIN;
select count(*) from DBA_RECYCLEBIN;
purge DBA_RECYCLEBIN;
--EXECUTE dbms_stats.gather_dictionary_stats;
EXECUTE dbms_stats.gather_dictionary_stats;
4.5 升级前确认无效对象数量
select count(*) from dba_objects where status<>'VALID';
这里是0。
--正常关闭数据库:
shutdown immediate
4.6 新版本软件对应的环境变量
修改环境变量中指定11.2.0.4,并用source或者重新使用oracle用户登录生效
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME= /u01/app/oracle/product/11.2.0.4/dbhome_1
4.7 新版本软件环境,spfile,密码文件和网络配置相关文件
copy 参数文件spfile, network file「tnsnames.ora listener.ora sqlnet.ora」, 密码文件,
--拷贝参数文件spfile:
[oracle@oracle1 ~]$ cp /u01/app/oracle/product/11.2.0/dbs/spfileorcl.ora /u01/app/oracle/product/11.2.0.4/dbhome_1/dbs/
--拷贝密码文件:
[oracle@oracle1 ~]$ cp /u01/app/oracle/product/11.2.0/dbs/orapworcl /u01/app/oracle/product/11.2.0.4/dbhome_1/dbs/orapworcl
--拷贝网络配置相关文件「tnsnames.ora listener.ora sqlnet.ora」
[oracle@oracle1 ~]$ cp /u01/app/oracle/product/11.2.0/network/admin/*.ora /u01/app/oracle/product/11.2.0.4/dbhome_1/network/admin/
--修正DG listener.ora 中静态监听内容(ORACLE_HOME),然后重启监听文件
SID_LIST_LISTENER=
(SID_DESC=(GLOBAL_DBNAME = orcl)(ORACLE_HOME = /u01/app/oracle/product/11.2.0.4/dbhome_1)(SID_NAME = orcl)
)
4.8 升级数据库
--upgrade模式打开数据库
SQL> startup UPGRADE
SQL> @?/rdbms/admin/catupgrd.sql
SQL> startup
SQL> @?/rdbms/admin/utlu112s.sql
SQL> select count(*) from dba_objects where status<>'VALID';
460
SQL> @?/rdbms/admin/utlrp.sql
0
SQL> shutdown immediate
SQL> startup
5.主库启用归档向备库传输
show parameter log_archive_dest_state_X
alter system set log_archive_dest_state_X=enable scope=both sid='*';
alter system set log_archive_dest_state_2=enable scope=both sid='*';
alter system set log_archive_dest_state_3=enable scope=both sid='*';
show parameter log_archive_dest_state_2
show parameter log_archive_dest_state_3
6.备库开启日志恢复
备库mount状态下开启日志恢复,等待恢复完成,终止日志恢复然后将数据库在open状态后再开启日志恢复。
--mount状态下开启日志恢复
startup mount
alter database recover managed standby database disconnect from session;
--等待恢复完成...
--取消日志恢复
alter database recover managed standby database cancel;
--打开数据库
alter database open;
--open状态下开启日志恢复
alter database recover managed standby database using current logfile disconnect from session;
7.检查备库、主库升级情况
select ACTION_TIME,ACTION,NAMESPACE,VERSION,ID from registry$history;
select ACTION_TIME,ACTION,NAMESPACE,VERSION,ID from registry$history
ACTION_TIME ACTION NAMESPACE VERSION ID
--------------------------------------------------------------------------- ------------------------------ ------------------------------ ------------------------------ ----------
08-FEB-17 03.39.36.894771 AM VIEW INVALIDATE 8289601
08-FEB-17 03.39.36.926136 AM UPGRADE SERVER 11.2.0.4.0
8.定时任务检查修正
检查各机器是否有定时任务,比如这里有定时任务有定期删除归档的任务。
需要根据新环境的变量修改脚本中ORACLE_HOME变量值。
以Site A为例,确认对应变量都是新版本数据库的变量值:
[oracle@oracle1 admin]$ crontab -l
0 0 * * * sh /home/oradata/scripts/delarch.sh > /dev/null 2&>1#
[oracle@oracle1 admin]$ cat /home/oradata/scripts/delarch.sh
#!/bin/bash
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0.4/dbhome_1
export ORACLE_SID=orcl
export PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin
rman target / @/home/oradata/scripts/delarch.sql log=/home/oradata/scripts/delarch.log
[oracle@oracle1 admin]$ cat /home/oradata/scripts/delarch.sql
crosscheck archivelog all;
delete noprompt archivelog all completed before "sysdate-7";
[oracle@oracle1 admin]$
至此,Oracle DataGuard 从版本11.2.0.1成功升级到版本11.2.0.4。
Oracle DataGuard 升级 [11.2.0.1 -> 11.2.0.4]的更多相关文章
- oracle数据库升级记(记一次10.2.0.3版本升级到11.2.0.1版本的过程)
操作系统:windows xp 已有数据库版本:10.2.0.3 升级目标版本:11.2.0.1 步骤大纲: 在源操作系统(安装有10.2.0.3数据库的操作系统)上安装11.2.0.1数据库软件,然 ...
- [Oracle][DATAGUARD] PHYSICAL STANDBY环境里,11.2.0.4 , 也可以使用Pfile来运行Primary和Standby(虽然很少有人用)
####Primary#### [oracle@primary ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.4.0 Production on 金 ...
- 探索Oracle数据库升级6 11.2.0.4.3 Upgrade12c(12.1.0.1)
探索Oracle数据库升级6 11.2.0.4.3 Upgrade12c(12.1.0.1) 一.前言: Oracle 12c公布距今已经一年有余了,其最大亮点是一个能够插拔的数据库(PD ...
- Oracle_RAC数据库GI的PSU升级(11.2.0.4.0到11.2.0.4.8)
Oracle_RAC数据库GI的PSU升级(11.2.0.4.0到11.2.0.4.8) 本次演示为升级oracle rac数据库,用GI的psu升级,从11.2.0.4.0升级到11.2.0.4.8 ...
- GitLab升级(yum安装版v11.11.8~12.0.12)
参考官方升级建议(注意升级路线:Example upgrade paths) 升级前请自行备份(测试可忽略此步骤) 生成备份文件,在/var/opt/gitlab/backups/目录下生成备份文件 ...
- PSU 离11.2.0.3.0 -> 11.2.0.3.11 如果解决冲突的整个
Oracle rdbms 扑灭psu离11.2.0.3.0升级到11.2.0.3.11 参考patch :18522512 停止应用,停止听音乐并DB,将db的oracle_home在下面OPatch ...
- MySQL 8.0 正式版 8.0.11 发布:比 MySQL 5.7 快 2 倍
ySQL 8.0 正式版 8.0.11 已发布,官方表示 MySQL 8 要比 MySQL 5.7 快 2 倍,还带来了大量的改进和更快的性能! 注意:从 MySQL 5.7 升级到 MySQL 8. ...
- C++ Primer中文版(第5版)(顶级畅销书重磅升级全面采用最新 C++ 11标准)
C++ Primer中文版(第5版)(顶级畅销书重磅升级全面采用最新 C++ 11标准) [美]Stanley B. Lippman( 斯坦利李普曼) Josee Lajoie(约瑟拉乔伊 ) B ...
- AIX 7.1 RAC 11.2.0.4.0升级至11.2.0.4.6(一个patch跑了3个小时)
1.环境 DB:两节点RAC 11.2.0.4.0升级至11.2.0.4.6 OS:AIX 7.1(205G内存 16C) 2.节点1.节点2(未建库) 2.1.patch 20420937居然用了3 ...
随机推荐
- 路过Haxe
刚才在看Nape的时候,看到Haxe的代码,意外的感觉到亲切. 因为之前写过as2代码,最近学习了python,所以对haxe看起来很亲切,于是路过一下写了个HelloWorld. 另外,估计很长时间 ...
- Nginx 负载均衡 后端服务器获取前端用户真实IP
Nginx 后端 日志文件 获取的都是 前端 负载均衡器的IP 想要获取用户的真实IP 必须 使用Nginx 的模块 http_realip_module 才行!! 1. 编译 Nginx 的时候 ...
- 比较全的JavaScript倒计时脚本
JavaScript倒计时在Web中用得非常广泛,比如常见的团购啊.还有什么值得期待的事情,都可以用到倒计时.现在举了四个例子,比如时间长的倒计时,小时倒计时,最简的倒计时,还有秒表等等,应该可以满足 ...
- CodeForces 626D Jerry's Protest
计算前两盘A赢,最后一盘B赢的情况下,B获得的球的值总和大于A获得的球总和值的概率. 存储每一对球的差值有几个,然后处理一下前缀和,暴力枚举就好了...... #include<cstdio&g ...
- 51驱动LCD1602
1602 采用标准的 16 脚接口,其中: 第 1 脚:VSS 为地电源 第 2 脚:VDD 接 5V 正电源 第 3 脚:V0 为液晶显示器对比度调整端,接正电源时对比度最弱,接地 电源时对比度最高 ...
- selenium IE 浏览器驱动下载地方
download: http://selenium-release.storage.googleapis.com/index.html
- AJAX异步加载
AJAX含义: 即"Asynchronous Javascript And XML"(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术. AJAX可以跨 ...
- 差分硬盘的merge(合并差异)实验分析
实验: 1:在c:中新建father.vhd,及其差分硬盘son.vhd,command: diskpart create vdisk file=c:\father.vhd #建立父硬盘 ...
- Mybatis学习(8)逆向工程
什么是逆向工程: mybaits需要程序员自己编写sql语句,mybatis官方提供逆向工程 可以针对单表自动生成mybatis执行所需要的代码(mapper.java,mapper.xml.po.. ...
- iOS 之 const
const int a与 int const a一样. const int *a ;//指针可以修改,指向常整形的指针 int* const a;// 常指针, int* 作为一个整体被限制, 所以指 ...