SNAPHADR 管理视图和 SNAP_GET_HADR 表函数-检索 hadr 逻辑数据组快照信息

SNAPHADR 管理视图和 SNAP_GET_HADR 表函数返回有关从数据库快照 (尤其是 hadr 逻辑数据组) 进行高可用性灾难恢复的信息。

已不推荐使用 SNAPHADR 管理视图和 SNAP_GET_HADR 表函数,并将其替换为 MON_GET_HADR 表函数-返回高可用性灾难恢复 (HADR) 监视信息

根据您使用的是管理视图还是表函数,请参阅下列其中一个部分:

SNAPHADR 管理视图

此管理视图允许您检索当前连接的数据库的 hadr 逻辑数据组快照信息。 仅当数据库是主数据库或备用高可用性灾难恢复 (HADR) 数据库时,此视图才会返回数据。

与 MON_GET_DATABASE , MON_GET_MEMORY_SET , MON_GET_MEMORY_POOL , MON_GET_TRANSACTION_LOG 和 ADMIN_GET_STORAGE_PATHS 表函数配合使用时, SNAPHADR 管理视图提供与 GET SNAPSHOT FOR DATABASE ON database-alias CLP 命令等效的信息。

模式为 SYSIBMADM。

请参阅 表 1 ,以获取可返回的完整信息列表。

权限

需要下列其中一个权限:
  • 对 SNAPHADR 管理视图的 SELECT 特权
  • 对 SNAPHADR 管理视图的 CONTROL 特权
  • DATAACCESS 权限
需要下列其中一项才能使用表函数:
  • 对 SNAP_GET_HADR 表函数的 EXECUTE 特权
  • DATAACCESS 权限
此外,要访问快照监视器数据,还需要下列其中一个权限:
  • SYSMON
  • SYSCTRL
  • SYSMAINT
  • SYSADM

缺省 PUBLIC 特权

在非限制性数据库中,当自动创建视图时,将向 PUBLIC 授予 SELECT 特权。

示例

检索主 HADR 数据库上 HADR 的配置和状态信息。
SELECT SUBSTR(DB_NAME, 1, 8) AS DBNAME, HADR_ROLE, HADR_STATE, 
   HADR_SYNCMODE, HADR_CONNECT_STATUS 
   FROM SYSIBMADM.SNAPHADR
下列是从此查询输出的示例。
DBNAME   HADR_ROLE HADR_STATE     HADR_SYNCMODE HADR_CONNECT_STATUS
-------- --------- -------------- ------------- -------------------
SAMPLE   PRIMARY   PEER           SYNC          CONNECTED

  1 record(s) selected.

SNAP_GET_HADR 表函数

SNAP_GET_HADR 表函数返回与 SNAPHADR 管理视图相同的信息,但允许您在特定数据库成员上检索特定数据库的信息,聚集所有数据库成员或所有数据库成员。

与 SNAP_GET_DB , SNAP_GET_DB_MEMORY_POOL , SNAP_GET_DETAILLOG 和 ADMIN_GET_STORAGE_PATHS 表函数配合使用, SNAP_GET_HADR 表函数提供与 GET SNAPSHOT FOR ALL DATABASES CLP 命令等效的信息。

请参阅 表 1 ,以获取可返回的完整信息列表。

语法

Read syntax diagramSkip visual syntax diagramSNAP_GET_HADR(dbname, member)

模式为 SYSPROC。

表函数参数

dbname
类型为 VARCHAR (128) 的输入参数,用于指定与当前连接的数据库在同一实例中的有效数据库名称。 指定目录条目类型为 "Indirect" 或 "Home" 的数据库名称,如 LIST DATABASE DIRECTORY 命令所返回。 指定空字符串以从当前连接的数据库获取快照。 指定 NULL 值以从与当前连接的数据库相同的实例中的所有数据库获取快照。
成员
类型为 INTEGER 的可选输入参数,用于指定有效数据库成员编号。 对当前数据库成员指定 -1 ,或对所有活动数据库成员的聚集指定 -2 。 如果 dbname 未设置为 NULL ,并且 member 设置为 NULL,那么将为 member隐式设置 -1 。 如果未使用此输入选项,即仅提供 dbname ,那么将从所有活动数据库成员返回数据。 活动数据库成员是数据库可供应用程序连接和使用的成员。

