暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

国产数据库官方技术文档对比(备份恢复部分)

IT小Chen 2022-10-12
545

前言:

对于一种新数据库产品的了解,一般是从官方技术文档开始的,官方技术文档越完善,越会给技术人员更好的第一印象,可以增强技术人员对其产品的学习热情和信心,虽然售前PPT都做的十分精美,但了解不到具体技术细节,也很难给出客观准确的评价。

然而不同国产数据库官方技术文档成熟程度参差不齐,个人认为做的比较好的几家有TiDBGBASE、达梦等,做的差的甚至找不到官方技术文档。

下面以数据库备份恢复技术为例,对比几家国产数据库官方技术文档。

数据库备份和恢复技术文档,个人认为至少包含以下几个方面:

1.备份恢复工具原理介绍;

2.备份详细示例(参数说明、库级别、表级别、全量、增量 等);

3.恢复详细示例(参数说明、库级别、表级别、全量、增量、不完全恢复);

4.备份校验、跟踪、问题排查。

调研时间比较短,下面示例不一定准确,仅供参考。

一:TiDB

https://docs.pingcap.com/zh/tidb/stable/backup-and-restore-overview

1.备份恢复工具原理介绍

https://docs.pingcap.com/zh/tidb/stable/backup-and-restore-design

BR 设计原理

BR 将备份或恢复操作命令下发到各个 TiKV 节点。TiKV 收到命令后执行相应的备份或恢复操作。

在一次备份或恢复中,各个 TiKV 节点都会有一个对应的备份路径,TiKV 备份时产生的备份文件将会保存在该路径下,恢复时也会从该路径读取相应的备份文件。

2.备份详细示例(参数说明、库级别、表级别、全量、增量 等)

https://docs.pingcap.com/zh/tidb/stable/br-usage-backup

