欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

主頁 > 知識庫 > Postgresql備份和增量恢復方案

Postgresql備份和增量恢復方案

熱門標簽:外呼調研系統 打電話智能電銷機器人授權 海豐有多少商家沒有地圖標注 重慶自動外呼系統定制 地圖標注和圖片名稱的區別 漯河外呼電話系統 美容工作室地圖標注 合肥公司外呼系統運營商 辦公外呼電話系統

前言

最近工作上使用的數據庫一直是Postgresql,這是一款開源的數據庫,而且任何個人可以將該數據庫用于商業用途。在使用Postgresql的時候,讓我最明顯的感覺就是這數據庫做的真心好,雖然說數據庫的安裝包真的很小,但是性能和操作的便捷是一點也不輸給其他商業的大型數據庫,另外在命令行界面下對該數據庫直接進行操作的感覺真的是很爽。在使用數據庫的時候,我們作為小公司的數據庫管理員有一項工作是不可能避免的,那就是數據的備份和恢復問題。PostgreSQL雖然各個方面的有點很多,但是在數據庫備份這方面,它是不支持增量備份的,這點確實讓人覺得很是可惜啊。不過,瑕不掩瑜,總的來說這是一款很好的數據庫軟件。

之前,我們在 《Postgresql主從異步流復制方案》 一節中,部署了Postgresql的主從異步流復制環境。主從復制的目的是為了實現數據的備份,實現數據的高可用性和容錯行。下面主要簡單地介紹下我們運維Postgresql數據庫時的場景備份與恢復方案。

增量備份

PostgreSQL在做寫入操作時,對數據文件做的任何修改信息,首先會寫入WAL日志(預寫日志),然后才會對數據文件做物理修改。當數據庫服務器掉重啟時,PostgreSQL在啟動時會首先讀取WAL日志,對數據文件進行恢復。因此,從理論上講,如果我們有一個數據庫的基礎備份(也稱為全備),再配合WAL日志,是可以將數據庫恢復到任意時間點的。

上面的知識點很重要,因為我們場景的增量備份說白了就是通過基礎備份 + 增量WAL日志 進行重做恢復的。

增量備份設置

為了演示相關功能,我們基于 《Postgresql主從異步流復制方案》 一節中的環境pghost1服務器上,創 建相關管理目錄

切換到 postgres 用戶下

mkdir -p /data/pg10/backups
mkdir -p /data/pg10/archive_wals

backups目錄則可以用來存放基礎備份

archive_wals目錄自然用來存放歸檔了

接下來我們修改我們的postgresql.conf文件的相關設置

wal_level = replica

archive_mode = on

archive_command = '/usr/bin/lz4 -q -z %p /data/pg10/archive_wals/%f.lz4'

archive_command 參數的默認值是個空字符串,它的值可以是一條shell命令或者一個復雜的shell腳本。

在archive_command的shell命令或腳本中可以用 %p 表示將要歸檔的WAL文件的包含完整路徑信息的文件名,用 %f 代表不包含路徑信息的WAL文件的文件名。

修改wal_level和archive_mode參數都需要重新啟動數據庫才可以生效,修改archive_command不需要重啟,只需要reload即可,例如:

postgres=# SELECT pg_reload_conf();

postgres=# show archive_command ; 

創建基礎備份

我們使用之前介紹過的pg_basebackup命令進行基礎備份的創建, 基礎備份很重要,我們的數據恢復不能沒有它,建議我們根據相關業務策略,周期性生成我們的基礎備份。

$ pg_basebackup -Ft -Pv -Xf -z -Z5 -p 25432 -D /data/pg10/backups/

這樣,我們就成功生成我們的基礎數據備份了

設置還原點

一般我們需要根據重要事件發生時創建一個還原點,通過基礎備份和歸檔恢復到事件發生之前的狀態。

創建還原點的系統函數為:pg_create_restore_point,它的定義如下:

postgres=# SELECT pg_create_restore_point('domac-201810141800');

恢復到指定還原點

接下來,我們通過一個示例,讓我們的數據還原到我們設置的還原點上

首先,我們創建一張測試表:

CREATE TABLE test_restore(
 id SERIAL PRIMARY KEY,
 ival INT NOT NULL DEFAULT 0,
 description TEXT,
 created_time TIMESTAMPTZ NOT NULL DEFAULT now()
);

初始化一些測試數據作為基礎數據,如下所示:

postgres=# INSERT INTO test_restore (ival) VALUES (1);
INSERT 0 1
postgres=# INSERT INTO test_restore (ival) VALUES (2);
INSERT 0 1
postgres=# INSERT INTO test_restore (ival) VALUES (3);
INSERT 0 1
postgres=# INSERT INTO test_restore (ival) VALUES (4);
INSERT 0 1

