使用Data Guard Menu工具管理监控dataguard

来源:这里教程网 时间:2026-03-03 16:09:52 作者:
  Data Guard Menu是DG的监控脚本互动工具包,提供了Data Guard配置评估,搭建,检查是否合规,查看状态等功能。安装包可以从 www.dataguardbook.com 网站去下载名为dg.tar包去解压安装,这里我部署在一台物理备库上。

1.环境准备

--下载安装包,解压

[oracle@ngppdg ~]$ tar -xvf dg.tar

--需要安装ksh,否则执行./dg会报错

[oracle@ngppdg dgmenu]$ ./dg
-bash: ./dg: /bin/ksh: bad interpreter: Too many levels of symbolic links

--ksh和pdksh冲突,先卸载pdksh

[root@ngppdg ~]# yum remove pdksh-5.2.14-21.x86_64

--再安装ksh

[root@ngppdg ~]# yum install ksh

2.修改dg menu配置文件

[oracle@ngppdg dgmenu]$ vim dg.conf
# - For RAC configuration, use the VIP for PRIMARY_HOST and STANDBY_HOST
# 1. You may have to use the fully qualified hostname.domain_name for PRIMARY_HOST and STANDBY_HOST
# 2. Typically the PRIMARY_DB_SERVICE will be same as the PRIMARY_DB
#    PRIMARY_DB_SERVICE can be blank
#
PRIMARY_HOST=ngpdb01                     ##主库所在的主机名
PRIMARY_DB=ngpdb                              ##主库db_name
PRIMARY_DB_SERVICE=ngpdb               ##主库的service名称,即tnsname.ora里面的连接串别名
PRIMARY_PORT=1521                             ##主库监听的端口
STANDBY_HOST=ngppdg                       ##备库所在的主机名
STANDBY_DB=ngppdg                            ##备库db_name
STANDBY_DB_SERVICE=ngppdg             ##备库的service名称,即tnsname.ora里面的连接串别名
STANDBY_PORT=1521                             ##备库监听的端口
#PRIMARY_DOMAIN=
PRIMARY_DB_INSTANCE=ngpdb1           ##主库的实例名称,这里rac主库节点1的实例名
STANDBY_DB_INSTANCE=ngppdg          ##备库的实例名
#
# - Bystander Physical Standby Database Configuration   ##第二个物理备库配置,只有一个备库的话不需要配置
# -
SECOND_STANDBY_HOST=ngpdb03
SECOND_STANDBY_DB=ngpdb
SECOND_STANDBY_DB_SERVICE=ngpdbracdg1
SECOND_STANDBY_PORT=1521
SECOND_STANDBY_DB_INSTANCE=ngpdbracdg1
#
# - Disk Group information                          ##磁盘组的相关信息,这里如果是单实例并且未使用asm,填写数据文件路径即可。
# -
PRIMARY_DATA_DG=+NGPDATA01
STANDBY_DATA_DG=/oradata/ngppdg
#PRIMARY_FLASH_DG=+NGPDATA01
#STANDBY_FLASH_DG=
#
# - Valid entries for FS=FS for file system or ASM for automated storage management
FS=ASM
#
# - Primarily used for the DG Broker but used at multiple places
# 1.  If you are not RAC, please make PRIMARY_SERVER and STANDDBY_SERVER
#     equal to PRIMARY_HOST and STANDBY_HOST respectfully
PRIMARY_ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1          ##主库的ORACLE_HOME
STANDBY_ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1          ##备库的ORACLE_HOME

  如果只是使用部份功能监控查看物理备库的一些状态,除第一部分主备库的一些参数以外,其他的可以不用设置。

3.配置登录主备库的密码文件

 配置存储SYS密码的文件(出于安全性考虑此步骤可以省略,在查看具体监控内容时需要输入sys密码)

[oracle@ngppdg dgmenu]$ vim .syspasswd

添加密码后,wq保存退出。

4.登录dgmenu,执行查看物理备库相关信息

--执行./dg登录

