二进制安装StarRocks 存算一体 3.4.0版本(单机版)

基础环境

系统环境软件版本IP地址FEBECPU指令集
Ubuntu 22.04.1 LTSStarRocks-3.4.010.84.91.10LEADERBEAVX2

安装之前须查看系统CPU是否支持AVX2指令集

cat /proc/cpuinfo | grep avx2

注意:StarRocks 依靠 AVX2 指令集充分发挥其矢量化能力,因此CPU指令集必须存在AVX2否则服务将无法正常工作。

环境配置

官网地址:https://docs.starrocks.io/zh/docs/deployment/environment_configurations/

JDK环境配置

安装JDK依赖

apt install openjdk-11-jdk

配置JDK环境变量

export JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64/ >> /etc/profile
export PATH=/usr/lib/jvm/java-1.11.0-openjdk-amd64/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin >> /etc/profile
export LANG=en_US.UTF8 >> /etc/profile ##配置 LANG 变量

source /etc/profile

禁用Transparent Huge Pages(Ubuntu默认就是madvise,可跳过)

# 临时变更。
echo madvise | sudo tee /sys/kernel/mm/transparent_hugepage/enabled
echo madvise | sudo tee /sys/kernel/mm/transparent_hugepage/defrag

# 永久变更。
cat >> /etc/rc.d/rc.local << EOF
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
   echo madvise > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
   echo madvise > /sys/kernel/mm/transparent_hugepage/defrag
fi
EOF

禁用 Swap Space

#临时关闭 Swap Space。
swapoff -a

#永久关闭swapoff
#从 /etc/fstab 文件中删除 Swap Space 信息。
[root@starrocks ~]# cat /etc/fstab
...........................................................................
#/dev/mapper/rl-swap     none                    swap    defaults        0 0

#重启机器后确认 Swap Space 已关闭。
[root@starrocks ~]# free -h
               total        used        free      shared  buff/cache   available
Mem:            15Gi       583Mi        11Gi       8.0Mi       3.9Gi        14Gi
Swap:             0B          0B          0B

禁用 SELinux (Ubuntu默认没有SELinux,可跳过)

# 临时变更。
setenforce 0
# 永久变更。
sed -i 's/SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
sed -i 's/SELINUXTYPE/#SELINUXTYPE/' /etc/selinux/config

关闭防火墙(Ubuntu默认防火墙关闭的,可跳过)

systemctl stop firewalld.service && systemctl disable firewalld.service

内核参数优化

cat > /etc/sysctl.conf << EOF
vm.overcommit_memory = 1
vm.swappiness = 0
net.ipv4.tcp_abort_on_overflow=1
net.core.somaxconn=1024
vm.max_map_count = 262144
EOF

sysctl -p #使修改生效
  • vm.max_map_count = 262144 #高并发配置
  • net.core.somaxconn=1024 #监听 Socket 队列的最大连接请求数为 1024
  • net.ipv4.tcp_abort_on_overflow=1#网络配置
  • vm.swappiness=0 #禁用 Swappiness

时区配置

timedatectl set-timezone "Asia/Shanghai"
hwclock

时间同步配置

安装chrony

apt install chrony

配置chrony

cat > /etc/chrony.conf << EOF
pool ntp1.aliyun.com iburst
pool ntp2.aliyun.com iburst
sourcedir /run/chrony-dhcp
driftfile /var/lib/chrony/drift
makestep 1.0 3
rtcsync
keyfile /etc/chrony.keys
ntsdumpdir /var/lib/chrony
leapsectz right/UTC
logdir /var/log/chrony
EOF

重启服务生效

systemctl restart chronyd

ulimit 设置

cat >> /etc/security/limits.conf << EOF
* soft nproc 65535
* hard nproc 65535
* soft nofile 655350
* hard nofile 655350
* soft stack unlimited
* hard stack unlimited
* hard memlock unlimited
* soft memlock unlimited
EOF

cat >> /etc/security/limits.d/20-nproc.conf << EOF 
*          soft    nproc     65535
root       soft    nproc     65535
EOF

检查端口是否被占用

netstat -ntpl | grep "9060\|8040\|9050\|8060\|9070\|8030\|9020\|9030\|9010" 
  • be端口: 9060 8040 9050 8060 9070
  • fe端口: 8030 9020 9030 9010

其他

echo 120000 > /proc/sys/kernel/threads-max
echo 200000 > /proc/sys/kernel/pid_max

安装StarRocks 3.4.0