如果 dbnamemember 都设置为 NULL,那么将尝试从 SNAP_WRITE_FILE 过程创建的文件中读取数据。 请注意,此文件可能是在任何时候创建的,这意味着数据可能不是最新的。 如果不存在具有相应快照 API 请求类型的文件,那么 SNAP_GET_HADR 表函数将为当前连接的数据库和数据库成员号生成快照。

权限

需要下列其中一个权限:
  • 对 SNAP_GET_HADR 表函数的 EXECUTE 特权
  • DATAACCESS 权限
此外,要访问快照监视器数据,还需要下列其中一个权限:
  • SYSMON
  • SYSCTRL
  • SYSMAINT
  • SYSADM

缺省 PUBLIC 特权

在非限制性数据库中,当自动创建该功能时,将向 PUBLIC 授予 EXECUTE 特权。

示例

检索所有数据库的 HADR 的配置和状态信息。
SELECT SUBSTR(DB_NAME, 1, 8) AS DBNAME, HADR_ROLE, HADR_STATE, 
   HADR_SYNCMODE, HADR_CONNECT_STATUS 
   FROM TABLE (SNAP_GET_HADR (CAST (NULL as VARCHAR(128)), 0)) as T
下列是从此查询输出的示例。
DBNAME   HADR_ROLE HADR_STATE     HADR_SYNCMODE HADR_CONNECT_STATUS
-------- --------- -------------- ------------- -------------------
SAMPLE   PRIMARY   PEER           SYNC          CONNECTED
TESTDB   PRIMARY   DISCONNECTED   NEARSYNC      DISCONNECTED 

2 record(s) selected. 

返回的信息

表 1. SNAPHADR 管理视图和 SNAP_GET_HADR 表函数返回的信息
列名 数据类型 描述或相应的监视元素
snapshot_timestamp TIMESTAMP 获取快照的日期和时间。
DB_NAME VARCHAR(128) db_name - 数据库名称
HADR_ROLE VARCHAR(10) hadr_role-HADR 角色 。 此接口根据 sqlmon.h中的定义返回文本标识,并且是下列其中一项:
  • PRIMARY
  • STANDARD
  • STANDBY
HADR_STATE VARCHAR(14) hadr_state-HADR 状态 。 此接口根据 sqlmon.h中的定义返回文本标识,并且是下列其中一项:
  • DISCONNECTED
  • LOCAL_CATCHUP
  • PEER
  • REM_CATCH_PEN
  • REM_CATCHUP
HADR_SYNCMODE VARCHAR(10) hadr_syncmode-HADR 同步方式 。 此接口根据 sqlmon.h中的定义返回文本标识,并且是下列其中一项:
  • ASYNC
  • NEARSYNC
  • SUPERASYNC
  • SYNC
HADR_CONNECT_STATUS VARCHAR(12) hadr_connect_status-HADR 连接状态 。 此接口根据 sqlmon.h中的定义返回文本标识,并且是下列其中一项:
  • CONGESTED
  • CONNECTED
  • DISCONNECTED
hadr_connect_time TIMESTAMP hadr_connect_time - HADR 连接时间
hadr_heartbeat INTEGER hadr_heartbeat - HADR 脉动信号
hadr_local_host VARCHAR(255) hadr_local_host - HADR 本地主机
hadr_local_service VARCHAR(40) hadr_local_service - HADR 本地服务
hadr_remote_host VARCHAR(255) hadr_remote_host - HADR 远程主机
hadr_remote_service VARCHAR(40) hadr_remote_service - HADR 远程服务
hadr_remote_instance VARCHAR(128) hadr_remote_instance - HADR 远程实例
HADR_TIMEOUT BIGINT hadr_timeout - HADR 超时
hadr_primary_log_file VARCHAR(255) hadr_primary_log_file - HADR 主日志文件
hadr_primary_log_page BIGINT hadr_primary_log_page - HADR 主日志页
hadr_primary_log_lsn BIGINT hadr_primary_log_lsn - HADR 主日志 LSN
hadr_standby_log_file VARCHAR(255) hadr_standby_log_file - HADR 备用日志文件
hadr_standby_log_page BIGINT hadr_standby_log_page - HADR 备用日志页
hadr_standby_log_lsn BIGINT hadr_standby_log_lsn - HADR 备用日志 LSN
HADR_LOG_GAP BIGINT hadr_log_gap - HADR 日志间隔
DBPARTITIONNUM SMALLINT dbpartitionnum -“数据库分区号”监视元素
MEMBER SMALLINT member -“数据库成员”监视元素