案例说明:

KingbaseES 数据库支持用户自定义表空间的创建,并建议表空间的文件存储路径配置到数据库的data目录之外。本案例复现了,当用户自定义表空间存储路径配置到data下时,出现的故障问题。

适用版本:

KingbaseES V8R3

Tips:

本次案例复现采用的是Kingbase V008R003C002B0290 版本,根据实施人员在现场反馈KingbaseES 8.7.3.160D的版本出现的故障信息不一致。

集群节点信息:

一、创建用户自定义表空间

1、主备库创建表空间存储目录

[kingbase@node102 bin]$ mkdir -p /home/kingbase/cluster/R3HA/db/data/base

Tips:

/home/kingbase/cluster/R3HA/db/data/为集群数据库的存储路径。

2、在主库创建表空间

PROD=# create tablespace system owner system
location '/home/kingbase/cluster/R3HA/db/data/base';
WARNING: tablespace location should not be inside the data directory
CREATE TABLESPACE

=如下所示,将表空间的存储配置到data下,创建表空间系统发出了警告,但是表空间仍可以创建。=

3、查看表空间信息

PROD=# \db+
List of tablespaces
Name | Owner | Location | Access privileges | Options | Size | Description
-------------+--------+------------------------------------------+-------------------+---------+----------+-------------
SYSTEM | SYSTEM | /home/kingbase/cluster/R3HA/db/data/base | | | 0 bytes |
SYS_DEFAULT | SYSTEM | | SYSTEM=C/SYSTEM +| | 104 MB |
| | | =C/SYSTEM | | |
SYS_GLOBAL | SYSTEM | | | | 568 kB |
USERS | SYSTEM | /data/kingbase/tbs/user | | | 18 bytes |
(4 rows) PROD=# select oid ,* from sys_tablespace;
OID | SPCNAME | SPCOWNER | SPCSIZE | SPCACL | SPCOPTIONS
-------+-------------+----------+---------+-----------------------------+------------
1664 | SYS_GLOBAL | 10 | 0 | |
1663 | SYS_DEFAULT | 10 | 0 | {SYSTEM=C/SYSTEM,=C/SYSTEM} |
28340 | USERS | 10 | 0 | |
28552 | SYSTEM | 10 | 0 | |
(4 rows)

4、查看表空间存储信息

# 在data/sys_tblspc目录下建立表空间存储的链接
[kingbase@node102 sys_tblspc]$ ls -lh
total 0
lrwxrwxrwx 1 kingbase kingbase 23 Aug 23 18:59 28340 -> /data/kingbase/tbs/user
lrwxrwxrwx 1 kingbase kingbase 40 Aug 23 19:34 28552 -> /home/kingbase/cluster/R3HA/db/data/base [kingbase@node102 sys_tblspc]$ cd 28552/ # 表空间的实际存储位置(data/base目录下)
[kingbase@node102 28552]$ ls -lh
total 148K
drwx------ 2 kingbase kingbase 8.0K Aug 23 18:54 1
drwx------ 2 kingbase kingbase 8.0K Jun 22 14:09 14927
drwx------ 2 kingbase kingbase 8.0K Aug 23 19:34 14928
drwx------ 2 kingbase kingbase 8.0K Aug 23 19:30 14929
drwx------ 2 kingbase kingbase 12K Aug 23 18:54 14930
drwx------ 2 kingbase kingbase 8.0K Aug 23 18:54 15371
drwx------ 2 kingbase kingbase 8.0K Aug 23 18:54 16398
drwx------ 2 kingbase kingbase 8.0K Aug 23 18:54 16425
drwx------ 2 kingbase kingbase 6 Aug 23 19:34 SYS_V008R003_201608131

二、通过sys_basebackup克隆新的备库

# 执行sys_basebackup克隆新的备库
[kingbase@node101 bin]$ ./sys_basebackup -h 192.168.1.102 -U SYSTEM -W 123456 -Fp -x -P -v
-T /home/kingbase/cluster/R3HA/db/data/base=/data/kingbase/tbs/system
-D /home/kingbase/cluster/R3HA/db/data transaction log start point: 0/4E000028 on timeline 12
17293/17293 kB (100%), 3/3 tablespaces
transaction log end point: 0/4E0000F8
sys_basebackup: base backup completed # 查看备库data/base下文件(文件为空)
[kingbase@node101 bin]$ ls -lh ../data/base
total 0 # 备库表空间存储文件
[kingbase@node101 bin]$ ls -lh /data/kingbase/tbs/system
total 0
drwx------ 3 kingbase kingbase 18 Aug 24 10:31 SYS_V008R003_201608131

Tips:

经测试,只有在主库删除system(用户自定义)表空间后,通过sys_basebackup克隆备库才正常。

三、生产环境的处理

=对于生产环境,不能直接将表空间删除,但是可以通过迁移方式,将表空间的存储路径迁移到data之外,保证系统的稳定性。=

四、总结

在KingbaseES上使用用户自定义的表空间,应该将表空间的存储配置到数据库的data目录之外,尤其是集群环境,在执行集群的切换、节点恢复及物理备份时,如果将自定义表空间存储配置到数据库data目录下时,难免出现不必要的故障问题。