官方地址:https://docs.starrocks.io/zh/docs/deployment/deploy_manually/

1. 下载并解压至工作目录

curl -L https://releases.starrocks.io/starrocks/StarRocks-3.4.0-ubuntu-amd64.tar.gz | tar -xz -C /apps/ && \
mv /apps/StarRocks-3.4.0-ubuntu-amd64 /apps/StarRocks

2. 创建FE和BE数据目录

mkdir /data/

3. 配置FE文件

cat /apps/StarRocks/fe/conf/fe.conf
LOG_DIR = ${STARROCKS_HOME}/log

DATE = "$(date +%Y%m%d-%H%M%S)"
JAVA_OPTS="-Dlog4j2.formatMsgNoLookups=true -Xmx32768m -XX:+UseMembar -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=7 -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSClassUnloadingEnabled -XX:-CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=80 -XX:SoftRefLRUPolicyMSPerMB=0 -Xloggc:${LOG_DIR}/fe.gc.log.$DATE -XX:+PrintConcurrentLocks"

JAVA_OPTS_FOR_JDK_11="-Dlog4j2.formatMsgNoLookups=true -Xmx30720m -XX:+UseG1GC -Xlog:gc*:${LOG_DIR}/fe.gc.log.$DATE:time -Djava.security.policy=${STARROCKS_HOME}/conf/udf_security.policy"

sys_log_level = INFO
meta_dir = /data/starrocks/fe/meta/
http_port = 8030
rpc_port = 9020
query_port = 9030
edit_log_port = 9010
mysql_service_nio_enabled = true
priority_networks = 10.84.0.0/24

4. 创建 StarRocks FE 启动服务(systemd)

cat /etc/systemd/system/starrocks-fe.service 
[Unit]
Description=starrocks-fe daemon

[Service]
Type=simple
ExecStart=/bin/bash /apps/StarRocks/fe/bin/start_fe.sh
ExecStop=/bin/bash /apps/StarRocks/fe/bin/stop_fe.sh
Restart=always

[Install]
WantedBy=multi-user.target

5. 启动FE服务

systemctl start starrocks-fe.service && systemctl enable starrocks-fe.service

6. 配置BE文件

cat /apps/StarRocks/be/conf/be.conf 
sys_log_level = INFO
be_port = 9060
be_http_port = 8040
heartbeat_service_port = 9050
brpc_port = 8060
starlet_port = 9070
default_replication_num = 1
priority_networks = 10.84.0.0/24
storage_root_path = /data/starrocks/be/

只想部署一个 BE 节点,必须在 FE 配置文件 fe/conf/fe.conf 中设置 default_replication_num 为 1。

default_replication_num = 1

7. 创建 StarRocks BE 启动服务(systemd)

cat /etc/systemd/system/starrocks-be.service
[Unit]
Description=starrocks-be daemon

[Service]
Type=simple
ExecStart=/bin/bash /apps/StarRocks/be/bin/start_be.sh
ExecStop=/bin/bash /apps/StarRocks/be/bin/stop_be.sh
Restart=always

[Install]
WantedBy=multi-user.target

8. 启动BE服务

systemctl start starrocks-be.service && systemctl enable starrocks-be.service

9. 验证服务是否正常启动

netstat -ntpl | grep "9060\|8040\|9050\|8060\|9070\|8030\|9020\|9030\|9010" 
tcp        0      0 0.0.0.0:9050            0.0.0.0:*               LISTEN      3568/starrocks_be   
tcp        0      0 0.0.0.0:9060            0.0.0.0:*               LISTEN      3568/starrocks_be   
tcp        0      0 0.0.0.0:8060            0.0.0.0:*               LISTEN      3568/starrocks_be   
tcp        0      0 0.0.0.0:8040            0.0.0.0:*               LISTEN      3568/starrocks_be   
tcp6       0      0 :::9030                 :::*                    LISTEN      35940/java          
tcp6       0      0 :::9070                 :::*                    LISTEN      3568/starrocks_be   
tcp6       0      0 :::9010                 :::*                    LISTEN      35940/java          
tcp6       0      0 :::9020                 :::*                    LISTEN      35940/java          
tcp6       0      0 :::8030                 :::*                    LISTEN      35940/java 

部署后操作

1. 安装MySQL客户端

apt install mysql-client-core-8.0

2. 无密码登录StarRocks

mysql -h 10.84.91.10 -P9030 -uroot --prompt="StarRocks"

3. 设置root密码

set PASSWORD=PASSWORD('J.K6%\;r*n#Z,5BW_xXp*');