备份 TiDB 集群快照

    br backup full \
    --pd "${PDIP}:2379" \
    --backupts '2022-01-30 07:42:23' \
    --storage "s3://backup-data/2022-01-30/" \
    --ratelimit 128 \
    --log-file backupfull.log

    备份 TiDB 集群的指定库表的数据

      br backup table \
      --pd "${PDIP}:2379" \
      --db test \
      --table usertable \
      --storage "s3://backup-data/table-db-usertable/2022-01-30/" \
      --ratelimit 128 \
      --log-file backuptable.log

      备份 TiDB 集群增量数据

        LAST_BACKUP_TS=`br validate decode --field="end-version" -s s3://backup-data/2022-01-30/ | tail -n1`
        br backup full\
        --pd ${PDIP}:2379 \
        --ratelimit 128 \
        --storage "s3://backup-data/2022-01-30/incr" \
        --lastbackupts ${LAST_BACKUP_TS}

        3.恢复详细示例(参数说明、库级别、表级别、全量、增量、不完全恢复)

        恢复单个数据库的数据

          br restore db \
          --pd "${PDIP}:2379" \
          --db "test" \
          --ratelimit 128 \
          --storage "s3://backup-data/db-test/2022-01-30/" \
          --log-file restore_db.log

          恢复单张表的数据

            br restore table \
            --pd "${PDIP}:2379" \
            --db "test" \
            --table "usertable" \
            --ratelimit 128 \
            --storage "s3://backup-data/table-db-usertable/2022-01-30/" \
            --log-file restore_table.log

            恢复增量备份数据

              br restore full \
              --pd "${PDIP}:2379" \
              --storage "s3://backup-data/2022-01-30/incr" \
              --ratelimit 128 \
              --log-file restorefull.log

              4.备份校验、跟踪、问题排查

              校验备份数据

                br debug checksum \
                --storage 's3://backup-data/${prefix}' \
                --s3.endpoint '${S3-endpoint-URL}' \
                --log-file checksum.log

                二:达梦

                https://eco.dameng.com/document/dm/zh-cn/pm/backup-restore-introduction.html

                1.备份恢复工具原理介绍

                https://eco.dameng.com/document/dm/zh-cn/pm/backup-restore-principle.html

                备份

                任何一个对DM数据库的操作,归根结底都是对某个数据文件页的读写操作。物理备份就是把这些数据文件中的有效数据页备份起来,在出现故障时,用于恢复数据。DM的物理备份一般包括数据备份和日志备份两部分,数据备份是拷贝数据页内容,日志备份则是拷贝备份过程中产生的REDO日志。

                2.备份详细示例(参数说明、库级别、表级别、全量、增量 等)

                https://eco.dameng.com/document/dm/zh-cn/pm/backup-restore-combat.html

                完全备份

                  SQL>BACKUP DATABASE FULL BACKUPSET '/home/dm_bak/db_full_bak_01';

                  增量备份

                    SQL>BACKUP DATABASE INCREMENT WITH BACKUPDIR '/home/dm_bak' BACKUPSET '/home/dm_bak/db_increment_bak_02';

                    表空间备份

                      SQL>BACKUP TABLESPACE MAIN BACKUPSET 'ts_bak_01';

                      表备份

                        SQL>BACKUP TABLE TAB_01 BACKUPSET '/home/dm_bak/tab_bak_01';

                        归档备份

                          SQL>BACKUP ARCHIVE LOG ALL BACKUPSET 'arch_bak_01';

                          3.恢复详细示例(参数说明、库级别、表级别、全量、增量、不完全恢复)

                          https://eco.dameng.com/document/dm/zh-cn/pm/backup-restore-combat.html#3.3.5%20%E6%95%B0%E6%8D%AE%E5%BA%93%E8%BF%98%E5%8E%9F%E5%92%8C%E6%81%A2%E5%A4%8D

                          数据库恢复

                            RMAN> RESTORE DATABASE '/opt/dmdbms/data/DAMENG_FOR_RESTORE/dm.ini' FROM BACKUPSET '/home/dm_bak/db_full_bak_for_time_lsn';
                            RMAN>RECOVER DATABASE '/opt/dmdbms/data/DAMENG_FOR_RESTORE/dm.ini' WITH ARCHIVEDIR'/home/dm_arch/arch' UNTIL TIME'2018-11-16 10:56:40';

                            表空间还原和恢复

                              RMAN>RESTORE DATABASE '/opt/dmdbms/data/DAMENG_FOR_RESTORE/dm.ini' TABLESPACE MAIN FROM BACKUPSET '/home/dm_bak/ts_full_bak_for_restore';  
                              RMAN>RECOVER DATABASE '<ini_path>' TABLESPACE <表空间名> [WITH ARCHIVEDIR '归档日志目录'{,'归档日志目录'}][USE DB_MAGIC <db_magic>];

                              还原表结构

                              https://eco.dameng.com/document/dm/zh-cn/ops/physical-backup-restore.html

                                RESTORE TABLE    STRUCT  FROM  BACKUPSET '/home/dm_bak/tab_bak_for_res_01';

                                还原表数据

                                  RESTORE TABLE    WITHOUT  INDEX  FROM  BACKUPSET '/home/dm_bak/tab_bak_for_res_01';

                                  4.备份校验、跟踪、问题排查

                                  备份集校验与删除

                                    SQL>BACKUP DATABASE FULL BACKUPSET '/home/dm_bak/db_bak_for_check';
                                    SQL>SELECT SF_BAKSET_CHECK('DISK','/home/dm_bak/db_bak_for_check');

                                    支持备份文件管理等

                                    三:OceanBase 

                                    1.备份恢复工具原理介绍

                                    https://www.oceanbase.com/docs/enterprise-oceanbase-database-cn-10000000000355061

                                    OceanBase 数据库物理备份的架构如下图所示

                                    物理恢复架构

                                    2.备份详细示例(参数说明、库级别、表级别、全量、增量 等)

                                    https://www.oceanbase.com/docs/enterprise-oceanbase-database-cn-10000000000357859

                                    发起全量备份

                                      obclient> ALTER SYSTEM BACKUP DATABASE;

                                      发起增量备份

                                        obclient> ALTER SYSTEM BACKUP INCREMENTAL DATABASE;

                                        3.恢复详细示例(参数说明、库级别、表级别、全量、增量、不完全恢复)

                                        https://www.oceanbase.com/docs/enterprise-oceanbase-database-cn-10000000000355919

                                        全量恢复

                                          obclient> ALTER SYSTEM RESTORE <dest_tenant_name> FROM <source_tenant_name> at 'uri' UNTIL 'timestamp' WITH 'restore_option';

                                          表级别恢复

                                            obclient> ALTER SYSTEM RESTORE <table_name_list> FOR <dest_tenant_name>  FROM <source_tenant_name> AT 'uri'  UNTIL 'timestamp' WITH 'restore_option' ;
                                            obclient> ALTER SYSTEM RESTORE `crm`.`sales`, `crm`.`products`, `hr`.`employees` FOR new_tenant1 FROM tenant1 AT 'oss://antsys-oceanbasebackup/backup_rd/?host=cn-hangzhou-alipay-b.oss-cdn.aliyun-inc.com&access_id=xxx&access_key=xxx' UNTIL '2021-02-28 08:59:45' WITH 'backup_cluster_name=ob20daily.backup&backup_cluster_id=1&pool_list=restore_pool';

                                            4.备份校验、跟踪、问题排查

                                            查看正在备份的任务

                                              obclient> SELECT * FROM oceanbase.CDB_OB_BACKUP_PROGRESS;

                                              查看备份任务的历史

                                                obclient> SELECT * FROM oceanbase.CDB_OB_BACKUP_SET_FILES;

                                                四:openGauss 

                                                1.备份恢复工具原理介绍

                                                https://opengauss.org/zh/docs/3.1.0/docs/Administratorguide/%E5%A4%87%E4%BB%BD%E4%B8%8E%E6%81%A2%E5%A4%8D.html

                                                openGauss部署成功后,在数据库运行的过程中,会遇到各种问题及异常状态。openGauss提供了gs_basebackup工具做基础的物理备份。gs_basebackup的实现目标是对服务器数据库文件的二进制进行拷贝,其实现原理使用了复制协议。远程执行gs_basebackup时,需要使用系统管理员账户。gs_basebackup当前支持热备份模式和压缩格式备份。

                                                2.备份详细示例(参数说明、库级别、表级别、全量、增量 等)

                                                备份流程

                                                初始化备份目录。在指定的目录下创建backups/wal/子目录,分别用于存放备份文件和WAL文件。

                                                  gs_probackup init -B backup_dir

                                                  添加一个新的备份实例。gs_probackup可以在同一个备份目录下存放多个数据库实例的备份。

                                                    gs_probackup add-instance -B backup_dir -D data_dir --instance instance_name

                                                    创建指定实例的备份。在进行增量备份之前,必须至少创建一次全量备份。

                                                      gs_probackup backup -B backup_dir --instance instance_name -b backup_mode

                                                      逻辑备份

                                                        gs_dump -U omm -W Bigdata@123 -f backup/MPPDB_backup.tar -p 37300 postgres -F t

                                                        3.恢复详细示例(参数说明、库级别、表级别、全量、增量、不完全恢复)

                                                        从指定实例的备份中恢复数据。

                                                          gs_probackup restore -B backup_dir --instance instance_name -D pgdata-path -i backup_id

                                                          逻辑恢复

                                                            gs_restore backup/MPPDB_backup.dmp -p 15400 -d postgres -e -c -s -n PUBLIC -t table1

                                                            4.备份校验、跟踪、问题排查

                                                            五:GaussDB 

                                                            需要华为账号才能下载技术文档

                                                            GaussDB T 1.0.2产品手册、GaussDB T 1.0.2 开发指南(单机)

                                                            1.备份恢复工具原理介绍

                                                            2.备份详细示例(参数说明、库级别、表级别、全量、增量 等)

                                                            逻辑导出

                                                            导出表

                                                              EXP TABLES=tab1,tab2 FILE=file1.dmp

                                                              导出用户

                                                                EXP USERS=TEST FLE=file1.dmp

                                                                3.恢复详细示例(参数说明、库级别、表级别、全量、增量、不完全恢复)

                                                                逻辑导入

                                                                  IMP TABLES=tab1,tab2 FILE=file.dmp
                                                                  IMP USERS=TEST FILE=file.dmp

                                                                  4.备份校验、跟踪、问题排查

                                                                  六:GBASE

                                                                  1.备份恢复工具原理介绍

                                                                  http://www.gbase.cn/tech_info/474.html

                                                                  GBase+8s+V8.8+备份与恢复指南.pdf

                                                                  2.备份详细示例(参数说明、库级别、表级别、全量、增量 等)

                                                                  http://www.gbase.cn/tech_info/474.html

                                                                  3.恢复详细示例(参数说明、库级别、表级别、全量、增量、不完全恢复)

                                                                  4.备份校验、跟踪、问题排查

                                                                  七:总结

                                                                  对比TiDB、达梦、OceanBaseopenGaussGaussDBGBASE六家官方技术文档备份恢复部分,仅通过文档完整性、易读性等方面,个人认为:

                                                                  排名第一:GBASE

                                                                  GBASE仅在备份恢复部分的介绍就写了251页,详细介绍了备份恢复概念、备份工具对比,备份恢复原理、备份恢复详细参数、备份恢复各场景详细示例等,完全可以满足技术人员自学等目的。

                                                                  排名第二:DM

                                                                  详细介绍了物理备份、逻辑备份使用场景和示例,包括库、表空间、表等级别的备份和恢复。

                                                                  排名第三:TiDB

                                                                  较完善,技术文档覆盖到了备份恢复的大多数场景,可以满足自学的目的。

                                                                  排名第四:openGauss

                                                                  技术文档覆盖到了备份恢复的大多数场景。

                                                                  排名第五:OceanBase

                                                                  技术文档没有覆盖到备份恢复的所有场景,技术细节较少。

                                                                  排名第六:GaussDB

                                                                  技术文档没有覆盖到备份恢复的所有场景,技术细节较少。

                                                                  文章转载自IT小Chen,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                                                                  评论