--1、查看备份集信息。
[kingbase@kesv9 kingbase]$ sys_rman --cOnfig=/backup/rman/sys_rman.conf --stanza=kingbase info
stanza: kingbase
status: ok
cipher: none
db (current)
wal archive min/max (V009R001C001B0025): 000000010000000000000003/00000001000000000000000E
full backup: 20250418-151727F
timestamp start/stop: 2025-04-18 15:17:27 / 2025-04-18 15:17:30
wal start/stop: 000000010000000000000004 / 000000010000000000000005
database size: 101.9MB, database backup size: 101.9MB
repo1: backup set size: 101.9MB, backup size: 101.9MB
full backup: 20250418-155617F
timestamp start/stop: 2025-04-18 15:56:17 / 2025-04-18 15:56:22
wal start/stop: 000000010000000000000007 / 000000010000000000000007
database size: 85.9MB, database backup size: 85.9MB
repo1: backup set size: 85.9MB, backup size: 85.9MB
diff backup: 20250418-155617F_20250418-162516D
timestamp start/stop: 2025-04-18 16:25:16 / 2025-04-18 16:25:17
wal start/stop: 00000001000000000000000A / 00000001000000000000000A
database size: 85.9MB, database backup size: 21MB
repo1: backup set size: 85.9MB, backup size: 21MB
backup reference list: 20250418-155617F
incr backup: 20250418-155617F_20250418-163143I
timestamp start/stop: 2025-04-18 16:31:43 / 2025-04-18 16:31:45
wal start/stop: 00000001000000000000000D / 00000001000000000000000D
database size: 85.9MB, database backup size: 21MB
repo1: backup set size: 85.9MB, backup size: 21MB
backup reference list: 20250418-155617F, 20250418-155617F_20250418-162516D
--2、模拟误删除操作并执行不完全恢复。
--(1)查看时间戳。
--(2)删除t01表。
$ ksql -Usystem -dtest
test=# SELECT now();
now
-------------------------------
2025-04-18 17:09:07.576355+08
(1 row)
test=# drop table t01;
DROP TABLE
test=# select * from t01;
ERROR: relation "t01" does not exist
LINE 1: select * from t01;
^
--(3)正常停止数据库,删除/data目录下的所有文件。
$ sys_ctl stop -m fast
$ rm -rf /KingbaseES/V9/data/*
$ rm -rf /KingbaseES/V9/data/.*
$ sys_ctl start
--(4)执行不完全恢复至误删除表之前的时间点。
$ sys_rman --cOnfig=/backup/rman/sys_rman.conf \
--stanza=kingbase --type=time --target='2025-04-18 17:09:07' \
--target-action=promote restore
注意:
1.如果不指定 --target-action=promote选项,系统默认会使用 --target-action=pause 选项,此时 系统处于只读状态,需要执行“select pg_wal_replay_resume()”命令使数据库切换时间线,并进入读写状态。
2.实际工作中,往往不清楚准确的误删时间,一般需要多次恢复、使误删除的损失降到最低。
--(5)启动实例。
$ sys_ctl start
--3、恢复结果验证。
--(1)使用system用户登录test数据库。
--(2)查看t01表及数据 (t01表被成功恢复)。
$ ksql -Usystem -dtest
test=# select * from t01;
id | name
----+------
1 | abc
2 | def
(2 rows)
该案例暂时没有网友评论
✖
案例意见反馈
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作