postgres=# select * from test_restore;
 id | ival | description |   created_time
----+------+-------------+-------------------------------
 1 | 1 |    | 2018-10-14 11:13:41.57154+00
 2 | 2 |    | 2018-10-14 11:13:44.250221+00
 3 | 3 |    | 2018-10-14 11:13:46.311291+00
 4 | 4 |    | 2018-10-14 11:13:48.820479+00
(4 rows)

并且按照上文的方法創建一個基礎備份。如果是測試,有一點需要注意,由于WAL文件是寫滿16MB才會進行歸檔,測試階段可能寫入會非常少,可以在執行完 基礎備份之后,手動進行一次WAL切換。例如:

postgres=# select pg_switch_wal();
 pg_switch_wal
---------------
 0/1D01B858
(1 row)

或者通過設置archive_timeout參數,在達到timeout閾值時強行切換到新的WAL段。

接下來,創建一個還原點,如下所示:

postgres=# select pg_create_restore_point('domac-1014');
 pg_create_restore_point
-------------------------
 0/1E0001A8
(1 row)

接下來我們對數據做一些變更, 我們刪除test_restore的所有數據:

postgres=# delete from test_restore;
DELETE 4

下面進行恢復到名稱為“domac-1014”還原點的實驗,如下所示:

停止數據庫

$ pg_ctl stop -D /data/pg10/db

移除舊的數據目錄

$ rm -rf /data/pg10/db

$ mkdir db  chmod 0700 db

$ tar -xvf /data/pg10/backups/base.tar.gz -C /data/pg10/db

cp $PGHOME/share/recovery.conf.sample /pgdata/10/data/recovery.conf

chmod 0600 /pgdata/10/data/recovery.conf

修改 recovery.conf, 修改以下配置信息:

restore_command = '/usr/bin/lz4 -d /data/pg10/archive_wals/%f.lz4 %p'
recovery_target_name = 'domac-1014

然后啟動數據庫進入恢復狀態,觀察日志,如下所示:

bash-4.2$ pg_ctl start -D /data/pg10/db
waiting for server to start....2018-10-14 11:26:56.949 UTC [8397] LOG: listening on IPv4 address "0.0.0.0", port 25432
2018-10-14 11:26:56.949 UTC [8397] LOG: listening on IPv6 address "::", port 25432
2018-10-14 11:26:56.952 UTC [8397] LOG: listening on Unix socket "/tmp/.s.PGSQL.25432"
2018-10-14 11:26:56.968 UTC [8398] LOG: database system was interrupted; last known up at 2018-10-14 09:26:59 UTC
2018-10-14 11:26:57.049 UTC [8398] LOG: starting point-in-time recovery to "domac-1014"
/data/pg10/archive_wals/00000002.history.lz4: No such file or directory
2018-10-14 11:26:57.052 UTC [8398] LOG: restored log file "00000002.history" from archive
/data/pg10/archive_w : decoded 16777216 bytes
2018-10-14 11:26:57.077 UTC [8398] LOG: restored log file "000000020000000000000016" from archive
2018-10-14 11:26:57.191 UTC [8398] LOG: redo starts at 0/16000060
2018-10-14 11:26:57.193 UTC [8398] LOG: consistent recovery state reached at 0/16000130
2018-10-14 11:26:57.193 UTC [8397] LOG: database system is ready to accept read only connections
/data/pg10/archive_w : decoded 16777216 bytes
2018-10-14 11:26:57.217 UTC [8398] LOG: restored log file "000000020000000000000017" from archive
 done
server started
/data/pg10/archive_w : decoded 16777216 bytes
2018-10-14 11:26:57.384 UTC [8398] LOG: restored log file "000000020000000000000018" from archive
/data/pg10/archive_w : decoded 16777216 bytes
2018-10-14 11:26:57.513 UTC [8398] LOG: restored log file "000000020000000000000019" from archive
/data/pg10/archive_w : decoded 16777216 bytes
2018-10-14 11:26:57.699 UTC [8398] LOG: restored log file "00000002000000000000001A" from archive
/data/pg10/archive_w : decoded 16777216 bytes
2018-10-14 11:26:57.805 UTC [8398] LOG: restored log file "00000002000000000000001B" from archive
/data/pg10/archive_w : decoded 16777216 bytes
2018-10-14 11:26:57.982 UTC [8398] LOG: restored log file "00000002000000000000001C" from archive
/data/pg10/archive_w : decoded 16777216 bytes
2018-10-14 11:26:58.116 UTC [8398] LOG: restored log file "00000002000000000000001D" from archive
/data/pg10/archive_w : decoded 16777216 bytes
2018-10-14 11:26:58.310 UTC [8398] LOG: restored log file "00000002000000000000001E" from archive
2018-10-14 11:26:58.379 UTC [8398] LOG: recovery stopping at restore point "domac-1014", time 2018-10-14 11:17:20.680941+00
2018-10-14 11:26:58.379 UTC [8398] LOG: recovery has paused
2018-10-14 11:26:58.379 UTC [8398] HINT: Execute pg_wal_replay_resume() to continue.

