说明
环境说明
数据库为
10gRAC
环境
(10.2.0.5.4)
,操作系统为
6100-07
目标升级为
11gRAC
环境
(11.2.0.4)
,操作系统为
6100-07
实例名称:
crmdb1 crmdb2
新需求:
1.
需要新分配一个
IP
(作为
scan IP
用)
2.
需要划三块共享磁盘,每块
1G
大小(用作
ocrvote
磁盘组)
IP
规划:
目前
IP
规划:
IP
Alias
备注
crmdb01
一节点
public IP
crmdb02
二节点
public IP
crmdb01-vip
一节点
VIP
crmdb02-vip
二节点
VIP
crmdb01-priv
一节点心跳
IP
crmdb02-priv
二节点心跳
IP
11g
后添加
SCAN-IP
:
IP
Alias
备注
crmdb01
一节点
public IP
crmdb02
二节点
public IP
crmdb01-vip
一节点
VIP
crmdb02-vip
二节点
VIP
crmdb01-priv
一节点心跳
IP
crmdb02-priv
二节点心跳
IP
crmdb-scan
SCAN-IP(IP
待定
)
升级流程
整体升级流程
:
(
11
月
18
号)
步骤
流程计划
时间估算
1
CRM 10gRAC
环境开始备份,上传安装介质
1
个小时(不停机做)
2
检查
OS
资源
双节点检查
创建
grid
用户
30
分钟
(不停机做)
3
停止
CRM
双节点资源
10
分钟
(业务停止)
4
删除
10g RAC
启动文件
5
分钟
(业务停止)
5
安装
11g R2 Grid
2
小时
(业务停止)
6
添加
10g
软件至
11g
集群中管理
10
分钟
(业务停止)
7
正常业务测试
30
分钟
(业务停止)
11
月
21
号
步骤
流程计划
时间估算
1
安装
11g rdbms
软件(
11.2.0.4
)
在线操作
(业务不停止)
2
升级前检查环境
utlu112i.sql
脚本
在线操作
(业务不停止)
3
正式升级(刷数据字典,刷
RAC
组件)
80
分钟
(业务停止)
4
编译无效对象
20
分钟
(业务停止)
5
删除原先
10g rdbms
服务,重新注册
11g
环境的服务
20
分钟
(业务停止)
7
正常业务测试
总结时间:
总计花费
2
天时间
业务停止时间
5
小时(数据库层面)
18
号详细操作流程
前期准备
前期准备包括备份及介质上传等:
备份包括备份10g RAC启动项文件等:
cp /etc/init.cssd /oracle/bak/.
cp /etc/init.crs /oracle/bak/.
cp /etc/init.crsd /oracle/bak/.
cp /etc/init.evmd /oracle/bak/.
cp /etc/inittab.crs /oracle/bak/.
cp /etc/inittab /oracle/bak/.
tar -cvf /oracle/bak/rc2.d.tar /etc/rc.d/rc2.d
tar -cvf /oracle/bak/oracle.tar /etc/oracle
将
$ORACLE_BASE/
下的
orainventory
也备份并删除
上传
11.2.0.4 grid
及
rdbms
介质
更新检查
OS
环境
no -a|egrep "tcp_recvspace| tcp_sendspace | udp_recvspace | rfc1323| sb_max | ipqmaxlen |udp_sendspace"
通过以上值确认,对于不正确的进行修改:
no -p -o tcp_recvspace=65536
no -p -o tcp_sendspace=65536
no -p -o udp_sendspace=135168
no -p -o udp_recvspace=1351680
no -p -o rfc1323=1
no -p -o sb_max=4194304
no -r -o ipqmaxlen=512
创建grid用户并修改oracle用户参数
mkuser -a id=1001 pgrp=oinstall groups=oinstall,dba fsize=-1 cpu=-1 data=-1 core=-1 rss=-1 stack=-1 stack_hard=-1 capabilities=CAP_NUMA_ATTACH,CAP_BYPASS_RAC_VMM,CAP_PROPAGATE grid
chuser pgrp=oinstall groups=oinstall,dba fsize=-1 cpu=-1 data=-1 rss=-1 stack=-1 stack_hard=-1 capabilities=CAP_NUMA_ATTACH,CAP_BYPASS_RAC_VMM,CAP_PROPAGATE oracle
ssh
关系设置(设置grid 检查oracle)
#su – grid
$mkdir .ssh
$cd .ssh
$ssh-keygen –t rsa //
一路回车
$ssh-keygen –t dsa
$cat id_dsa.pub>authorized_keys
$cat id_rsa.pub>>authorized_keys
去除时间同步:
使用oracle时间同步服务
mv /etc/ntp.conf /etc/ntp.conf.bak
检查时区:
$ echo $TZ
$date
确保时区一致,两台主机的时间相差不超过
1
分钟
停止
CRM
双节点资源
双节点停止DBRA资源
双节点停止rdbms nodeapps asm crs资源
srvctl stop nodeapps –n crmdb01
srvctl stop nodeapps –n crmdb02
srvctl stop asm –n crmdb01
srvctl stop asm –n crmdb02
srvctl stop database –d crmdb
双节点root用户关闭crs
crsctl stop crs
删除
10g RAC
启动文件
删除启动配置文件:
rm /etc/init.cssd
rm /etc/init.crs
rm /etc/init.crsd
rm /etc/init.evmd
rm /etc/rc.d/rc2.d/K96init.crs
rm /etc/rc.d/rc2.d/S96init.crs
rm -Rf /etc/oracle/scls_scr
rm -Rf /etc/oracle/oprocd
rm /etc/inittab.crs
cp /etc/inittab.orig /etc/inittab
删除
/var/tmp/.oracle/
下面文件
删除 /tmp/.oracle/ 下面的文件
rm –rf /var/tmp/.oracle/*
rm –rf /tmp/.oracle/*
重启双节点主机:
shutdown –Fr
重启后检查是否还存在oracle进程
安装
11.2.0.4 grid
软件
解压介质:
11.2.0.4 grid
双节点运行
grid
下面的
rootpre
.sh
双节点环境检查
./runcluvfy.sh stage -pre crsinst -n crmdb01,crmdb02 -verbose
开始安装:
su – grid
./runInstaller
安装截图略
住
css
11g grid
用户下
root
用户:
# crsctl pin css -n
crmdb01
crmdb02
CRS-4664: Node
crmdb01
successfully pinned.
CRS-4664: Node
crmdb02
successfully pinned.
添加
10g
软件至
11g
集群中管理
1.
修改磁盘的权限,建议保持磁盘属主暂时不修改,确保权限为
660
2.
双节点修改
asm_diskstring
添加所有数据磁盘路径
3.
双节点
mount
磁盘组
由于在11g 的grid软件下管理10g的rdbms
所以我们在添加database 和instace 的时候需要用10g的rdbms 用户环境添加 即oracle用户的10g rdbms环境
srvctl add database -d crmdb -o /oracle/app/product/10.2.0/db_1
srvctl add instance -d crmdb -i crmdb1 -n crmdb01
srvctl add instance -d crmdb -i crmdb2 -n crmdb02
通过10g rdbms srvctl 命令启动数据库
检查local
_listener
和remot_listener
确保local_listener 和remot_listener 配置正确
remote_listener
:crmdb-scan:1521
local_listener
: (DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=130.36.23.7)(PORT=1521))))
回退采用删除
11g grid
安装介质
回退
10g
启动项
重新操作系统
通过
grid
用户
$ORACLE_HOME/deinstall
删除双节点
grid
安装信息
还原
10g RAC
启动文件
cp /oracle/bak/inittab /etc/inittab
cp /oracle/bak/inittab.crs /etc/inittab.crs
cp /oracle/bak/init.evmd /etc/init.evmd
cp /oracle/bak/init.crsd /etc/init.crsd
cp /oracle/bak/init.crs /etc/init.crs
cp /oracle/bak/init.cssd /etc/init.cssd
tar –xvf /oracle/bak/rc2.d.tar
tar –xvf /oracle/bak/oracle.tar
删除双节点/var/tmp/.oracle/下文件
重启操作系统:
Shutdown –Fr
21
号详细操作流程
软件安装
安装
11.2.0.4 rdbms
软件
可以在晚上
12
点前业务正常运行期间安装,不影响业务正常使用
切换到
oracle
用户
su – oracle
设置
DISPLAY
环境变量
export DISPLAY=
启动
OUI
开始安装
图形界面略
升级前环境检查
运行该脚本,检测升级环境
sqlplus '/as sysdba'
SQL> spool Database_Info.log
SQL> @ utlu112i.sql
。。。。。
Spool off
通过create pfile=’/tmp/upgrade/initzhcj.ora’ from spfile;
remote_listener crmdb-scan:1521
local_listener (DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=172. 16.10.46)(PORT=1521))))
开始通过产生的日志信息进行参数文件spfile的修改
无效对象表创建
在原生产库创建对象表
sqlplus “/as sysdba”
spool invald.lst
select owner,object_name,object_type,status from dba_objects where status<>'VALID';
select count(*),status from dba_objects group by status;
create table invalid_object_201311 as select * from dba_objects where status<>’VALID’;
create table old_objects as select * from dba_objects;
创建回退方案
1.
关闭数据库,停监听,停
dbconsole
停容灾
2.
创建闪回区及闪回区大小
3.
startup mount
create restore point upgrade_point
guarantee flashback database;
正式升级
拷贝原先生产库下dbs目录中文件至新的11g目录中,修改部分废弃参数,用pfile启动startup upgrade
升级数据库刷数据字典
SQL> STARTUP UPGRADE
SQL> SPOOL patch.log
SQL> @?/rdbms/admin/catupgrd.sql
SQL> SPOOL OFF
SQL> SHUTDOWN IMMEDIATE
SQL> STARTUP
SQL> EXEC DBMS_STATS.GATHER_DICTIONARY_STATS;
(收集系统数据字典统计信息)
刷新
RAC
组建
SQL>spool off
SQL>spool catclust.txt
SQL>@?/rdbms/admin/catclust.sql
SQL>spool off
无效对象编译
拷贝原
10g
中的密码文件,
tnsnames
.ora
文件等等
准备无效对象编译:
SQL> @?/rdbms/admin/utlrp.sql
在尝试脚本编译不成功的情况可以通过手动编译无效对象
select 'alter '||object_type|| ' ' || owner ||'.'||object_name || ' compile;' from dba_objects where status='INVALID';
升级失败的回退
1.
重定向到
10g rdbms
目录
$sqlplus / as sysdba
SQL>shutdown immediate
将profile重新指定到对应的原先10g目录
2.
闪回数据库
SQL>startup mount
SQL>select flashback_on from v$database;
SQL>flashback database to restore point upgrade_point;
SQL>shutdown immediate