postgresql数据库的导入和导出,备份恢复

xiaoxiao2021-02-28  47

切换到postgres用户

su postgres

执行psql

创建数据库

CREATE USER 用户名 WITH PASSWORD '*****';create database [数据库名];或者create database [数据库名] owner [用户名];

导入整个数据库 -W 输入密码 -p 指定端口号

psql -U postgres(用户名)  数据库名(缺省时同用户名) < /data/dum.sql

psql 数据库名 < /data/dum.sql

导入出现错误psql: FATAL: Peer authentication failed for user "postgres" 修改 vim  /var/lib/pgsql/9.6/data/pg_hba.conf文件中 local     all      all        peer改为local     all      all        trust

导出整个数据库  -O 忽略所属用户 -p 指定端口号 pg_dump -h localhost -U postgres(用户名) 数据库名(缺省时同用户名)   >/data/dum.sql pg_dump  数据库名  >/data/dum.sql

导出某个表

pg_dump -h localhost -U postgres(用户名) 数据库名(缺省时同用户名)  -t table(表名) >/data/dum.sql

压缩方法

一般用dump导出数据会比较大,推荐使用xz压缩

压缩方法  xz dum.sql 会生成 dum.sql.xz 的文件

xz压缩数据倒数数据库方法

xzcat /data/dum.sql.xz | psql -h localhost -U postgres(用户名) 数据库名(缺省时同用户名)

使用pg_dumpall pg_dump只备份数据库集群中的某个数据库的数据,它不会导出角色和表空间相关的信息。pg_dumpall则可以导出整个数据库集群中所有的数据库中的数据,同时也会导出角色、用户和表空间的定义信息。使用pg_dumpall的一般命令格式如下: pg_dumpall > backup_file pg_dumpall也支持和pg_dump一样的命令行选项,如-h和-p等。同样可以使用psql来从pg_dumpall创建的备份文件中恢复数据库。应该使用数据库超级用户来进行恢复数据库的操作。命令格式如下: psql -f backup_file postgres pg_dumpall在执行的过程中,用postgres作为用户名来连接数据库。系统自动创建的数据库postgres中的内容也会被导出来,数据库template0和template1中的内容不会被导出来。

转载请注明原文地址: https://www.6miu.com/read-2621135.html

最新回复(0)