一、主库暂停归档向备库传输:

alter system set log_archive_dest_state_2=defer scope=both;

二、备库关闭日志应用 alter database recover managed standby database cancel;

三、备库操作,安装新软件:

关闭数据库,监听

shutdown immediate

lsnrctl stop

1、解压缩软件包

unzip p13390677_112040_Linux-x86-64_1of7.zip

unzip p13390677_112040_Linux-x86-64_2of7.zip

2、创建新的oracle_home(oracle用户下操作)

oracle用户下操作

mkdir -p /u01/app/oracle/product/11.2.0/dbhome_2

3、环境变量设置,在安装前一定要取消Oracle用户的ORACLE_BASE,ORACLE_HOME,ORACLE_SID等环境变量设置。

umask 022

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1

export ORACLE_SID=orcl

export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib

4、安装Oracle 11.2.0.4软件

cd /mnt/database/response/ cp db_install.rsp db_install.rsp.bak vi db_install.rsp

####################内容如下,根据oracle id的情况,将UNIX_GROUP_NAME、oracle.install.db.DBA_GROUP、oracle.install.db.OPER_GROUP进行修改

oracle.install.option=INSTALL_DB_SWONLY // 29行

UNIX_GROUP_NAME=oinstall // 42行

INVENTORY_LOCATION=/u01/app/inventory // 49行

SELECTED_LANGUAGES=en,zh_CN // 86行

ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_2 // 91行

ORACLE_BASE=/u01/app/oracle // 96行

oracle.install.db.InstallEdition=EE // 107行

oracle.install.db.DBA_GROUP=dba // 154行

oracle.install.db.OPER_GROUP=dba // 160行

DECLINE_SECURITY_UPDATES=true

#####执行安装

cd /mnt/database/ ./runInstaller -silent -ignorePrereq -ignoreSysPrereqs -responseFile /mnt/database/response/db_install.rsp

####根据提示运行脚本 As a root user, execute the following script(s): 1. /u01/app/oracle/product/11.2.0/dbhome_2/root.sh

5、修改为/etc/oratab文件为11.2.0.4的路径

vi /etc/oratab

###内容修改为

orcl:/u01/app/oracle/product/11.2.0/dbhome_2:N

6.复制参数文件和监听文件到新的目录,看情况修改文件

