亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在PostgreSQL11中對wal-segsize進行修改

發布時間:2021-01-08 16:14:36 來源:億速云 閱讀:339 作者:Leah 欄目:開發技術

這篇文章將為大家詳細講解有關怎么在PostgreSQL11中對wal-segsize進行修改,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

修改有風險,謹慎行事。

PostgreSQL11以前改變wal-segsize(WAL段大小)必須在編譯時通過–with-wal-segsize參數確定,編譯后不可更改.

#PostgreSQL11之前的版本
#數據塊按8K劃分(--with-blocksize,單位為K,默認為8K)
#WAL塊尺寸按8k劃分(--with-wal-blocksize,單位為K,默認為8K)
#數據文件按1G一個分解(--with-segsize,單位為G,默認為1G)
#WAL段尺寸按16MB劃分(--with-wal-segsize,單位為K,默認為16MB)
./configure --with-blocksize=8--with-wal-blocksize=8--with-segsize=1 --with-wal-segsize=16

PostgreSQL11取消了編譯參數–with-wal-segsize.使用pg_resetwal(–wal-segsize)更改WAL段大小.

#PostgreSQL11先編譯程序
#數據塊按8K劃分(--with-blocksize,單位為K,默認為8K)
#WAL塊尺寸按8k劃分(--with-wal-blocksize,單位為K,默認為8K)
#數據文件按1G一個分解(--with-segsize,單位為G,默認為1G)
./configure --with-blocksize=8--with-wal-blocksize=8--with-segsize=1

編譯完成并初始化后使用pg_resetwal修改wal-segsize

#首先停止PostgreSQL服務
pg_ctl -D /data/pgdata stop -m fast
#修改wal-segsize段大小,默認單位是MB,值必須是2的冪并且在1到1024MB之間
pg_resetwal --wal-segsize=32 /data/pgdata;

查看

show block_size;
show wal_block_size;
show segment_size;
show wal_segment_size;
ls /data/pgdata/pg_wal -lh

補充:PostgreSQL 11 新特性解讀 : Initdb/Pg_resetwal支持修改WAL文件大小

PostgreSQL 11 版本的一個重要調整是支持 initdb 和 pg_resetwal 修改 WAL 文件大小,而 11 版本之前只能在編譯安裝 PostgreSQL 時設置 WAL 文件大小。這一特性能夠方便 WAL 文件的管理。

Release 的說明

Allow the WAL file size to be set via initdb (Beena Emerson)

Previously the 16MB default could only be changed at compile time.

下面分別演示通過 initdb 和 pg_resetwal 修改 WAL 文件大小。

使用 initdb 調整WAL文件大小

initdb 命令關于修改 WAL 文件大小選項,如下:

--wal-segsize=size

Set the WAL segment size, in megabytes. This is the size of each individual file in the WAL log. The default size is 16 megabytes. The value must be a power of 2 between 1 and 1024 (megabytes). This option can only be set during initialization, and cannot be changed later.

It may be useful to adjust this size to control the granularity of WAL log shipping or archiving. Also, in databases with a high volume of WAL, the sheer number of WAL files per directory can become a performance and management problem. Increasing the WAL file size will reduce the number of WAL files.

WAL 日志文件大小默認為16MB,該值必須是1到1024之間的2的次方,增大WAL文件大小能夠減少WAL日志文件的產生。

初始化一個新的 PostgreSQL 數據庫實例,指定WAL文件大小64MB,如下:

[pg11@pghost2 ~]$ initdb -E UTF8 --locale=C --wal-segsize=64 -D /home/pg11/data01 -U postgres -W
The files belonging to this database system will be owned by user "pg11".
This user must also own the server process.
 
The database cluster will be initialized with locale "C".
The default text search configuration will be set to "english".
 
Data page checksums are disabled.
 
Enter new superuser password: 
Enter it again: 
 
creating directory /home/pg11/data01 ... ok
creating subdirectories ... ok
selecting default max_connections ... 100
selecting default shared_buffers ... 128MB
selecting dynamic shared memory implementation ... posix
creating configuration files ... ok
running bootstrap script ... ok
performing post-bootstrap initialization ... ok
syncing data to disk ... ok
 
WARNING: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the option -A, or
--auth-local and --auth-host, the next time you run initdb.
 
Success. You can now start the database server using:
 
 pg_ctl -D /home/pg11/data01 -l logfile start

修改 postgresql.conf 相關配置,之后啟動數據庫。

[pg11@pghost2 data01]$ pg_ctl start -D /home/pg11/data01
waiting for server to start....2018-10-16 15:58:16.714 CST [10583] LOG: listening on IPv6 address "::1", port 1950
2018-10-16 15:58:16.714 CST [10583] LOG: listening on IPv4 address "127.0.0.1", port 1950
2018-10-16 15:58:16.731 CST [10583] LOG: listening on Unix socket "/tmp/.s.PGSQL.1950"
2018-10-16 15:58:16.762 CST [10584] LOG: database system was shut down at 2018-10-16 15:56:46 CST
2018-10-16 15:58:16.782 CST [10583] LOG: database system is ready to accept connections
 done
