pgsql数据迁移方法

数据库

0.前言

现在pgsql被越来越多的公司所使用,而在互联网公司,数据迁移是一个避不开的话题,并且数据迁移也是导致线上问题的万恶之源之一,好在pgsql自身准备了一些好用的命令,可以方便做数据迁移,今天我们就来看看pgsql的数据迁移方法。

1.pg_dump命令

pg_dump是pgsql提供的一中逻辑备份工具,通常用来备份单个数据库。
通常我们使用如下命令备份pgsql中的单个库:
方法一:

pg_dump -h <host_ip> -U <username> -p <port> -Fp <dbname> > ./<dbname>.sql

方法二:

pg_dump -h <host_ip> -U <username> -p <port> -Fc <dbname> > ./<dbname>.dump

参数说明:
-h:pgsql所在服务器IP地址
-U:连接pgsql的用户名
-p:连接pgsql的端口
-F:备份格式,默认是p,表示输出脚本文件,格式指定为c的话就可以配合pg_restore命令导入数据
上面只是一些常用的参数,如果还需要了解其他参数,可以查看pgsql的官方文件。 执行完以上命令之后,会在本地生成一个dump文件,之后在其他库可以导入改文件,完成数据迁移。

2.pg_restore命令

之前如果我们备份数据的格式是“c”的话,就可以通过pg_restore命令导入数据,命令如下:
导入整个库:

pg_restore -h '<host_ip>' -U <username> -p <port> -d <dbname> ./<dbname>.dump

注意:在导入库之前需要先创建该数据库 导入单个表:

pg_restore -h '<hostname>' -U <username> -p <port> -d <dbname> -t <table> ./<dbname>.dump

多了个"-t"参数,指定要导入的数据表。

3.psql命令

在pgsql中,当我们备份数据指定的格式是默认格式或者是“p”格式的时候,就可以直接使用pgsql恢复数据,命令如下:

/usr/local/pgsql14/bin/psql -h <host_ip> -U <username> -p <port> -d <db> -f ./<db>.sql

使用技巧:如果数据备份和导入使用的是脚本,需要提前输入密码,可以在命令前面加上PGPASSWORD=,或者将该变量放到环境变量中。

4.总结

可以看到使用pgsql自带的备份和恢复数据的命令,可以很快的完成数据的备份和迁移,在现实工作中迁移数据是一个非常容易出问题的环节,所以操作过程中一定要小心仔细。

0
0
0
0
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论