环境:Debian Linux,MariaDB,MySQL,PostgreSQL
之前一直用MySQL,重要的数据库每天用Cron Jobs做备份,因为MySQL的命令直观、好理解,所以觉得很简单,但最近开始用PostgreSQL,花了很多时间查找相应的命令,但没有解释清楚的,故在此分享。简单明了,不拖泥带水。
看上去平淡无奇,简洁干净,但无比好用!
MySQL的命令非常直观
mysqldump -u用户名 -p密码 数据库名 | gzip > /tmp/数据库名.sql.gz
在ssh或Cron Jobs里直接用,只要考虑备份文件写入处是否有写的权限。
PostgreSQL命令看似更简单,但实际磕磕绊绊的地方特别多,在此分享经过多日测试出来的最简洁的道路。
PostgreSQL总是要求系统用户名和数据库用户名/角色的一致性,如果不一样就会有这样那样的麻烦。
假设:Linux的用户为 user1,为了执行下面这条简单的命令需要在PostgreSQL添加user1作为户名/角色,同时特别要注意的是给予超级管理员权限,不然命令可能会出错/query failed: ERROR: permission denied for table xxxxxx。
pg_dump 数据库名 | gzip > /tmp/数据库名.sql.gz
可在ssh或Cron Jobs里直接用,同时考虑备份文件写入处是否有写的权限。
对压缩比敏感的用户可以看看这篇分享。