章工运维 章工运维
首页
  • linux
  • windows
  • 中间件
  • 监控
  • 网络
  • 存储
  • 安全
  • 防火墙
  • 数据库
  • 系统
  • docker
  • 运维工具
  • other
  • elk
  • K8S
  • ansible
  • Jenkins
  • GitLabCI_CD
  • 随笔
  • 面试
  • 工具
  • 收藏夹
  • Shell
  • python
  • golang
友链
  • 索引

    • 分类
    • 标签
    • 归档
    • 首页 (opens new window)
    • 关于我 (opens new window)
    • 图床 (opens new window)
    • 评论 (opens new window)
    • 导航栏 (opens new window)
周刊
GitHub (opens new window)

章工运维

业精于勤,荒于嬉
首页
  • linux
  • windows
  • 中间件
  • 监控
  • 网络
  • 存储
  • 安全
  • 防火墙
  • 数据库
  • 系统
  • docker
  • 运维工具
  • other
  • elk
  • K8S
  • ansible
  • Jenkins
  • GitLabCI_CD
  • 随笔
  • 面试
  • 工具
  • 收藏夹
  • Shell
  • python
  • golang
友链
  • 索引

    • 分类
    • 标签
    • 归档
    • 首页 (opens new window)
    • 关于我 (opens new window)
    • 图床 (opens new window)
    • 评论 (opens new window)
    • 导航栏 (opens new window)
周刊
GitHub (opens new window)
  • linux

  • windows

  • 中间件

  • 网络

  • 安全

  • 存储

  • 防火墙

  • 数据库

    • mysql

    • mongodb

    • oracle

    • postgresql

      • 部署postgresql 12.3
      • postgresql备份脚本
        • postgresql常用命令
        • postgres主从复制搭建教程
      • redis

    • 系统

    • docker

    • other

    • 监控

    • 运维
    • 数据库
    • postgresql
    章工运维
    2023-04-20
    目录

    postgresql备份脚本

    记录下postgresql备份脚本。

    # 配置免密登录

    # 用户家目录下创建 .pgpass文件
    $ cat .pgpass 
    127.0.0.1:5432:postgres:postgres:u5xhYE3REq
    
    # 文件对应的格式为(前四个字段可以使用通配符 * 号):
    hostname:port:database:username:password
    # 使用通配符如下:
    *:*:*:*:u5xhYE3REq
    
    1
    2
    3
    4
    5
    6
    7
    8

    # 备份脚本

    #!/usr/bin/env bash
    # postgresql全库备份脚本
    
    set -e
    # 定义数据库连接及库名等相关信息
    DB_USER=postgres
    BACKUP_DIR="."
    DATE=$(date +%Y%m%d_%H%M%S)  # 当前日期和时间,用于备份文件名
    BACKUP_FILE="$BACKUP_DIR/backup_$DATE.sql"
    # db指定要备份的数据库,多个库请换行输入
    db_name=(
    "testdb"
    )
    
    [[ ! -d ${BACKUP_DIR} ]] && mkdir ${BACKUP_DIR}
    
    for i in "${db_name[@]}"
    do
      pg_dump -U $DB_USER -F p -b -v -f $BACKUP_FILE   ${i}
    done
    
    # 检查备份是否成功
    if [ $? -eq 0 ]; then
        echo "数据库备份成功!备份文件存储在: $BACKUP_FILE"
    else
        echo "数据库备份失败!请检查错误日志。"
        exit 1
    fi
    
    # 压缩备份文件
    echo "正在压缩备份文件..."
    gzip $BACKUP_FILE
    
    # 检查压缩是否成功
    if [ $? -eq 0 ]; then
        echo "备份文件压缩成功!压缩文件存储在: $BACKUP_FILE.gz"
    else
        echo "备份文件压缩失败!请检查错误日志。"
        exit 1
    fi
    
    # 删除旧备份(可选)
    # 保留最近7天的备份
    echo "正在清理旧备份文件..."
    find $BACKUP_DIR -type f -name "backup_*.sql.gz" -mtime +7 -exec rm -f {} \;
    echo "旧备份清理完成。"
    
    echo "备份流程完成!"
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48

    运行导出的sql脚本

    \i /tmp/pg.sql    
    
    psql  -f /tmp/pg.sql
    
    psql  < /tmp/pg.sql
    
    1
    2
    3
    4
    5
    微信 支付宝
    上次更新: 2024/12/25, 15:38:21

    ← 部署postgresql 12.3 postgresql常用命令→

    最近更新
    01
    shell脚本模块集合
    05-13
    02
    生活小技巧(认知版)
    04-29
    03
    生活小技巧(防骗版)
    04-29
    更多文章>
    Theme by Vdoing | Copyright © 2019-2025 | 点击查看十年之约 | 鄂ICP备2024072800号
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式