大家好,又见面了,我是你们的朋友全栈君。
? 作者简介:哪吒,CSDN2021博客之星亚军?、新星计划导师✌、博客专家?
? 哪吒多年工作总结:Java学习路线总结,搬砖工逆袭Java架构师
? 关注公众号【哪吒编程】,回复1024,获取Java学习路线思维导图、大厂面试真题、加入万粉计划交流群、一起学习进步
目录
一、bak方式备份和恢复
(一)备份
1、cmd到PostgreSQL安装目录bin下
2、备份命令
pg_dump -h 192.168.100.23 -U postgres postgres > D:\postgres.bak
3、指令解释
如上命令,
pg_dump 是备份数据库指令;
10.194.227.231是数据库的ip地址;
postgres 是数据库的用户名;
postgres 是数据库名;
> 意思是导出到指定目录;
4、图文并茂
备份
(二)恢复
1、恢复命令
psql -h localhost -U postgres -d test < D:\postgres.bak
2、指令解释
如上命令,
psql 是恢复数据库指令;
localhost是要恢复的数据库的ip地址;
postgres 是数据库的用户名;
test 是数据库名;
> 意思是导出到指定目录;
3、图文并茂
(1)数据导入并解决乱码问题
打开cmd窗口,直接输入chcp 65001即可;
(2)导入数据
(三)Linux中PostgreSQL数据库备份和恢复
在linux里依然有效。有一个值得注意的是:如果直接进入PostgreSQL的安装目录bin下,执行命令,可能会出现 找不到pg_dump,psql的现象,我们在可以这样:
1、备份
/opt/PostgreSQL/9.5/bin/pg_dump -h 164.82.233.54 -U postgres databasename > databasename.bak
2、恢复
/opt/PostgreSQL/9.5/bin/psql -h localhost -U postgres -d databasename < databasename.bak
二、sql方式备份和恢复
这里我们用到的工具是pg_dump和pg_dumpall。
这种方式可以在数据库正在使用的时候进行完整一致的备份,并不阻塞其它用户对数据库的访问。它会产生一个脚本文件,里面包含备份开始时,已创建的各种数据库对象的SQL语句和每个表中的数据。可以使用数据库提供的工具pg_dumpall和pg_dump来进行备份。pg_dump只备份数据库集群中的某个数据库的数据,它不会导出角色和表空间相关的信息,因为这些信息是整个数据库集群共用的,不属于某个单独的数据库。pg_dumpall,对集簇中的每个数据库调用pg_dump来完成该工作,还会还转储对所有数据库公用的全局对象(pg_dump不保存这些对象)。 目前这包括适数据库用户和组、表空间以及适合所有数据库的访问权限等属性。
例如,在我的计算机上,可使用如下命令对名为dbname的数据库进行备份:
pg_dump –h 127.0.0.1 -p 5432 -U postgres -c -C –f dbname.sql dbname
使用如下命令可对全部pg数据库进行备份。
pg_dumpall –h 127.0.0.1 –p 5432 -U postgres –c -C –f db_bak.sql
恢复方式很简单。执行恢复命令即可:
psql –h 127.0.0.1 -p 5432 -U postgres –f db_bak.sql
? 作者简介:哪吒,CSDN2021博客之星亚军?、新星计划导师✌、博客专家?
? 哪吒多年工作总结:Java学习路线总结,搬砖工逆袭Java架构师
? 关注公众号【哪吒编程】,回复1024,获取Java学习路线思维导图、大厂面试真题、加入万粉计划交流群、一起学习进步
关注公众号,回复1024,获取Java学习路线思维导图、加入万粉计划交流群
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/146373.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...