【OceanBase】v4.2.1 集群命令汇总

2024-03-28 13:52

本文主要是介绍【OceanBase】v4.2.1 集群命令汇总,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

查看集群信息

# 查看所有集群
obd cluster list# 启动集群ob3cluster
obd cluster start ob3cluster# 停止集群
obd cluster stop ob3cluster

登录数据库

# root用户的sys租户登录数据库
obclient -hxxx.xxx.xxx.xxx -uxxx:sys:root -P2883 -pxxxxxx -c -A -DOceanbase

NFS 配置

NFS服务端

/etc/exports

/data/nfs_server/ xx.xx.xx.xx/16(rw,sync,all_squash)

NFS客户端

mount -tnfs4 -o rw,nfsvers=4.1,sync,lookupcache=positive,hard,timeo=600,wsize=1048576,rsize=1048576,namlen=255 192.168.xx.xx:/storage/ob421 /storage/ob421  

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.xx.xx :表示 NFS 服务器的 IP 地址。

日志归档

设置日志归档目录

ALTER SYSTEM SET LOG_ARCHIVE_DEST='LOCATION=file:///storage/ob421/archive/mysqlt' TENANT = mysqlt;

设置好之后的目录情况:

[root@localhost mysqlt]# pwd
/storage/ob421/archive/mysqlt
[root@localhost mysqlt]# ll
total 8
drwx------ 2 nfsnobody nfsnobody 4096 Dec 14 09:56 check_file
-rw------- 1 nfsnobody nfsnobody  148 Dec 14 09:56 format.obbak
[root@localhost mysqlt]# ll check_file/
total 4
-rw------- 1 nfsnobody nfsnobody 145 Dec 14 09:56 1002_connect_file_20231214T095621.obbak
[root@localhost mysqlt]# 

开启日志归档模式

ALTER SYSTEM ARCHIVELOG TENANT = mysqlt;

但日志归档状态为BEGINNING,多了目录piece_d1001r0p1, rounds:

[root@localhost mysqlt]# ll
total 16
drwx------ 2 nfsnobody nfsnobody 4096 Dec 14 09:56 check_file
-rw------- 1 nfsnobody nfsnobody  148 Dec 14 09:56 format.obbak
drwx------ 4 nfsnobody nfsnobody 4096 Dec 14 10:01 piece_d1001r1p1
drwx------ 2 nfsnobody nfsnobody 4096 Dec 14 10:01 rounds
[root@localhost mysqlt]#

当日志归档状态变成DOING,目录情况:

[root@localhost mysqlt]# ll
total 20
drwx------ 2 nfsnobody nfsnobody 4096 Dec 14 09:56 check_file
-rw------- 1 nfsnobody nfsnobody  148 Dec 14 09:56 format.obbak
drwx------ 5 nfsnobody nfsnobody 4096 Dec 14 10:03 piece_d1001r1p1
drwx------ 2 nfsnobody nfsnobody 4096 Dec 14 10:03 pieces
drwx------ 2 nfsnobody nfsnobody 4096 Dec 14 10:01 rounds
[root@localhost mysqlt]#

关闭日志归档模式

ALTER SYSTEM NOARCHIVELOG TENANT = mysqlt;

查看日志归档进度

SELECT * FROM oceanbase.CDB_OB_ARCHIVELOG\G

刚开始的归档状态是BEGINING:

