数据守护中的一些常用术语

1.数据库(database)
       一个文件集合(包括数据文件,临时文件,重做日志文件,控制文件),保存在物理磁盘或文件中。
2.数据库实例(instance)
        一组操作系统进程(一个多线程的进程)以及一些内存。通过数据库实例可以操作数据库,一般情况下访问修改数据库都是通过数据库实例来完成的。
3.主库
        Primary模式,提供完整数据库服务的实例,一般是用来支撑应用系统的生产库
4.备库
        Standby模式,提供只读数据库服务的实例,一般用于容灾,备份,查询等制度功能。
5.Redo日志
        Redo日志记录物理数据页内容变动情况。Insert/delete/update 等 DML 操作、Create Table等 DDL操作,最终都会转化为对物理数据页的修改,这些修改都会 反映到 Redo日志中。
        分类:
        物理RREC
               物理RREC记录的是数据页的变化情况,内容包括:操作类型、修改数据页地址、页内偏移、数据页上的修改内容,如果是变长类型的 Redo记录,在 RREC记录头 之后还会有一个两字节的长度信息。
        逻辑RREC。
              逻辑RREC记录的是一些数据库逻辑操作步骤,主要包括:事务启动、事务提交、事务回滚、字典封锁、事务封锁、B树封锁、字典淘汰等。逻辑RREC记录是专门为数据守护增加的记录类型,用来解决备库重演Redo日志与用户访问备库之间的并发冲突,以及主库执行DDL后导致的主备数据库字典缓存不一致问题。
数据守护中的一些常用术语_第1张图片

6.Redo日志包
        Redo日志包(RLOG_PKG)是 DM数据库批量保存物理事务产生的 Redo日志的数据单元,以物理事务PTX 为单位保存日志,一个日志包内可连续保存一个或多个PTX。DM 数据守护系统中,主库以RLOG_PKG为最小单位发送 Redo日志到备库。
7.包序号
       每个RLOG_PKG都有对应的序号属性,称之为包序号(PKG SEQNO),日志包生成时按照序号连续递增。
       分类:
       本地包序号(LSEQ):
               节点内唯一、连续递增的值,用于校验联机日志连续性
       全局包序号(GSEQ):
              由数据守护集群的主备库共同维护,具有全局唯一、连续、递增的特性,用于校验归档日志的连续性。
       DM数据库全局包序号:
                CUR_SEQ:是系统已经分配的最大全局包序号。
                FILE_SEQ:是已经写入联机Redo日志文件的最大全局包序号。
                APPLY_SEQ:是备库重演全局包序号,表示备库已经重演完成的最大全局包序号。
        DM数据守护全局包序号:
               CSEQ:全局已分配包序号,标识系统已经分配的最大GSEQ值。
               FSEQ:全局文件包序号,标识已写入联机日志文件的最大GSEQ值。
               ASEQ:全局重演包序号,标识备库已经重演的最大GSEQ值。
               SSEQ:全局备库包序号,标识备库明确可重演的最大GSEQ值。
               KSEQ:全局保留包序号,表示备库已经收到、未明确是否可以重演的最大GSEQ值。在读写分离集群中SSEQ == KSEQ。
8.Redo日志传输
        主备库之间的Redo日志传输,一日志包RLOG_PKG为单位,主库通过MAL系统发送Redo日志到备库。
9.Redo日志重演
        备库收到主库发送的Redo日志后,在物理数据页上重新修改数据的过程。重演过程中,备库会生成自身的Redo日志写入联机日志中。
10.联机Redo日志文件
        DM数据库默认包含两个联机 Redo日志文件(如DAMENG01.log、DAMENG02.log),系统内部分别称为0号文件、1号文件。RLOG_PKG顺序写入联机Redo日志文件中, 当一个日志文件写满后,自动切换到 另一个文件。
11.守护进程
        数据守护系统的核心工具,监控数据库实例的运行状态和主备数据同步情况,在出现故障时启动各种处理方案。会接收与发送数据库实例,其他守护进程,监视器的消息。
        守护进程必须和被守护的数据库实例部署在同一台机器上。
12.监视器
       用来监控守护系统内守护进程,数据库实例信息,执行用户输入命令,监控实例故障,实现自动切换等。
        一般配置在数据库实例和守护进程以外的机器上。
