激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數(shù)據(jù)庫(kù)技術(shù)|

服務(wù)器之家 - 數(shù)據(jù)庫(kù) - PostgreSQL - 使用pg_basebackup對(duì)Postgre進(jìn)行備份與恢復(fù)的實(shí)現(xiàn)

使用pg_basebackup對(duì)Postgre進(jìn)行備份與恢復(fù)的實(shí)現(xiàn)

2021-03-25 21:01文檔搬運(yùn)工 PostgreSQL

這篇文章主要介紹了使用pg_basebackup對(duì)Postgre進(jìn)行備份與恢復(fù)的實(shí)現(xiàn)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

postgres 版本9.4.23

暫時(shí)在Windows下對(duì)postgres進(jìn)行備份恢復(fù)

在進(jìn)行備份之前,在認(rèn)證文件中增加一行,否則無(wú)法進(jìn)行備份

?
1
host  replication   postgres    127.0.0.1/24      md5

開(kāi)始使用pg_basebackup命令進(jìn)行備份。當(dāng)pgbak文件夾不存在的時(shí)候,備份的過(guò)程中會(huì)自動(dòng)創(chuàng)建該文件夾。

關(guān)于pg_basebackup的命令,可以參考文檔

?
1
2
3
4
5
6
7
8
9
C:\PostgreSQL\9.4\bin>pg_basebackup -h 127.0.0.1 -U postgres -D C:\pgbak -Ft -R -z -v --checkpoint=fast
口令:
pg_basebackup: initiating base backup, waiting for checkpoint to complete
pg_basebackup: checkpoint completed
已復(fù)制     1 個(gè)文件。
已復(fù)制     1 個(gè)文件。
已復(fù)制     1 個(gè)文件。
NOTICE: pg_stop_backup complete, all required WAL segments have been archived
pg_basebackup: base backup completed

進(jìn)行模擬破壞。停掉庫(kù)。 刪除掉data目錄(注意wal日志以.backup結(jié)尾及以后的文件不要?jiǎng)h除,因?yàn)檫@些文件沒(méi)有備份,恢復(fù)的時(shí)候要使用)。把備份好的tar.gz文件解壓到data。

在恢復(fù)之前,修改加壓后的tar.gz里面的recovery.conf文件(其實(shí)是指定歸檔的位置,這樣就會(huì)進(jìn)行恢復(fù))。否則無(wú)法啟動(dòng)數(shù)據(jù)庫(kù)。修改后的內(nèi)容如下(#屏蔽掉了備份生成的命令):

?
1
2
3
4
#standby_mode = 'on'
#primary_conninfo = 'user=postgres password=postgres host=127.0.0.1 port=5432 sslmode=prefer sslcompression=1 krbsrvname=postgres'
 
restore_command = 'C:\\PostgreSQL\\9.4\\data\\pg_xlog\\archive_status\\%f'

啟動(dòng)postgres數(shù)據(jù)庫(kù)

?
1
2
3
4
5
6
7
8
9
C:\PostgreSQL\9.4\bin>pg_ctl start -D C:\PostgreSQL\9.4\data
正在啟動(dòng)服務(wù)器進(jìn)程
 
C:\PostgreSQL\9.4\bin>2019-08-06 21:22:29 HKT 日志: 日志輸出重定向到日志收集進(jìn)
2019-08-06 21:22:29 HKT 提示: 后續(xù)的日志輸出將出現(xiàn)在目錄 "pg_log"中.
已復(fù)制     1 個(gè)文件。
已復(fù)制     1 個(gè)文件。
C:\PostgreSQL\9.4\bin>

這樣數(shù)據(jù)庫(kù)就起來(lái)了?;謴?fù)正常。

下面是恢復(fù)后的wal日志文件情況。

使用pg_basebackup對(duì)Postgre進(jìn)行備份與恢復(fù)的實(shí)現(xiàn)

使用pg_basebackup對(duì)Postgre進(jìn)行備份與恢復(fù)的實(shí)現(xiàn)

恢復(fù)的時(shí)候,碰到的一些問(wèn)題

問(wèn)題1 。這個(gè)原因,是因?yàn)樵趓ecovery.conf中沒(méi)有指定restore_command。是按照replicate來(lái)進(jìn)行復(fù)制了。所以出錯(cuò)。