[oracle@ngppdg dgmenu]$ ./dg
# ------------------------------------------------------------------------- #
#                       Data Guard Menu System                              #
#   Primary Host:    ngpdb01        Standby Host:  ngppdg       
#   Primary DB:      ngpdb            Standby DB:  ngppdg       
# ------------------------------------------------------------------------- #
#  10.  Launch Preliminary Check Submenu                                    #
# ------------------------------------------------------------------------- #
#  20.  Launch Build Standby Database Submenu                               #
# ------------------------------------------------------------------------- #
#  30.  Launch the Data Guard Broker Submenu                                #
# ------------------------------------------------------------------------- #
#  40.  Launch Monitor Physical Standby Data Guard Submenu                  #
# ------------------------------------------------------------------------- #
#  50.  Launch Monitor Logical Standby Data Guard Submenu                   #
# ------------------------------------------------------------------------- #
#  60.  Launch Automatic Diagnostic Repository (ADR) CLI Submenu            #
# ------------------------------------------------------------------------- #
# 100.  Launch RMAN Backup to Disk Submenu                                  #
# ------------------------------------------------------------------------- #
#   x.  Exit                                                                #
# ------------------------------------------------------------------------- #
#   Enter Task Number:

--输入40,进入监控物理备库

#   Enter Task Number:
40
# ------------------------------------------------------------------------- #
#   Data Guard Physical Standby Submenu: dg_physical_standby_menu.ksh
#   Primary Host:  ngpdb01        Standby Host:  ngppdg       
# ------------------------------------------------------------------------- #
#                                                                           #
#  10.  Check current SCN on primary and standby databases                  #
#  20.  Check Data Guard Status View for errors and fatal messages          #
#  30.  Check Managed Recovery Process Status                               #
#  40.  Check for missing archive logs                                      #
#  50.  Check archive log gaps on the standby database                      #
#  60.  Check average apply rate / active apply rate                        #
#  70.  Check transport / apply lag                                         #
#  80.  How far behind is my Data Guard in terms of time?                   #
# ------------------------------------------------------------------------- #
#   x.  Exit                                                                #
# ------------------------------------------------------------------------- #
#   Enter Task Number:

--输入60,可以查看redo apply的速率:

#   Enter Task Number:
60
# ----------------------------------------------------------------------- #
#         Executing dg_apply_rate.sql on DB:  ngppdg
# ----------------------------------------------------------------------- #
START_TIME                            ITEM              SOFAR UNITS
--------------------------------------------------------------- -------------------- ---------- ---------------
19-AUG-20 08:39:55                        Active Apply Rate        791 KB/sec
19-AUG-20 08:39:55                        Average Apply Rate        112 KB/sec
19-AUG-20 08:39:55                        Redo Applied         211671 Megabytes
19-AUG-20 08:35:37                        Active Apply Rate       9974 KB/sec
19-AUG-20 08:35:37                        Average Apply Rate       9890 KB/sec
19-AUG-20 08:35:37                        Redo Applied           1458 Megabytes
6 rows selected.
[ ...  Press any key to continue ... ]

--输入70,查看transport和apply的延迟:

# ------------------------------------------------------------------------- #
#   Data Guard Physical Standby Submenu: dg_physical_standby_menu.ksh
#   Primary Host:  ngpdb01        Standby Host:  ngppdg       
# ------------------------------------------------------------------------- #
#                                                                           #
#  10.  Check current SCN on primary and standby databases                  #
#  20.  Check Data Guard Status View for errors and fatal messages          #
#  30.  Check Managed Recovery Process Status                               #
#  40.  Check for missing archive logs                                      #
#  50.  Check archive log gaps on the standby database                      #
#  60.  Check average apply rate / active apply rate                        #
#  70.  Check transport / apply lag                                         #
#  80.  How far behind is my Data Guard in terms of time?                   #
#  90.  Check archive log generate rates                                    #
# ------------------------------------------------------------------------- #
#   x.  Exit                                                                #
# ------------------------------------------------------------------------- #
#   Enter Task Number:
70
# ----------------------------------------------------------------------- #
#         Executing dg_lag.sql on DB:  ngppdg
# ----------------------------------------------------------------------- #
NAME          VALUE           UNIT
------------- -------------------- ------------------------------
TIME_COMPUTED
------------------------------------------------------------------------------------------
transport lag +00 00:00:00       day(2) to second(0) interval
09/14/2020 11:37:53
apply lag     +00 00:00:00       day(2) to second(0) interval
09/14/2020 11:37:53

5.自定义菜单,配置相关监控项

该工具实际上是通过ksh和sql脚本实现的,查看dg可执行文件,内容如下:

#!/bin/ksh
which sqlplus >/dev/null 2>&1
if [ "$?" -eq 0 ]; then
  export SQLPLUS_FOUND=TRUE
else
  echo "sqlplus is not in your PATH environment variable"
  exit 1;