obclient [Oceanbase]> SELECT * FROM oceanbase.CDB_OB_ARCHIVELOG\G
*************************** 1. row ***************************TENANT_ID: 1002DEST_ID: 1001ROUND_ID: 1INCARNATION: 1DEST_NO: 0STATUS: BEGINNINGSTART_SCN: 1702519281626895202START_SCN_DISPLAY: 2023-12-14 10:01:21.626895CHECKPOINT_SCN: 1702519281626895202CHECKPOINT_SCN_DISPLAY: 2023-12-14 10:01:21.626895COMPATIBLE: 1BASE_PIECE_ID: 1USED_PIECE_ID: 1PIECE_SWITCH_INTERVAL: 86400000000UNIT_SIZE: 1COMPRESSION: noneINPUT_BYTES: 0INPUT_BYTES_DISPLAY: 0.00MBOUTPUT_BYTES: 0OUTPUT_BYTES_DISPLAY: 0.00MBCOMPRESSION_RATIO: 0.00DELETED_INPUT_BYTES: 0DELETED_INPUT_BYTES_DISPLAY: 0.00MBDELETED_OUTPUT_BYTES: 0
DELETED_OUTPUT_BYTES_DISPLAY: 0.00MBCOMMENT: PATH: file:///storage/ob421/archive/mysqlt
1 row in set (0.004 sec)obclient [Oceanbase]>

过一会归档完成,状态就变成DOING了:

obclient [Oceanbase]> SELECT * FROM oceanbase.CDB_OB_ARCHIVELOG\G
*************************** 1. row ***************************TENANT_ID: 1002DEST_ID: 1001ROUND_ID: 1INCARNATION: 1DEST_NO: 0STATUS: DOINGSTART_SCN: 1702519281626895202START_SCN_DISPLAY: 2023-12-14 10:01:21.626895CHECKPOINT_SCN: 1702519401550565270CHECKPOINT_SCN_DISPLAY: 2023-12-14 10:03:21.550565COMPATIBLE: 1BASE_PIECE_ID: 1USED_PIECE_ID: 1PIECE_SWITCH_INTERVAL: 86400000000UNIT_SIZE: 1COMPRESSION: noneINPUT_BYTES: 69213550INPUT_BYTES_DISPLAY: 66.01MBOUTPUT_BYTES: 69213550OUTPUT_BYTES_DISPLAY: 66.01MBCOMPRESSION_RATIO: 1.00DELETED_INPUT_BYTES: 0DELETED_INPUT_BYTES_DISPLAY: 0.00MBDELETED_OUTPUT_BYTES: 0
DELETED_OUTPUT_BYTES_DISPLAY: 0.00MBCOMMENT: PATH: file:///storage/ob421/archive/mysqlt
1 row in set (0.003 sec)obclient [Oceanbase]> 

查看归档参数

SELECT * FROM oceanbase.CDB_OB_ARCHIVE_DEST\G

数据备份

设置数据备份目录

ALTER SYSTEM SET DATA_BACKUP_DEST= 'file:///storage/ob421/data/mysqlt' TENANT = mysqlt;-- 如果想清空备份目录配置,将DATA_BACKUP_DEST置为空即可。 
ALTER SYSTEM SET DATA_BACKUP_DEST='' TENANT=mysqlt;

设置数据备份目录之后的目录情况:

[root@localhost mysqlt]# pwd
/storage/ob421/data/mysqlt
[root@localhost mysqlt]# ll
total 8
drwx------ 2 nfsnobody nfsnobody 4096 Dec 14 10:07 check_file
-rw------- 1 nfsnobody nfsnobody  145 Dec 14 10:07 format.obbak
[root@localhost mysqlt]# ll check_file/
total 4
-rw------- 1 nfsnobody nfsnobody 142 Dec 14 10:07 1002_connect_file_20231214T100726.obbak
[root@localhost mysqlt]#

集群转储与合并

Oceanbase数据分为MemTable(内存数据)和SSTable(静态数据)两部分。

当MemTable的大小超过一定阈值时,需要将MemTable中的数据转存到SSTable中以释放内存,这一过程称为转储

转储的前置动作: 内存冻结。
租户MemTable的内存分为两种:Active MemTable和Frozen MemTable,当一个租户MemTable内存的使用量达到阈值时,会自动触发冻结,生成新的Active MemTable,原来的Active MemTable成为Frozen MemTable,然后再自动调度转储,转储完成后释放Frozen MemTable部分的内存。

转储生成新的SSTable,当转储次数超过一定阈值时,或在业务低峰期,会将基线SSTable与之后转储的增量SSTable合并为一个SSTable,这一过程称为合并

