openGuass(postgres)导出及导入数据一日游

目的:

实现每周备份一次数据库

新建一个sh文件

#!/bin/bash
# 定义参数
DB_USER="wangzhezhizuo"
DB_PASSWORD="wangzhezhizuo123"
DB_NAME="mydb"
DB_SCHEME="public"
DB_PORT="5432"
REMOTE_IP="192.168.0.1"

## 定义备份目录和文件名
BACKUP_DIR="/www/bak/"
BACKUP_FILE="$BACKUP_DIR/db_backup_$(date +\%Y\%m\%d).sql"

export PGPASSWORD=$DB_PASSWORD
pg_dump -U $DB_USER -h $REMOTE_IP -p $DB_PORT -n $DB_SCHEME  -f $BACKUP_FILE $DB_NAME

# 压缩备份文件
#gzip $BACKUP_FILE

# 备份到远程服务器
#scp -r $BACKUP_FILE ${REMOTE_USER}@${REMOTE_IP}:/${REMOTE_PATH}/${DB_NAME}/


然后通过java代码定时执行即可

遇到的问题, 基本上各大参数根据提示的错误修修改改即可 有些问题没提示就尴尬如下

1.数据库提示没权限:原因没加模式,结果会导出全库,有些是没权限的 根据上面的DB_SCHEME来设置即可

2.sh无法一次性执行dump,需要在输入密码,通过上面的export PGPASSWORD=密码 即可

3.备份文件被压缩,网上找到的有些语句有加-Fc ,好像是什么压缩的我给删了就可以,不然文件出来一堆SOH EOH等符号

导入

.\psql -h  192.168.0.1 -U wangzhezhizuo2 -d mydb-f C:\Users\HP\Desktop\db.sql

导入遇到的问题

1.本来打算用pg_restore的 但是失败了,看看各位看官有没有实现的,可以讨教下

2.因为懒得建库,所以新加了个模式 wangzhezhizuo2,用这个账号登结果显示表存在了,提示一堆\N 语法不正确看了sql文件,默认都是在public下运行可以通过修改SET search_path =,还有将文件中的public.全部替换为新的模式才行

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值