fi
## [ "$ORACLE_SID" = "" ] && { echo "ORACLE_SID is not specified"; echo "Exiting...."; exit 1; }
export CONNECT_STRING="/ as sysdba"
export ORACLE_PATH=$PWD
#echo "Present working directory is: $PWD"
[ "$CONF" = "" ] && export CONF=$PWD/dg.conf
[ ! -f "$CONF" ] && { echo "Configuration file: $CONF is missing."; echo "Exiting."; exit 1; }
. $CONF
. $PWD/dg_remote_connect.ksh
function next_menu
{
#echo "# ----------------------------------------------------------------------- #"
echo "[ ...  Press any key to continue ... ]"
read next
}
function main_menu
{
echo "# ------------------------------------------------------------------------- #"
echo "#                       Data Guard Menu System                              #"
echo "#   Primary Host: $PRIMARY_SERVER         Standby Host:  $STANDBY_SERVER       "
echo "#   Primary DB:   $PRIMARY_DB             Standby DB:  $STANDBY_DB       "
echo "# ------------------------------------------------------------------------- #"
echo "#  10.  Launch Preliminary Check Submenu                                    #"
echo "# ------------------------------------------------------------------------- #"
echo "#  20.  Launch Build Standby Database Submenu                               #"
echo "# ------------------------------------------------------------------------- #"
echo "#  30.  Launch the Data Guard Broker Submenu                                #"
echo "# ------------------------------------------------------------------------- #"
echo "#  40.  Launch Monitor Physical Standby Data Guard Submenu                  #"
echo "# ------------------------------------------------------------------------- #"
echo "#  50.  Launch Monitor Logical Standby Data Guard Submenu                   #"
echo "# ------------------------------------------------------------------------- #"
echo "#  60.  Launch Automatic Diagnostic Repository (ADR) CLI Submenu            #"
echo "# ------------------------------------------------------------------------- #"
echo "#   100.  Launch RMAN Backup to Disk Submenu                                  #"
echo "# ------------------------------------------------------------------------- #"
#echo "#  200. Backup Primary based on Standby SCN / Recover Standby Database      #"
#echo "# ------------------------------------------------------------------------- #"
echo "#   x.  Exit                                                                #"
echo "# ------------------------------------------------------------------------- #"
   echo "#   Enter Task Number: "
   read x
   ans=`echo $x | tr '[a-z]' '[A-Z]'`
#
   case "$ans"
   in
       10 )
       ./dg_preliminary_check_menu.ksh
       ;;
       20)
       ./dg_prepare_standby_menu.ksh
       next_menu;
       ;;
       30)
       ./dg_broker_menu.ksh
       next_menu;
       ;;
       40 )
       ./dg_physical_standby_menu.ksh
       ;;
       50 )
       ./dg_logical_menu.ksh
       ;;
       60 )
       ./dg_adr_menu.ksh
       ;;
       100 )
       ./dg_rman2disk_menu.ksh
       ;;
       200 )
       ./dg_backup_from_standby_scn.ksh
       next_menu;
       ;;
       q|X|x )
        exit;
       ;;
       * )
        main_menu;
       ;;
   esac
}
while true
do
  main_menu
done

相关的ksh脚本如下:

