美文网首页
postgresql的备份与还原

postgresql的备份与还原

作者: 木子子金 | 来源:发表于2019-12-18 15:46 被阅读0次

备份命令:
1、清空原数据库:

连接数据库:   psql -h [主机] -U [用户] -d [数据库]
删除表中数据: truncate [表名];

2、备份数据库:

pg_dump -h [主机] -U [用户] -d [数据库] -t [表名] -f [d:/data.dmp本地路径] -a(--data-only 只转储数据,不包括模式)/s( --schema-only 只转储模式, 不包括数据)
例子:从远程服务器中,转储3张数据表

C:\Users\admin>pg_dump -h www.yunlauncher.com -p 5432 -U postgres -d desktop 

-t game_active_req -t game_pay_req -t game_user_info -f d:/data.dmp -a
用法:
  pg_dump [选项]... [数据库名字]
一般选项:
  -f, --file=FILENAME          输出文件或目录名
  -Z, --compress=0-9           被压缩格式的压缩级别
  -?, --help                   显示此帮助, 然后退出  
控制输出内容选项:
  -a, --data-only              只转储数据,不包括模式
  -C, --create                 在转储中包括命令,以便创建数据库
  -E, --encoding=ENCODING      转储以ENCODING形式编码的数据
  -s, --schema-only            只转储模式, 不包括数据
  -t, --table=TABLE            只转储指定名称的表
  -T, --exclude-table=TABLE    不转储指定名称的表
  -x, --no-privileges          不要转储权限 (grant/revoke)
联接选项:
 -d, --dbname=DBNAME       对数据库 DBNAME备份
 -h, --host=主机名        数据库服务器的主机名或套接字目录
 -p, --port=端口号        数据库服务器的端口号
 -U, --username=名字      以指定的数据库用户联接

3、还原数据:

psql -h [主机] -U [用户] -d [数据库] -f [本地路径]
例子:将之前的备份,恢复到本地数据库

C:\Users\admin>psql -h localhost -U postgres -d Mydb -f d:/data.dmp 

用法:
  psql [选项]... [数据库名称 [用户名称]]
通用选项:
  -c,--command=命令         执行单一命令(SQL或内部指令)然后结束
  -d, --dbname=数据库名称   指定要连接的数据库 (缺省:"admin")
  -f, --file=文件名         从文件中执行命令然后退出
  -l, --list               列出所有可用的数据库,然后退出
  -V, --version            输出版本信息, 然后退出
  -?, --help               显示此帮助, 然后退出
输入和输出选项:
  -a, --echo-all          显示所有来自于脚本的输入
  -e, --echo-queries      显示发送给服务器的命令
  -E, --echo-hidden       显示内部命令产生的查询
  -L, --log-file=文件名   将会话日志写入文件
  -n, --no-readline       禁用增强命令行编辑功能(readline)
  -o, --output=FILENAME   将查询结果写入文件(或 |管道)
  -q, --quiet             以沉默模式运行(不显示消息,只有查询结果)
  -s, --single-step       单步模式 (确认每个查询)
  -S, --single-line       单行模式 (一行就是一条 SQL 命令)
输出格式选项 :
  -A, --no-align          使用非对齐表格输出模式
  -H, --html              HTML 表格输出模式
  -T, --table-attr=文本   设定 HTML 表格标记属性(例如,宽度,边界)
  -x, --expanded          打开扩展表格输出
联接选项:
  -h, --host=主机名        数据库服务器主机或socket目录(缺省:"localhost")
  -p, --port=端口        数据库服务器的端口(缺省:"5432")
  -U, --username=用户名    指定数据库用户名(缺省:"admin")
  -w, --no-password       永远不提示输入口令
  -W, --password           强制口令提示 (自动)

注意:在使用pg_dump对数据库进行备份的时候,到出成默认的格式,导致插入数据时,提示无效的命令\N
解决方法:使用custom格式导出,然后用pg_restore导入。

导出
pg_dump -F custom -U username -d dbname -h host -p port -f filepath
导入
pg_restore -d dbname -U username -h host -p port --jobs=4 --verbose filepath

相关文章

网友评论

      本文标题:postgresql的备份与还原

      本文链接:https://www.haomeiwen.com/subject/rswynctx.html