4. SQL查询优化

SET GLOBAL group_concat_max_len = 2048000;
set enable_query_cache=true; 
set GLOBAL pipeline_dop=3;
set enable_profile = true; 
  • group_concat_max_len:全局设置group_concat 最大值
  • enable_query_cache:是否开启 Query Cache,取值范围:true 和 false,true 表示开启,false 表示关闭(默认值),开启该功能后,只有当查询满足Query Cache 所述条件时,才会启用 Query Cache。
  • pipeline_dop:一个 Pipeline 实例的并行数量。可通过设置实例的并行数量调整查询并发度。默认值为 0,即系统自适应调整每个 pipeline 的并行度。您也可以设置为大于 0 的数值,通常为 BE 节点 CPU 物理核数的一半。从 3.0 版本开始,支持根据查询并发度自适应调节 pipeline_dop,有多少副本就配置多少。
  • enable_profile:用于设置是否需要查看查询的 profile。默认为 false,即不需要查看 profile。默认情况下,只有在查询发生错误时,BE 才会发送 profile 给 FE,用于查看错误。正常结束的查询不会发送 profile。发送 profile 会产生一定的网络开销,对高并发查询场景不利。当用户希望对一个查询的 profile 进行分析时,可以将这个变量设为 true 后,发送查询。查询结束后,可以通过在当前连接的 FE 的 web 页面(地址:fe_host:fe_http_port/query)查看 profile。该页面会显示最近 100 条开启了 enable_profile 的查询的 profile。

5. 添加be节点至集群

单节点

ALTER SYSTEM ADD BACKEND "10.84.91.10:9050"

多节点

ALTER SYSTEM ADD BACKEND "10.84.91.10:9050", "10.84.91.11:9050", "10.84.91.12:9050";

6. 验证是否添加成功

StarRocks> SHOW PROC '/backends'\G
*************************** 1. row ***************************
            BackendId: 10002
                   IP: 10.84.91.10
        HeartbeatPort: 9050
               BePort: 9060
             HttpPort: 8040
             BrpcPort: 8060
        LastStartTime: 2025-03-13 14:54:57
        LastHeartbeat: 2025-03-17 10:33:40
                Alive: true
 SystemDecommissioned: false
ClusterDecommissioned: false
            TabletNum: 69
     DataUsedCapacity: 0.000 B
        AvailCapacity: 746.239 GB
        TotalCapacity: 786.374 GB
              UsedPct: 5.10 %
       MaxDiskUsedPct: 5.10 %
               ErrMsg: 
              Version: 3.4.0-e94580b
               Status: {"lastSuccessReportTabletsTime":"2025-03-17 10:33:39"}
    DataTotalCapacity: 746.239 GB
          DataUsedPct: 0.00 %
             CpuCores: 8
             MemLimit: 50.866GB
    NumRunningQueries: 0
           MemUsedPct: 0.30 %
           CpuUsedPct: 0.1 %
     DataCacheMetrics: Status: Normal, DiskUsage: 0B/580GB, MemUsage: 0B/0B
             Location: 
           StatusCode: OK
1 row in set (0.02 sec)
  • Alive: true:添加成功

7. 添加fe节点至集群

7.1、手动操作从节点启动时要指定LEADE的IP

/apps/StarRocks/fe/bin/start_fe.sh --helper "fe_leader_host:edit_log_port" --daemon

7.2、systemd 托管添加至集群方式

cat /etc/systemd/system/starrocks-fe.service 
[Unit]
Description=starrocks-fe daemon

[Service]
Type=simple
ExecStart=/bin/bash /apps/StarRocks/fe/bin/start_fe.sh --helper "fe_leader_host:edit_log_port" --daemon
ExecStop=/bin/bash /apps/StarRocks/fe/bin/stop_fe.sh
Restart=always

[Install]
WantedBy=multi-user.target

7.3、在LEADER节点添加从节点IP和PORT至集群中

ALTER SYSTEM ADD FOLLOWER "10.84.91.11:9010","10.84.91.12:9010"

因为此处是单机模式,默认自动会将本机fe节点添加进去并设置为LEADER,可跳过,如果是多节点可执行以上操作。

8. 验证是否添加成功

StarRocks> SHOW FRONTENDS\G;
*************************** 1. row ***************************
             Name: 10.84.91.10_9010_1741848390717
               IP: 10.84.91.10
      EditLogPort: 9010
         HttpPort: 8030
        QueryPort: 9030
          RpcPort: 9020
             Role: LEADER
        ClusterId: 480437351
             Join: true
            Alive: true