[oracle@ngppdg dgmenu]$ ls -l | grep ksh
-rwx------. 1 oracle oinstall  11605 Feb 16  2011 dg_adr_menu.ksh
-rwx------. 1 oracle oinstall    904 Feb 16  2011 dg_adrci_cli.ksh
-rw-r--r--. 1 oracle oinstall    178 Feb 16  2011 dg_adrci_purge.ksh
-rwx------. 1 oracle oinstall   1761 Feb 16  2011 dg_alter_system.ksh
-rwx------. 1 oracle oinstall   3936 Mar 28  2011 dg_asm_cp.ksh
-rw-r--r--. 1 oracle oinstall   2641 Sep 14  2010 dg_asm_cp.rac5501-vip.ksh
-rw-r--r--. 1 oracle oinstall   7019 Mar 28  2011 dg_asm_cp.rac561-vip.ksh
-rwx------. 1 oracle oinstall   2719 Feb 16  2011 dg_backup_from_standby_scn.ksh
-rwx------. 1 oracle oinstall   2151 Mar 18  2011 dg_bdp.ksh
-rwx------. 1 oracle oinstall  10884 Mar  1  2011 dg_broker_menu.ksh
-rwx------. 1 oracle oinstall   2953 Feb 16  2011 dg_cp_database.ksh
-rwx------. 1 oracle oinstall    296 Feb 16  2011 dg_determine_adrci_diag_home.ksh
-rwx------. 1 oracle oinstall   2342 Apr  5  2011 dg_duplicate_database.ksh
-rwx------. 1 oracle oinstall   1125 Feb 16  2011 dg_generate_listener_broker.ksh
-rwx------. 1 oracle oinstall    315 Feb 16  2011 dg_generate_restore_database.ksh
-rwx------. 1 oracle oinstall   4116 Feb 16  2011 dg_generate_standby_redo.ksh
-rwx------. 1 oracle oinstall   2896 Feb 16  2011 dg_generate_standby_redo.ksh.27AUG10
-rw-r--r--. 1 oracle oinstall   3378 Feb 16  2011 dg_generate_standby_redo_new.ksh
-rwx------. 1 oracle oinstall   1078 Feb 16  2011 dg_generate_tnsnames.ksh
-rwx------. 1 oracle oinstall   1386 Feb 16  2011 dg_log_archive_trace.ksh
-rwx------. 1 oracle oinstall   5583 Feb 16  2011 dg_logical_menu.ksh
-rwx------. 1 oracle oinstall   3631 Sep 14 11:15 dg_physical_standby_menu.ksh
-rwx------. 1 oracle oinstall   6576 Feb 16  2011 dg_preliminary_check_menu.ksh
-rwx------. 1 oracle oinstall   9002 Apr  5  2011 dg_prepare_standby_menu.ksh
-rwx------. 1 oracle oinstall   2122 Mar 26  2011 dg_remote_connect.ksh
-rwx------. 1 oracle oinstall   2635 Feb 26  2011 dg_remote_connect.ksh.25FEB11
-rwx------. 1 oracle oinstall   2009 Feb 16  2011 dg_restore_arch_from_scn.ksh
-rwx------. 1 oracle oinstall   7634 Feb 16  2011 dg_rman2disk.ksh
-rwx------. 1 oracle oinstall   4127 Feb 16  2011 dg_rman2disk_menu.ksh
-rwx------. 1 oracle oinstall   3207 Feb 16  2011 dg_time_lag.ksh
-rwxr-xr-x. 1 oracle oinstall   1059 Feb 16  2011 logical_check_every_5min.ksh
-rwx------. 1 oracle oinstall   3813 Feb 16  2011 logical_lag_alert.ksh
-rwxr-xr-x. 1 oracle oinstall  12106 Mar 26  2011 rman2disk.ksh
-rwxr-xr-x. 1 oracle oinstall  10013 Feb 16  2011 rman2disk_fs.ksh
-rwx------. 1 oracle oinstall    135 Feb 16  2011 sql.ksh
-rw-r--r--. 1 oracle oinstall    124 Feb 16  2011 start_observer.ksh

通过输入对应的task number,调用对应的ksh脚本。例如输入40,调用当前目录下dg_physical_standby_menu.ksh脚本。查看dg_physical_standby_menu.ksh脚本内容:

. $CONF
. $PWD/dg_remote_connect.ksh
function next_menu
{
#echo "# ----------------------------------------------------------------------- #"
echo "[ ...  Press any key to continue ... ]"
read next
}
function main_menu
{
echo "# ------------------------------------------------------------------------- #"
echo "#   Data Guard Physical Standby Submenu: $FN "
echo "#   Primary Host:  $PRIMARY_SERVER        Standby Host:  $STANDBY_SERVER       "
echo "# ------------------------------------------------------------------------- #"
echo "#                                       #"
echo "#  10.  Check current SCN on primary and standby databases     #"
echo "#  20.  Check Data Guard Status View for errors and fatal messages #"
echo "#  30.  Check Managed Recovery Process Status             #"
echo "#  40.  Check for missing archive logs                #"
echo "#  50.  Check archive log gaps on the standby database       #"
echo "#  60.  Check average apply rate / active apply rate        #"
echo "#  70.  Check transport / apply lag                  #"
echo "#  80.  How far behind is my Data Guard in terms of time?    #"
echo "#  90.  Check archive log generate rates                #"
echo "# -------------------------------------------------------------------------  #"
echo "#   x.  Exit                               #"
echo "# ------------------------------------------------------------------------- #"
   echo "#   Enter Task Number: "
   read x
   ans=`echo $x | tr '[a-z]' '[A-Z]'`
#
   case "$ans"
   in
       10 )
       check_sys_pass;
       remote_connect P dg_check_current_scn.sql;
       remote_connect S dg_check_current_scn.sql;
       next_menu;
       ;;
       20 )
       check_sys_pass;
       remote_connect P dg_check_dg_status.sql;
       remote_connect S dg_check_dg_status.sql;
       next_menu;
       ;;
       30 )
       check_sys_pass;
       remote_connect S dg_check_mrp.sql;
       next_menu;
       ;;
       40 )
       check_sys_pass;
       remote_connect P dg_check_missing_arc.sql;
       remote_connect S dg_check_missing_arc.sql;
       next_menu;
       ;;
       50 )
       check_sys_pass;
       # -- remote_connect P dg_check_gap.sql;
       remote_connect S dg_check_gap.sql;
       next_menu;
       ;;
       60 )
       check_sys_pass;
       remote_connect S dg_apply_rate.sql;
       next_menu;
       ;;
       70 )
       check_sys_pass;
       remote_connect S dg_lag.sql;
       next_menu;
       ;;
       80 )
       ./dg_time_lag.ksh
       next_menu;
       ;;
       90 )
       check_sys_pass;
       remote_connect P dg_archive_rates.sql;
       remote_connect S dg_archive_rates.sql;
       next_menu;
       ;;
       200 )
       ./dg_log_archive_trace.ksh
       next_menu;
       ;;
       q|X|x )
        exit;
       ;;
       * )
        main_menu;
       ;;
   esac
}
while true
do
  main_menu
