odoo使用的是postgresql数据库,备份恢复可参考发吓命令。
要备份和恢复 PostgreSQL 数据库,你可以使用以下两个常用的工具:
备份数据库
使用 pg_dump 命令备份数据库
使用
pg_dump
命令可以备份整个数据库或者指定的表。以下是备份整个数据库的示例:pg_dump -U username -d dbname > backup.sql
其中
username
是数据库用户名,dbname
是数据库名称,backup.sql
是备份文件名。使用 pg_dumpall 命令备份所有数据库
使用
pg_dumpall
命令可以备份所有数据库。以下是备份所有数据库的示例:pg_dumpall -U username > backup.sql
其中
username
是数据库用户名,backup.sql
是备份文件名。
恢复数据库
使用 psql 命令恢复数据库
使用
psql
命令可以恢复数据库备份文件。以下是恢复数据库的示例:psql -U username -d dbname < backup.sql
其中
username
是数据库用户名,dbname
是数据库名称,backup.sql
是备份文件名。使用 pg_restore 命令恢复数据库
如果使用
pg_dump
命令备份数据库,你可以使用pg_restore
命令来恢复数据库。以下是恢复数据库的示例:pg_restore -U username -d dbname backup.sql
其中
username
是数据库用户名,dbname
是数据库名称,backup.sql
是备份文件名。
以上是备份和恢复 PostgreSQL 数据库的常用方法。根据你的需求选择合适的方法进行操作。希望这些信息对你有所帮助!
备份成.sql恢复时可能不太好弄。建议用 pg_dump备份成.dump格式,恢复时用pg_restore导入。
备份:
##备份命令:
pg_dump -U username -d dbname -Fd -f backup_db.dump
##恢复命令
pg_restore -U username -d dbname backup_db.dump
##如果恢复出错可尝试
pg_restore -U username --clean --create -d dbname backup_db.dump
以下是我的odoo备份脚本,我用cron定时执行备份并上传到指定ftp服务器
#!/bin/bash
#############此脚本需要使用postgres用户执行,建议添加到postgres用户的crontab里定时执行######
# 定义变量
remote_host="192.168.9.32" # 远程服务器主机名
remote_path="/odoo" # 远程服务器目标路径
ftp_username="ftpuser" # FTP用户名
ftp_password="ftppwd" # FTP密码
dbname="dbname"
dbuser="postgres"
dbpwd=""
tmp_path="/var/tmp/"
backup_filename="$tmp_path$back$dbname-$(date +%Y%m%d_%H%M%S).dump"
# 创建备份文件
pg_dump -U $dbuser -d $dbname -Fc -f $backup_filename
# 检查 FTP 服务器连接状态
if nc -z -w 5 $remote_host 21; then
# FTP 服务器连接正常,执行上传操作
ftp -n $remote_host <<EOF
quote USER $ftp_username
quote PASS $ftp_password
put $backup_filename $remote_path/$(basename "$backup_filename")
bye
EOF
# 检查FTP上传是否成功
if [ $? -eq 0 ]; then
# FTP 上传成功,删除本地备份文件
rm "$backup_filename"
# 输出备份完成信息
echo "$(date +%Y-%m-%d_%H:%M:%S),备份文件 $backup_filename 已成功上传到远程服务器"
else
# FTP 上传失败,输出错误信息并停止执行
echo "FTP上传失败"
exit 1
fi
else
# FTP 服务器无法连接,输出错误信息并停止执行
echo "$(date +%Y-%m-%d_%H:%M:%S),无法连接到 FTP 服务器"
exit 1
fi
发表评论 取消回复