生产环境oracle10g升级至11g准备工作

最近需要生产系统从10.2.0.5.升级到11.2.0.2.0

做了不少的准备工作,硬是在周末自己搭了测试环境,照着自己准备的升级步骤练习了一番。

除过基本的检查,从Metalink上下载了最新的psu,和公司的资深dba确认后,提供了给了客户。这样数据库就算是升级到11.2.0.2.10

主要有以下的步骤 :

1.new ORACLE_HOME(11g), old ORACLE_HOME (10g)

--这些需要提前提供给客户,作为基本的约定

2.install oracle software 11.2.0.2.0 on production

--总共有7个DB,时间很紧,所以准备要充分

3.apply DB patch additional if needed

--patch详细信息参见 Note:16056267.8

11.2.0.2.10 (Apr 2013) Database Patch Set Update (PSU) Patch:16056267

4.init parameter tuning

--这个也是必需的,主要有三个方面

    11g里面可能过期的参数,如user_dump......

     11g里面新增加的参数,如diag....,有些需要考虑是否调优。

     10g里面调优的隐含参数是否需要保留...

5.OS kernel tuning

--系统级的调优也是必须的。需要找专门的team来提供意见。

6.PET and Production compare

--准生产环境的准备,需要做足前期的测试工作。

7.confirm details with App team if have any concern.

--对于升级过程中的部分问题,如果不能确认,需要找开发或者其他的team来协调。

8.full backup or cold backup

--这个取决于具体的环境实施方案,保证充足的备份很重要,生产系统做cold backup应该很悬了。

9.check if there are crontab running or scheduled.

--这个需要提前考虑,一般的项目都会有系统监控,要保证在升级过程中排除不必要的影响。如果有goldengate同步之类的,也需要提前协调好,保证不会影响。

10.check if all database components are valid

--可以使用如下的sql来

select substr(comp_name,1,40) comp_name, status, 

substr(version,1,10) version from dba_registry 

order by comp_name;   --组建都应该是valid状态。

11.check if all objects are valid 

--检查object状态也应该是valid.

if there are component or objects invalid, need to use utlrp.sql

to recompile

12.check if duplicate objects owned by SYS and SYSTEM Schema

--从dba_objects里查询,保证sys,system下的没有重复的object,,以下是期望的结果,如果有其他的,需要查看metalink文档来处理。Note,1030426.6

 OBJECT_NAME OBJECT_TYPE

------------------------------ -------------------

AQ$_SCHEDULES TABLE

AQ$_SCHEDULES_PRIMARY INDEX

DBMS_REPCAT_AUTH PACKAGE

DBMS_REPCAT_AUTH PACKAGE BODY

13.disable custom triggers

--为了排除trigger的导致的ddl影响,建议还是disable custom trigger.

14.Copy Pre-upgrade Information script. to a local folder

--建一个临时的文件夹,把升级所需的脚本拷贝过去。如脚本rdbms/admin/utlu112i.sql 需要从11ghome下rdbms/admin提前拷贝过去。

15.Run Pre-upgrade Information Tool on target database (10g)

--spool一下,做升级前的检查工作。

sqlplus / as sysdba

spool pre_upgrade_info.log

@utlu112i.sql

spool off

16.Check the output of the Pre-Upgrade Information Tool

--这里需要注意warning信息,清空recyclebin,保证timezone file必须是v4,要不升级100%失败。还有要注意部分参数,根据提示进行修改。

17.backup  /etc/oratab,tnsnames.ora,listener.ora           sqlnet.ora,password file, pfile,spfile,profile

--备份必要的文件,作为rollback的备份。

18.Copy Network files to 11g Home and modify the home in listener

--拷贝tnsnames.ora,listener.ora到11g home的对应目录下。

19.Copy password file to 11g Home

--拷贝密码文件

20.Prepare a separate .bash_profile to set 11g environment variables

--profile文件也需要做相应修改。

21.Collect dictionary stats

--使用如下的包来

EXEC DBMS_STATS.GATHER_DICTIONARY_STATS;

22.Stop Listener services of the target database.

--停掉监听,开始升级

23.Shutdown the target database (10g)

