KingbaseES V8R6备份恢复案例之---自定义表空间指定恢复目录数据恢复
案例说明:
KingbaseES V8R6在通过sys_rman执行物理备份恢复时,可以通过参数‘--kb1-path’,指定恢复的数据(data)目录,但如果原备份中包含自定义表空间时,需要建立表空间映射,再执行恢复。
适用版本:
KingbaseES V8R6
一、案例复现
1、建立自定义表空间
test=# create tablespace user01 location '/data/kingbase/v8r6_C7/tbs';
CREATE TABLESPACE
test=# \db+
List of tablespaces
Name | Owner | Location | Access privileges | Options | Size | Description
-------------+--------+----------------------------+-------------------+---------+---------+-------------
sys_default | system | | | | 64 MB |
sys_global | system | | | | 658 kB |
sysaudit | system | | | | 24 kB |
user01 | system | /data/kingbase/v8r6_C7/tbs | | | 0 bytes |
(4 rows)
prod=# create table u_tbs1 (id int ,name varchar(10)) tablespace user01;
CREATE TABLE
prod=# \d+ u_tbs1;
Table "public.u_tbs1"
Column | Type | Collation | Nullable | Default | Storage | Stats target | Description
--------+----------------------------+-----------+----------+---------+----------+--------------+------------
-
id | integer | | | | plain | |
name | character varying(10 char) | | | | extended | |
Tablespace: "user01"
Access method: heap
2、执行数据库的全备
[kingbase@node102 bin]$ /opt/Kingbase/ES/V8R6_C7/Server/bin/sys_rman --config=/home/kingbase/kbbr_repo/sys_rman.conf --stanza=kingbase --archive-copy --type=full backup
3、查看数据库备份信息
[kingbase@node102 bin]$ ./sys_rman --config=/home/kingbase/kbbr_repo/sys_rman.conf --stanza=kingbase info
stanza: kingbase
status: ok
cipher: none
db (current)
wal archive min/max (V008R006C007B0012): 000000010000000000000001/000000010000000000000005
full backup: 20230202-144709F
timestamp start/stop: 2023-02-02 14:47:09 / 2023-02-02 14:47:12
wal start/stop: 000000010000000000000005 / 000000010000000000000005
database size: 81.8MB, database backup size: 81.8MB
repo1: backup set size: 81.8MB, backup size: 81.8MB
4、关闭数据库服务执行备份恢复
1)关闭数据库服务
[kingbase@node102 bin]$ ./sys_ctl stop -D /data/kingbase/v8r6_C7/data/
waiting for server to shut down.... done
server stopped
2)建立自定义恢复目录并恢复数据库
# 建立恢复目录
[kingbase@node102 v8r6_C7]$ mkdir -p /data/kingbase/v8c7/data
#执行数据恢复
[kingbase@node102 bin]$ /opt/Kingbase/ES/V8R6_C7/Server/bin/sys_rman --config=/home/kingbase/kbbr_repo/sys_rman.conf --stanza=kingbase --kb1-path=/data/kingbase/v8c7/data --archive-mode=off restore
2023-02-02 14:51:56.189 P00 INFO: restore command begin 2.27: --archive-mode=off --band-width=0 --config=/home/kingbase/kbbr_repo/sys_rman.conf --exec-id=22745-9736a61a --link-all --log-level-console=info --log-level-file=info --log-path=/opt/Kingbase/ES/V8R6_C7/Server/log --log-subprocess --non-archived-space=1024 --kb1-path=/data/kingbase/v8c7/data --process-max=4 --repo1-path=/home/kingbase/kbbr_repo --stanza=kingbase
2023-02-02 14:51:56.201 P00 INFO: repo1: restore backup set 20230202-144709F, recovery will start at 2023-02-02 14:47:09
2023-02-02 14:51:56.201 P00 INFO: remap data directory to '/data/kingbase/v8c7/data'
ERROR: [040]: unable to restore to path '/data/kingbase/v8r6_C7/tbs/SYS_12_202209081' because it contains files
HINT: try using --delta if this is what you intended.
2023-02-02 14:51:56.202 P00 INFO: restore command end: aborted with exception [040]

