目前 OceanBase 数据库支持 OSS、NFS 和 COS 三种备份介质,提供了备份、恢复、管理三大功能。
OceanBase 数据库从 V2.2.52 版本开始支持集群级别的物理备份。物理备份由基线数据、日志归档数据两种数据组成。
在执行备份操作前,如果需要使用 NFS 软件作为备份目的地,则需要先部署 NFS。
推荐使用OCP进行白屏化的备份恢复操作。本文介绍的是黑屏操作。
一、部署NFS存储的注意事项:
1)使用 NFS 环境时,需要保证先挂载 NFS,再开启备份。如果备份期间 NFS 出现问题,需要先停止数据备份和日志备份,再解决 NFS 的问题。 2)由于 OceanBase 数据库的备份需要依赖 NFS4 的文件锁功能来进行并发控制,故在挂载 NFS 时,建议使用 NFS 4.1 及以上版本,不能使用 NFS3 挂载。 3)在使用 NFS 作为备份介质时,必须保证所有 OBServer 都挂载了同一个服务器的 NFS。同时,为保证备份的顺利进行,务必使用本文档中推荐的参数挂载 NFS。 4)在重启 OBServer 时,需要先启动 NFS,再启动 OBServer。 5)添加新的机器后,在启动 OBServer 前,需要保证新的机器挂载 NFS 成功或者可以备份到其他介质。
复制
二、部署 NFS 服务器端
登录 NFS 服务器。执行以下命令,通过 YUM 包管理器安装 NFS。 yum install nfs-utils 设置 Exports: 选择一个合适的目录作为共享目录,在选择时需要考虑备份所需的空间和性能。 该实验中,我将nfs服务端和客户端均布署到了同一台服务器上。 创建目录: [root@master ~]# cd /opt [root@master opt]# mkdir {obnfs_server,obnfs} [root@master opt]# chown -R nfsnobody:nfsnobody obnfs* [root@master opt]# ls -lh total 0 drwxr-xr-x. 3 root root 17 Nov 8 18:13 cni drwx--x--x. 4 root root 28 Nov 8 17:45 containerd drwxr-xr-x 2 nfsnobody nfsnobody 6 Mar 8 16:42 obnfs drwxr-xr-x 2 nfsnobody nfsnobody 6 Mar 8 16:42 obnfs_server vim /etc/exports 添加: /opt/obnfs_server/ 192.168.18.0/24(rw,sync,all_squash) 配置 NFS 参数: vim /etc/sysconfig/nfs 调整如下所示参数: RPCNFSDCOUNT=8 RPCNFSDARGS="-N 2 -N 3 -U" NFSD_V4_GRACE=90 NFSD_V4_LEASE=90 执行以下命令,重新启动 NFS。 systemctl restart nfs-config systemctl restart nfs-server 设置 Slot Table: cat >> /etc/sysctl.conf <<-EOF sunrpc.tcp_max_slot_table_entries=128 EOF sysctl -p
复制
三、部署 NFS 客户端
部署 NFS 客户端时,需要在所有 OBServer 机器上进行相同操作。
登录 OBServer。执行以下命令,通过 YUM 包管理器安装 NFS。 sudo yum install nfs-utils 设置 Slot Table: cat >> /etc/sysctl.conf <<-EOF sunrpc.tcp_max_slot_table_entries=128 EOF sysctl -p 使配置生效 挂载 NFS: 本实验中nfs服务器和客户端在同一台机器上,因此不再重复创建目录。否则需要先创建目标目录。 [root@master opt]# showmount -e 192.168.18.28 Export list for 192.168.18.28: /opt/obnfs_server 192.168.18.0/24 [root@master opt]# mount -tnfs4 -o rw,nfsvers=4.1,sync,lookupcache=positive,hard,timeo=600,wsize=1048576,rsize=1048576,namlen=255 192.168.18.28:/opt/obnfs_server /opt/obnfs [root@master opt]# df -hT|grep obnfs 192.168.18.28:/opt/obnfs_server nfs4 1.1T 771G 325G 71% /opt/obnfs 已经挂载成功! 注:为了使开机后能够自动挂载nfs,还应该将此挂载参数添加至/etc/profile或 /etc/rc.local文件之中。 参数含义: nfsvers=4.1:由于备份依赖 nfs 4 原生的文件锁,推荐使用 nfs 4.1 及以上版本。nfs 4.0 有一个已知 Bug,在重命名文件以后可能会读到旧文件。 sync:使用同步写保证数据能及时刷到服务端,从而保证数据的一致性。 lookupcache=positive:用于避免并发访问目录或者文件时误报目录或文件不存在的问题,保证数据的一致性。 hard:在 NFS 不可用的情况下,系统会卡住应用的读写请求,以保证数据的一致性。不能使用 soft 选项,会有数据错误的风险。 timeo:用于指定重试的等待时间,单位为 0.1s。在设置时,建议不要设置得过大,推荐值为 600。 wsize:表示读的数据块大小,建议设置为 1048576。 rsize:表示写的数据库大小,建议设置为 1048576。 namlen:建议设置为 255。 192.168.18.28:表示 NFS 服务器的 IP 地址。 注意: 1)在挂载 NFS 时,必须保证备份挂载环境的参数中包含 nfsvers=4.1、sync、lookupcache=positive 及 hard。 2)Docker 环境需要在宿主机上挂载 NFS,然后映射到 Docker 里面。如果 Docker 内部直接挂载 NFS,可能会出现客户端 Hung 住的场景。 挂载完成后,可执行以下命令,验证 NFS 的性能: [root@master opt]# yum install fio -y [root@master opt]# fio -filename=/opt/obnfs/fio_test -direct=1 -rw=randwrite -bs=2048K -size=10G -runtime=300 -group_reporting -name=mytest -ioengine=libaio -numjobs=1 -iodepth=64 -iodepth_batch=8 -iodepth_low=8 -iodepth_batch_complete=8
复制
四、配置备份目的端
使用 root 用户登录数据库的 sys 租户。配置备份目的端。 obclient -uroot@sys -p -h127.0.0.1 -P2883 -c -A oceanbase 目前,OceanBase 数据库支持 NFS 、阿里云 OSS 和腾讯云 COS 作为备份目的端。 NFS: 注意,使用 NFS 作为备份目的端时,需要注意以下事项: 1)backup_dest 的值不支持设置为带有问号(?)的字符串。 2)backup_dest 的值必须设置为绝对路径,保证 OBServer 对 backup_dest 具有写权限 。 3)必须保证所有 OBServer 都挂载了同一个服务器的 NFS。 设置备份目的端的示例如下: MySQL [oceanbase]> ALTER SYSTEM SET backup_dest='file:///opt/obnfs/backup'; Query OK, 0 rows affected (1.209 sec) 阿里云 OSS: MySQL [oceanbase]> ALTER SYSTEM SET backup_dest='oss://oceanbase-test-bucket/backup/?host=xxx.aliyun-inc.com&access_id=xxx&access_key=xxx&delete_mode=delete'; 腾讯云 COS: 注意,在使用 COS 作为备份目的端时,需要注意以下事项: 1)需要关闭 Bucket 的 List Cache,否则会导致备份数据一致性的错误。 2)由于 COS 功能的限制,备份到 COS 的性能会比 OSS 差,同时可能存在 IO 读写放大的风险。 3)COS 暂不支持配置 delete_mode 参数。 MySQL [oceanbase]> ALTER SYSTEM SET backup_dest='cos://oceanbase-test-appid/backup?host=cos.ap-nanjing.myqcloud.com&access_id=xxx&access_key=xxx&appid=xxx'; 设置备份参数: 使用 root 用户登录数据库的 sys 租户后设置。 MySQL [oceanbase]> ALTER SYSTEM SET backup_dest_option='log_archive_checkpoint_interval=2m&recovery_window=7d&auto_delete_obsolete_backup=true&log_archive_piece_switch_interval=1d&backup_copies=0'; Query OK, 0 rows affected (0.661 sec) 参数说明: log_archive_checkpoint_interval 参数用于控制冷分区 Checkpoint 任务的生成间隔,以推进其归档进度。 recovery_window 参数用于控制备份数据可恢复的时间窗口,以及作为判断备份数据是否过期的依据。 auto_delete_obsolete_backup 参数用于控制是否启动自动清理功能。 log_archive_piece_switch_interval 参数用于控制自动按照时间段来切日志文件的目录,默认值为 0,表示不切分 Piece, 有效范围为 [1d, 7d]。 backup_copies 参数用于指定一个备份级的冗余度。默认值为 0。
复制
五、开启日志备份
此操作类似于oracle中的开启归档日志功能。
使用 root 用户登录数据库的 sys 租户,配置备份模式,并开启归档日志压缩功能:
通过 Optional 模式备份,并开启归档日志压缩功能的示例如下:
MySQL [oceanbase]> ALTER SYSTEM SET backup_log_archive_option = 'optional compression= enable';
Optional 模式表示以用户业务优先。在该模式下,当备份(日志归档)来不及的情况下,日志可能来不及备份就回收了,可能会发生备份断流。与此相反的是Mandatory 模式。
日志压缩目前支持的压缩算法有:zstd_1.3.8 和 lz4_1.0,默认使用压缩算法 lz4_1.0。可以执行以下命令修改压缩算法:
MySQL [oceanbase]> ALTER SYSTEM SET backup_log_archive_option='mandatory compression= zstd_1.3.8';
MySQL [oceanbase]> ALTER SYSTEM SET backup_log_archive_option='mandatory compression= lz4_1.0';
执行以下语句,启动日志备份。
MySQL [oceanbase]> ALTER SYSTEM ARCHIVELOG;
Query OK, 0 rows affected (1.789 sec)
执行以下语句,确认日志备份任务是否已开始:
MySQL [oceanbase]> SELECT * FROM oceanbase.CDB_OB_BACKUP_ARCHIVELOG; --当 STATUS 为 DOING 时,则表示日志备份任务已开始
+-------------+-------------------+-----------+--------+----------------+-----------------+----------------------------+----------------------------+-------------+--------------+-------------------+---------------------+----------------------+
| INCARNATION | LOG_ARCHIVE_ROUND | TENANT_ID | STATUS | START_PIECE_ID | BACKUP_PIECE_ID | MIN_FIRST_TIME | MAX_NEXT_TIME | INPUT_BYTES | OUTPUT_BYTES | COMPRESSION_RATIO | INPUT_BYTES_DISPLAY | OUTPUT_BYTES_DISPLAY |
+-------------+-------------------+-----------+--------+----------------+-----------------+----------------------------+----------------------------+-------------+--------------+-------------------+---------------------+----------------------+
| 1 | 1 | 1 | DOING | 1 | 1 | 2022-03-08 17:08:49.262955 | 2022-03-08 17:14:36.999170 | 0 | 0 | NULL | 0.00MB | 0.00MB |
| 1 | 1 | 1001 | DOING | 1 | 1 | 2022-03-08 17:08:49.262955 | 2022-03-08 17:14:36.999170 | 0 | 0 | NULL | 0.00MB | 0.00MB |
+-------------+-------------------+-----------+--------+----------------+-----------------+----------------------------+----------------------------+-------------+--------------+-------------------+---------------------+----------------------+
2 rows in set (0.001 sec)
执行以下语句,可查看备份集中 Piece 的状态:
MySQL [oceanbase]> SELECT * FROM oceanbase.CDB_OB_BACKUP_PIECE_FILES;
+-------------+-----------+----------+-----------------+---------+-------------+----------------------------+----------------------------+--------+--------+-------------+------------+----------------+
| INCARNATION | TENANT_ID | ROUND_ID | BACKUP_PIECE_ID | COPY_ID | CREATE_DATE | START_TS | CHECKPOINT_TS | MAX_TS | STATUS | FILE_STATUS | COMPATIBLE | START_PIECE_ID |
+-------------+-----------+----------+-----------------+---------+-------------+----------------------------+----------------------------+--------+--------+-------------+------------+----------------+
| 1 | 1 | 1 | 1 | 0 | 20220308 | 2022-03-08 17:08:49.262955 | 2022-03-08 17:09:10.494779 | MAX | ACTIVE | AVAILABLE | 1 | 1 |
| 1 | 1001 | 1 | 1 | 0 | 20220308 | 2022-03-08 17:08:49.262955 | 2022-03-08 17:09:10.494779 | MAX | ACTIVE | AVAILABLE | 1 | 1 |
+-------------+-----------+----------+-----------------+---------+-------------+----------------------------+----------------------------+--------+--------+-------------+------------+----------------+
2 rows in set (0.009 sec)
开启日志备份后,OceanBase 数据库会自动将集群产生的事务日志定期备份到之前指定的备份目的地。
复制
六、执行数据备份
使用 root 用户登录数据库的 sys 租户。
6.1 执行以下命令,发起全量备份 MySQL [oceanbase]> ALTER SYSTEM BACKUP DATABASE; ERROR 9040 (HY000): backup can not start, because log archive start timestamp is bigger than frozen timestamp, need major freeze first. start timestamp : 1646730529262955, frozen timestamp : 1646668477505339 . 意思是先要进行一次合并: MySQL [oceanbase]> ALTER SYSTEM MAJOR FREEZE; --执行全量备份前,对集群进行一次合并 MySQL [oceanbase]> select * from oceanbase.__all_zone where name='merge_status'; --等合并完成后再执行下一步。此步需要较长时间 MySQL [oceanbase]> ALTER SYSTEM BACKUP DATABASE; 查看正在备份的任务: MySQL [oceanbase]> SELECT * FROM oceanbase.CDB_OB_BACKUP_PROGRESS; 查看备份任务的历史: MySQL [oceanbase]> SELECT * FROM oceanbase.CDB_OB_BACKUP_SET_FILES; 6.2 发起增量备份 执行以下语句,启动增量备份: MySQL [oceanbase]> ALTER SYSTEM BACKUP INCREMENTAL DATABASE; 也可以直接通过OCP进行白屏化的备份操作。
复制
七、手动清理备份
使用 root 用户登录数据库的 sys 租户。
7.1 清理过期的备份数据 执行以下命令,立即清理过期的备份数据: MySQL [oceanbase]> ALTER SYSTEM DELETE OBSOLETE BACKUP; 7.2 清理指定 backup_set_id 的数据: MySQL [oceanbase]> ALTER SYSTEM DELETE BACKUPSET <backup_set_id>; 7.3 清理指定 piece_id 的归档数据: MySQL [oceanbase]> ALTER SYSTEM DELETE BACKUPPIECE <piece_id>; 7.4 清理指定 round_id 的日志备份的 Round 中的所有数据: MySQL [oceanbase]> ALTER SYSTEM DELETE BACKUPROUND <round_id>; 7.5 停止正在执行的清理任务: MySQL [oceanbase]> ALTER SYSTEM CANCEL DELETE BACKUP; 确认清理任务是否已停止: MySQL [oceanbase]> SELECT tenant_id,status FROM oceanbase.__all_virtual_backup_clean_info; +-----------+--------+ | tenant_id | status | +-----------+--------+ | 1 | STOP | | 1001 | STOP | +-----------+--------+ 2 rows in set (0.749 sec)
复制
八、二次备份
官网描述的是“备份备份”。
二次备份是对已有的备份进行再备份,为了保证灾难影响到普通备份的数据时,还有二次备份的数据来保障 OceanBase 可恢复。
二次备份支持租户级别的备份。
如需要使用,则参考官方文档。
九、快照的备份与恢复(租户级别)
如果因为业务原因,需要快速将一个租户复制到另外一个集群或者在同一个集群中快速复制出一个租户时,则可以通过备份恢复租户快照的方式来完成。
使用限制: 1)在执行租户快照备份前,需要指定备份路径,且该路径不能与集群备份的备份路径相同。 2)只有开启日志备份的情况下才能发起租户级的快照备份。 3)通过租户快照方式备份的租户备份文件,不支持通过 backup_dest_option 配置项进行清理,也不支持对该备份再进行备份。 9.1 使用 root 用户登录数据库的 sys 租户。执行以下语句,发起租户级别的数据备份: obclient>ALTER SYSTEM BACKUP TENANT <tenant_name_list> TO <backup_destination>; (注:必须在开启日志备份的前提下进行) 示例: obclient>ALTER SYSTEM BACKUP TENANT tenant1,tenant2 TO "file:///opt/obnfs/obbackup2/"; 发起备份任务后,可以通过 oceanbase.CDB_OB_BACKUP_PROGRESS 和 oceanbase.CDB_OB_BACKUP_SET_DETAILS 视图来查看快照的备份进度。 9.2 恢复快照或执行全量恢复 恢复会先根据用户输入的命令,从备份目的端将需要的宏块数据从对应的全量备份和增量备份中恢复到目标租户,然后再拉取和回放事务日志。 使用 root 用户登录数据库的 sys 租户。执行以下语句,开始执行恢复任务: MySQL [oceanbase]> ALTER SYSTEM RESTORE <dest_tenant_name> FROM <source_tenant_name> at 'uri' UNTIL 'timestamp' WITH 'restore_option'; 参数说明: uri: 指备份时设置的 backup_dest restore_option:包含一组选项,其中: backup_cluster_name 为必选项,填写源集群的名称。 backup_cluster_id 为必选项,填写源集群的 cluster_id pool_list为必选项,填写用户的资源池。 locality 为可选项,填写租户的 Locality 信息。 kms_encrypt为可选项 恢复示例: NFS: MySQL [oceanbase]> ALTER SYSTEM RESTORE restored_trade FROM trade at 'file:///opt/obnfs/backup' until '2020-05-21 09:39:54.071670' with 'backup_cluster_name=xxx&backup_cluster_id=xxx&pool_list=xxx'; OSS: MySQL [oceanbase]> ALTER SYSTEM RESTORE restored_trade FROM trade at 'oss://oceanbase-test-bucket/backup/?host=xxx.aliyun-inc.com&access_id=xxx&access_key=xxx'; COS: MySQL [oceanbase]> ALTER SYSTEM RESTORE restored_trade from trade at 'cos://oceanbase-test-appid/backup?host=cos.ap-nanjing.myqcloud.com&access_id=xxx&access_key=xxx&appid=xxx'; 恢复指定的表: OceanBase 数据库支持物理恢复租户内指定的表。 执行以下语句,开始执行恢复任务。 MySQL [oceanbase]> ALTER SYSTEM RESTORE <table_name_list> FOR <dest_tenant_name> FROM <source_tenant_name> AT 'uri' UNTIL 'timestamp' WITH 'restore_option' ; 例如: 以下示例表示从租户 tenant1 的备份中将表 sales、products 和 orders 恢复到 new_tenant1 中,恢复出来的数据版本为 2021-02-28 08:59:45。 MySQL [oceanbase]> 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';
复制
十、使用OBDUMPER/OBLODER进行逻辑备份和恢复
工具下载地址:https://open.oceanbase.com/softwareCenter/community
10.1 OBDUMPER导出OceanBase数据库中的表
bin/obdumper -h <主机IP> -P <端口> -u <用户> -p <密码> --sys-user <sys 租户下的root用户或sys用户> --sys-password <sys租户下的对应账号密码> -c <集群> -t <租户> -D <Schema库名> [--ddl] [--csv|--sql] [--all|--table '表名'] -f<数据文件或者目录>
[admin@master obnfs]$ mkdir obdumper
分别导出建表语句和表数据:
导出租户obmysql下的用户cqiwen下的obtest库下的所有表:
[admin@master obnfs]$ cd ob-loader-dumper-3.0.0-RELEASE-ce
[admin@master ob-loader-dumper-3.0.0-RELEASE-ce]$ bin/obdumper -h 192.168.18.28 -P 2883 -u cqiwen -p cqiwen -c obcluster -t obmysql --database=obtest --sys-user=root --sys-password=root --ddl --all -f /opt/obnfs/obdumper
Neither the JAVA_HOME nor the JRE_HOME environment variable is defined (Oracle JDK 1.8)
At least one of these environment variable is needed to run this program
解决方法:需要安装jdk和配置JAVA_HOME 或 JRE_HOME
下载并解压jdk8安装包,然后加载环境变量:
export JAVA_HOME=/opt/obnfs/jdk1.8.0_301
先备份所有表的表结构:
bin/obdumper -h 192.168.18.28 -P 2883 -u cqiwen -p cqiwen -c obcluster -t obmysql --database=obtest --sys-user=root --sys-password=root --ddl --all -f /opt/obnfs/obdumper
......
All Dump Tasks Finished:
Total Count: 124 End Time: 2022-03-09 10:06:02
2022-03-09 10:06:02 [INFO] Dump schema finished. Total Elapsed: 11.53 s
2022-03-09 10:06:02 [INFO] System exit 0
查看备份文件:
[admin@master obnfs]$ cd obdumper/
[admin@master obdumper]$ ls
data logs
[admin@master obdumper]$ cd data/
[admin@master data]$ ls
CHECKPOINT.bin MANIFEST.bin obtest
[admin@master data]$ tree
.
├── CHECKPOINT.bin
├── MANIFEST.bin
└── obtest
└── TABLE
├── t_address_book-schema.sql
├── t_capital_appropriate-schema.sql
├── t_city-schema.sql
├── t_county-schema.sql
......
备份数据至csv文件中:
[admin@master ob-loader-dumper-3.0.0-RELEASE-ce]$ bin/obdumper -h 192.168.18.28 -P 2883 -u cqiwen -p cqiwen -c obcluster -t obmysql --database=obtest --sys-user=root --sys-password=root --csv --all -f /opt/obnfs/obdumper --skip-check-dir
10.2 使用OBLOADER导入数据至OceanBase数据库
bin/obloader -h <主机IP> -P <端口> -u <用户> -p <密码> --sys-user <sys 租户下的root用户> --sys-password <sys租户下root密码> -c <集群> -t <租户> -D <Schema库名> [--ddl] [--csv|--sql] [--all|--table '表名'] -f<数据文件或者目录>
为了模拟该实验,我创建一个obtest2数据库,存放新导入的数据
[admin@master data]$ obclient -h 192.168.18.28 -P 2883 -uroot@obmysql#obcluster -proot -c -A
Welcome to the OceanBase. Commands end with ; or \g.
Your MySQL connection id is 46
Server version: 5.6.25 OceanBase 3.1.2 (r10000392021123010-d4ace121deae5b81d8f0b40afbc4c02705b7fc1d) (Built Dec 30 2021 02:47:29)
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MySQL [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| oceanbase |
| information_schema |
| mysql |
| test |
| scoot |
| obtest |
+--------------------+
6 rows in set (0.005 sec)
MySQL [(none)]> create database obtest2;
Query OK, 1 row affected (0.259 sec)
MySQL [(none)]> grant all on obtest2.* to cqiwen@'%';
Query OK, 0 rows affected (0.186 sec)
分别导入建表语句和表数据:
将备份数据导入至租户obmysql下的用户cqiwen下的obtest2数据库中:
[admin@master ob-loader-dumper-3.0.0-RELEASE-ce]$ bin/obloader -h 192.168.18.28 -P 2883 -u cqiwen -p cqiwen --sys-user=root --sys-password=root -c obcluster -t obmysql -D obtest2 --ddl --all -f /opt/obnfs/obdumper
......
Finished Tasks: 87 Running Tasks: 1 Progress: 98.86%
2022-03-09 10:29:31 [INFO] No.6 sql of the file: "/opt/obnfs/obdumper/data/obtest/TABLE/t_image_center-schema.sql" exec success . Elapsed: 3.975 s
2022-03-09 10:29:31 [INFO] Load file: "t_image_center-schema.sql" finished
2022-03-09 10:29:31 [WARN] The object type : "VIEW" doesn't exist in the -schema.sql files
2022-03-09 10:29:31 [WARN] The object type : "FUNCTION" doesn't exist in the -schema.sql files
2022-03-09 10:29:31 [WARN] The object type : "PROCEDURE" doesn't exist in the -schema.sql files
2022-03-09 10:29:31 [WARN] The object type : "TRIGGER" doesn't exist in the -schema.sql files
2022-03-09 10:29:31 [WARN] The object type : "PACKAGE" doesn't exist in the -schema.sql files
2022-03-09 10:29:31 [WARN] The object type : "TYPE" doesn't exist in the -schema.sql files
2022-03-09 10:29:31 [WARN] The object type : "PACKAGE_BODY" doesn't exist in the -schema.sql files
2022-03-09 10:29:31 [WARN] The object type : "TYPE_BODY" doesn't exist in the -schema.sql files
2022-03-09 10:29:31 [WARN] The object type : "SYNONYM" doesn't exist in the -schema.sql files
2022-03-09 10:29:31 [WARN] The object type : "PUBLIC_SYNONYM" doesn't exist in the -schema.sql files
2022-03-09 10:29:32 [INFO] Close connection count: 0 of the DataSource. Key: 192_168_18_28_11532_768610381_oceanbase
2022-03-09 10:29:32 [INFO] Close connection count: 1 of the DataSource. Key: 192_168_18_28_11532_2103415864_obtest2
2022-03-09 10:29:32 [INFO] Shutdown task context finished
2022-03-09 10:29:32 [INFO]
Finished Tasks: 88 Running Tasks: 0 Progress: 100.00%
2022-03-09 10:29:32 [INFO]
All Load Tasks Finished:
......
[admin@master ob-loader-dumper-3.0.0-RELEASE-ce]$ bin/obloader -h 192.168.18.28 -P 2883 -u cqiwen -p cqiwen --sys-user=root --sys-password=root -c obcluster -t obmysql -D obtest2 --csv --all -f /opt/obnfs/obdumper
核验数据:
[admin@master ob-loader-dumper-3.0.0-RELEASE-ce]$ obclient -h 192.168.18.28 -P 2883 -uroot@obmysql#obcluster -proot -c -A
Welcome to the OceanBase. Commands end with ; or \g.
Your MySQL connection id is 63
Server version: 5.6.25 OceanBase 3.1.2 (r10000392021123010-d4ace121deae5b81d8f0b40afbc4c02705b7fc1d) (Built Dec 30 2021 02:47:29)
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MySQL [(none)]> select count(*) from obtest.t_material;
+----------+
| count(*) |
+----------+
| 1552 |
+----------+
1 row in set (0.017 sec)
MySQL [(none)]> select count(*) from obtest2.t_material;
+----------+
| count(*) |
+----------+
| 1552 |
+----------+
1 row in set (0.014 sec)
MySQL [(none)]>
导入成功!
遇到的问题:
2022-03-09 10:05:02 [ERROR] Dump failed! Error: The target directory: "/opt/obnfs/obdumper" is not empty.
2022-03-09 10:05:02 [INFO] System exit 1
解决方法:清除数据,或者加参数 --skip-check-dir
[admin@master ob-loader-dumper-3.0.0-RELEASE-ce]$ rm -rf /opt/obnfs/obdumper/*
复制
最后修改时间:2022-03-09 10:37:52
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
这篇文章ob版本应该比较老了吧
1年前

1
您好大神,对oceanbase我是个小白,我想咨询个问题,物理恢复的时候需要指定一个时间戳,官方文档给的范围是[数据备份的START_TIME, 日志备份的MAX_NEXT_TIME],我使用START_TIME的时候,恢复一直卡在RESTORE_SYS_REPLICA阶段。这种情况是啥导致的呢?您一般是看啥日志进行排查呢?
1年前

1
谢谢您投稿第二期 OceanBase 技术征文大赛🌹距离本次活动截止征稿只有3天(3月11日截止),欢迎您多多投稿!
3年前

评论
您好,您的文章已入选合格奖,10墨值奖励已经到账请查收!
❤️我们还会实时派发您的流量收益。
3年前

评论