--1、执行全备后,查看备份集信息。
$ sys_rman --cOnfig=/backup/rman/sys_rman.conf \
--stanza=kingbase \
--archive-copy \
--type=full backup
[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/000000030000000000000010
………………
full backup: 20250418-172037F
timestamp start/stop: 2025-04-18 17:20:37 / 2025-04-18 17:20:39
wal start/stop: 000000030000000000000010 / 000000030000000000000010
database size: 86.0MB, database backup size: 86.0MB
repo1: backup set size: 86.0MB, backup size: 86.0MB
--2、模拟误删除操作并执行不完全恢复。
--(1)开启事务,查看并记录事务ID。
--(2)创建t03表、录入数据、结束事务。
--(3)删除t03表。
$ ksql -Usystem -dtest
test=#
BEGIN;
SELECT txid_current();
CREATE TABLE t03(id int,name text);
INSERT INTO t03 VALUES(1,'rfv'),(2,'ujm');
END;
当前事务ID为 1064;
后删除表;
DROP TABLE t03;
SELECT * FROM t03;
--(4)正常停止数据库,删除/data目录下的所有文件。
$ sys_ctl stop -m fast
$ rm -rf /KingbaseES/V9/data/*
$ rm -rf /KingbaseES/V9/data/.*
$ sys_ctl start
--(5)执行不完全恢复至创建t03表的事务ID。
指定使用刚全备份集20250418-172037F;并指定创建表t03时查询的事务ID 1064;
$ sys_rman --cOnfig=/backup/rman/sys_rman.conf \
--stanza=kingbase --type=xid --target='1064' \
--set='20250418-172037F' \
--target-action=promote restore
注意:
1.如果不指定 --target-action=promote选项,系统默认会使用 --target-action=pause 选项,此时 系统处于只读状态,需要执行“select pg_wal_replay_resume()”命令使数据库切换时间线,并进入读写状态。
2.实际工作中,往往不清楚准确的误删时间,一般需要多次恢复、使误删除的损失降到最低。
--(6)启动实例。
$ sys_ctl start
--3、恢复结果验证。
--(1)使用system用户登录test数据库。
--(2)查看t03表及数据 (t03表被成功恢复)。
$ ksql -Usystem -dtest
test=# SELECT * FROM t03;
该案例暂时没有网友评论
✖
案例意见反馈
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作