PostgreSQL DBA (28) - Backup&恢复# 1(基本操作)

  

  PostgreSQL的备份和恢复操作相对比较简单,通过简单的几个命令和配置即可实现备份和恢复。   
  下面通过例子简单说明PG备份和恢复的基本操作。   
  <强>   场景      
  1 .执行备份   
  2 .创建数据表并执行插入   
  3 .删除数据   
  4 .使用备份恢复到删除数据前的状态   

  <强>   参数配置      
     修改配置文件postgresql.conf      

  <前>   <代码>   archive_mode=如果[!- d BASEDIR/美元日期);然后   mkdir - p BASEDIR/美元日期   如果[!- d BASEDIR/美元日期);然后   回声”错误mkdir - p BASEDIR/日期美元!”   出口1   fi   fi   cp $ 1 $ BASEDIR/日期/2美元   如果[$ ?情商0);然后   退出0   其他的   echo - e " cp $ 1 $ BASEDIR/日期/2美元错误!”   出口1   fi   echo - e“备份失败!”   出口1      之前   

  该脚本把细胞膜日志拷贝到BASEDIR/日期美元目录下   

  

  同时修改日志输出   

  <前>   <代码>   log_destination=' csvlog '   logging_collector=对   log_directory=' pg_log '   log_filename=' postgresql - Y % - % - % d.log”      之前   

  <强>   验证配置      
     启动数据库      

  <前>   <代码>   []testdb xdb@localhost pg_ctl美元开始   等待服务器启动....2019-03-11 14:21:08.591中科[21847]日志:监听IPv4地址0.0.0.0,端口5432   2019-03-11 14:21:08.591中科[21847]日志:监听IPv6地址“::”,端口5432   2019-03-11 14:21:08.609中科[21847]日志:Unix监听套接字“/tmp/.s.PGSQL.5432”   2019-03-11 14:21:08.635中科[21847]日志:将日志输出日志收集过程   2019-03-11 14:21:08.635中科[21847]提示:未来日志输出“pg_log”将出现在目录中。   完成   服务器开始   []testdb xdb@localhost psql - d testdb美元   psql (11.2)   类型“帮助”寻求帮助。   testdb=# wal_level展示;   wal_level   -----------   副本   (1行)   testdb=# archive_command展示;   archive_command   ----------------------------/home/xdb/archive.sh % p % f   (1行)      之前   

     切换日志      
  切换前的目录信息   <前>   <代码>   (xdb@localhost ~)我PGDATA美元/pg_wal   总计49152   - - - - - - - -。1 xdb xdb 16777216 3月11日14:21 00000001000000000000000 d   - - - - - - - -。1 xdb xdb 16777216 3月11日十四20 16777216 e   - - - - - - - -。1 xdb xdb 16777216 3月11日十四20 16777216 f   drwx - - - - - -。2 xdb xdb 6 3月11日14:21 archive_status   (xdb@localhost ~)我PGDATA美元/pg_wal/archive_status   总0   [xdb@localhost ~]美元/数据/archivelog/20190311/总0      之前   

  执行切换   

  <前>   <代码>=#选择testdb pg_switch_wal ();   pg_switch_wal   ---------------   0/D0000E8   (1行)=#选择testdb pg_switch_wal ();   pg_switch_wal   ---------------   0/E000120   (1行)      之前   

  切换后的目录信息   

  <前>   <代码>   (xdb@localhost ~)我PGDATA美元/pg_wal   总计49152   - - - - - - - -。1 xdb xdb 16777216 3月11日14:26 16777216 e   - - - - - - - -。1 xdb xdb 16777216 3月11日14:26 16777216 f   - - - - - - - -。1 xdb xdb 16777216 3月11日14:26 16777216   drwx - - - - - -。2 3月11日14:26 archive_status xdb xdb 43   (xdb@localhost ~)我PGDATA美元/pg_wal/archive_status   总0   - - - - - - - -。1 xdb xdb 0 3月11日14:26 00000001000000000000000 e.done   (xdb@localhost ~)美元   [xdb@localhost ~]美元/数据/archivelog/20190311/总计32768   - - - - - - - -。1 xdb xdb 16777216 3月11日14:26 16777216 d   - - - - - - - -。1 xdb xdb 16777216 3月11日14:26 16777216 e      之前   

  <强>   执行备份      
  使用PG提供的pg_basebackup命令即可实现。   <前>   <代码>   [xdb@localhost ~]美元pg_basebackup - d/数据/备份/20190311 - 1/- l 20190311 - 1 - v   pg_basebackup:备份启动基地,等待检查点完成   pg_basebackup:检查点完成   pg_basebackup:写前日志起点:0/10000028时间1   pg_basebackup:开始背景WAL接收机   pg_basebackup:创建临时复制槽“pg_basebackup_21910”   pg_basebackup:写前日志终点:0/10000130   pg_basebackup:等待后台进程完成流…   pg_basebackup:基础备份完成   (xdb@localhost ~)美元   

PostgreSQL DBA (28) - Backup&恢复# 1(基本操作)