server started

驗證WAL文件大小,如下:

[pg11@pghost2 ~]$ ll /home/pg11/data01/pg_wal
total 65M
-rw------- 1 pg11 pg11 64M Oct 16 16:03 000000010000000000000001
drwx------ 2 pg11 pg11 4.0K Oct 16 15:56 archive_status

可見WAL文件大小為64MB。

使用 pg_resetwal 調整WAL文件大小

pg_resetwal 用來重置WAL日志和一些控制信息,常用于數據庫恢復場景,不到萬不得已不輕易使用,以下演示使用pg_resetwal命令調整WAL日志文件大小,僅供測試參考,生產環境慎用。

pg_resetwal 命令關于調整WAL文件大小的選項,如下:

--wal-segsize=wal_segment_size

Set the new WAL segment size, in megabytes. The value must be set to a power of 2 between 1 and 1024 (megabytes). See the same option of initdb for more information.

以下演示在已有PostgreSQL實例基礎上調整WAL日志文件大小。

查看當前數據庫的 pg_wal 目錄,如下:

[pg11@pghost2 pg_wal]$ ll /database/pg11/pg_root/pg_wal/
total 2.3G
-rw------- 1 pg11 pg11 16M Sep 30 14:45 000000010000001700000013
-rw------- 1 pg11 pg11 16M Sep 30 14:45 000000010000001700000014
-rw------- 1 pg11 pg11 16M Sep 30 14:45 000000010000001700000015
-rw------- 1 pg11 pg11 16M Sep 30 14:45 000000010000001700000016
-rw------- 1 pg11 pg11 16M Sep 30 14:45 000000010000001700000017
-rw------- 1 pg11 pg11 16M Sep 30 14:45 000000010000001700000018
-rw------- 1 pg11 pg11 16M Sep 30 14:45 000000010000001700000019
-rw------- 1 pg11 pg11 16M Sep 30 14:45 00000001000000170000001A
-rw------- 1 pg11 pg11 16M Sep 30 14:45 00000001000000170000001B
...
省略
drwx------ 2 pg11 pg11 16K Oct 16 08:38 archive_status

pg_wal 目錄中已有大量WAL日志文件,WAL文件大小為16MB,計劃將WAL日志文件調整成64MB。

pg_resetwal 操作時需要關閉數據庫,如下。

[pg11@pghost2 ~]$ pg_ctl stop -m fast
waiting for server to shut down.... done
server stopped
pg_resetwal 命令調整WAL日志文件大小為 64MB:
[pg11@pghost2 ~]$ pg_resetwal --wal-segsize=64 -D /database/pg11/pg_root
Write-ahead log reset

驗證WAL文件大小,如下:

[pg11@pghost2 ~]$ ll /database/pg11/pg_root/pg_wal/
total 65M
-rw------- 1 pg11 pg11 64M Oct 16 08:55 000000010000001700000029
drwx------ 2 pg11 pg11 16K Oct 16 08:55 archive_status

發現 pg_wal 目錄中原有的WAL日志被清理,同時生成了大小為64MB新的WAL文件。

啟動數據庫提示 min_wal_size 參數至少需設置成 wal_segment_size 大小為 2 倍。

[pg11@pghost2 ~]$ pg_ctl start
waiting for server to start....2018-10-16 09:01:26.096 CST [24318] FATAL: "min_wal_size" must be at least twice "wal_segment_size".
2018-10-16 09:01:26.096 CST [24318] LOG: database system is shut down
 stopped waiting
pg_ctl: could not start server
Examine the log output.

根據提示調整 postgresql.conf,設置如下:

min_wal_size = 128MB

啟動數據庫正常,如下:

[pg11@pghost2 ~]$ pg_ctl start
waiting for server to start....2018-10-16 09:02:45.680 CST [24614] LOG: listening on IPv4 address "0.0.0.0", port 1930
2018-10-16 09:02:45.680 CST [24614] LOG: listening on IPv6 address "::", port 1930
2018-10-16 09:02:45.687 CST [24614] LOG: listening on Unix socket "/tmp/.s.PGSQL.1930"
2018-10-16 09:02:45.715 CST [24614] LOG: redirecting log output to logging collector process
2018-10-16 09:02:45.715 CST [24614] HINT: Future log output will appear in directory "log".

關于怎么在PostgreSQL11中對wal-segsize進行修改就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

旺苍县| 隆安县| 平顶山市| 游戏| 乌兰浩特市| 绍兴县| 金湖县| 福鼎市| 淅川县| 灵石县| 阿勒泰市| 咸宁市| 玉环县| 简阳市| 新沂市| 广水市| 廊坊市| 平乐县| 澄城县| 巴彦县| 兰考县| 安化县| 江永县| 云阳县| 翁源县| 漯河市| 金山区| 友谊县| 鄂伦春自治旗| 长沙县| 政和县| 光泽县| 左云县| 永昌县| 潞西市| 云安县| 曲沃县| 大理市| 讷河市| 霍州市| 岳阳市|