一、主库暂停归档向备库传输:
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