共计 3907 个字符,预计需要花费 10 分钟才能阅读完成。
oracle 10g RAC 怎么升级到 oracle 11g RAC,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
oracle 10g RAC 升级到 oracle 11g RAC
环境概要介绍
由于旧的环境硬件不足购支持生产系统的需要,需要切换到新的硬件,并计划升级数据库的版本,从 oracle RAC 10.2.0.5 版本升级到 oracle RAC 11.2.0.4,升级思路如下:
1、搭建好 oracle RAC 11g 环境,在这里不详细说明如何搭建了。
2、在 oracle RAC 11g 的节点 1 服务器上,新开一个用户 ora10g,然后安装好 oracle 10.2.0.5 单机版本数据库,这里需要注意的是 ora10g 的所属组,在 ORACLE_HOME/bin/oracle 的权限必须有权限,才可以访问 oracle 11g 集群的 asm 组。
3、搭建 oracle RAC 10.2.0.5 到 oracle RAC 11g 的节点 1 的 DATAGUARD 环境。这里不细说,这里需要注意的是,备库使用的 11g 的 asm 存储数据库文件。
4、升级当晚,以 failover 的方式结束 ora10g 的备机角色,转为主,运行 11g 的脚本,关闭数据库。
5、使用 11g 的数据库软件打开 ora10g 的数据库文件。
6、使用脚本升级数字字典。
7、注册数据库服务到集群管理。
8、检查配置。
系统环境说明:
192.168.1.121—》原使用 oracle 10.2.0.5 集群数据库环境。—》oracle 用户
192.168.42.12—》新使用 oracle 11g 集群环境,这里有 ora10g、oracle、grid 用户
一、检查 DG 同步
登陆 192.168.1.121,对数据库进行连续切换几个日志。
alter system archive log current;
检查日志是否同步,分别在 192.168.1.121、192.168.42.12 进行检查同步。
select * from v$log_history;
select * from v$archive_dest;
二、关闭 192.168.1.121 主库数据库和停止监听
lsnrctl stop;
srvctl stop database –d etest;
4.5 切换备机(192.168.42.12)
使用的是 failover 的方式。
使用 ora10g 用户登陆 192.168.42.12 服务器,
在主库 (192.168.1.121) 发起,将备机日志功能发送去掉。
alter system set log_archive_dest_3=’’scope=both;
备机(192.168.42.12)ora10g 用户上执行
sqlplus / as sysdba
alter database recover managed standby database finish;
alter database commit to switchover to primary;
shutdown immediate;
startup;
在这里如果打开数据库有问题,切记要解决后才用 11g 的脚本打开,否则升级失败。
将 11g $ORACLE_HOME/rdbms/admin 下的 utlu112i.sql 脚本 copy 到 10g 的 $ORACLE_HOME/rdbms/admin 下,并在 10g 上执行,这个脚本可以检查升级前的一些信息。如果不满足条件,会列出。
sqlplus / as sysdba
spool upgrade_info.log
@?/rdbms/admin/utlu112i.sql
然后关闭 oracle 10g 的数据库。
shutdown immediate;
以上这个脚本需要特别小心,如果忘记运行,一旦用 11g 打开,整个环境就破坏了,不可逆。
登陆 oracle(192.168.42.12)用户,确定实例名称都配置正确。
使用 oracle 11g 软件打开 10g 的库,升级数据字典。
使用已经定义的 initetest1.ora 文件,升级完成使用 spfile。这里的 initetest1.ora 参数不具体给出,自己可以拿一个集群的例子修改即可。
sqlplus / as sysdba
startup upgrade;
upgrade 模式下运行脚本:catupgrd.sql
执行语句:
这个跑的时间比较长,大概 20 分钟,最好放到后台去跑,在这里,测试的时候由于 temp 临时表空间由于空间不足导致升级脚本跑失败。所以投产时,请确认 temp 空间是否有调整到合适的值,重新跑脚本需要重启数据库,否则 session 会挂起。
确定新库的临时表空间是否存在
select * from dba_temp_files;
扩大临时表空间:
alter database tempfile +DATA/etest/temp01.dbf resize 4g;
sqlplus -S -L / as sysdba OEF
salter database open upgrade;
pool upgrade.log
@?/rdbms/admin/catupgrd.sql
OEF
脚本跑完后,自动关闭了数据库。
例如:
Total Upgrade Time: 00:17:01
PL/SQL procedure successfully completed.
Commit complete.
Database closed.
Database dismounted.
ORACLE instance shut down.
然后启动数据库,显示本次升级过程的摘要。
sqlplus / as sysdba
startup;
@?/rdbms/admin/utlu112s.sql
一般无报错提示
执行 catuppst.sql 脚本,不需要在 upgrade 模式下执行,执行时间 2 分钟
@?/rdbms/admin/catuppst.sql
然后是编译无效对象,先查看有多少个无效对象:
select count(*) from dba_invalid_objects;
COUNT(*)
———-
5875
select distinct object_name from dba_invalid_objects;
这个脚本运行时间较长,大概 2 分钟,放到后台运行。
sqlplus -S -L / as sysdba OEF
@?/rdbms/admin/utlrp.sql
最后检查一下无效对象:
select count(*) from dba_invalid_objects;
最后检查组件状态
col comp_name for a40
set wrap off
select comp_name,version, status from dba_registry;
1.1 注册集群数据库
使用 spfile 启动数据库,修改 initetest1.ora 配置文件
create spfile= +DATA/etest/spfileetest.ora from pfile;
这里必须使用 spfile,否则以后生产无法动态修改参数。
cat initetest1.ora
SPFILE= +DATA/etest/spfileetest.ora
修改集群参数
alter system set cluster_database=true scope=spfile;
shutdown immediate
startup
启动数据库
Startup
修改相关的参数:
以下是参数可提前修改好,注意检查
alter system set cluster_database=true scope=spfile sid= etest1
alter system set cluster_database=true scope=spfile sid= etest2
alter system set instance_number=1 scope=spfile sid= etest1
alter system set instance_number=2 scope=spfile sid= etest2
alter system set thread=1 scope=spfile sid= etest1
alter system set thread=2 scope=spfile sid= etest2
alter system set undo_tablespace= UNDOTBS1 scope=spfile sid= etest1
alter system set undo_tablespace= UNDOTBS2 scope=spfile sid= etest2
添加实例和数据库到集群管理
登楼集群节点 2
crsctl start crs
启动数据库
Sqlplus / as sysdba
Startup
添加集群服务
使用 oracle 用户添加
srvctl add database -d etest -o /u01/app/oracle/product/11.2.0/dbhome_1 -p +DATA/etest/spfileetest.ora -r primary -y AUTOMATIC
srvctl add instance -d etest -i etest1 -n cpsdb01
srvctl add instance -d etest -i etest2 -n cpsdb02
检查服务
crs_stat -t -v
另外可检查
1、审计参数关闭。
2、dba_profile,检查 profile 是否配置合理。
3、Process 参数配置是否合理
4、密码验证延迟参数 event 配置。
5、内存 sga、pga 配置
6、打开 flashback database 配置
7、归档日志打开
看完上述内容,你们掌握 oracle 10g RAC 怎么升级到 oracle 11g RAC 的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注丸趣 TV 行业资讯频道,感谢各位的阅读!