发起转储

alter system minor freeze

发起合并

ALTER SYSTEM MAJOR FREEZE;

获取合并进度

SELECT * FROM oceanbase.CDB_OB_MAJOR_COMPACTION;

发起全量数据备份

ALTER SYSTEM BACKUP TENANT=mysqlt;

发起全量数据备份之后的目录结构:

[root@localhost mysqlt]# ll
total 16
drwx------ 5 nfsnobody nfsnobody 4096 Dec 14 10:14 backup_set_1_full
drwx------ 2 nfsnobody nfsnobody 4096 Dec 14 10:14 backup_sets
drwx------ 2 nfsnobody nfsnobody 4096 Dec 14 10:07 check_file
-rw------- 1 nfsnobody nfsnobody  145 Dec 14 10:07 format.obbak

发起增量数据备份

ALTER SYSTEM BACKUP INCREMENTAL TENANT=mysqlt;

增量数据备份之后的目录结构:

[root@localhost mysqlt]# ll
total 20
drwx------ 5 nfsnobody nfsnobody 4096 Dec 14 10:14 backup_set_1_full
drwx------ 5 nfsnobody nfsnobody 4096 Dec 14 10:21 backup_set_2_inc
drwx------ 2 nfsnobody nfsnobody 4096 Dec 14 10:21 backup_sets
drwx------ 2 nfsnobody nfsnobody 4096 Dec 14 10:07 check_file
-rw------- 1 nfsnobody nfsnobody  145 Dec 14 10:07 format.obbak

停止备份

ALTER SYSTEM CANCEL BACKUP TENANT = mysqlt;

停止的时候,备份状态为:CANCELING -> CANCELED

查看数据备份进度

SELECT * FROM oceanbase.CDB_OB_BACKUP_JOBS\G

备份进度,状态会从 INIT -> DOING -> COMPLETED, 结束之后再查询 oceanbase.CDB_OB_BACKUP_JOBS会变为空。

obclient [Oceanbase]> SELECT * FROM oceanbase.CDB_OB_BACKUP_JOBS\G
*************************** 1. row ***************************TENANT_ID: 1JOB_ID: 1INCARNATION: 1BACKUP_SET_ID: 0
INITIATOR_TENANT_ID: 1INITIATOR_JOB_ID: 1EXECUTOR_TENANT_ID: 1002PLUS_ARCHIVELOG: OFFBACKUP_TYPE: FULLJOB_LEVEL: CLUSTERENCRYPTION_MODE: NONEPASSWD: START_TIMESTAMP: 2023-12-14 10:11:19.263166END_TIMESTAMP: NULLSTATUS: DOINGRESULT: 0COMMENT: DESCRIPTION: PATH: 
*************************** 2. row ***************************TENANT_ID: 1002JOB_ID: 1INCARNATION: 1BACKUP_SET_ID: 1
INITIATOR_TENANT_ID: 1INITIATOR_JOB_ID: 1EXECUTOR_TENANT_ID: 1002PLUS_ARCHIVELOG: OFFBACKUP_TYPE: FULLJOB_LEVEL: USER_TENANTENCRYPTION_MODE: NONEPASSWD: START_TIMESTAMP: 2023-12-14 10:11:19.273702END_TIMESTAMP: NULLSTATUS: DOINGRESULT: 0COMMENT: DESCRIPTION: PATH: file:///storage/ob421/data/mysqlt
2 rows in set (0.003 sec)

查看数据备份结果

SELECT * FROM oceanbase.CDB_OB_BACKUP_JOB_HISTORY\G

数据备份结果:

