oracle 停服升级的步骤和注意事项

来源:互联网 发布:山东大学齐鲁软件学院 编辑:程序博客网 时间:2024/05/08 16:31

停机升级的步骤和注意事项(从11.2.0.1升级到11.2.0.3)

Oracle 升级的步骤都差不多。 先升级Oracle software,然后升级Oracle instance


1.安装11.2.0.3的软件,放在不同的目录下 (主从都需要)

原$ORACLE_HOME:/home/oracle/app/oracle/product/11.2.0/dbhome_1

新$ORACLE_HOME:/home/oracle/app/oracle/product/11.2.0/dbhome_2


(1)将pfile文件,orapw文件复制到/home/oracle/app/oracle/product/11.2.0/dbhome_2/dbs (检查相关参数是否合理)

(2)将SystemInfo64.3.0.so 复制到/home/oracle/app/oracle/product/11.2.0/dbhome_2/lib

(3)修改listener.ora 连同tnsnames.ora sqlnet.ora ,复制到/home/oracle/app/oracle/product/11.2.0/dbhome_2/network/admin


检查数据库是否有patch需要更新,若有则打上最新的patch

unzip p14275605_11203_<platform>.zip

cd 14275605

opatch prereq CheckConflictAgainstOHWithDetail -ph ./

opatch apply


2.过多的审计信息可能会导致升级速度下降,可以在升级前将审计数据导出,并清理审计字典基表:

截断SYS.AUD$基表:

SQL>TRUNCATE TABLE SYS.AUD$;

 

3.同样的有必要清理10g后出现的回收站:

清理DBA回收站:

SQL>purge DBA_RECYCLEBIN;

SQL>purge user_RECYCLEBIN;


4.升级数据库有两种方法,一种是将服务切换到只读从库上,然后主库停机升级,将服务切换到主库,然后升级从库。

另一种方案是将主库的表空间置为只读,激活从库,升级从库,将服务切换到从库,然后升级主库。后面一种方案的好处

是万一升级过程遇到问题,可以直接将主库置为可读写,避免从库激活为主库可能出现的问题。


主库

alter system switch logfile;

alter tablespace USERS read only;

alter tablespace TESTINDEX read only;

alter tablespace TESTDATA read only;

alter system switch logfile;

alter system set log_archive_dest_state_2='defer' scope=both;


5.暂时关闭报警服务,从库激活为主库(激活过程正常,下面的描述是为了更完整些)

检查Gap:

sql> select thread#, low_sequence#, high_sequence# from v$archive_gap;

如果有,将对应的归档文件copy到备库,在注册它

sql>alter database register physical logfile 'filespec1';

激活:

SQL> alter database commit to switchover to primary;

SQL> shutdown immediate;

SQL> startup

当我们正常切换的时候,提示我们需要介质恢复的时候,就需要使用强行激活standby 库。 如:

SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;

ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY

*

ERROR at line 1:

ORA-16139: media recovery required

强制激活备库:

sql> alter database recover managed standby database cancel;

sql> recover standby database until cancel;

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

sql>alter database activate standby database;

sql>shutdown immediate;

sql>startup


6.添加两组大的归档文件

alter database add logfile group 7 size 1G;

alter database add logfile group 8 size 1G;


7.在升级前运行参数检查工具(注意:此步骤一定要在升级前的低版本中运行,执行的脚本必须在新软件的目录下)

sqlplus / as sysdba

SQL> SPOOL upgrade_info.log

SQL> @/home/oracle/app/oracle/product/11.2.0/dbhome_2/rdbms/admin/utlu112i.sql

SQL> SPOOL OFF

检查upgrade_info.log中的warning和error。


8.关闭数据库,关闭监听

shutdown immediate

lsnrctl stop


9.启动数据库

修改 ~/.bash_profile $ORACLE_HOME

create spfile from pfile;

STARTUP UPGRADE


10。开始数据库升级(耗时25分钟)

SPOOL upgrade.log

@?/rdbms/admin/catupgrd.sql

SPOOL off


11.重起数据库,检查数据库日志是否正确(2分钟)

shutdown immediate

startup


12、运行升级后工具(不用在upgrade模式下运行,1分钟)

@?/rdbms/admin/utlu112s.sql

@?/rdbms/admin/catuppst.sql


13、重编译:(2分钟 )

@?/rdbms/admin/utlrp.sql


14、检查数据库元件的状态(1分钟)

SELECT COMP_NAME, VERSION, STATUS FROM SYS.DBA_REGISTRY;

col namespace for a20;

col version for a15;

col comments for a40;

select namespace,version,comments from registry$history;


NAMESPACE                      VERSION                        COMMENTS

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

SERVER                         11.2.0.1                       BP10

                                                              view invalidation

SERVER                         11.2.0.3.0                     Upgraded from 11.2.0.1.0

SERVER                         11.2.0.3                       PSU 11.2.0.3.4

SERVER                         11.2.0.3                       PSU 11.2.0.3.4


15、重起数据库,检查数据库日志是否正确

shutdown immediate;

startup;


16、启动监听(1分钟)

lsnrctl start


17、检查关键sql的执行计划是否正确


18、通知应用开启服务


19、开启数据库报警


20. 修改/etc/oratab


21.删除两组大的redo log


alter database drop  logfile group 7;

alter database drop  logfile group 8;


22.重新搭建从库


23. 查看flashback_on


主库关闭闪回,从库开启闪回。


24. 修改备份


备份在从库上进行,主库定期删除归档文件。


0 0
原创粉丝点击