首页 » Linux » postgresql备份脚本

postgresql备份脚本

 

备份一个数据库保留30天:

#!/bin/bash

# 设置数据库名称和备份目录
DB_NAME="your_database_name"
BACKUP_DIR="/path/to/your/backup/directory"

# 创建备份目录(如果不存在)
mkdir -p $BACKUP_DIR

# 设置备份文件名
BACKUP_FILE="$BACKUP_DIR/$DB_NAME-$(date +%Y-%m-%d_%H-%M-%S).backup"

# 执行备份命令
pg_dump -Fc $DB_NAME > $BACKUP_FILE

# 检查备份是否成功
if [ $? -eq 0 ]; then
  echo "Backup successfully created at $BACKUP_FILE"
else
  echo "Error creating backup"
fi

# 删除30天前的备份文件
find $BACKUP_DIR -name "$DB_NAME*.backup" -type f -mtime +30 -delete

备份整个库:

#!/bin/bash

# 设置备份目录
BACKUP_DIR="/path/to/your/backup/directory"

# 创建备份目录(如果不存在)
mkdir -p $BACKUP_DIR

# 设置备份文件名
BACKUP_FILE="$BACKUP_DIR/postgres-$(date +%Y-%m-%d_%H-%M-%S).backup"

# 执行备份命令
pg_dumpall -Fc > $BACKUP_FILE

# 检查备份是否成功
if [ $? -eq 0 ]; then
  echo "Backup successfully created at $BACKUP_FILE"
else
  echo "Error creating backup"
fi


还原:

确保您有一个有效的备份文件,该文件可以是使用 pg_dump 或 pg_dumpall 命令创建的 *.backup 文件。

创建一个新的空数据库以用于还原。您可以使用 createdb 命令创建新数据库。例如,如果您要创建名为 new_database 的数据库,则可以使用以下命令:

bash
Copy code
createdb new_database
使用 pg_restore 命令将备份文件还原到新数据库中。例如,如果您有一个名为 backup_file.backup 的备份文件,并且您要将其还原到 new_database 数据库中,则可以使用以下命令:

bash
Copy code
pg_restore -Fc -d new_database backup_file.backup
-Fc 指定备份文件的格式为自定义格式
-d new_database 指定还原到新数据库 new_database
检查还原的结果。您可以连接到新数据库并执行查询以确认还原是否成功。例如:

bash
Copy code
psql -d new_database

# 检查是否存在需要的表和数据
\dt
SELECT * FROM some_table;
请注意,还原过程将覆盖目标数据库中的现有数据。在还原之前,请确保已备份目标数据库并仔细检查还原操作。


原文链接:postgresql备份脚本,转载请注明来源!

0