--down掉数据库,清空缓存,这样起来以后跑脚本会排出很多干扰,速度也快一些。

24.Set working environment to 11g ORACLE_HOME. Make sure multiple ORACLE HOMEs are not in the PATH variable.

25.Copy spfile to 11g home.

26.stop source(10g) DB,Start the db in nomount,mount mode, and make necessary changes/adjustments in spfile with scope=spfile.

--这一步,需要修改compatible参数,调节一些参数。(之前的步骤进行参数调优的时候准备好的)  

最后create spfile from pfile;

27.Shutdown and startup the db in upgrade mode.

--启动数据库,使用spfile,

--startup upgrade

28.Run upgrade script. Exit the session after upgrade.

--这个是最关键的脚本,运行时间也会长一些。,脚本运行完成后,会自动shutfdown immediate

spool upgrade11g2.log

@?/rdbms/admin/catupgrd.sql

Spool off

Exit

29.Verify the log for errors. Ignore “table or view not found” errors

--如果有部分错误,需要检查,如果有些错误如memory issue 不能忽略,需要重新运行脚本

30.Startup the db in normal mode and run post upgrade information tool. Verify the status of each db component and address the failures.

--启动数据库,运行如下的脚本。

spool post_upgrade_info.txt

@?/rdbms/admin/utlu112s.sql

Spool

31.Continue upgrade (new in 11g)  

--继续执行脚本,属于post upgrade脚本。

Spool upgrade11g2.log

@?/rdbms/admin/catuppst.sql

Spool off

32.Recompile invalid objects

33.enable custom triggers

--enable之前disable的trigger

34.update /etc/oratab with 11g home

--更改该配置,在某些应用中会用到。

35.rename spfile/pfile from 10g home

--保证10g的参数不被使用,保证不会有错误的操作导致不必要的麻烦。

36.Start Listener services of the target database with 11g HOME.

--确定后启动监听。

37.DBA sanity check(check if mv is able to refresh,db components are valid,check if there are ORA erros from logs)

--DBA先做一些简单的sanity test.保证环境交给客户之前不会有基本的错误。

38.Check the connectivity from client

--然后从客户端进行测试,连接是否正常。

39.Backup of DB after upgrade

--进行必要的备份。

40.upgrade rman catalog if necessary

--如果使用rman做备份恢复,需要升级catalog

41.change crontab 

--可以修改crontab,使其生效。

--大体的步骤就以上这么多,也希望大家拍砖,提供修正意见。:)

-------------------------------------------------------------------------------

2013-0714:补充:升级完之后 升级timezone file.

SQL> select *from v$timezone_file;

FILENAME                VERSION

-------------------- ----------

timezlrg_4.dat                4

需要升级到14,要不可能会有一些问题。 参照文档Note:977512.1:

时间: 2024-11-05 20:36:40

生产环境oracle10g升级至11g准备工作的相关文章

使用IBM性能分析工具解决生产环境中的性能问题

序言 企业级应用系统软件通常有着对并发数和响应时间的要求,这就要求大量的用户能在高响应时间内完成业务操作.这两个性能指标往往决定着一个应用系统软件能否成功上线,而这也决定了一个项目最终能否验收成功,能否得到客户认同,能否继续在一个行业发展壮大下去.由此可见性能对于一个应用系统的重要性,当然这似乎也成了软件行业的不可言说的痛 -- 绝大多数的应用系统在上线之前,项目组成员都要经历一个脱胎换骨的过程. 生产环境的建立包含众多方面,如存储规划.操作系统参数调整.数据库调优.应用系统调优等等.这几方面互

《构建高可用Linux服务器 第3版》—— 3.6 生产环境下的Shell脚本分类

3.6 生产环境下的Shell脚本分类 生产环境下的Shell脚本作用还是挺多的,这里根据3.1节所介绍的日常工作中Shell脚本的作用,将生产环境下的Shell脚本分为备份类.监控类.统计类.开发类和自动化类.前面3类从字面意义上看比较容易理解,后面的我稍微解释一下:开发类脚本是用Shell来配合PHP做一些非系统类的管理工作,比如SVN的发布程序等:而自动化类脚本则利用Shell自动来替我们做一些繁琐的工作,比如自动生成及分配密码给开发组的用户或自动安装LNMP环境等.下面我会就这些分类举一