?
1
2
3
4
5
6
7
8
9
10
11
2019-08-06 21:20:25 HKT LOG: database system was shut down in recovery at 2019-08-06 21:15:46 HKT
2019-08-06 21:20:25 HKT LOG: could not open tablespace directory "pg_tblspc/16419/PG_9.4_201409291": No such file or directory
2019-08-06 21:20:25 HKT LOG: could not open tablespace directory "pg_tblspc/16577/PG_9.4_201409291": No such file or directory
2019-08-06 21:20:25 HKT LOG: starting archive recovery
'C:\PostgreSQL\9.4\data\pg_xlog\archive_status\0000000100000000000000D6' 不是內(nèi)部或外部命令,也不是可運(yùn)行的程序
或批處理文件。
2019-08-06 21:20:25 HKT LOG: invalid checkpoint record
2019-08-06 21:20:25 HKT FATAL: could not locate required checkpoint record
2019-08-06 21:20:25 HKT HINT: If you are not restoring from a backup, try removing the file "C:/PostgreSQL/9.4/data/backup_label".
2019-08-06 21:20:25 HKT 日志: 啟動(dòng)進(jìn)程 (PID 544) 已退出, 退出代碼 1
2019-08-06 21:20:25 HKT 日志: 由于啟動(dòng)進(jìn)程失敗, 終止啟動(dòng)

問(wèn)題2,這樣原因,是因?yàn)樵诨謴?fù)的時(shí)候,tar.gz文件夾里面,包含有自己建立的表空間。而在模擬故障的是時(shí)候,表空間沒(méi)有被刪除,也就是說(shuō),沒(méi)有使用tar.gz里面的表空間文件覆蓋原來(lái)的表空間。覆蓋后OK。

?
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
2019-08-06 21:22:29 HKT LOG: database system was shut down in recovery at 2019-08-06 21:15:46 HKT
2019-08-06 21:22:29 HKT LOG: could not open tablespace directory "pg_tblspc/16419/PG_9.4_201409291": No such file or directory
2019-08-06 21:22:29 HKT LOG: could not open tablespace directory "pg_tblspc/16577/PG_9.4_201409291": No such file or directory
2019-08-06 21:22:29 HKT LOG: starting archive recovery
'C:\PostgreSQL\9.4\data\pg_xlog\archive_status\0000000100000000000000D6' 不是內(nèi)部或外部命令,也不是可運(yùn)行的程序
或批處理文件。
2019-08-06 21:22:29 HKT LOG: redo starts at 0/D6000090
2019-08-06 21:22:29 HKT LOG: consistent recovery state reached at 0/D60000B8
'C:\PostgreSQL\9.4\data\pg_xlog\archive_status\0000000100000000000000D7' 不是內(nèi)部或外部命令,也不是可運(yùn)行的程序
或批處理文件。
2019-08-06 21:22:29 HKT LOG: record with zero length at 0/D7000090
2019-08-06 21:22:29 HKT LOG: redo done at 0/D7000028
'C:\PostgreSQL\9.4\data\pg_xlog\archive_status\0000000100000000000000D7' 不是內(nèi)部或外部命令,也不是可運(yùn)行的程序
或批處理文件。
'C:\PostgreSQL\9.4\data\pg_xlog\archive_status\00000002.history' 不是內(nèi)部或外部命令,也不是可運(yùn)行的程序
或批處理文件。
2019-08-06 21:22:29 HKT LOG: selected new timeline ID: 2
'C:\PostgreSQL\9.4\data\pg_xlog\archive_status\00000001.history' 不是內(nèi)部或外部命令,也不是可運(yùn)行的程序
或批處理文件。
2019-08-06 21:22:29 HKT FATAL: the database system is starting up
2019-08-06 21:22:29 HKT LOG: archive recovery complete
2019-08-06 21:22:29 HKT LOG: MultiXact member wraparound protections are now enabled
2019-08-06 21:22:29 HKT 日志: 數(shù)據(jù)庫(kù)系統(tǒng)準(zhǔn)備接受連接
2019-08-06 21:22:29 HKT LOG: autovacuum launcher started
2019-08-06 21:22:30 HKT LOG: statement: SET DateStyle=ISO; SET client_min_messages=notice; SELECT set_config('bytea_output','escape',false) FROM pg_settings WHERE name = 'bytea_output'; SET client_encoding='UNICODE';
2019-08-06 21:22:30 HKT LOG: statement:
    SELECT
      db.oid as did, db.datname, db.datallowconn,
      pg_encoding_to_char(db.encoding) AS serverencoding,
      has_database_privilege(db.oid, 'CREATE') as cancreate, datlastsysoid
    FROM
      pg_database db
    WHERE db.datname = current_database()
