obv4租户的日志归档目录可以不通过NFS进行归档?

前提:obv4.2.1 1-1-1模式,在配置日志归档目录时,三个节点上没有挂载nfs /data/nfs/backup/archive,只是在各个节点上建了本地目录。然后通过命令ALTER SYSTEM ARCHIVELOG TENANT=mysqlt 发起了日志归档。日志归档竟然发起来了。如下图所示:

问题:之前一直按照官方文档 日志归档前准备-V4.3.5-OceanBase 数据库文档-分布式数据库使用文档
配置的NFS目录,然后发起归档。这次没有给OBServer节点配置NFS目录,归档也发起来了。

想问下不配置NFS目录时,发起归档会有什么问题么?对之后的数据备份、恢复会有什么影响?

2 个赞

查下这个租户呢?看下有几个副本

select * from dba_ob_tenants where tenant_id=1002\G;
2 个赞


3个副本

2 个赞

是要求NFS等共享存储目录的,查下这个看下,另外再发起备份看下

select * from oceanbase.CDB_OB_ARCHIVELOG_PIECE_FILES where tenant_id=1002\G;
select * from oceanbase.CDB_OB_ARCHIVELOG_SUMMARY where tenant_id=1002\G;
2 个赞

不配NFS,日志归档是可以正常发起的。想咨询下对后续数据备份或恢复有啥影响?

2 个赞

我记的 不设置归档目录就可以发起归档在历史版本中是个bug。

2 个赞

这个是历史的帖子 。 历史版本可能不在修复了 。 您看下
image

2 个赞

和您发的帖子是有点相似,您发的这个帖子是默认归档到家目录下的/home/admin/oceanbase/data了。

我这边的操作和帖子的区别就是:我配置了归档目录,不过归档目录是指定的一个本地目录,不是NFS目录。归档的结果就是下图中的这样。这样的归档操作对后续的数据备份和恢复会有影响吗?

2 个赞

如果是三个本地目录 应该不能用才对。 数据都不完整吧。

您看您的第一个目录有很多文件 吗 observer2 3 仅仅 一个目录。
怎么去找检查点呢 ?

2 个赞

备份的 目的就是为了 恢复。 您可以尝试进行恢复看看

1 个赞

相当于你欺骗了 OB 。 如果你的主副本都是打散的,每个节点上都有部分数据备份和日志备份,那么还原的时候就麻烦了。 特别是异机还原。

3 个赞

这个问题我们再确认下,有进展尽快回复您

1 个赞

您好!挂载NFS实际上是我们推荐的用法,因为我们是分布式数据库,归档过程中可能会存在不同的server归档的数据才能组成完整的用户数据,所以得提供一个共享的目的端,让不同的server可以把数据写到一起。但实际上我们只认挂载的目录是否存在,不会去校验这个目录必须是一个挂载的目录,即不会去拦截用户手动构造的这样的非标场景。该种场景下,您对ob的欺骗是成功的,这会造成用户的完整数据被分散在不同的地方,任何一个目录下的数据都可能不是完整的。

目前我们不支持本地目录,必须是NFS挂载目录,且要按照我们推荐的挂载参数进行挂载才能保证归档的数据是完整可靠的,否则可能会存在数据不一致的风险。

1 个赞

感谢,了解了。

1 个赞

学到了!!