obclient [Oceanbase]> SELECT * FROM oceanbase.CDB_OB_BACKUP_JOB_HISTORY\G
*************************** 1. row ***************************TENANT_ID: 1JOB_ID: 1INCARNATION: 1BACKUP_SET_ID: 0
INITIATOR_TENANT_ID: 1INITIATOR_JOB_ID: 1EXECUTOR_TENANT_ID: 1002PLUS_ARCHIVELOG: OFFBACKUP_TYPE: FULLJOB_LEVEL: CLUSTERENCRYPTION_MODE: NONEPASSWD: START_TIMESTAMP: 2023-12-14 10:11:19.263166END_TIMESTAMP: 2023-12-14 10:14:19.320221STATUS: COMPLETEDRESULT: 0COMMENT: DESCRIPTION: PATH: 
*************************** 2. row ***************************TENANT_ID: 1002JOB_ID: 1INCARNATION: 1BACKUP_SET_ID: 1
INITIATOR_TENANT_ID: 1INITIATOR_JOB_ID: 1EXECUTOR_TENANT_ID: 1002PLUS_ARCHIVELOG: OFFBACKUP_TYPE: FULLJOB_LEVEL: USER_TENANTENCRYPTION_MODE: NONEPASSWD: START_TIMESTAMP: 2023-12-14 10:11:19.273702END_TIMESTAMP: 2023-12-14 10:14:12.823506STATUS: COMPLETEDRESULT: 0COMMENT: DESCRIPTION: PATH: file:///storage/ob421/data/mysqlt
2 rows in set (0.003 sec)

查看租户备份路径信息

SELECT * FROM oceanbase.CDB_OB_BACKUP_PARAMETER\G

返回信息:

obclient [Oceanbase]> SELECT * FROM oceanbase.CDB_OB_BACKUP_PARAMETER\G
*************************** 1. row ***************************
TENANT_ID: 1002NAME: data_backup_destVALUE: file:///storage/ob421/data/mysqlt
1 row in set (0.009 sec)obclient [Oceanbase]>

备份集清理策略

-- 创建清理策略,名字叫policy_1, 可恢复窗口是7天,也可以设置其他比如:2h, 3w
ALTER SYSTEM ADD DELETE BACKUP POLICY 'policy_1' RECOVERY_WINDOW 
'7d' TENANT MySQL;-- 查看清理策略
SELECT * FROM oceanbase.CDB_OB_BACKUP_DELETE_POLICY;-- 删除清理策略
ALTER SYSTEM DROP DELETE BACKUP POLICY policy_name 
TENANT tenant_name;

恢复数据

恢复前准备

恢复前需要创建出资源单元和资源池,恢复出来的新租户要使用该资源池。

发起恢复

-- 恢复到指定时间戳
ALTER SYSTEM RESTORE dest_tenant_name FROM uri UNTIL TIME={timestamp} WITH 'pool_list=restore_pool';-- 恢复到指定SCN
ALTER SYSTEM RESTORE dest_tenant_name FROM uri UNTIL SCN={scn} WITH 'pool_list=restore_pool';-- 恢复到最新位点
ALTER SYSTEM RESTORE mysqlt_restore FROM 'file:///storage/data/mysqlt, file:///storage/archive/mysqlt' WITH 'pool_list=restore_pool';

取消恢复

ALTER SYSTEM CANCEL RESTORE tenant_name;

查看恢复进度

oceanbase.CDB_OB_RESTORE_PROGRESS这个视图只有在有恢复任务的时候才有数据,如果没有恢复任务,该视图内容为空。

SELECT * FROM oceanbase.CDB_OB_RESTORE_PROGRESS;

查看恢复结果

SELECT * FROM oceanbase.CDB_OB_RESTORE_HISTORY;

其他命令

ZONE

-- 获取集群zone信息
SELECT * FROM oceanbase.DBA_OB_ZONES;

租户

-- 查询租户
select tenant_id, tenant_name from __all_tenant;-- 删除租户
drop tenant tenant_name1;

资源单元

-- 获取资源单元
select * from DBA_OB_UnitS;
SELECT * FROM oceanbase.__all_unit_config;-- 创建资源单元
CREATE RESOURCE UNIT restore_unit MAX_CPU 1.5, MEMORY_SIZE = '5G', MAX_IOPS 10240, MIN_IOPS=10240;

资源池