---如上图所示,通过‘--kb1-path’指定了数据库恢复目录,但是自定义表空间数据仍然恢复到了原data目录下,出现恢复错误。
二、解决表空间恢复
1、创建表空间存储目录
[kingbase@node102 bin]$ mkdir -p /data/kingbase/v8c7/tbs
2、建立表空间映射并恢复数据库
[kingbase@node102 bin]$ /opt/Kingbase/ES/V8R6_C7/Server/bin/sys_rman --config=/home/kingbase/kbbr_repo/sys_rman.conf --stanza=kingbase --kb1-path=/data/kingbase/v8c7/data --archive-mode=off --tablespace-map=user01=/data/kingbase/v8c7/tbs restore
2023-02-02 14:54:10.679 P00 INFO: restore command begin 2.27: --archive-mode=off --band-width=0 --config=/home/kingbase/kbbr_repo/sys_rman.conf --exec-id=22983-6acf7342 --link-all --log-level-console=info --log-level-file=info --log-path=/opt/Kingbase/ES/V8R6_C7/Server/log --log-subprocess --non-archived-space=1024 --kb1-path=/data/kingbase/v8c7/data --process-max=4 --repo1-path=/home/kingbase/kbbr_repo --stanza=kingbase --tablespace-map=user01=/data/kingbase/v8c7/tbs
2023-02-02 14:54:10.691 P00 INFO: repo1: restore backup set 20230202-144709F, recovery will start at 2023-02-02 14:47:09
2023-02-02 14:54:10.691 P00 INFO: remap data directory to '/data/kingbase/v8c7/data'
2023-02-02 14:54:10.691 P00 INFO: map tablespace 'sys_tblspc/16559' to '/data/kingbase/v8c7/tbs'
......
2023-02-02 14:54:12.423 P00 INFO: Restore Process: FILE: 2207 / 2207 100% SZIE: 85799190 bytes / 85799190 bytes 81.8MB / 81.8MB 100%
2023-02-02 14:54:12.424 P00 INFO: write updated /data/kingbase/v8c7/data/kingbase.auto.conf
2023-02-02 14:54:12.428 P00 INFO: restore global/sys_control (performed last to ensure aborted restores cannot be started)
2023-02-02 14:54:12.429 P00 INFO: restore size = 81.8MB, file total = 2207
2023-02-02 14:54:12.429 P00 INFO: restore command end: completed successfully (1753ms)
---如上所示,数据库恢复完成。

---如上图所示,需要建立表空间映射,再执行恢复。
三、数据访问测试
1、查看自定义表空间存储信息
[kingbase@node102 data]$ cd ../tbs
[kingbase@node102 tbs]$ ls -lh
total 0
drwx------ 3 kingbase kingbase 18 Feb 2 14:54 SYS_12_202209081
2、启动数据库实例(在恢复后的data目录)

