PostgreSql 批量同步数据库指定表 使用shell脚本方式

先设置 免密码

在当前用户目录下创建.pgpass文件
localhost:5432:*:postgres:password
ip地址:端口:数据库名:用户名:密码

例如: 172.16.5.85:5432:test:postgres:xxx

赋权 : chmod -R 0700 .pgpass

导出脚本

./export_table.sh /root/export_table.txt /root/temporary

第一个参数 存放表名的文件
第二个参数 保存路径

#!/bin/sh

# 存放表名的文件
table_name_file=$1

# 保存路径
save_path=$2

for line in `cat  $table_name_file`
do
    pg_dump -h 172.16.5.85 -U postgres -p 5432 -d eimos_business -t $line --inserts >$save_path/$line.sql
    echo $line
done

导入脚本
先删除 需要导入的表(具体原因看,导出sql脚本的内容)

./import_table.sh /root/temporary /root/logs

第一个参数 数据文件存放路径
第二个参数 日志文件存放位置

#!/bin/sh  

# 遍历的文件夹
import_path=$1
# 保存路径
save_path=$2

for file in ${import_path}/*
do  
    file_name=`basename $file`
    psql -h 172.16.5.85 -p 5432 -U postgres -f $import_path/$file_name test >> $save_path/$file_name.log
    echo $file_name  
done

export_table.txt中存放内容

public.stu1
public.stu2
public.stu3
ods.stu4
ods.stu5
analyse.stu6
analyse.stu7
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值