-- 获取资源池
SELECT * FROM DBA_OB_RESOURCE_POOLS;
SELECT * FROM oceanbase.__all_resource_pool;-- 创建资源池
CREATE RESOURCE POOL restore_pool unit = 'restore_unit', unit_num = 1, zone_list = ('zone1');

参考资料

  • 转储与合并 https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000639915

这篇关于【OceanBase】v4.2.1 集群命令汇总的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/855793

相关文章

python获取网页表格的多种方法汇总

《python获取网页表格的多种方法汇总》我们在网页上看到很多的表格,如果要获取里面的数据或者转化成其他格式,就需要将表格获取下来并进行整理,在Python中,获取网页表格的方法有多种,下面就跟随小编... 目录1. 使用Pandas的read_html2. 使用BeautifulSoup和pandas3.

Java对象转换的实现方式汇总

《Java对象转换的实现方式汇总》:本文主要介绍Java对象转换的多种实现方式,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录Java对象转换的多种实现方式1. 手动映射(Manual Mapping)2. Builder模式3. 工具类辅助映

Linux命令之firewalld的用法

《Linux命令之firewalld的用法》:本文主要介绍Linux命令之firewalld的用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux命令之firewalld1、程序包2、启动firewalld3、配置文件4、firewalld规则定义的九大

Linux之计划任务和调度命令at/cron详解

《Linux之计划任务和调度命令at/cron详解》:本文主要介绍Linux之计划任务和调度命令at/cron的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux计划任务和调度命令at/cron一、计划任务二、命令{at}介绍三、命令语法及功能 :at

Linux ls命令操作详解

《Linuxls命令操作详解》通过ls命令,我们可以查看指定目录下的文件和子目录,并结合不同的选项获取详细的文件信息,如权限、大小、修改时间等,:本文主要介绍Linuxls命令详解,需要的朋友可... 目录1. 命令简介2. 命令的基本语法和用法2.1 语法格式2.2 使用示例2.2.1 列出当前目录下的文

Spring Boot项目部署命令java -jar的各种参数及作用详解

《SpringBoot项目部署命令java-jar的各种参数及作用详解》:本文主要介绍SpringBoot项目部署命令java-jar的各种参数及作用的相关资料,包括设置内存大小、垃圾回收... 目录前言一、基础命令结构二、常见的 Java 命令参数1. 设置内存大小2. 配置垃圾回收器3. 配置线程栈大小

Redis分片集群的实现

《Redis分片集群的实现》Redis分片集群是一种将Redis数据库分散到多个节点上的方式,以提供更高的性能和可伸缩性,本文主要介绍了Redis分片集群的实现,具有一定的参考价值,感兴趣的可以了解一... 目录1. Redis Cluster的核心概念哈希槽(Hash Slots)主从复制与故障转移2.

Linux find 命令完全指南及核心用法

《Linuxfind命令完全指南及核心用法》find是Linux系统最强大的文件搜索工具,支持嵌套遍历、条件筛选、执行动作,下面给大家介绍Linuxfind命令完全指南,感兴趣的朋友一起看看吧... 目录一、基础搜索模式1. 按文件名搜索(精确/模糊匹配)2. 排除指定目录/文件二、根据文件类型筛选三、时间

使用mvn deploy命令上传jar包的实现

《使用mvndeploy命令上传jar包的实现》本文介绍了使用mvndeploy:deploy-file命令将本地仓库中的JAR包重新发布到Maven私服,文中通过示例代码介绍的非常详细,对大家的学... 目录一、背景二、环境三、配置nexus上传账号四、执行deploy命令上传包1. 首先需要把本地仓中要

Windows命令之tasklist命令用法详解(Windows查看进程)

《Windows命令之tasklist命令用法详解(Windows查看进程)》tasklist命令显示本地计算机或远程计算机上当前正在运行的进程列表,命令结合筛选器一起使用,可以按照我们的需求进行过滤... 目录命令帮助1、基本使用2、执行原理2.1、tasklist命令无法使用3、筛选器3.1、根据PID