2019-08-06 21:22:30 HKT LOG: statement:
    SELECT
      oid as id, rolname as name, rolsuper as is_superuser,
      rolcreaterole as can_create_role, rolcreatedb as can_create_db
    FROM
      pg_catalog.pg_roles
    WHERE
      rolname = current_user
2019-08-06 21:22:30 HKT LOG: statement: /*pga4dash*/

補(bǔ)充:pgsql的pg_basebackup

pg_basebackup:是從pgsql提供的一個(gè)方便基礎(chǔ)備份的工具。經(jīng)常用來(lái)搭建流復(fù)制環(huán)境

屬于物理備份。pgsql的邏輯備份是pg_dump工具。

參數(shù)說(shuō)明(pg_basebackup --help 詳細(xì)查看):

-h 指定連接的數(shù)據(jù)庫(kù)的主機(jī)名或IP地址,這里就是主庫(kù)的ip。

-U 指定連接的用戶名,專門負(fù)責(zé)流復(fù)制的repl用戶。

-F 指定了輸出的格式,支持p(原樣輸出)或者t(tar格式輸出)。

-x 表示備份開(kāi)始后,啟動(dòng)另一個(gè)流復(fù)制連接從主庫(kù)接收WAL日志。

-P 表示允許在備份過(guò)程中實(shí)時(shí)的打印備份的進(jìn)度。

-R 表示會(huì)在備份結(jié)束后自動(dòng)生成recovery.conf文件,這樣也就避免了手動(dòng)創(chuàng)建。(12.0有差異)

-D 指定把備份寫(xiě)到哪個(gè)目錄,這里尤其要注意一點(diǎn)就是做基礎(chǔ)備份之前從庫(kù)的數(shù)據(jù)目錄(比如:/usr/local/postgresql/data)目錄需要手動(dòng)清空。

-l 表示指定一個(gè)備份的標(biāo)識(shí)

如:pg_basebackup -h 192.168.23.193 -p 3012 -U testacc -F p -P -X s -R -D /data -r 50M -l label_1576225683"

注意:

12 版本pg_basebackup 命令的 -R 參數(shù)的效果和之前不同,主要體現(xiàn)在:

命令執(zhí)行后在 $PGDATA 目錄創(chuàng)建 standby.signal 標(biāo)識(shí)文件,文件內(nèi)容為空

命令執(zhí)行后在 $PGDATA 目錄的 postgresql.auto.conf 文件中添加 primary_conninfo 參數(shù)信息

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持服務(wù)器之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

原文鏈接:https://oracledocs.blog.csdn.net/article/details/98740059

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: a免费视频 | 亚洲精品com| 亚洲视频成人在线 | 成人福利网| 黄色一级视频 | 国产一级伦理片 | 国产成人羞羞视频在线 | 黄色a级片免费观看 | 欧洲黄视频 | 成人在线精品视频 | 国产精品6区 | 久久蜜桃精品一区二区三区综合网 | 精品国产高清一区二区三区 | 久久影院国产精品 | 日韩精品一区二区免费视频 | 午夜精品久久久久久中宇 | 久久精品一区二区三 | 国产乱淫av片免费观看 | 国产免费传媒av片在线 | 免费a级黄色片 | 羞羞视频在线免费 | 久草在线视频精品 | 国产1区2| 泰剧19禁啪啪无遮挡大尺度 | 视频一区二区国产 | 老女人碰碰在线碰碰视频 | 成年性羞羞视频免费观看无限 | 国产 日韩 亚洲 欧美 | 中国免费一级毛片 | 久久国产精品区 | 做羞羞视频 | 午夜视频福利 | 斗罗破苍穹在线观看免费完整观看 | 久久久国产一级片 | 欧美一级成人 | 亚洲国产成人久久一区www妖精 | 精品国产一区二区三区免费 | 五月天影院,久久综合, | 日本精品久久久久久草草 | 精品一区二区亚洲 | 中文字幕h |