成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Postgresql連續(xù)歸檔和時(shí)間點(diǎn)恢復(fù)(PITR)

IT那活兒 / 1201人閱讀
Postgresql連續(xù)歸檔和時(shí)間點(diǎn)恢復(fù)(PITR)

點(diǎn)擊上方藍(lán)字關(guān)注我們


在任何時(shí)間,PostgreSQL在數(shù)據(jù)集簇目錄的pg_wal/子目錄下都保持有一個(gè)預(yù)寫(xiě)式日志(wal)。這個(gè)日志存在的目的是為了保證崩潰后的安全:如果系統(tǒng)崩潰,可以“重放”從最后一次檢查點(diǎn)以來(lái)的日志項(xiàng)來(lái)恢復(fù)數(shù)據(jù)庫(kù)的一致性。

Postgresql在PITR模式下重放基礎(chǔ)備份下的歸檔wal數(shù)據(jù),從pg_start_backup創(chuàng)建的REDO點(diǎn)到你要恢復(fù)的點(diǎn),在postgresql中,要恢復(fù)的點(diǎn)稱為恢復(fù)目標(biāo)。

環(huán)境如下:

操作系統(tǒng):redhat6.8

數(shù)據(jù)庫(kù):11.2

PGHOME=/db/pgsql

PGDATA=/db/pgsql_data


01
關(guān)閉數(shù)據(jù)庫(kù),修改配置文件postgresql.conf


vipostgresql.conf

archive_mode= on

archive_command= cp -i %p /db/archive/%f

wal_level= hot_standby


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


$/db/pgsql/bin/pg_ctl -D /db/pgsql_data -l logfile start



03
基于文件級(jí)別的持續(xù)備份


模擬數(shù)據(jù)

創(chuàng)建測(cè)試數(shù)據(jù)庫(kù):

createdatabase aaaa;

創(chuàng)建表,補(bǔ)充數(shù)據(jù)

CREATETABLE demo1(id int,name varchar(20));

INSERTINTO demo1 VALUES (1,’xiaowang’), (2,’zhaosi’);

aaaa=#select * from demo1;

id| name

----+----------

1| xiaowang

2| zhaosi

(2rows)



04
開(kāi)始備份


aaaa=# select now();

              now              

-------------------------------

 2021-01-19 23:41:56.476472+08

(1 row)


aaaa=# select pg_start_backup(bak_ws_2021-01-19 23:41:56);

 pg_start_backup

-----------------

 0/2000060

(1row)



05
打包pgsql_data


tar-cvzf pgsql_data.tar pgsql_data


06
結(jié)束并切換歸檔


aaaa=#select pg_stop_backup();

NOTICE: pg_stop_backup complete, all required WAL segments have beenarchived

pg_stop_backup

----------------

0/2000168

(1row)


aaaa=#select pg_switch_wal();

pg_switch_wal

---------------

0/3000078

(1row)

注意:從PostgreSQL10 開(kāi)始將"pg_xlog"目錄重命名為"pg_wal",所以很多網(wǎng)上的版本會(huì)存在查看pg_xlog


07
再次插入數(shù)據(jù)


CREATETABLE demo2(id int,name varchar(20));

aaaa=#INSERT INTO demo2 VALUES (1,xiaoli),(2,zhaoqian);

INSERT0 2


08
模擬毀壞并進(jìn)行恢復(fù)


(1)結(jié)束PG服務(wù)

aaaa=#q


$/db/pgsql/bin/pg_ctl -D /db/pgsql_data/ stop

waitingfor server to shut down.... done

serverstopped

(2)模擬數(shù)據(jù)庫(kù)毀壞

rm-rf pgsql_data

(3)恢復(fù)備份文件pgsql_data.tar

$tar -xvf pgsql_data.tar

(4)刪除pg_wal文件夾并重建

$rm -rf pg_wal

$ mkdir -p pg_wal/archive_status

(5)拷貝recovery.conf文件并修改

