odoo使用的是postgresql数据库,备份恢复可参考发吓命令。


要备份和恢复 PostgreSQL 数据库,你可以使用以下两个常用的工具:

备份数据库

  1. 使用 pg_dump 命令备份数据库

    使用 pg_dump 命令可以备份整个数据库或者指定的表。以下是备份整个数据库的示例:

    pg_dump -U username -d dbname > backup.sql

    其中 username 是数据库用户名,dbname 是数据库名称,backup.sql 是备份文件名。

  2. 使用 pg_dumpall 命令备份所有数据库

    使用 pg_dumpall 命令可以备份所有数据库。以下是备份所有数据库的示例:

    pg_dumpall -U username > backup.sql

    其中 username 是数据库用户名,backup.sql 是备份文件名。

恢复数据库

  1. 使用 psql 命令恢复数据库

    使用 psql 命令可以恢复数据库备份文件。以下是恢复数据库的示例:

    psql -U username -d dbname < backup.sql

    其中 username 是数据库用户名,dbname 是数据库名称,backup.sql 是备份文件名。

  2. 使用 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



点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部