[kingbase@node102 tbs]$ cd /opt/Kingbase/ES/V8R6_C7/Server/bin
[kingbase@node102 bin]$ ./sys_ctl start -D /data/kingbase/v8c7/data/
.......
server started
3、连接数据库查看表空间信息
[kingbase@node102 bin]$ ./ksql -U system test
ksql (V8.0)
Type "help" for help.
test=# \db+
List of tablespaces
Name | Owner | Location | Access privileges | Options | Size | Description
-------------+--------+-------------------------+-------------------+---------+----------+-------------
sys_default | system | | | | 64 MB |
sys_global | system | | | | 658 kB |
sysaudit | system | | | | 24 kB |
user01 | system | /data/kingbase/v8c7/tbs | | | 18 bytes |
(4 rows)
test=# \c prod
You are now connected to database "prod" as user "system".
prod=# \d+ u_tbs1
Table "public.u_tbs1"
Column | Type | Collation | Nullable | Default | Storage | Stats target | Description
--------+----------------------------+-----------+----------+---------+----------+--------------+------------
-
id | integer | | | | plain | |
name | character varying(10 char) | | | | extended | |
Tablespace: "user01"
Access method: heap
---如上所示,表空间恢复到新的存储目录下,数据访问正常。
四、总结
对于KingbaseES V8R6物理备份的恢复,可以恢复到指定的目录,在生产环境下建立测试环境。但对于包含自定义表空间的备份的恢复,注意需要建立表空间映射后再执行恢复。
参考文档:
https://help.kingbase.com.cn/v8/highly/backup-restore/backup/sys-rman-5.html#id13
KingbaseES V8R6备份恢复案例之---自定义表空间指定恢复目录数据恢复的更多相关文章
- KingbaseES V8R3集群运维案例之---用户自定义表空间管理
案例说明: KingbaseES 数据库支持用户自定义表空间的创建,并建议表空间的文件存储路径配置到数据库的data目录之外.本案例复现了,当用户自定义表空间存储路径配置到data下时,出现的故障问 ...
- Oracle误删除表空间的恢复
对于误删除表空间的恢复,本文通过基于数据库的时间点恢复和基于表空间的时间点恢复分别加以讨论 一 通过基于数据库的时间点恢复被误删除的表空间 1 需要注意的事项 a 基于数据库的时间点恢复将会回退整个数 ...
- 流复制-pg_start_backup(带自定义表空间)
一.准备slave库 archive_mode = on ---开启归档模式 archive_command = 'test ! -f /mysqldata/pg/archive_active/%f ...
- KingbaseES V8R6备份恢复案例之---同一数据库创建不同stanza备份
案例说明: 在生产环境,有的应用需要调用数据库的sys_rman做备份,为了区分数据库自身的sys_rman备份和应用的备份,可以使用不同的stanza name创建备份.本案例介绍了,如何在King ...
- KingbaseES V8R6备份恢复案例之--删除test数据库后sys_backup.sh备份
案例说明: KingbaseES V8R6通过sys_backup.sh执行物理备份,默认sys_backup.sh执行备份初始化时,需要连接test数据库进行身份的认证:在一些生产环境为了安全需求, ...
- KingbaseES V8R6备份恢复案例之---手工清理冗余历史备份
案例说明: 对于KingbaseES V8R6的通过sys_rman执行的物理历史备份,可以在执行备份时,备份的保留(retention)策略自动清理.不能通过手工删除备份,可以通过expire参数手 ...
- Oracle 数据备份、恢复以及导入时表空间不存在的解决方案
一.数据备份(导出) 1.exp命令导出dmp文件(exp -help查看帮助信息) 命令:exp username/userpasswd@192.168.99.199/orcl file=C:\jd ...
- DB2表空间重定向恢复数据库实战
DB2的备份恢复有点坑,当源系统和目标系统的路径设置不同时,要手动进行重定向恢复,本文是我一次实战操作之后总结的过程,仅供参考. 一.发出重定向恢复命令 DB2 RESTORE DB TO " ...
- mysql通过表空间来恢复或者传递数据
mysql的备份工具通常有 mysqldump ,mysqlpump(5.7后新特性)等备份工具,这里我们可以尝试使用表空间进行传递 方式是:拷贝数据文件+拷贝表空间 对应innodb引擎就是 i ...
- KingbaseES V8R6 维护管理案例之---Kstudio在CentOS 7启动故障
案例说明: 在CentOS 7上安装KingbaseES V8R6C006数据库后,启动Kstudio图形界面启动失败,gtk动态库加载失败,安装gtk相关动态库后,问题解决. 适用版本: Kin ...
随机推荐
- QT 5 中文乱码,试试在PRO文件加入这几行代码
msvc{ QMAKE_CFLAGS += /utf-8 QMAKE_CXXFLAGS += /utf-8 }
- Linux06-常用命令 日期 日历 查找 过滤
1.date 日期 2.cal 日历 3.find 查找 4.locate 查找 5.grep 过滤 1.时间日期类 date指令-显示当前日期 1)指令: date (功能描述:显示当前时间) ...
- Class path contains multiple SLF4J bindings解决
1.根据控制台查看冲突的日志依赖 本工程Maven依赖 <dependencies> <dependency> <groupId>org.slf4j</gro ...
- 多重背包问题 II
有 NN 种物品和一个容量是 VV 的背包. 第 ii 种物品最多有 sisi 件,每件体积是 vivi,价值是 wiwi. 求解将哪些物品装入背包,可使物品体积总和不超过背包容量,且价值总和最大.输 ...
- CSP-S2022 总结
调整了下心态开考 顺序开题 看完 \(T1,T2\) 直接开打 \(T2\) 的线段树,还是比较好写的 然后思考先打 \(T1\) 呢还是拍 \(T2\),最后决定拍 \(T2\),稳一点 发现随机数 ...
- [POI2011]MET-Meteors 解题报告
语言系统紊乱了 QAQ 这道题感觉不是很难鸭 qwq. 先只考虑一个国家,怎么做?很显然,就直接二分一下就行了.判定答案可以维护一个差分数组,然后最后对它做一个前缀和,再求一下这个国家的流行数量就好了 ...
- 代码随想录算法训练营day06 | leetcode 242、349 、202、1
基础知识 哈希 常见的结构(不要忘记数组) 数组 set (集合) map(映射) 注意 哈希冲突 哈希函数 LeetCode 242 分析1.0 HashMap<Character, Inte ...
- .net 定时任务(调度 .net quartz) demo
详细解说:https://blog.csdn.net/noaman_wgs/article/details/80984873 demo如下: 新建控制台应用程式: 添加Nuget包 static vo ...
- linux系统下,添加硬盘并挂载到操作系统的shell 脚本范例
#!/bin/sh #新添加硬盘挂载到操作系统 pvcreate /dev/sdb / / 一般新添加硬盘都是识别为sdb,当然,也不一定,要具体情况具体分析. vgcreate datavg / ...
- flask 项目构建
创建虚拟环境 mkvirtualenv 环境名 安装所需要的包 pip install flask == 0.12.4 pip install redis pip install flask-ses ...