zoukankan      html  css  js  c++  java
  • Oracle DataGuard 升级 [11.2.0.1 -> 11.2.0.4]

    Oracle DataGuard 升级 [11.2.0.1 -> 11.2.0.4]
    **Primary: **11.2.0.1 单机,Site A。
    Standby: 11.2.0.1 单机,Site B、Site C。
    当前DG环境示意图:
    DG环境
    需求:升级至11.2.0.4
    升级思路:
    主库暂停归档传输;备库安装新版本软件,备库启动到mount;主库安装软件,主库升级数据库,主库启用归档传输,备库开启日志恢复。

    注意:
    11g新版本软件安装到一个新目录下,注意copy之前的spfile、密码文件、network file等(监听配置文件的静态监听部分需要修改);
    备库只升级软件版本。数据库升级是通过主库升级后通过应用主库归档完成升级和同步的。

    1.主库暂停归档向备库传输

    show parameter log_archive_dest_state_X alter system set log_archive_dest_state_X=defer scope=both sid='*';

    这里是暂停Site A的主库的log_archive_dest_state_2和log_archive_dest_state_3

    show parameter log_archive_dest_state_2
    show parameter log_archive_dest_state_3
    
    alter system set log_archive_dest_state_2=defer scope=both sid='*';
    alter system set log_archive_dest_state_3=defer scope=both sid='*';
    

    2.备库在新目录下安装新版本软件

    **2.1 关闭数据库,监听。**
    shutdown immediate
    lsnrctl stop
    

    2.2 备库在新目录下安装Oracle 11.2.0.4 软件。
    两个备库操作方法一样,以Site C为例:
    --Site C:

    --创建新的$ORACLE_HOME目录
    $ mkdir -p /u01/app/oracle/product/11.2.0.4/dbhome_1
    
    --编辑oracle用户环境变量,修改ORACLE_HOME变量值为新的目录
    vi ~/.bash_profile
    export ORACLE_HOME=$ORACLE_BASE/product/11.2.0.4/dbhome_1
    

    3.备库启动到mount状态

    环境变量修改为新目录 ORACLE_HOME 11.2.0.4 新目录注意copy之前的spfile和network file(tnsnames.ora listener.ora)等

    两个备库操作方法一样,以Site C为例:
    --Site C:

    --network file(tnsnames.ora listener.ora sqlnet.ora)
    [oracle@oracle2 admin]$ cp /u01/app/oracle/product/11.2.0/network/admin/*.ora /u01/app/oracle/product/11.2.0.4/dbhome_1/network/admin/
    
    --SPFILE
    cp /u01/app/oracle/product/11.2.0/dbs/spfileorcl.ora /u01/app/oracle/product/11.2.0.4/dbhome_1/dbs/
    
    

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

    4.主库安装软件,升级数据库

    安装、升级相关过程:

    4.1 备份数据库
    升级是一个很大的动作,升级前需要事先备份数据库。

    --rman.sql
    more rman.sql 
    run{
      allocate channel d1 TYPE disk;
      allocate channel d2 TYPE disk;
      allocate channel d3 TYPE disk;
      allocate channel d4 TYPE disk;
      backup as compressed backupset database format '/home/oradata/rman/data_%d_%T_%s.bak' plus archivelog format '/home/oradata/rman/arch_%d_%T_%s.bak';
      release channel d1;
      release channel d2;
      release channel d3;
      release channel d4;
     } 
    
    --rman.sh
    cat rman.sh
    #!/bin/bash
    export ORACLE_BASE=/u01/app/oracle
    export ORACLE_HOME=$ORACLE_BASE/product/11.2.0
    export ORACLE_SID=orcl
    export LD_LIBRARY_PATH=$ORACLE_HOME/lib
    export PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin
    rman target / @/home/oradata/rman/rman.sql log=/home/oradata/rman/rman.log 
    
    --nohup 执行 备份数据库
    nohup sh rman.sh &
    

    4.2 关闭数据库,监听
    停止监听,关闭数据库:

    $ lsnrctl stop
    SQL> shutdown immediate 
    

    4.3 新目录下安装新版本软件
    主库:

    ./runInstaller 图形安装新版本软件(upgrade)。
    root需要执行的脚本按提示执行。
    注意,监听程序不需要配置。

    4.4 旧版本软件执行升级检查
    在11.2.0.1的sqlplus 执行11.2.0.4的utlu112i.sql,进行升级检查。

    $ sqlplus / as sysdba 
    
    SQL> startup 
    
    SQL> SPOOL upgrade_info.log
    SQL> @/u01/app/oracle/product/11.2.0.4/dbhome_1/rdbms/admin/utlu112i.sql 
    SQL> SPOOL OFF
    

    根据提示修正不符合升级条件的地方。

    --purge DBA_RECYCLEBIN; 
    select count(*) from DBA_RECYCLEBIN; 
    purge DBA_RECYCLEBIN; 
    --EXECUTE dbms_stats.gather_dictionary_stats;
    EXECUTE dbms_stats.gather_dictionary_stats;
    

    4.5 升级前确认无效对象数量

    select count(*) from dba_objects where status<>'VALID'; 
    这里是0。
    
    --正常关闭数据库:
    shutdown immediate
    

    4.6 新版本软件对应的环境变量
    修改环境变量中指定11.2.0.4,并用source或者重新使用oracle用户登录生效

    export ORACLE_BASE=/u01/app/oracle
    export ORACLE_HOME= /u01/app/oracle/product/11.2.0.4/dbhome_1
    

    4.7 新版本软件环境,spfile,密码文件和网络配置相关文件
    copy 参数文件spfile, network file「tnsnames.ora listener.ora sqlnet.ora」, 密码文件,

    --拷贝参数文件spfile:
    [oracle@oracle1 ~]$ cp /u01/app/oracle/product/11.2.0/dbs/spfileorcl.ora /u01/app/oracle/product/11.2.0.4/dbhome_1/dbs/
    
    --拷贝密码文件:
    [oracle@oracle1 ~]$ cp /u01/app/oracle/product/11.2.0/dbs/orapworcl /u01/app/oracle/product/11.2.0.4/dbhome_1/dbs/orapworcl
    
    --拷贝网络配置相关文件「tnsnames.ora listener.ora sqlnet.ora」
    [oracle@oracle1 ~]$ cp /u01/app/oracle/product/11.2.0/network/admin/*.ora /u01/app/oracle/product/11.2.0.4/dbhome_1/network/admin/
    
    --修正DG listener.ora 中静态监听内容(ORACLE_HOME),然后重启监听文件
    SID_LIST_LISTENER=
    (SID_DESC=(GLOBAL_DBNAME = orcl)(ORACLE_HOME = /u01/app/oracle/product/11.2.0.4/dbhome_1)(SID_NAME = orcl)
    )
    

    4.8 升级数据库

    --upgrade模式打开数据库
    SQL> startup UPGRADE
    
    SQL> @?/rdbms/admin/catupgrd.sql
    
    SQL> startup
    
    SQL> @?/rdbms/admin/utlu112s.sql
    
    SQL> select count(*) from dba_objects where status<>'VALID'; 
    460
    SQL> @?/rdbms/admin/utlrp.sql
    0
    
    SQL> shutdown immediate
    SQL> startup
    

    5.主库启用归档向备库传输

    show parameter log_archive_dest_state_X alter system set log_archive_dest_state_X=enable scope=both sid='*';
    alter system set log_archive_dest_state_2=enable scope=both sid='*';
    alter system set log_archive_dest_state_3=enable scope=both sid='*';
    
    show parameter log_archive_dest_state_2
    show parameter log_archive_dest_state_3
    

    6.备库开启日志恢复

    备库mount状态下开启日志恢复,等待恢复完成,终止日志恢复然后将数据库在open状态后再开启日志恢复。
    --mount状态下开启日志恢复
    startup mount
    alter database recover managed standby database disconnect from session;
    --等待恢复完成...
    --取消日志恢复
    alter database recover managed standby database cancel;
    --打开数据库
    alter database open;
    --open状态下开启日志恢复
    alter database recover managed standby database using current logfile disconnect from session;
    

    7.检查备库、主库升级情况

    select ACTION_TIME,ACTION,NAMESPACE,VERSION,ID from registry$history;
    select ACTION_TIME,ACTION,NAMESPACE,VERSION,ID from registry$history
    
    ACTION_TIME                                                                 ACTION                         NAMESPACE                      VERSION                                ID
    --------------------------------------------------------------------------- ------------------------------ ------------------------------ ------------------------------ ----------
    08-FEB-17 03.39.36.894771 AM                                                VIEW INVALIDATE                                                                                 8289601
    08-FEB-17 03.39.36.926136 AM                                                UPGRADE                        SERVER                         11.2.0.4.0
    

    8.定时任务检查修正

    检查各机器是否有定时任务,比如这里有定时任务有定期删除归档的任务。 需要根据新环境的变量修改脚本中ORACLE_HOME变量值。 以Site A为例,确认对应变量都是新版本数据库的变量值:
    [oracle@oracle1 admin]$ crontab -l
    0 0 * * * sh /home/oradata/scripts/delarch.sh > /dev/null 2&>1#
    
    [oracle@oracle1 admin]$ cat  /home/oradata/scripts/delarch.sh
    #!/bin/bash
    export ORACLE_BASE=/u01/app/oracle
    export ORACLE_HOME=$ORACLE_BASE/product/11.2.0.4/dbhome_1
    export ORACLE_SID=orcl
    export PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin
    rman target / @/home/oradata/scripts/delarch.sql log=/home/oradata/scripts/delarch.log 
    
    [oracle@oracle1 admin]$ cat /home/oradata/scripts/delarch.sql
    crosscheck archivelog all;
    delete noprompt archivelog all completed before "sysdate-7";
    
    [oracle@oracle1 admin]$ 
    

    至此,Oracle DataGuard 从版本11.2.0.1成功升级到版本11.2.0.4。

  • 相关阅读:
    爬虫学习---美丽汤
    爬虫学习--使用百度api---天气
    爬虫学习----案例
    爬虫学习---模拟提交
    爬虫学习---糗事百科
    爬虫学习----pattern
    Android:控件AutoCompleteTextView 客户端保存搜索历史自动提示
    Android:res之selector背景选择器
    安卓--selector简单使用
    【Android基础】android shape详解(二)
  • 原文地址:https://www.cnblogs.com/jyzhao/p/6380386.html
Copyright © 2011-2022 走看看