ReplayedJournalId: 99143
    LastHeartbeat: 2025-03-17 10:33:55
         IsHelper: true
           ErrMsg: 
        StartTime: 2025-03-17 10:32:36
          Version: 3.4.0-e94580b
1 row in set (0.04 sec)

ERROR: 
No query specified
  • Alive: true 添加成功

备份与恢复

官方地址:https://docs.starrocks.io/zh/docs/administration/management/Backup_and_restore/

StarRocks 支持在以下外部存储系统中备份数据:

  • Apache™ Hadoop® (HDFS)集群
  • AWS S3
  • Google GCS
  • 阿里云 OSS
  • 腾讯云 COS
  • 华为云 OBS
  • MinIO

StarRocks 支持备份以下对象:

  • 内部数据库、表(所有类型和分区策略)和分区
  • External Catalog 的元数据(自 v3.4.0 开始支持)
  • 同步物化视图和异步物化视图
  • 逻辑视图(自 v3.4.0 开始支持)
  • UDF(自 v3.4.0 开始支持)

部署外部存储(minio)依赖环境

1.安装docker

apt install docker.io

2.安装docker-compose

sudo curl -L https://github.com/docker/compose/releases/download/v2.33.1/docker-compose-linux-x86_64 -o /usr/bin/docker-compose && \
sudo chmod +x /usr/bin/docker-compose

部署外部存储(minio)

1. 部署minio

cat > docker-compose.yaml << EOF
services:
  minio:
    container_name: minio
    image: minio/minio:latest
    ports:
      - "9000:9000"
      - "9001:9001"
    environment:
      MINIO_ROOT_USER: minioadmin
      MINIO_ROOT_PASSWORD: Sec@2024
    command: minio server /minio_data --console-address ":9001"
    volumes:
      - /opt/minio/minio-data:/minio_data
    healthcheck:
      test: ["CMD", "curl", "-f", "http://minio:9000/minio/health/live"]
      interval: 5s
      timeout: 5s
      retries: 5
EOF

2. 启动minio

docker-compose up -d

3. 创建AK和SK

3.1、下载Minio Client 工具

curl -L https://dl.min.io/client/mc/release/linux-amd64/mc -o /usr/bin/mc && \ 
sudo chmod +x /usr/bin/mc

3.2、设置别名

因Minio Client工具的要求,只能用 alias(别名)访问服务端

mc alias set StarRocks http://127.0.0.1:9000 minioadmin Sec@2024 && \
mc admin user svcacct add \
  --access-key StarRocks \
  --secret-key Sec@2024 \
  StarRocks \
  minioadmin

3.3、验证是否创建成功

列出 minioadmin 账号下的所有AK

mc admin user svcacct list StarRocks minioadmin
   Access Key        | Expiry                 
StarRocks        | no-expiry

3.4、创建bucket

mc mb StarRocks/starrocks
  • mc mb:make bucket,用于创建 bucket;
  • StarRocks:你通过 mc alias set 配置的别名;
  • my-bucket:你要创建的 bucket 名称,可以改成你需要的名字。

备份StarRocks数据库

1. 创建备份仓库

语法格式:https://docs.starrocks.io/zh/docs/sql-reference/sql-statements/backup_restore/CREATE_REPOSITORY/

在 MinIO 存储空间 bucket_minio 中创建仓库 test_repo,s3的访问路径结尾不能以/结尾,否则会有报错,备份数据将在starrocks buckets中存放

CREATE REPOSITORY test_repo
WITH BROKER
ON LOCATION "s3://starrocks/test_bak"
PROPERTIES(
    "aws.s3.access_key" = "StarRocks",
    "aws.s3.secret_key" = "Sec@2024",
    "aws.s3.endpoint" = "http://10.84.91.10:9000"
);

2. 验证是否创建成功

mysql> SHOW REPOSITORIES;
+---------+----------------------------+---------------------+------------+-------------------------------------------+--------+--------+
| RepoId  | RepoName                   | CreateTime          | IsReadOnly | Location                                  | Broker | ErrMsg |
+---------+----------------------------+---------------------+------------+-------------------------------------------+--------+--------+
| 4561972 | test_repo                  | 2025-03-17 10:06:06 | false      | s3://starrocks/test_bak                   |        | NULL   |
+---------+----------------------------+---------------------+------------+-------------------------------------------+--------+--------+
1 rows in set (0.00 sec)

3. 备份数据库(全量备份)