done

安装目录下有很多.sql脚本:

[oracle@ngppdg dgmenu]$ ls -l | grep .sql   
-rw-r--r--. 1 oracle oinstall    441 Feb 16  2011 asm_filename.sql
-rw-r--r--. 1 oracle oinstall    471 Feb 16  2011 asm_filenames.sql
-rw-r--r--. 1 oracle oinstall     15 Feb 16  2011 bs.sql
-rw-r--r--. 1 oracle oinstall      0 Feb 16  2011 check_metalink.sql
-rw-r--r--. 1 oracle oinstall   4736 Feb 16  2011 cr_standby_redo.sql
-rw-r--r--. 1 oracle oinstall    649 Apr  5  2011 cr_standby_redo_p.sql
-rw-r--r--. 1 oracle oinstall    690 Apr  5  2011 cr_standby_redo_s.sql
-rwx------. 1 oracle oinstall   2030 Mar 28  2011 dg_alter_system_p.sql
-rwx------. 1 oracle oinstall   2431 Mar 28  2011 dg_alter_system_s.sql
-rwx------. 1 oracle oinstall    296 Feb 16  2011 dg_apply_rate.sql
-rwxr-xr-x. 1 oracle oinstall   2552 Sep 13 20:51 dg_archive_rates.sql
-rwx------. 1 oracle oinstall     23 Feb 16  2011 dg_check_archive_log_list.sql
-rwx------. 1 oracle oinstall     71 Feb 16  2011 dg_check_archive_mode.sql
-rwx------. 1 oracle oinstall     53 Feb 16  2011 dg_check_current_scn.sql
-rwx------. 1 oracle oinstall   2351 Feb 16  2011 dg_check_destinations.sql
-rwx------. 1 oracle oinstall    227 Feb 16  2011 dg_check_dg_status.sql
-rwx------. 1 oracle oinstall    113 Feb 16  2011 dg_check_force_logging.sql
-rwx------. 1 oracle oinstall   1259 Feb 16  2011 dg_check_gap.sql
-rwx------. 1 oracle oinstall    709 Feb 16  2011 dg_check_missing_arc.sql
-rwx------. 1 oracle oinstall    224 Feb 16  2011 dg_check_mrp.sql
-rw-r--r--. 1 oracle oinstall    279 Feb 16  2011 dg_check_not_applied.sql
-rwx------. 1 oracle oinstall     30 Feb 16  2011 dg_check_password_file.sql
-rwx------. 1 oracle oinstall    318 Feb 16  2011 dg_check_standby_redo.sql
-rwx------. 1 oracle oinstall    167 Feb 16  2011 dg_check_standby_redo2.sql
-rwx------. 1 oracle oinstall    861 Feb 16  2011 dg_check_unrecoverable.sql
-rw-r--r--. 1 oracle oinstall    137 Feb 16  2011 dg_clear_standby_redo.sql
-rw-r--r--. 1 oracle oinstall     60 Feb 16  2011 dg_client_start.sql
-rw-r--r--. 1 oracle oinstall     59 Feb 16  2011 dg_client_stop.sql
-rw-r--r--. 1 oracle oinstall     84 Feb 16  2011 dg_current_scn.sql
-rwx------. 1 oracle oinstall   2785 Feb 16  2011 dg_database_info.sql
-rw-r--r--. 1 oracle oinstall    215 Feb 16  2011 dg_drop_all_standby_redo.sql
-rw-r--r--. 1 oracle oinstall    273 Feb 16  2011 dg_fsfo_state.sql
-rw-r--r--. 1 oracle oinstall    357 Feb 16  2011 dg_generate_adrci_SID.sql
-rw-r--r--. 1 oracle oinstall    585 Feb 16  2011 dg_generate_restore_database.sql
-rwx------. 1 oracle oinstall    176 Feb 16  2011 dg_lag.sql
-rw-r--r--. 1 oracle oinstall    488 Feb 16  2011 dg_nologging_objects.sql
-rw-r--r--. 1 oracle oinstall   6471 Feb 16  2011 dg_phy_stby_diag.sql
-rw-r--r--. 1 oracle oinstall   6783 Feb 16  2011 dg_prim_diag.sql
-rwx------. 1 oracle oinstall    219 Feb 16  2011 dg_recovery_process.sql
-rw-r--r--. 1 oracle oinstall    168 Feb 16  2011 dg_redo.sql
-rw-r--r--. 1 oracle oinstall    226 Feb 16  2011 dg_register_archivelog_from_primary.sql
-rw-r--r--. 1 oracle oinstall   1184 Feb 16  2011 dg_rman2disk.sql
-rw-r--r--. 1 oracle oinstall    102 Feb 16  2011 dg_scn_to_timestamp.sql
-rw-r--r--. 1 oracle oinstall    176 Feb 16  2011 dg_sredo.sql
-rwx------. 1 oracle oinstall   1182 Feb 16  2011 dg_standby_apply_rate.sql
-rw-r--r--. 1 oracle oinstall     84 Feb 16  2011 dg_start.sql
-rw-r--r--. 1 oracle oinstall     56 Feb 16  2011 dg_stop.sql
-rw-r--r--. 1 oracle oinstall    271 Feb 16  2011 dg_temp.sql
-rw-r--r--. 1 oracle oinstall    334 Feb 16  2011 logical_applier.sql
-rw-r--r--. 1 oracle oinstall    180 Feb 16  2011 logical_apply_errors.sql
-rw-r--r--. 1 oracle oinstall   8105 Feb 16  2011 logical_diag.sql
-rw-r--r--. 1 oracle oinstall    215 Feb 16  2011 logical_events.sql
-rw-r--r--. 1 oracle oinstall    161 Feb 16  2011 logical_events2.sql
-rw-r--r--. 1 oracle oinstall     30 Feb 16  2011 logical_guard_off.sql
-rw-r--r--. 1 oracle oinstall    335 Feb 16  2011 logical_long_running.sql
-rw-r--r--. 1 oracle oinstall    616 Feb 16  2011 logical_metalink.sql
-rw-r--r--. 1 oracle oinstall    316 Feb 16  2011 logical_next.sql
-rw-r--r--. 1 oracle oinstall    364 Feb 16  2011 logical_not_unique.sql
-rw-r--r--. 1 oracle oinstall     74 Feb 16  2011 logical_pageout.sql
-rw-r--r--. 1 oracle oinstall    156 Feb 16  2011 logical_parameters.sql
-rw-r--r--. 1 oracle oinstall    236 Feb 16  2011 logical_process.sql
-rw-r--r--. 1 oracle oinstall    510 Feb 16  2011 logical_progress.sql
-rw-r--r--. 1 oracle oinstall    507 Feb 16  2011 logical_queries.sql
-rw-r--r--. 1 oracle oinstall    120 Feb 16  2011 logical_set_appliers.sql
-rw-r--r--. 1 oracle oinstall     56 Feb 16  2011 logical_set_max_sga.sql
-rw-r--r--. 1 oracle oinstall     61 Feb 16  2011 logical_skip_ddl.sql
-rw-r--r--. 1 oracle oinstall    672 Feb 16  2011 logical_skip_transactions.sql
-rw-r--r--. 1 oracle oinstall     54 Feb 16  2011 logical_start.sql
-rw-r--r--. 1 oracle oinstall     93 Feb 16  2011 logical_state.sql
-rw-r--r--. 1 oracle oinstall     59 Feb 16  2011 logical_stats.sql
-rw-r--r--. 1 oracle oinstall    463 Feb 16  2011 logical_status.sql
-rw-r--r--. 1 oracle oinstall     45 Feb 16  2011 logical_stop.sql
-rw-r--r--. 1 oracle oinstall    140 Feb 16  2011 logical_supplemental_logging.sql
-rw-r--r--. 1 oracle oinstall   7607 Feb 16  2011 logical_table_diag.sql
-rw-r--r--. 1 oracle oinstall    344 Feb 16  2011 logical_trx.sql
-rw-r--r--. 1 oracle oinstall    800 Feb 16  2011 logical_unsupported.sql
-r-x------. 1 oracle oinstall    316 Jul 29  2009 login2.sql
-rw-r--r--. 1 oracle oinstall      9 Feb 16  2011 ls.sql

 在这里可以自定义一些选项,例如添加查看主库归档日志生成的速率的选项,编辑dg_physical_standby_menu.ksh,在相应的位置添加下面内容:--增加task number为90的相关描述

