PostgreSql 数据迁移

物理冷备迁移

--关闭数据库
pg_ctl stop -m fast

--备份
tar -jcv -f /back/dbbak0228.tar.bz2 $PGDATA

--恢复
tar -jxv -f /back/dbbak0228.tar.bz2 -C /newdata

pg_basebackup 迁移

源端数据库 pg_hba.conf 文件中需增加 replication 配置。

--备份
pg_basebackup -h 192.168.100.5  -p 5866 -U sysdba -D /backup -Fp -P -Xs -R -v

--恢复
修改postgresql.conf
restore_command = 'cp /备份归档路径/%f %p'

--指定时间恢复
recovery_target_time = '2022-01-18 15:30:12.426998+08'

--执行恢复到最近时间
recovery_target_timeline = 'latest'

--更改数据库为读写状态
pg_ctl promote -D /backup/

pg_dump 迁移

--备份数据库用户角色表空间
pg_dumpall -f backup.sql --globals-only

--备份数据库结构
pg_dump -d cdrapp -C -s > cdrapp.sql
tar -czvf comm.tar.gz comm.sql
tar -xzvf comm.tar.gz

--备份 syd 数据库
pg_dump syd > syd.sql
pg_dump -Fc syd > syd.dump

--恢复 syd 数据库
\i syd.sql
psql -Upostgres -d test -f syd.sql
pg_restore -d syd syd.dump

--备份schema
pg_dump -d chis -n icuis > chis_icuis.sql

--恢复schema
\i chis_icuis.sql

--备份表
pg_dump -d syd -t syd.test > test.sql
copy syd.test to '/home/postgres/test.csv' with csv;

--还原表
\i test.sql
copy syd.test from '/home/postgres/test.csv' with csv;

--导出表定义
pg_dump -d chis -O -s -t "finance.out_trade_order" > finance.out_trade_order.sql

--断开数据库所有连接
SELECT pg_terminate_backend(pg_stat_activity.pid)
FROM pg_stat_activity
WHERE datname='syd' AND pid<>pg_backend_pid();

copy 单表迁移

--导出表(不带过滤条件)
copy pacs.report_doc_template TO '/tmp/report_doc_template.csv' with csv header;

--导出表(带过滤条件)
COPY (select * from patient where pat_id < 1000000) TO '/tmp/comm_result.csv' WITH CSV HEADER;
				
--将表 test_tab 拷贝至客户端,并且使用'|'作为分隔符
COPY test_tab TO STDOUT (DELIMITER '|');

--将表数据拷贝至压缩文件中
COPY test_tab TO PROGRAM 'gzip > /backup/test_tab_data.gz'; 
COPY emp TO PROGRAM 'zip > /backup/test_tab_data.gz';

--从文件'/backup/test_tab_data'中把数据拷贝至表 test_tab
COPY test_tab FROM '/backup/test_tab_data'; 
COPY test_tab(name) FROM '/backup/test_tab_data';

--将文件中的数据插入表中
\copy sometable from somefile.txt DELIMITER '|'; 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

脑子进水养啥鱼?

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值