opengauss的备份和恢复

一、物理备份和恢复(gs_basebackup 只能全备)

1.1 备份: gs_basebackup -h 127.0.0.1 -p 5432 -D  ***   (指定ip、端口、备份目录等)

1.2 异机恢复(原始的数据目录改名保留):

  • 停库:gs_ctl stop -D /opt/software/openGauss/data/single_node  (数据目录自行替换)
  • 将原始的数据文件目录进行备份改名为single_node_orig
  • 原路径创建新的single_node目录,拷贝备份数据到single_node目录下,修改用户用户组
  • 对新的single_node目录该访问权限为0700
  • 修改实例目录下的配置文件postgresql.conf,将port改成原本的端口号,再将shared_buffers改成原本的大小(防止异机的内存不够起不来)
  • 启库:gs_ctl start -D /opt/software/openGauss/data/single_node

二、逻辑备份和恢复(gs_dumpall)

2.1 备份: gs_dumpall -h 127.0.0.1 -p 5432 -U*** -W*** --inserts -f *** (指定ip、端口、用户名、密码、保存目录)

2.2 异机恢复:

  • 删除目标机中和备份源的库同名库下的所有表
  • 将备份的大sql拆分,以'\connect ***'分割到不同的sql文件中,避免执行恢复脚本需要重复输入密码

逻辑恢复脚本如下:

#!/bin/bash

#删除对应库下所有的表(这里只恢复这三个库,templete库无需恢复)
for database in "postgres" "school" "finance" ; do
        for table in $(gsql -t -h 127.0.0.1 -p 5432 -Ugauss -WGauss_123 -d $database -c '\dt' | awk -F '|' '{print $2}') ; do
                echo drop $table
                gsql -t -h 127.0.0.1 -p 5432 -Ugauss -WGauss_123 -d $database -c "drop table $table"
        done
done

#这里是脚本执行前手动拆到各个sql文件的。可使用awk或者程序去实现。(init.sql放的是角色和建库语句)

#执行角色和库的创建语句
gsql -h 127.0.0.1 -p 5432 -Ugauss -WGauss_123 -d postgres -f /home/omm/zc_bak_logical/init.sql
#分别执行postgres school finance三个库的恢复语句
gsql -h 127.0.0.1 -p 5432 -Ugauss -WGauss_123 -d finance -f /home/omm/zc_bak_logical/finance.sql
gsql -h 127.0.0.1 -p 5432 -Ugauss -WGauss_123 -d postgres -f /home/omm/zc_bak_logical/postgres.sql
gsql -h 127.0.0.1 -p 5432 -Ugauss -WGauss_123 -d school -f /home/omm/zc_bak_logical/school.sql

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值