cp /u01/app/oracle/product/11.2.0/dbhome_1/dbs/* /u01/app/oracle/product/11.2.0/dbhome_2/dbs/

cp -r /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/* /u01/app/oracle/product/11.2.0/dbhome_2/network/admin/

修改新环境里的listener.ora里的oracle_home为新目录(没有这项就不用改)

7、备库启动到mount状态 环境变量修改为新目录 ORACLE_HOME 11.2.0.4 新目录

启动数据库到mount状态,启动监听。

四、主库操作,安装新软件,升级数据库:

1.停止监听,关闭数据库:

$ lsnrctl stop SQL> shutdown immediate

2.解压缩软件包

unzip p13390677_112040_Linux-x86-64_1of7.zip

unzip p13390677_112040_Linux-x86-64_2of7.zip

3.创建新的oracle_home(oracle用户下操作) oracle用户下操作

mkdir -p /u01/app/oracle/product/11.2.0/dbhome_2

4、环境变量设置,在安装前一定要取消Oracle用户的ORACLE_BASE,ORACLE_HOME,ORACLE_SID等环境变量设置。

umask 022

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1

export ORACLE_SID=orcl

export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib

5、安装Oracle 11.2.0.4软件 su - oracle cd /mnt/database/response/ cp db_install.rsp db_install.rsp.bak vi db_install.rsp

####################内容如下,根据oracle id的情况,将UNIX_GROUP_NAME、oracle.install.db.DBA_GROUP、oracle.install.db.OPER_GROUP进行修改

oracle.install.option=INSTALL_DB_SWONLY // 29行

UNIX_GROUP_NAME=oinstall // 42行

INVENTORY_LOCATION=/u01/app/inventory // 49行

SELECTED_LANGUAGES=en,zh_CN // 86行

ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_2 // 91行

ORACLE_BASE=/u01/app/oracle // 96行

oracle.install.db.InstallEdition=EE // 107行

oracle.install.db.DBA_GROUP=dba // 154行

oracle.install.db.OPER_GROUP=dba // 160行

DECLINE_SECURITY_UPDATES=true //400行·

#####执行安装 cd /mnt/database/ ./runInstaller -silent -ignorePrereq -ignoreSysPrereqs -responseFile /mnt/database/response/db_install.rsp

####根据提示运行脚本 As a root user, execute the following script(s): 1. /u01/app/oracle/product/11.2.0/dbhome_2/root.sh

6、升级前的准备,执行 utlull2i.sql

export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 //这里是原来的home目录

export ORACLE_SID=orcl

$ORACLE_HOME/bin/sqlplus / as sysdba

SQL> @/u01/app/oracle/product/11.2.0/dbhome_1/rdbms/admin/utlu112i.sql //执行新目录的脚本检查

SQL> PURGE DBA_RECYCLEBIN; 清空回收站

execute dbms_stats.gather_dictionary_stats; 收集统计信息

7、确认关闭数据库,修改环境变量为新的:

8、修改为/etc/oratab文件为11.2.0.4的路径 vi /etc/oratab ###内容修改为 orcl:/u01/app/oracle/product/11.2.0/dbhome_2:N

9、复制参数文件和监听文件到新的目录,看情况修改文件

cp /u01/app/oracle/product/11.2.0/dbhome_1/dbs/* /u01/app/oracle/product/11.2.0/dbhome_2/dbs/

cp -r /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/* /u01/app/oracle/product/11.2.0/dbhome_2/network/admin/

修改新环境里的listener.ora里的oracle_home为新目录(没有这项就不用改)

11、升级

####修改.bash_profile,使用新的ORACL_HOME

export ORACLE_HOME=$ORACLE_BASE/oracle/product/11.2.0/dbhome_2

###升级实例

sqlplus / as sysdba

export ORACLE_SID=orcl

SQL> startup upgrade;

SQL> @?/rdbms/admin/catupgrd.sql

SQL> startup SQL> @?/rdbms/admin/catuppst.sql

SQL> @?/rdbms/admin/utlrp.sql shutdown immediate

确认开启监听:lsnrctl start

sqlplus / as sysdba startup

12、检查 ######数据库版本

col comp_name for a45

col version for a15

col status for a10

col schema for a15

set line 200

set pagesize 999

select comp_name,version,status,schema from dba_registry; select * from v$version;

#####检查无效对象

col object_name for a30

col object_type for a20

col status for a10

select owner,object_name,object_type,status from dba_objects where status<>'VALID';

#####检查时区文件版本

SELECT version FROM v$timezone_file; VERSION


14

五、主库启用归档向备库传输

alter system set log_archive_dest_state_2=enable scope=both ; show parameter log_archive_dest_state_2;

六、备库开启日志恢复

--mount状态下开启日志恢复

startup mount alter database recover managed standby database disconnect from session;--等待恢复完成...

select thread#,sequence#,archived,applied from gv$archived_log order by thread#,sequence#;查看日志应用情况都是yes,再下一步:


--取消日志恢复

alter database recover managed standby database cancel;

--打开数据库

alter database open; --open状态下开启日志恢复

alter database recover managed standby database using current logfile disconnect from session;

七、检查DG状态等: ------检查主备库日志序列号是否一致:

select thread#,max(sequence#) from gv$log_history group by thread#;

select database_role,protection_mode,open_mode from v$database;

DATABASE_ROLE PROTECTION_MODE OPEN_MODE


PHYSICAL STANDBY MAXIMUM PERFORMANCE READ ONLY WITH APPLY