python项目在无外网的生产环境解决沙盒依赖问题

python项目在无外网的生产环境解决沙盒依赖问题 在我们实际的生产项目部署过程中,比如银行,政务内网,无法访问某些依赖源.结合实际情况,我们看下如何解决这个问题. 开发环境 建立项目开发路径 mkdir -p /data/python/project/ 我们先查看是否有pip命令工具pip的命令行安装看官网链接:https://pip.pypa.io/en/stable/installing/#installing-with-get-pip-py root@-dev:/data/python/

MySQL数据库生产环境的维护工作总结的经验

 从过往MySQL数据库生产环境的维护工作中,总结的一些小经验和知识,未必有多深奥,但是对我们消除隐患,确保MySQL数据库生产环境四个9的作用非常有效之一的手段,运维人员要非常注意细节,尽量减低故障发生的概率. (一) DML语句书写建议 (1). DML语句不允许出现@number方式替代字段名称 不合理的写法: UPDATE table_name SET @1=NOW() WHERE @2=1; 正确的写法: UPDATE table_name SET column_name1=NOW()

基于WebSphere Commerce的电子商务应用性能优化(6) 生产环境性能管理

WebSphere Commerce 生产环境性能管理 以 WebSphere Commerce 为核心的电子商务网站是由多种软硬件产品共同组成的复杂系统.为了保证系统 健康地运行,运维团队需要对整个网站做全面的性能监控,并且采取必要的主动措施以保持系统性能.本文将 介绍一些 WebSphere Commerce 电子商务网站性能监控和性能维护的最佳实践. WebSphere Commerce 电子商务网站的性能监控 性能监控就是通过各种监控工具了解当前应用系统运行的状况,发现已经存在的性能问题

生产环境使用 pt-table-checksum 检查MySQL数据一致性

公司数据中心从托管机房迁移到阿里云,需要对mysql迁移(Replication)后的数据一致性进行校验,但又不能对生产环境使用造成影响,pt-table-checksum 成为了绝佳也是唯一的检查工具. pt-table-checksum 是 Percona-Toolkit 的组件之一,用于检测MySQL主.从库的数据是否一致.其原理是在主库执行基于statement的sql语句来生成主库数据块的checksum,把相同的sql语句传递到从库执行,并在从库上计算相同数据块的checksum,最

mysql双主问题-紧急求助:生产环境,mysql双主结构,备机同步DDL语句成功,但是同步DML语句失败

问题描述 紧急求助:生产环境,mysql双主结构,备机同步DDL语句成功,但是同步DML语句失败 问题描述:双主架构环境,最近在主机上执行DDL语句能成功同步到备机,但是在主机上执行DML语句失败,请各位帮忙看一下,谢谢! Linux版本: Red Hat Enterprise Linux Server release 5.4 (Tikanga) mysql版本 +----------------------------+ | @@version | +---------------------

生产环境中的容器之工作流

本文讲的是生产环境中的容器之工作流,[编者的话]很多公司已经在生产环境里大规模使用容器.前一篇文章里介绍了Spotify,DramaFever,Built.io和IIIEPE如何以及为什么使用容器.本文继续深入讨论这几个公司的工作流. 构建应用程序以及管理pull请求 在生产环境使用容器的一大吸引人之处是创建无缝的开发到生产环境的能力,最先代码在开发人员的笔记本上,然后能够整体移动到测试环境,并且随后直接部署,而不会因为底层基础架构环境的改动而导致问题. IIIEPE怎么做 Luis Elizo

上传附件报错-生产环境上传稍微大一点的附件报错

问题描述 生产环境上传稍微大一点的附件报错 ** 大牛们,大家好! ** 这个问题已经困扰我很久了.生产环境(简称A)上老是出错,而测试环境(简称B)一切正常. 我们的框架是JAVA语言编写,基于struts1技术总监自己搭的框架,我在struts-config.xml里面已经配置了最大size,如下:<controller nocache="true" inputForward="true" maxFileSize="50M" />