hhdb10.4——增量备份
1 备份环境
数据库安装目录:/home/hh/hhdb
创建归档路径:mkdir -p /home/hh/hhdb/arch
2 备份
2.1 配置归档模式
1 2 3 4 5 | vim /home/hh/hhdb/data/hhdbsql.conf #文件末尾添加 wal_level=replica archive_mode= on archive_command = 'test ! -f /home/hh/hhdb/arch/%f && cp %p /home/hh/hhdb/arch/%f' |
2.2 启动数据库并登录
1 2 3 | cd /home/hh/hhdb/bin ./start start_db_bg.sh ./runsql.sh #输入帐号和密码登录数据库 |
2.3 创建测试数据
1 2 | create table lhx_test(id int , name varchar (20), time timestamp with time zone); insert into lhx_test(id, name , time ) values (1, '关羽' ,now()); |
2.4 创建备份点,并备份data目录
1 2 3 4 5 6 7 8 9 | hhdb=# select hh_start_backup( 'basebak' ); hh_start_backup ----------------- 0/8000060 (1 行记录) 备份data目录 cd /home/hh/hhdb tar czvf hhdata.tar.gz data |
2.5 完成备份
1 2 3 4 5 6 | hhdb=# select hh_stop_backup(); 注意: hh_stop_backup 执行完成,所有需要的WAL段都已经归档完成。 hh_stop_backup ---------------- 0/8000168 (1 行记录) |
2.6 插入新记录,然后手动归档,切换日志,重复3次,间隔1分钟左右。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | hhdb=# insert into lhx_test(id, name , time ) values (2, '张飞' ,now()); INSERT 0 1 hhdb=# select hh_switch_wal(); hh_switch_wal --------------- 0/C000270 (1 行记录) hhdb=# insert into lhx_test(id, name , time ) values (3, '赵云' ,now()); INSERT 0 1 hhdb=# select hh_switch_wal(); hh_switch_wal --------------- 0/100000F0 (1 行记录) hhdb=# insert into lhx_test(id, name , time ) values (4, '黄忠' ,now()); INSERT 0 1 hhdb=# select hh_switch_wal(); hh_switch_wal --------------- 0/140000F0 (1 行记录) |
3 恢复
3.1 停止数据库,删除data目录,并解压备份的data
1 2 3 4 5 6 7 8 | [hh@localhost hhdb]$ cd bin [hh@localhost bin]$ ./stop_db.sh 等待服务器进程关闭 .... 完成 服务器进程已经关闭 cd /home/hh/hhdb mv data data1 tar xzvf hhdata.tar.gz |
3.2 配置恢复文件,启动数据库
1 2 3 4 5 6 7 8 9 10 | #在新的data目录下创建recovery.conf文件。可以从模版复制过来 cd /home/hh/hhdb/data cp ../share/hhdbsql/recovery.conf.sample recovery.conf vi recovery.conf 文件末尾添加 restore_command= 'cp /home/hh/hhdb/arch/%f "%p"' #启动数据库 cd /home/hh/hhdb/bin ./start_db_bg.sh |
3.3 查看数据情况
1 2 3 4 5 6 7 8 9 10 | hhdb=# table lhx_test ; id | name | time ----+------+------------------------------- 1 | 关羽 | 2021-11-30 10:19:23.926888+08 2 | 张飞 | 2021-11-30 10:21:51.025001+08 3 | 赵云 | 2021-11-30 10:22:21.806225+08 4 | 黄忠 | 2021-11-30 10:23:19.350576+08 (4 行记录) hhdb=# |
说明
通过查询可知,最开始备份数据只有一条数据,通过归档日志,可以在原有数据库恢复后续增加的数据, 同理将恢复文件修改一下,可以实现向后恢复任意时节节点。 在recovery.conf文件后面添加 recovery_target_time ='2021-11-30 10:21:00' 时间选择应该大于要归档文件的时间节点。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了