切换到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中的内容不会被导出来。