13.数据库模式
        DM支持三种模式
       Normal模式:
               提供正常的数据库服务,操作没有限制,只生成本地归档。
        Primary模式:
               提供正常的数据库服务,操作有极少限制。限制包括:不支持修改表空间文件名,不支持修改arch_ini参数。
              正常生成本地归档,支持实时归档(Realtime),及时归档(Timely),异步归档(Async)
               对所有除临时表空间以外的所有数据库对象的修改操作都强制生成Redo日志
        Standby模式
               可以执行数据库备份,查询等只读数据库操作。正常生成本地归档,发送异步归档Redo日志。
               实时归档,即时归档均强制失效。时间触发器,事件触发器等都失效。
14.数据库状态
        Startup状态
               系统刚启动时设置为Startup状态
        After Redo状态
               系统启动过程中练级日志重做完成后,回滚活动事务前设置为After Redo状态。
               非Standby模式的实例在执行alter database open操作前,将系统设置为After Redo状态
        Open状态
               数据库处于正常提供服务的状态,但不能进行归档配置等操作。
        Mount状态
               数据库在Mount状态下,不能修改数据,不能访问表、视图等数据库对象。
              可以进行数据库的配置,可以执行查询数据库系统视图等一些只读操作。
               系统从Open状态切换为Mount状态时,会强制回滚所有活动事物,但不会强制清理(Purge)已提交事物,不会强制断开用户连接,也不会强制Buffer中的脏页刷 盘。
        Suspend状态
              可以访问数据库对象,甚至可以修改数据(限当前会话未断开),但限制Redo日志刷盘,一旦执行commit等触发Redo日志刷盘的操作时,当前操作将被挂起。
               从Open到Suspend的状态切换,不会回滚活动的事务,切换完状态,所有事务继续执行。
       Shhutdown状态
               实例正常退出时设置为Shhutdown状态。
数据守护中的一些常用术语_第2张图片

15.物理事物
       物理事务(Physical Transaction,简称ptx)是数据库内部一系列修改物理数据页操作的集合,与数据库管理系统中事务(Transaction)概念相对应,具有原 子性、有序性、无法撤销等特性。
16.LSN
       LSN(Log Sequence Number)是由系统自动维护的Biginit类型数值,是具有自动递增,全局唯一特性,每一个LSN值代表着DM系统内部产生的一个物理事务。
       DM数据库LSN分类:
              CUR_LSN:系统已经分配的最大LSN。
              FILE_LSN:已经写入联机Redo日志文件的最大LSN值。
               FLUSH_LSN:已经发起日志刷盘请求,但还没有真正写入联机Redo日志文件的最大LSN值。
              CKPT_LSN:检查点LSN所有LSN<=CKPT_LSN的物理事务修改的数据页,都已经从Buffer缓冲区写入磁盘。
              APPLY_lsn:备库重演LSN,表示备库已经重演完成的最大LSN。
       DN数据守护LSN分类:
              CLSN:与CUR_LSN保持一致,数据库已经分配的最大LSN值。
               FLSN:与FILE_LSN保持一致,已写入联机日志文件的LSN值。
               ALSN:与APPLY_LSN保持一致,备库已经重演完成的最大LSN值。
               SLSN:是Standby LSN的缩写,表示备库明确可重演的最大LSN值。
               KLSN:是Keep LSN的缩写,表示备库已经收到、但未明确是否可以重演的RLOG_PKG的最大LSN值。在读写分离集群中 KLSN == SLSN。
17.KEEP_PKG
        主库的RLOG_PKG日志通过实时归档机制发送到备库后,备库将最新收到的RLOG_PKG保存在内存中,不马上启动重演,这个RLOG_PKG我们称之为KEEP_PKG。即时备库 没有 KEEP_PKG。
