postgresql之使用lsn 獲取 wal文件名的實例
10.0及以后版本:
pg_walfile_name()
用法:
postgres=# select pg_current_wal_lsn(), pg_walfile_name(pg_current_wal_lsn()), pg_walfile_name_offset(pg_current_wal_lsn()); pg_current_wal_lsn | pg_walfile_name | pg_walfile_name_offset --------------------+--------------------------+--------------------------------- 2/C000840 | 00000001000000020000000C | (00000001000000020000000C,2112) (1 row)
注:
pg_current_wal_lsn():獲得當前wal日志寫入位置。
pg_walfile_name(lsn pg_lsn):轉(zhuǎn)換wal日志位置為文件名。
pg_walfile_name_offset(lsn pg_lsn):返回轉(zhuǎn)換后的wal日志文件名和偏移量。
10.0之前版本:
postgres=# select pg_current_xlog_location(), pg_xlogfile_name(pg_current_xlog_location()), pg_xlogfile_name_offset(pg_current_xlog_location()); pg_current_xlog_location | pg_xlogfile_name | pg_xlogfile_name_offset --------------------------+--------------------------+------------------------------------- 596/C4DA2000 | 0000000100000596000000C4 | (0000000100000596000000C4,14295040)
注:
pg_current_xlog_location():獲得當前wal日志寫入位置。
pg_xlogfile_name():轉(zhuǎn)換wal日志位置為文件名。
pg_xlogfile_name_offset():返回轉(zhuǎn)換后的wal日志文件名和偏移量。
補充:postgresql lsn與wal file的對應關(guān)系
系統(tǒng)環(huán)境:
PostgreSQL 11.6
查看當前的LSN和wal 名稱
postgres=# select pg_current_wal_lsn(),pg_walfile_name(pg_current_wal_lsn()); pg_current_wal_lsn | pg_walfile_name --------------------±------------------------- 4/D20001B0 | 0000000100000004000000D2
對應關(guān)系
LSN:4/D20001B0
說明:LNS有三部分組成
4:代表walfile的第二部分
D2:代表walfile文件的最后兩位
0001B0:代表偏移量
walfile:00000001 00000004 000000D2
說明:由24個字符,三部分組成,每部分由8個字符組成,代表含義如下
00000001:代表數(shù)據(jù)庫運行的時間軸,如果恢復過數(shù)據(jù)庫(主備切換)這個值會增大
00000004:對LSN的第二部分對應
000000D2:代表walfile文件的最后兩位
查看walfile文件的路徑
postgres=# select * from pg_ls_waldir() order by modification desc limit 5; name | size | modification --------------------------±---------±----------------------- 0000000100000004000000D2 | 16777216 | 2020-05-30 12:01:57+08 0000000100000004000000D1 | 16777216 | 2020-05-27 16:11:10+08 0000000100000004000000D0 | 16777216 | 2020-05-24 23:18:25+08 0000000100000004000000CF | 16777216 | 2020-05-14 14:17:16+08 0000000100000004000000CE | 16777216 | 2020-05-09 14:24:25+08
說明:pg的walfile大小默認是16MB,可以在初始化數(shù)據(jù)庫時通過initdb --wal-segsize=SIZE方式來修改
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
如何將excel表格數(shù)據(jù)導入postgresql數(shù)據(jù)庫
這篇文章主要介紹了如何將excel表格數(shù)據(jù)導入postgresql數(shù)據(jù)庫,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-03-03postgresql數(shù)據(jù)庫 timescaledb 時序庫 把大數(shù)據(jù)量表轉(zhuǎn)換為超表的問題
這篇文章主要介紹了postgresql數(shù)據(jù)庫 timescaledb 時序庫 把大數(shù)據(jù)量表轉(zhuǎn)換為超表,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-02-02利用OGG實現(xiàn)PostgreSQL實時同步的過程詳解
本文詳細闡述了利用OGG實現(xiàn)PostgreSQL實時同步的全過程,文章通過代碼示例和圖文結(jié)合講解的非常詳細,對大家的學習或工作有一定的參考價值,需要的朋友可以參考下2023-11-11postgreSQL查詢結(jié)果添加一個額外的自增序列操作
這篇文章主要介紹了postgreSQL查詢結(jié)果添加一個額外的自增序列操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-02-02Postgresql的pl/pgql使用操作--將多條執(zhí)行語句作為一個事務(wù)
這篇文章主要介紹了Postgresql的pl/pgql使用操作--將多條執(zhí)行語句作為一個事務(wù),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01PostgreSQL的upsert實例操作(insert on conflict do)
這篇文章主要介紹了PostgreSQL的upsert實例操作(insert on conflict do),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01