数据库

首页 » 常识 » 预防 » POSTGRESQL从PGDUMP
TUhjnbcbe - 2021/2/24 3:36:00

没有无缘无故的爱,也没有无缘无故的恨,但有千差万别的利益,千万别高估humanity,那会让你很失望,做事别做绝,因为利益关系很灵活.最近抖音上不少人在重复上面的话,不过想想也对,有多少人在生日那天收到的唯一的祝福是,XX银行祝您生日快乐!!一条及时但却很利益的祝福。

言归正传:

这期有点标题*,但实际上PG的不少命令对于密码来说,还是挺有意思,举例如果是MYSQL我们可以在-p后跟上密码,而对于PG,我总不能在-W后面跟密码,如果这点你不懂的话,那就还是需要在看看PG_DUMP的命令以及使用他,便于理解后面的文字.

虽然重点不是PG_DUMP但还是要写一写,否则真成标题*了.

PG_DUMP是用来导入导出,备份POSTGRESQL的一个工具,当然这个工具的存在可以比对成mysqldump这个工具,实际上用这个工具去备份大的数据库,那只能说,真的吗?你是认真的吗?

实际上pg_dump,可以被明确为一个导入导出的工具可能更合适他的位置.好处是pg_dump在使用的时候并不会阻塞其他用户对数据库的访问.实际上他们备份出的数据,是逻辑的,而不是物理,这也就确认了,他作为导出工具对于接受方是很灵活的,尤其对于一些版本不同的PG来说,PG_DUMP是必须存在的.

PG导出的数据,都是可以看懂的

下面我们就要来到今天标题*中的关键问题,到底怎么在不输入密码的前提下,让PG_DUMP来进行工作的问题.

看到上图的人,估计会说一句,你傻呀,在-W后面写密码不就完了,

好了不行,已经证明了.那还有同学说,你不会变通,你执行命令的时候,直接输入密码不就完了.

呵呵,那我要是自动化,定期运行pg_dump怎么办?

啊,难道回答臣妾做不到?

方法1变量法

在执行命令前,通过变量的方法将默认的密码设置成你下一步要使用的密码,然后直接执行pg_dump,这样的方法来解决有些命令需要输入密码,自动化的问题.

方法2.password法

这个方法的确应该是人尽皆知的,在操作数据库的默认LINUX用户下,我们产生一个权限的文件,.pgpass文件,里面

存储服务器地址,端口,数据库名,用户名,密码

直接在执行命令会去寻找

如果.pgpass文件中没有相关的用户的情况下,或者文件没有找到的情况下,会报fe_sendauth无法找到.

上面的两种方法可能比较pop

下面第三种方法

pg_service.conf,通过定义服务文件的方法,可以对多个数据库备份进行定义

通过定义pg_service.conf文件,并在里面写入相关的模块,一个文件可以包含N个模块,每个模块代表一个连接,通过这样的方式,避免PG_DUMP输入密码如

[postgres

pg12pgdata]$exportPGSERVICE=backup

[postgres

pg12pgdata]$pg_dump-Fc/pgdata/pg_dump.sql

[postgres

pg12pgdata]$ll-ah

好了到此为止标题*的内容就结束了,第三个方法也是偶然习的.

carol11

1
查看完整版本: POSTGRESQL从PGDUMP