echo "#  90.  Check archive log generate rates                                    #"

--增加task number为90的相关调用

       90 )
       check_sys_pass;
       remote_connect P dg_archive_rates.sql;
       next_menu;
       ;;

查看dg_archive_rates.sql脚本内容:

set lines 500
set pages 10000
col "Date" format a10
col "00" format a4
col "01" format a4
col "02" format a4
col "03" format a4
col "04" format a4
col "05" format a4
col "06" format a4
col "07" format a4
col "08" format a4
col "09" format a4
col "10" format a4
col "11" format a4
col "12" format a4
col "13" format a4
col "14" format a4
col "15" format a4
col "16" format a4
col "17" format a4
col "18" format a4
col "19" format a4
col "20" format a4
col "21" format a4
col "22" format a4
col "23" format a4
SELECT
   TO_CHAR(TRUNC(FIRST_TIME),'Mon DD')                  "Date",
   TO_CHAR(SUM(DECODE(TO_CHAR(FIRST_TIME,'HH24'),'00',1,0)),'9999')     "00",
   TO_CHAR(SUM(DECODE(TO_CHAR(FIRST_TIME,'HH24'),'01',1,0)),'9999')     "01",
   TO_CHAR(SUM(DECODE(TO_CHAR(FIRST_TIME,'HH24'),'02',1,0)),'9999')     "02",
   TO_CHAR(SUM(DECODE(TO_CHAR(FIRST_TIME,'HH24'),'03',1,0)),'9999')     "03",
   TO_CHAR(SUM(DECODE(TO_CHAR(FIRST_TIME,'HH24'),'04',1,0)),'9999')     "04",
   TO_CHAR(SUM(DECODE(TO_CHAR(FIRST_TIME,'HH24'),'05',1,0)),'9999')     "05",
   TO_CHAR(SUM(DECODE(TO_CHAR(FIRST_TIME,'HH24'),'06',1,0)),'9999')     "06",
   TO_CHAR(SUM(DECODE(TO_CHAR(FIRST_TIME,'HH24'),'07',1,0)),'9999')     "07",
   TO_CHAR(SUM(DECODE(TO_CHAR(FIRST_TIME,'HH24'),'08',1,0)),'9999')     "08",
   TO_CHAR(SUM(DECODE(TO_CHAR(FIRST_TIME,'HH24'),'09',1,0)),'9999')     "09",
   TO_CHAR(SUM(DECODE(TO_CHAR(FIRST_TIME,'HH24'),'10',1,0)),'9999')     "10",
   TO_CHAR(SUM(DECODE(TO_CHAR(FIRST_TIME,'HH24'),'11',1,0)),'9999')     "11",
   TO_CHAR(SUM(DECODE(TO_CHAR(FIRST_TIME,'HH24'),'12',1,0)),'9999')     "12",
   TO_CHAR(SUM(DECODE(TO_CHAR(FIRST_TIME,'HH24'),'13',1,0)),'9999')     "13",
   TO_CHAR(SUM(DECODE(TO_CHAR(FIRST_TIME,'HH24'),'14',1,0)),'9999')     "14",
   TO_CHAR(SUM(DECODE(TO_CHAR(FIRST_TIME,'HH24'),'15',1,0)),'9999')     "15",
   TO_CHAR(SUM(DECODE(TO_CHAR(FIRST_TIME,'HH24'),'16',1,0)),'9999')     "16",
   TO_CHAR(SUM(DECODE(TO_CHAR(FIRST_TIME,'HH24'),'17',1,0)),'9999')     "17",
   TO_CHAR(SUM(DECODE(TO_CHAR(FIRST_TIME,'HH24'),'18',1,0)),'9999')     "18",
   TO_CHAR(SUM(DECODE(TO_CHAR(FIRST_TIME,'HH24'),'19',1,0)),'9999')     "19",
   TO_CHAR(SUM(DECODE(TO_CHAR(FIRST_TIME,'HH24'),'20',1,0)),'9999')     "20",
   TO_CHAR(SUM(DECODE(TO_CHAR(FIRST_TIME,'HH24'),'21',1,0)),'9999')     "21",
   TO_CHAR(SUM(DECODE(TO_CHAR(FIRST_TIME,'HH24'),'22',1,0)),'9999')     "22",
   TO_CHAR(SUM(DECODE(TO_CHAR(FIRST_TIME,'HH24'),'23',1,0)),'9999')     "23"