重啟后,我們對test_restore表進行查詢,看數據是否正常恢復:

postgres=# select * from test_restore;
 id | ival | description |   created_time
----+------+-------------+-------------------------------
 1 | 1 |    | 2018-10-14 11:13:41.57154+00
 2 | 2 |    | 2018-10-14 11:13:44.250221+00
 3 | 3 |    | 2018-10-14 11:13:46.311291+00
 4 | 4 |    | 2018-10-14 11:13:48.820479+00
(4 rows)

可以看到數據已經恢復到指定的還原點:domac-1014。

這時,recovery.conf可以移除,避免下次數據重啟,數據再次恢復到該還原點

總結

備份和恢復是數據庫管理中非常重要的工作,日常運維中,我們需要根據需要進行相關策略的備份,并且周期性地進行恢復測試,保證數據的安全。

好了,以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

您可能感興趣的文章:
  • 啟動PostgreSQL服務器 并用pgAdmin連接操作
  • PostgreSQL管理工具phpPgAdmin入門指南
  • docker環境下數據庫的備份(postgresql, mysql) 實例代碼
  • 在Windows下自動備份PostgreSQL的教程
  • postgreSQL使用pgAdmin備份服務器數據的方法

標簽:來賓 錦州 株洲 晉城 烏海 珠海 衡陽 蚌埠

