瀚高数据库使用hg_rman进行块恢复示例

文档用途

本文档旨在介绍使用瀚高数据库提供的hg_rman工具进行块恢复。

详细信息

1、配置归档
开启归档

alter system set archive_mode = 'on';

配置归档目录

alter system set archive_directory = '/opt/HighGo5.6.5-cluster/data/rman/rman_arch';

2、配置块跟踪参数
需要在配置文件postgresql.conf 中对如下配置项做出修改:

# - Block change tracking -

hg_db_block_change_tracking = on

hg_db_bct_file_buffers = 32MB # min 128kB

hg_db_bct_cache_size = 128MB # min 800kB

bctwriter_delay = 200ms # 10-10000ms between rounds

3、重启数据库生效

pg_ctl restart -m f

4、初始化备份工具

hg_rman init -d highgo  -B /opt/HighGo5.6.5-cluster/data/rman/rman_back -A /opt/HighGo5.6.5-cluster/data/rman/rman_arch

5、创建模拟数据并使用hg_rman备份

create table tb2_block(id int,name varchar);



insert into tb2_block select generate_series(1,10),'qa';

  

hg_rman backup -d highgo -b full

  

insert into tb2_block select generate_series(11,20),'hg';



hg_rman backup -d highgo -b incremental

 

insert into tb2_block select generate_series(21,30),'lk';



hg_rman backup -d highgo -b archive



highgo=# select * from pg_relation_filepath('tb2_block');

6、 模拟破坏测试表物理文件
找到测试表的物理文件

highgo=# select * from pg_relation_filepath('tb2_block');

 pg_relation_filepath 

----------------------

 base/13864/17227

(1 row)

vi 17227 编辑物理文件删除第一行

需要重启防止数据库读取缓存数据

7、状态检查
重启后此时查询测试表,会发现表已被破坏,无法获取表数据

select * from tb2_block;

8、进行块恢复
hg_rman blockrecover -d highgo --datafile 1663/13864/17227 --block 0 【block 0 指的是被破坏的块】
注:此处的1663指的是表空间OID,通过select oid,* from pg_tablespace;查看

恢复验证,数据已恢复完成

select * from tb2_block;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值