一、背景
通过pgsql的dump命令可以快速的做数据库表结构、表数据的备份,随着业务不断的增加单库单实例已经不能满足业务需要。技术人员是比较懒惰的,每次敲相同命令或是无脑的复制黏贴操作感觉都是对精神的一种摧残,解决摧残的方法就是把命令写成批处理文件,每次双击下搞定!!!
二、环境
- windows 10
- pgsql 14
三、快速备份脚本
- 新建个bak-pg_dump.bat文件,将一下内容保存到bat文件中
- 命令的使用方法
- 新建个文件夹,按需要修改文件夹名称;
- 将bak-pg_dump.bat文件复制到文件件内;
- 双击bak-pg_dump.bat执行批处理;
- 等待命令执行完毕,目录下将生成struct-.sql和data-.sql文件
- struct开头的为库表结构备份脚本;
- data开头的为库表数据备份脚本;
四、遇到的问题和解决方案
- 提示“LOCK TABLE test.xxxx IN ACCESS SHARE MODE”错误
这个问题是在postgresql中使用pg_dump备份执行备份表结构时遇到的问题,产生这个问题的原因是pg_dump需要使用超级用户。
更改 --username参数,使用超级用户或postgres用户解决问题。
总结
通过bat将每次需要重复执行的cd命令、输入pgsql密码、修改执行脚本等重复操作都避免了,减少工作量的同时可以将此类备份操作交由运维人员定期完成。