首页 > 数据库 > Oracle > 数据库升级-物理刷新数据字典
数据库为 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 小时(数据库层面)
前期准备包括备份及介质上传等:
备份包括备份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 介质
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 分钟
双节点停止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
删除启动配置文件:
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
双节点运行 grid 下面的 rootpre .sh
双节点环境检查
./runcluvfy.sh stage -pre crsinst -n crmdb01,crmdb02 -verbose
开始安装:
su – grid
./runInstaller
安装截图略
11g grid 用户下 root 用户:
# crsctl pin css -n crmdb01 crmdb02
CRS-4664: Node crmdb01 successfully pinned.
CRS-4664: Node crmdb02 successfully pinned.
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
安装 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; (收集系统数据字典统计信息)
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
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23732248/viewspace-2710657/,如需转载,请注明出处,否则将追究法律责任。