前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >hhdb10.4——增量备份

hhdb10.4——增量备份

原创
作者头像
恒辉信达
发布2025-03-05 15:46:51
发布2025-03-05 15:46:51
460
举报
文章被收录于专栏:mysqlmysql

1 备份环境

数据库安装目录:/home/hh/hhdb

创建归档路径:mkdir -p /home/hh/hhdb/arch

2 备份

2.1 配置归档模式
代码语言:sql
复制
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 启动数据库并登录
代码语言:sql
复制
cd /home/hh/hhdb/bin
  ./start start_db_bg.sh
  ./runsql.sh  #输入帐号和密码登录数据库
在这里插入图片描述
在这里插入图片描述
2.3 创建测试数据
代码语言:sql
复制
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目录
代码语言:sql
复制
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 完成备份
代码语言:sql
复制
hhdb=# select hh_stop_backup();
注意:  hh_stop_backup 执行完成,所有需要的WAL段都已经归档完成。
 hh_stop_backup 
----------------
 0/8000168
(1 行记录)
2.6 插入新记录,然后手动归档,切换日志,重复3次,间隔1分钟左右
代码语言:sql
复制
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
代码语言:sql
复制
[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 配置恢复文件,启动数据库
代码语言:sql
复制
#在新的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 查看数据情况
代码语言:sql
复制
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'

时间选择应该大于要归档文件的时间节点。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 备份环境
  • 2 备份
    • 2.1 配置归档模式
    • 2.2 启动数据库并登录
    • 2.3 创建测试数据
    • 2.4 创建备份点,并备份data目录
    • 2.5 完成备份
    • 2.6 插入新记录,然后手动归档,切换日志,重复3次,间隔1分钟左右
  • 3 恢复
    • 3.1 停止数据库,删除data目录,并解压备份的data
    • 3.2 配置恢复文件,启动数据库
    • 3.3 查看数据情况
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档