cp$PGHOME/share/recovery.conf.sample $PGDATA/recovery.conf

直接添加或修改以下參數(shù):

restore_command= cp /db/archive/%f "%p"

以下參數(shù)可以根據(jù)需要進(jìn)行添加:

archive_cleanup_command=pg_archivecleanup/db/archive %r

###一般來(lái)說(shuō),設(shè)置自動(dòng)清理archive_log可以在配置文件中添加archive_cleanup_command參數(shù)。

recovery_target_time=2021-01-1923:45:12

###recovery_target_time這是用戶自行設(shè)定的,如果不寫(xiě)則會(huì)恢復(fù)到之前接收到的最后一個(gè)歸檔文件。


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

$/db/pgsql/bin/pg_ctl -D /db/pgsql_data -l logfile start

pg_ctl:another server might be running; trying to start server anyway

waitingfor server to start.... done

serverstarted


$/db/pgsql/bin/psql postgres postgres

psql(11.2)

Type"help" for help.


postgres=#c aaaa

Youare now connected to database "aaaa" as user "postgres".

aaaa=#dt

Listof relations

Schema| Name | Type | Owner

--------+-------+-------+----------

public| demo1 | table | postgres

public| demo2 | table | postgres

(2rows)


aaaa=#select * from demo2;

id| name | age

----+----------+-----

1| xiaoli |

2| zhaoqian |


(7)查看日志,恢復(fù)成功

注:結(jié)束后,recovery.conf會(huì)改名變成recovery.done。


總結(jié):PITR技術(shù)對(duì)7*24小時(shí)支撐很重要,對(duì)于數(shù)據(jù)庫(kù)體量很小的,可以增加pg_dump備份頻率,對(duì)于體量較大數(shù)據(jù)庫(kù)就很需要了。需要注意的是pg_dump和pg_dumpall不會(huì)產(chǎn)生文件系統(tǒng)級(jí)別的備份,并且不能用于連續(xù)歸檔方案。這類轉(zhuǎn)儲(chǔ)是邏輯的并且不包含足夠的信息用于wal重放。




文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/130023.html

相關(guān)文章

  • Postgresql 備份與恢復(fù)

    摘要:指定要用于查找的口令文件的名稱。前四個(gè)字段可以是確定的字面值,也可以使用通配符匹配所有。利用環(huán)境變量引用的文件權(quán)限也要滿足這個(gè)要求,否則同樣會(huì)被忽略。在上,該文件被假定存儲(chǔ)在一個(gè)安全的目錄中,因此不會(huì)進(jìn)行特別的權(quán)限檢查。 pg_dump pg_dump 把一個(gè)數(shù)據(jù)庫(kù)轉(zhuǎn)儲(chǔ)為純文本文件或者是其它格式. 用法: pg_dump [選項(xiàng)]... [數(shù)據(jù)庫(kù)名字] 一般選項(xiàng): -f, --fi...

    阿羅 評(píng)論0 收藏0
  • 阿里云如何打破Oracle遷移上云的壁壘

    摘要:摘要第九屆中國(guó)數(shù)據(jù)庫(kù)技術(shù)大會(huì),阿里云數(shù)據(jù)庫(kù)產(chǎn)品專家蕭少聰帶來(lái)以阿里云如何打破遷移上云的壁壘為題的演講。于是,阿里云給出了上面的解決方案。 摘要: 2018第九屆中國(guó)數(shù)據(jù)庫(kù)技術(shù)大會(huì),阿里云數(shù)據(jù)庫(kù)產(chǎn)品專家蕭少聰帶來(lái)以阿里云如何打破Oracle遷移上云的壁壘為題的演講。Oracle是指數(shù)據(jù)庫(kù)管理系統(tǒng),面對(duì)Oracle遷移上云的壁壘,阿里云如何能夠打破它呢?本文提出了Oracle 到云數(shù)據(jù)庫(kù)P...

    chavesgu 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<