FROM V$LOG_HISTORY
   GROUP BY TRUNC(FIRST_TIME)
   ORDER BY TRUNC(FIRST_TIME) DESC
/
set lines 66

登录dgmenu,选择刚才新添加的监控项,查看是否正常输出相关内容:

[oracle@ngppdg dgmenu]$ ./dg
# ------------------------------------------------------------------------- #
#                       Data Guard Menu System                              #
#   Primary Host:    ngpdb01        Standby Host:  ngppdg       
#   Primary DB:      ngpdb            Standby DB:  ngppdg       
# ------------------------------------------------------------------------- #
#  10.  Launch Preliminary Check Submenu                                    #
# ------------------------------------------------------------------------- #
#  20.  Launch Build Standby Database Submenu                               #
# ------------------------------------------------------------------------- #
#  30.  Launch the Data Guard Broker Submenu                                #
# ------------------------------------------------------------------------- #
#  40.  Launch Monitor Physical Standby Data Guard Submenu                  #
# ------------------------------------------------------------------------- #
#  50.  Launch Monitor Logical Standby Data Guard Submenu                   #
# ------------------------------------------------------------------------- #
#  60.  Launch Automatic Diagnostic Repository (ADR) CLI Submenu            #
# ------------------------------------------------------------------------- #
# 100.  Launch RMAN Backup to Disk Submenu                                  #
# ------------------------------------------------------------------------- #
#   x.  Exit                                                                #
# ------------------------------------------------------------------------- #
#   Enter Task Number:
40
# ------------------------------------------------------------------------- #
#   Data Guard Physical Standby Submenu: dg_physical_standby_menu.ksh
#   Primary Host:  ngpdb01        Standby Host:  ngppdg       
# ------------------------------------------------------------------------- #
#                                                                           #
#  10.  Check current SCN on primary and standby databases                  #
#  20.  Check Data Guard Status View for errors and fatal messages          #
#  30.  Check Managed Recovery Process Status                               #
#  40.  Check for missing archive logs                                      #
#  50.  Check archive log gaps on the standby database                      #
#  60.  Check average apply rate / active apply rate                        #
#  70.  Check transport / apply lag                                         #
#  80.  How far behind is my Data Guard in terms of time?                   #
#  90.  Check archive log generate rates                                    #
# ------------------------------------------------------------------------- #
#   x.  Exit                                                                #
# ------------------------------------------------------------------------- #
#   Enter Task Number:
90
# ----------------------------------------------------------------------- #
#         Executing dg_archive_rates.sql on DB:  ngpdb
# ----------------------------------------------------------------------- #
Date       00    01   02   03   04   05     06   07   08    09   10   11   12   13     14   15   16    17   18   19   20   21     22   23
---------- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ----
Sep 12
       0    0    0      4    0    0     0    0    0    0    0      0    0    0     0    0    0    0    0      0    1    0     0    0
