zoukankan      html  css  js  c++  java
  • pg_rman的安装与使用

    1.安装

    1.1.下载

    下载要根据数据库版本下载

    pg_rman下载地址

    1.2.解压安装

    用root用户安装

    # root用户执行
    cd /data/soft
    tar vxf pg_rman-1.3.13-pg10.tar.gz
    cd pg_rman-1.3.13-pg10
    # pg_rman执行的时候,需要使用pg_config命令,所以要在PATH中加入pg_config命令路径
    export PATH=$PATH:/usr/local/pgsql/bin/
    make
    make install
    # make install后,会将pg_rman安装到$PGHOME/bin下
    

    用postgres用户安装

    # 和用root安装不同,需要软体所在目录权限和$PGHOME权限
    # 因为自身的环境变量已有$PGHOME的路径,因此不需要声明pg_config的路径
    cd /data/soft
    tar vxf pg_rman-1.3.13-pg10.tar.gz
    cd pg_rman-1.3.13-pg10
    make
    make install
    

    1.3.初始化

    # 使用数据库所属用户,一般为postgres用户
    vi .bash_profile
    export BACKUP_PATH=/data/pg_rman
    source .bash_profile
    pg_rman init
    

    使用pg_rman init命令后,会在$BACKUP_PATH下生成pg_rman.ini文件,里面会有pg_rman通过查看postgresql.conf中找到的归档路径(archive_command)和数据库日志路径(log_directory)

    2.管理

    2.1.备份

    2.1.1.普通备份
    # 全备
    # -b备份类型,-s包含数据库日志,-Z启动压缩,需要数据库支持zlib,-C做一个检查点,-P显示备份进度
    pg_rman -b full -s -Z -C -P backup;pg_rman validate
    # 归档
    pg_rman -b archive -s -Z -C -P backup;pg_rman validate
    # 增量备份,增量备份需要有一次全备作为基础
    pg_rman -b incremental -s -Z -C -P backup;pg_rman validate
    # 显示备份信息
    pg_rman show detail
    
    2.1.2.高级备份
    # oracle的rman可以设置时间窗口,备份冗余,自动删除过期备份,pg_rman也提供了类似的功能
    keep-data-days # 时间窗口,备份需要保证数据库可以恢复到时间窗口内的任意时间点
    keep-data-generations # 保留几代全备,如果设置为2,本次备份后不会删除上次备份
    keep-arclog-files # 保留多少个归档文件
    keep-arclog-days # 保留几天内的归档文件
    keep-srvlog-files # 保留几个数据库日志文件
    keep-srvlog-days # 保留几天内的数据库日志文件
    pg_rman -b full -s -Z -C -P --keep-data-generations=1 --keep-arclog-days=1 backup
    

    以上的选项也可以写入pg_rman.ini中,这样全备,归档,增量备份都可以使用以上保留策略

    vi $BACKUP_PATH/pg_rman.ini
    
    ARCLOG_PATH='/pgdata/archlog'
    SRVLOG_PATH='/pgdata/data/log'
    keep-arclog-days=1
    keep-srvlog-days=1
    compress_data=yes
    with-serverlog=yes
    smooth-checkpoint=yes
    
    2.1.3.实战

    本次全备完,删除之前的所有备份

    # pg_rman.ini配置参考2.1.2节,定时执行如下脚本即可
    vi pg_full_backup.sh
    source ~/.bash_profile
    pg_rman -b full -P backup
    pg_rman validate
    sleep 10
    DeleteDate=$(date +%Y-%m-%d\ %H:%M:%S)
    pg_rman delete \"$DeleteDate\"
    pg_rman purge
    
    # 如果要在终端执行全备,而全备需要很长时间
    # nohup(no hang up,关闭终端的时候,会发出挂起的命令,所有正在执行的任务会被迫退出,加上后,关闭终端也不会退出)
    # & 后台运行,直接放回,不会阻挡你其他工作
    nohup pg_rman backup -b full -P > /archlog/pg_rman_backup/full_backup.log 2>&1 &
    

    2.2.删除

    # 删除之前备份
    pg_rman show detail
    pg_rman delete "2021-11-24 13:52:53";pg_rman purge
    # 删除归档
    show archive_command; #查看归档路径
    pg_archivecleanup -d /archlog/archivedir 000000010000EEF700000060
    
    
  • 相关阅读:
    HDU 4825 Xor Sum
    Linux下使用Crontab定时执行脚本
    HDU 4824 Disk Schedule
    Educational Codeforces Round 26 D. Round Subset 动态规划
    POJ 1833 排列
    HDU 1716 全排列
    HDU 1027 全排列
    Educational Codeforces Round 26 A C 之Python
    ACM输入输出之python
    标准C程序设计七---102
  • 原文地址:https://www.cnblogs.com/monkey6/p/15598143.html
Copyright © 2011-2022 走看看