为数据库 sr_hub 创建数据快照 sr_hub_20240317 并备份至仓库 test_repo 中。

-- 自 v3.4.0 起支持。
BACKUP DATABASE sr_hub SNAPSHOT sr_hub_20240317
TO test_repo;

验证是否备份成功,备份是异步备份,需等备份完成后才能显示OK

mysql> SHOW SNAPSHOT ON test_repo;
+-----------------+-------------------------+--------+
| Snapshot        | Timestamp               | Status |
+-----------------+-------------------------+--------+
| sr_hub_20250317 | 2025-03-17-14-45-53-143 | OK     |
+-----------------+---------------------------+------+
1 rows in set (0.10 sec)

如果不显示OK,可以通过 SHOW BACKUP 语句查看备份作业状态,或通过 CANCEL BACKUP 语句取消备份作业。

官方地址:https://docs.starrocks.io/zh/docs/sql-reference/sql-statements/backup_restore/SHOW_BACKUP/

mysql> SHOW BACKUP FROM test \G;
*************************** 1. row ***************************
               JobId: 5654170
        SnapshotName: sr_hub_20250317
              DbName: sr_hub
               State: FINISHED
          BackupObjs: [sr_hub.access_people_online], [sr_hub.device_key_data]
          CreateTime: 2025-03-17 00:00:02
SnapshotFinishedTime: 2025-03-17 00:00:37
  UploadFinishedTime: 2025-03-17 00:33:07
        FinishedTime: 2025-03-17 00:33:41
     UnfinishedTasks: 
            Progress: 
          TaskErrMsg: 
              Status: [OK]
             Timeout: 86400
1 row in set (0.00 sec)

备份作业当前所在阶段:

  • PENDING:作业初始状态。
  • SNAPSHOTING:正在进行快照操作。
  • UPLOAD_SNAPSHOT:快照结束,准备上传。
  • UPLOADING:正在上传快照。
  • SAVE_META:正在本地生成元数据文件。
  • UPLOAD_INFO:上传元数据文件和本次备份作业的信息。
  • FINISHED:备份完成。
  • CANCELLED:备份失败或被取消。

4.备份分区(增量备份)

4.1、查看分区ID

备份分区前,要确定表已经按分区来存储数据了,否则将不支持备份分区

示例:查看sr_hub库中的device_key_data分区

SHOW PARTITIONS FROM sr_hub.device_key_data;

执行结果:如果PartitionName列不是以 p日期 开头的,则表大概率没开启分区,不支持备份分区

+-------------+---------------+----------------+---------------------+--------------------+--------+--------------+------------------------------------------------------------------------------------------------------+----------------------------+---------+----------------+---------------+---------------------+--------------------------+----------+------------+----------+-------------+--------------------+----------------+
| PartitionId | PartitionName | VisibleVersion | VisibleVersionTime  | VisibleVersionHash | State  | PartitionKey | Range                                                                                                | DistributionKey            | Buckets | ReplicationNum | StorageMedium | CooldownTime        | LastConsistencyCheckTime | DataSize | IsInMemory | RowCount | DataVersion | VersionEpoch       | VersionTxnType |
| 5654248     | p20250317     | 2234           | 2025-03-17 14:40:54 | 0                  | NORMAL | device_time  | [types: [DATETIME]; keys: [2025-03-17 00:00:00]; ..types: [DATETIME]; keys: [2025-03-18 00:00:00]; ) | device_time, device_number | 2       | 1              | HDD           | 9999-12-31 23:59:59 | NULL                     | 76.2MB   | false      | 9215872  | 2234        | 344570509234536449 | TXN_NORMAL     |
......

4.2、备份分区

-- 自 v3.4.0 起支持。
BACKUP DATABASE sr_hub SNAPSHOT sr_hub_20240317
TO test_repo
ON (TABLE sr_hub.device_key_data PARTITION (p20250317));

恢复StarRocks数据库

从快照还原数据时,必须指定快照的时间戳。数据恢复为异步操作可以通过 SHOW RESTORE 语句查看恢复作业状态,或通过 CANCEL RESTORE 语句取消恢复作业。

官方地址:https://docs.starrocks.io/zh/docs/sql-reference/sql-statements/backup_restore/SHOW_RESTORE/

恢复作业当前所在阶段:

  • PENDING:作业初始状态。
  • SNAPSHOTING:正在进行本地新建表的快照操作。
  • DOWNLOAD:正在发送下载快照任务。
  • DOWNLOADING:快照正在下载。
  • COMMIT:准备生效已下载的快照。
  • COMMITTING:正在生效已下载的快照。
  • FINISHED:恢复完成。
  • CANCELLED:恢复失败或被取消。