18.归档
        归档是实现数据守护系统的重要技术手段,根据功能与实现方式的不同,DM数据库的归档可以分为5类:本地归档、远程归档、实时归档、即时归档和异步归档。
        本地归档:
               Redo日志本地归档(Local),就是将 Redo日志写入到本地归档日志文件的过程。
               保数据守护系统中所有节点的归档日志文件内容是完全一致的。
               本地归档日志文件不能被覆盖
        远程归档:
               归档日志发送到远程实例保存的归档方式,我们称为远程归档
        实时归档:
               实时归档(Realtime)将主库产生的Redo日志写入联机日志文件前通过MAL系统传递到备库。实时归档只在主库生效,一个主库可以配置 1~8个实时备库。
       执行流程:
               1.主库在Redo日志(RLOG_PKG)写入联机日志文件前,将Redo日志发送到备库
               2.备库收到Redo日志(RLOG_PKG)后标记为KEEP_PKG,将原KEEP_PKG加入日志重演任务系统,并马上响应主库,不需要等待Redo日志重演结束后再响 应主库。
               3.主库收到备库的响应消息,确认备库已经收到Redo日志后,再将Redo日志写入联机日志文件中。
        分类:
               事务一致模式
               主库事务提交触发 Redo日志刷盘和即时归档,备库收到主库发送的Redo日志,并重演完成后再响应主库。
        高性能模式
               与实时归档一样,备库收到主库发送的Redo日志后,马上响应主库,再启动日志重演。
               区别仅在于配置为实时归档时,dmarch.ini中的ARCH_WAIT_APPLY配置项默认值为0,即采用高性能模式。
        即时归档:
               即时归档(Timely)在主库将Redo日志写入联机日志文件后,通过MAL系统将Redo日志发送到备库。
        分类:
              事务一致模式
               主库事务提交触发 Redo日志刷盘和即时归档,备库收到主库发送的Redo日志,并重演完成后再响应主库。
               高性能模式
               与实时归档一样,备库收到主库发送的Redo日志后,马上响应主库,再启动日志重演。
       异步归档
              由主、备库上配置的定时器触发,根据异步备库的KEEP LSN信息,扫描本地归档目录获取Redo日志,并通过MAL系统将Redo日志发送到异步备库。
数据守护中的一些常用术语_第3张图片

19.归档文件
       备库归档机制调整后,备库归档日志文件写入的并不是自己重演生成的Redo日志,而是直接将主库产生的 Redo日志写入到本地归档日志文件中。
       为了区分生成Redo日志和写入Redo日志的库,归档日志文件头增加了几个MAGIC字段:
       PMNT_MAGIC:永久魔数,用来唯一标识数据库,初始化数据库时生成并保持不变(DDL_CLONE还原库除外),数据守护集群中所有主备库的 PMNT_MAGIC是相 同的。
        DB_MAGIC:数据库魔数,数据库初始化时生成,数据库还原后重新生成新的DB_MAGIC,数据守护集群中所有主备库的 DB_MAGIC 是不同的。
        归档日志文件使用DB_MAGIC标识写入 Redo日志的库。
        SRC_DB_MAGIC:源库魔数,产生 Redo 日志数据库的 DB_MAGIC 值;主库归档日志文件中SRC_DB_MAGIC与 DB_MAGIC相同;备库归档日志文件中 SRC_DB_MAGIC与主库的 DB_MAGCI值相同。
20.归档状态
       本地归档、实时归档和即时归档均包含两种状态:Valid和 Invalid。
        异步归档只有一种归档状态:Valid。
       Valid:归档有效,正常执行各种数据库归档操作。
        Invalid:归档无效,主数据库不发送联机 Redo日志到备数据库。
21.OGUID
       数据守护唯一标识码。
       数据库的OGUID在MOUNT状态下有系统函数SP_SET_OGUIID设置,守护进程和监视器的OGUID值在配置文件中设定
        同一守护进程组中的所有数据库、守护进程和监视器,都必须配置相同的 OGUID值
       取值范围为 0~2147483647。
22.守护进程组
       配置了相同 OGUID的两个或多个守护进程,构成一个守护进程组。
23.组分裂
       同一守护进程组中,不同数据库实例的数据出现不一致,并且无法通过重演Redo日志重新同步数据的情况,我们称为组分裂。
       产生原因:
               1. 即时归档中,主库在将 Redo日志写入本地联机 Redo日志文件之后,发送 Redo日志到备库之前出现故障,导致主备库数据不一致,为了继续提供服务,执行 备库强制接管。此时,当故障主库重启后,就会引发组分裂。
               2. 故障备库重新完成数据同步之前,主库硬件故障,并且长时间无法恢复;在用户接受丢失部分数据情况下,为了尽快恢复数据库服务,执行备库强制接管,将备库切换为主库。此时,如果故障主库重启,也会造成组分裂。
       恢复方法:
               检测到组分裂后,守护进程会修改控制文件为分裂状态,被分裂出去的数据库需要通过备份还原等技术手段重新恢复。
24.脑裂
       脑裂是同一个守护进程组中同时出现两个或者多个活动主库,并且这些主库都接收用户请求,提供完整数据库服务。
       产生的主要原因:
        1.网络不稳定
        2.错误的人工干预。
数据守护中的一些常用术语_第4张图片

你可能感兴趣的:(DM8,数据库)