Sep 11
       0    0    0      2    2    0     0    0    0    0    0      0    0    0     0    0    0    0    0      0    0    0     0    0
Sep 10
       0    0    0      3    0    0     1    0    0    0    0      0    0    0     0    0    0    0    0      0    0    0     0    0
Sep 09
       0    0    0      3    0    0     0    0    1    0    0      0    0    0     0    0    0    0    0      0    0    0     0    0
Sep 08
       0    0    0      3    0    0     0    0    1    0    0      0    0    0     0    0    0    0    0      0    0    0     0    0
Sep 07
       0    0    1      3    0    0     0    0    0    0    0      0    0    0     0    0    0    0    1      0    0    0     0    0
Sep 06
       0    0    0      2    3    0     0    0    0    0    1      0    0    0     0    0    0    0    0      0    0    0     1    0
Sep 05
       0    0    0      5    0    0     0    0    0    0    0      0    0    0     0    0    0    0    0      0    0    0     0    0
Sep 04
       0    0    0      2    2    0     0    0    0    0    0      0    0    0     0    0    0    0    0      0    0    0     0    0

这里截取一部分输出内容,可以正常返回。   Data Guard Menu给Data Guard维护管理提供一定的便利性,不需要登录sqlplus去执行一些日常的检查脚本。 Data Guard Menu还可以实现备库搭建前的先决条件检查,具体的搭建实施过程,DG broker的配置,ADRCI以及RMAN的调用,这里不做详细介绍,可以自行下载查看相关的功能。

相关推荐