巨人網絡通訊聲明:本文標題《Postgresql備份和增量恢復方案》,本文關鍵詞  Postgresql,備份,和,增量,恢復,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Postgresql備份和增量恢復方案》相關的同類信息!
  • 本頁收集關于Postgresql備份和增量恢復方案的相關信息資訊供網民參考!
  • 推薦文章
    欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
  • <abbr id="w000q"></abbr>
    <rt id="w000q"></rt>
    亚洲成人1区2区| 久久久久久国产精品无码| 婷婷伊人五月天| 国产亚洲成aⅴ人片在线观看 | 午夜剧场免费看| 欧美吞精做爰啪啪高潮| 亚洲丝袜精品丝袜在线| 成人激情午夜影院| 看免费黄色录像| 国产精品国产三级国产普通话三级 | 国产伦精品一区二区免费| 欧美性一二三区| 亚洲一区免费在线观看| 欧美午夜精品一区二区| 欧美日韩精品一二三区| 亚洲国产精品一区二区久久| 成熟妇人a片免费看网站| 3d动漫精品啪啪1区2区免费 | 亚洲久久久久久| 91精品国产aⅴ一区二区| 日日噜噜夜夜狠狠视频欧美人| 中国xxxx性xxxx产国| 91精品啪在线观看国产60岁| 免费视频一区二区| 欧美另类z0zx974| 国产日韩欧美精品综合| 岛国av在线一区| 日本韩国精品在线| 亚洲狠狠爱一区二区三区| 黄色国产在线视频| 日韩一区二区三区视频在线| 卡一卡二国产精品| 制服丨自拍丨欧美丨动漫丨| 成人欧美一区二区三区黑人麻豆| 91视频观看免费| 4438x亚洲最大成人网| 日本 国产 欧美色综合| 免费一级特黄3大片视频| 中文成人综合网| 91蜜桃网址入口| 91精品久久久久久久91蜜桃| 美女看a上一区| caoporn91| 亚洲v精品v日韩v欧美v专区| 成年人免费观看视频网站| 欧美国产综合色视频| 91视频www| 精品久久久久久久久久久久久久久久久| 国内国产精品久久| 色琪琪一区二区三区亚洲区| 首页国产欧美久久| 俄罗斯毛片基地| 亚洲综合在线电影| 成人乱码一区二区三区av| 国产精品狼人久久影院观看方式| 97免费公开视频| 精品第一国产综合精品aⅴ| 国产91丝袜在线播放0| 欧美日韩1234| 国产一区二区三区不卡在线观看| 91国偷自产一区二区使用方法| 日本午夜精品一区二区三区电影 | 91福利区一区二区三区| 日韩高清在线电影| 91高清免费观看| 日韩国产欧美一区二区三区| 成人免费毛片xxx| 日本一区中文字幕| 69av视频在线| 久久99精品久久久| 欧美日韩在线播| 国产酒店精品激情| 欧美另类z0zxhd电影| 国产成人丝袜美腿| 91精品国产欧美一区二区18| 国产成人av一区二区三区在线| 337p亚洲精品色噜噜| 成人动漫在线一区| 欧美精品一区二区精品网| 99精品桃花视频在线观看| 亚洲精品一区二区精华| 超碰人人cao| 亚洲国产成人一区二区三区| 中文字幕 亚洲一区| 亚洲另类色综合网站| 国精产品视频一二二区| 五月天中文字幕一区二区| 色综合天天在线| 国产曰批免费观看久久久| 在线不卡一区二区| av男人天堂一区| 国产亚洲婷婷免费| 少妇饥渴放荡91麻豆| 亚洲最色的网站| 91视频免费在线看| 国产一区二区三区在线观看免费视频| 69堂亚洲精品首页| 99re这里只有精品首页| 日本一区二区三区免费乱视频| 一本色道综合久久欧美日韩精品| 亚洲精品中文字幕在线观看| 日韩欧美在线视频播放| 蜜臂av日日欢夜夜爽一区| 欧美片网站yy| 一起草最新网址| 亚洲欧洲另类国产综合| 天天干天天操天天拍| 日本va欧美va欧美va精品| 欧美日韩精品一区二区三区| 成人免费毛片aaaaa**| 国产农村妇女毛片精品久久麻豆| 国内精品久久99人妻无码| 亚洲成人1区2区| 欧美午夜精品久久久久久孕妇| 成人亚洲精品久久久久软件| 国产情人综合久久777777| 最近中文字幕免费| 日韩电影在线免费看| 欧美乱妇20p| 国产伦理在线观看| 亚洲女性喷水在线观看一区| 一本一道久久a久久精品综合蜜臀| 国产成人免费在线观看不卡| 久久老女人爱爱| 无码人妻aⅴ一区二区三区69岛| 日韩精品亚洲一区二区三区免费| 欧美精选在线播放| 亚洲成a人片在线www| 亚洲福利视频三区| 欧美日韩情趣电影| 一区二区三区四区影院| 亚洲一区二区三区在线| 欧美日韩一本到| 亚洲精品乱码久久久久久蜜桃欧美| 亚洲一区二区三区四区不卡| 欧美日韩国产另类一区| 人妻换人妻a片爽麻豆| 亚洲成a人片在线不卡一二三区| 欧美日韩国产天堂| 欧美图片自拍偷拍| 亚洲国产精品一区二区久久| 欧美日本一区二区三区| 久久人人爽人人人人片| 美女在线视频一区| 久久亚洲捆绑美女| 久久久精品少妇| 不卡电影免费在线播放一区| 亚洲激情第一区| 7777精品伊人久久久大香线蕉完整版 | 高清国产在线观看| 国产精品综合一区二区三区| 国产精品久久久久久久岛一牛影视 | 911精品国产一区二区在线| 亚洲成人av免费在线观看| 久久精品免费看| 国产三级一区二区| www青青草原| 18禁一区二区三区| 免费高清在线一区| 久久久国产综合精品女国产盗摄| frxxee中国xxx麻豆hd| 91免费版在线看| 婷婷久久综合九色综合伊人色| 精品久久人人做人人爽| 精品一区二区在线观看视频| 91麻豆蜜桃一区二区三区| 香蕉加勒比综合久久| 欧美成人精品1314www| 亚洲精品成人av久久| jlzzjlzz亚洲女人18| 天天综合日日夜夜精品| 国产日韩综合av| 欧美亚洲国产bt| 魔女鞋交玉足榨精调教| 高清国产午夜精品久久久久久| 夜夜揉揉日日人人青青一国产精品 | 九九热久久免费视频| 91视视频在线观看入口直接观看www | 日本人添下边视频免费| 捆绑调教一区二区三区| 一区二区中文视频| 欧美一区二区在线看| 欧美性生交大片| 日韩高清一二三区| 国产综合久久久久影院| 一区二区三区四区蜜桃| 精品久久久久一区二区国产| 色哟哟一区二区| 蜜桃传媒一区二区亚洲av| 成人开心网精品视频| 日韩电影在线观看网站| 国产精品久久久一本精品| 777精品伊人久久久久大香线蕉| 午夜激情福利电影| 成人做爰www看视频软件 | 激情成人综合网| 一区二区高清视频在线观看| 26uuu另类欧美亚洲曰本| 欧美性xxxxxxxx| 三级黄色免费观看|