1、获取快照时间戳

mysql> SHOW SNAPSHOT ON test_repo;
+------------------+-------------------------+--------+
| Snapshot         | Timestamp               | Status |
+------------------+-------------------------+--------+
| sr_hub_20240317  | 2025-03-17-14-45-53-143 | OK     |
+------------------+-------------------------+--------+
1 row in set (1.16 sec)

2、恢复数据库

以下示例将快照 sr_hub_20240317 中的数据库 sr_hub 还原到目标群集中的数据库 sr_hub。如果快照中不存在该数据库,系统将返回错误。如果目标群集中不存在该数据库,系统将自动创建该数据库。

-- 自 v3.4.0 起支持。
RESTORE SNAPSHOT sr_hub_20240317
FROM test_repo
DATABASE sr_hub
PROPERTIES(
    "backup_timestamp" = "2025-03-17-14-45-53-143",
    "replication_num" = "1" -- 默认副本数为3  如果是单机要指定为1  否则恢复会报错
);

3、恢复分区

以下示例将快照 sr_hub_20240317 中数据库 sr_hub 下的表 device_key_data 的分区 p20250317 恢复到目标群集中数据库 sr_hub 下的表 device_key_data 的分区 p20250317 中。

-- 自 v3.4.0 起支持。
RESTORE SNAPSHOT sr_hub_20240317
FROM test_repo
DATABASE sr_hub
ON (TABLE device_key_data PARTITION (p20250317)) 
PROPERTIES (
    "backup_timestamp" = "2025-03-17-14-45-53-143",
    "replication_num" = "1"
);

4、验证是否恢复成功

StarRocks:SHOW RESTORE \G;
*************************** 1. row ***************************
               JobId: 11010
               Label: sr_hub_20240317
           Timestamp: 2025-03-17-14-45-53-143
              DbName: sr_hub
               State: FINISHED -- 恢复完成
           AllowLoad: false
      ReplicationNum: 1
.................................
.................................
.................................

使用快照跨集群迁移数据

前提条件

  • 有一台能正常工作的StarRocks服务

1、创建仓库

在新机器中创建仓库,需要注意的是;新机器中的创建仓库指令要和旧机器的创建仓库指令一致。否则会查不到快照信息

CREATE REPOSITORY test_repo
WITH BROKER
ON LOCATION "s3://starrocks/test_bak"
PROPERTIES(
    "aws.s3.access_key" = "StarRocks",
    "aws.s3.secret_key" = "Sec@2024",
    "aws.s3.endpoint" = "http://10.84.91.10:9000"
);

2. 验证是否创建成功

mysql> SHOW REPOSITORIES;
+---------+----------------------------+---------------------+------------+-------------------------------------------+--------+--------+
| RepoId  | RepoName                   | CreateTime          | IsReadOnly | Location                                  | Broker | ErrMsg |
+---------+----------------------------+---------------------+------------+-------------------------------------------+--------+--------+
| 4561972 | test_repo                  | 2025-03-17 10:06:06 | false      | s3://starrocks/test_bak                   |        | NULL   |
+---------+----------------------------+---------------------+------------+-------------------------------------------+--------+--------+
1 rows in set (0.00 sec)

验证时的创建信息也会和旧机器的日期一致

3、恢复数据库

以下示例将快照 sr_hub_20240317 中的数据库 sr_hub 还原到目标群集中的数据库 sr_hub。如果快照中不存在该数据库,系统将返回错误。如果目标群集中不存在该数据库,系统将自动创建该数据库。

-- 自 v3.4.0 起支持。
RESTORE SNAPSHOT sr_hub_20240317
FROM test_repo
DATABASE sr_hub
PROPERTIES(
    "backup_timestamp" = "2025-03-17-14-45-53-143",
    "replication_num" = "1" -- 默认副本数为3  如果是单机要指定为1  否则恢复会报错
);

4、验证是否恢复成功

StarRocks:SHOW RESTORE \G;
*************************** 1. row ***************************
               JobId: 11010
               Label: sr_hub_20240317
           Timestamp: 2025-03-17-14-45-53-143
              DbName: sr_hub
               State: FINISHED -- 恢复完成
           AllowLoad: false
      ReplicationNum: 1
.................................
.................................
.................................
最后修改:2025 年 03 月 19 日
如果觉得我的文章对你有用,请随意赞赏