KingbaseES V8R3集群运维案例之---用户自定义表空间管理的更多相关文章

  1. KingbaseES V8R3集群运维案例之---主库系统down failover切换过程分析

    ​ 案例说明: KingbaseES V8R3集群failover时两个cluster都会触发,但只有一个cluster会调用脚本去执行真正的切换流程,另一个有对应的打印,但不会调用脚本,只是走相关的 ...

  2. KingbaseES V8R3集群管理维护案例之---集群迁移单实例架构

    案例说明: 在生产中,需要将KingbaseES V8R3集群转换为单实例架构,可以采用以下方式快速完成集群架构的迁移. 适用版本: KingbaseES V8R3 当前数据库版本: TEST=# s ...

  3. KingbaseES V8R3集群管理和维护案例之---failover切换wal日志变化分析

    ​ 案例说明: 本案例通过对KingbaseES V8R3集群failover切换过程进行观察,分析了主备库切换后wal日志的变化,对应用者了解KingbaseES V8R3(R6) failover ...

  4. KingbaseES V8R3集群维护案例之---在线添加备库管理节点

    案例说明: 在KingbaseES V8R3主备流复制的集群中 ,一般有两个节点是集群的管理节点,分为master和standby:如对于一主二备的架构,其中有两个节点是管理节点,三个数据节点:管理节 ...

  5. PB 级大规模 Elasticsearch 集群运维与调优实践

    PB 级大规模 Elasticsearch 集群运维与调优实践 https://mp.weixin.qq.com/s/PDyHT9IuRij20JBgbPTjFA | 导语 腾讯云 Elasticse ...

  6. 集群运维ansible

    ssh免密登录 集群运维 生成秘钥,一路enter cd ~/.ssh/ ssh-keygen -t rsa 讲id_rsa.pub文件追加到授权的key文件中 cat ~/.ssh/id_rsa.p ...

  7. 阿里巴巴大规模神龙裸金属 Kubernetes 集群运维实践

    作者 | 姚捷(喽哥)阿里云容器平台集群管理高级技术专家 本文节选自<不一样的 双11 技术:阿里巴巴经济体云原生实践>一书,点击即可完成下载. 导读:值得阿里巴巴技术人骄傲的是 2019 ...

  8. kingbaseES V8R6集群备份恢复案例之---备库作为repo主机执行物理备份

    ​ 案例说明: 此案例是在KingbaseES V8R6集群环境下,当主库磁盘空间不足时,执行sys_rman备份,将集群的备库节点作为repo主机,执行备份,并将备份存储在备库的磁盘空间. 集群架构 ...

  9. KingbaseES V8R6集群外部备份案例

    案例说明: 本案例采用sys_backup.sh执行物理备份,备份使用如下逻辑架构:集群采用CentOS 7系统,repo采用kylin V10 Server. 一主一备+外部备份 此场景为主备双机常 ...

随机推荐

  1. Freeswitch使用originate转dialplan

    概述 Freeswitch是一款非常好用的开源VOIP软交换平台. 最近在对fs做一些功能测试,测试的过程中产生的一个需求,如何从fs发起呼叫并把后续的呼叫流程转到某一个dialplan上,这样在测试 ...

  2. 使用Playbook批量部署多台LAMP环境

    1. 安装ansible yum install epel-release -y yum install ansible -y Playbook是一个不同于使用ansible命令行执行方式的模式,功能 ...

  3. js烧脑面试题大赏

    本文精选了20多道具有一定迷惑性的js题,主要考察的是类型判断.作用域.this指向.原型.事件循环等知识点,每道题都配有笔者详细傻瓜式的解析,偏向于初学者,大佬请随意. 第1题 let a = 1 ...

  4. Json多层级动态结构数据解析

    一.工具 (1)GSON Google Gson是一个简单的基于Java的库,用于将Java对象序列化为JSON,反之亦然. 它是由Google开发的一个开源库. 以下几点说明为什么应该使用这个库 - ...

  5. 比我的脸还干的gan货——Python Flask Web 框架入门

    Flask是一个轻量级的基于Python的web框架. 本文适合有一定HTML.Python.网络基础的同学阅读. 1. 简介 这份文档中的代码使用 Python 3 运行.是的,所以读者需要自己在电 ...

  6. idea中创建Java类时,自动在文件头中添加作者和创建时间

    在Settings中找到File and Code Templates 设置如下图所示. 效果展示:

  7. Tapdata 实时数据中台在智慧教育中的实践

      摘要:随着教育信息化的推进,智慧校园建设兴起,但在实施过程中面临数据孤岛.应用繁多.数据再利用等方面挑战,而 Tapdata 的实时数据中台解决方案,能够高效地解决智慧校园实施中的基础数据问题. ...

  8. 注意力机制最新综述:A Comprehensive Overview of the Developments in Attention Mechanism

    (零)注意力模型(Attention Model) 1)本质:[选择重要的部分],注意力权重的大小体现选择概率值,以非均匀的方式重点关注感兴趣的部分. 2)注意力机制已成为人工智能的一个重要概念,其在 ...

  9. .NET ORM框架HiSql实战-第三章-使用自定义编号生成【申请编号】

    一.引言 上一篇.NET ORM框架HiSql实战-第二章-使用Hisql实现菜单管理(增删改查) 中菜单编号采用的是雪花ID,生成的编号无法自定义.比如本系统的一个申请业务,需要按前缀+日期+流水号 ...

  10. DENIED Redis is running in protected mode because protected mode is enabled

    DENIED Redis is running in protected mode because protected mode is enabled redisson连接错误 Unable to i ...