POSTGRESQL 關于2023-08-14 數據庫自動啟動文章中使用KILL 來進行配置RELOAD的問題解釋...

7c9db544e85e6d67156b2602973de604.png

開頭還是介紹一下群,如果感興趣Polardb ,mongodb ,MySQL?,Postgresql ,redis ,SQL SERVER ,ORACLE,Oceanbase 等有問題,有需求都可以加群群內有各大數據庫行業大咖,CTO,可以解決你的問題。加群請加 liuaustin3微信號 ,在新加的朋友會分到3群(共1170人左右 1 + 2 + 3)

首先道歉,昨天關于POSTGRESQL 的文章中的部分內容個人覺得有誤導的部分或者說沒有解釋清楚的地方。雖然相關的部分是官方的提供的相關的文件,特通過此文更新相關的內容。

在上一篇文章中,有這樣一個部分

d81833a97a405969275cdf27bb99242a.png

13580199c3b75f6cab503c481325deb4.png

因為這個地方有不同的意見

1??實際上這塊的部分代表了reload 的部分,而通常我們撰寫這塊的方式是

ExecReload=/usr/local/postgres/bin/pg_ctl reload -D ${PGDATA}

3f21587c2216634f5b0126f658d2541c.png

但是官方安裝完畢后,這個部門給的命令是 kill -HUP $MAINPID ,熟悉這PG 這塊的小伙伴,都明白,kill 在對于PG 來說是一個要了命的命令,所以本文最后會給出更新的部分,咱們不按官方的來。

但是問題又來了,為甚一個RELOAD的命令本身,在官方的命令里面,是通過 kill 來完成的,而不是我們常用的命令。

這里為避免歧義,特此解釋:

"kill -hup" 是一個用于發送 SIGHUP 信號給進程的命令。SIGHUP 信號是一種發送給進程的 POSIX 信號,代表終端掛起信號(hangup signal)。

當一個進程收到 SIGHUP 信號時,通常會導致該進程重新加載配置文件、重新初始化或重新啟動。這通常用于實現熱重載配置或重新加載程序的功能。

所以說 kill -hup 并不是等同于 kill -9 XXX (兩個沒有可比性), 他是通過kill命令來給進程發送信號的。

0a36bfa5cdea2a9b060c6851471ef109.png

*?Re-read?config?files,?and?tell?children?to?do?same.*/
static?void
process_pm_reload_request(void)
{pending_pm_reload_request?=?false;ereport(DEBUG2,(errmsg_internal("postmaster?received?reload?request?signal")));if?(Shutdown?<=?SmartShutdown){ereport(LOG,(errmsg("received?SIGHUP,?reloading?configuration?files")));ProcessConfigFile(PGC_SIGHUP);SignalChildren(SIGHUP);if?(StartupPID?!=?0)signal_child(StartupPID,?SIGHUP);if?(BgWriterPID?!=?0)signal_child(BgWriterPID,?SIGHUP);if?(CheckpointerPID?!=?0)signal_child(CheckpointerPID,?SIGHUP);if?(WalWriterPID?!=?0)signal_child(WalWriterPID,?SIGHUP);if?(WalReceiverPID?!=?0)signal_child(WalReceiverPID,?SIGHUP);if?(AutoVacPID?!=?0)signal_child(AutoVacPID,?SIGHUP);if?(PgArchPID?!=?0)signal_child(PgArchPID,?SIGHUP);if?(SysLoggerPID?!=?0)signal_child(SysLoggerPID,?SIGHUP);/*?Reload?authentication?config?files?too?*/if?(!load_hba())ereport(LOG,/*?translator:?%s?is?a?configuration?file?*/(errmsg("%s?was?not?reloaded",?HbaFileName)));if?(!load_ident())ereport(LOG,(errmsg("%s?was?not?reloaded",?IdentFileName)));

代碼中,在接受到kill -hup 主進程號后,開始針對PG的配置文件,和 PG的 hba 文件和 ident 等部分信息的加載。

下面重寫了相關的文件,昨天昨天文件的替換

#?It's?not?recommended?to?modify?this?file?in-place,?because?it?will?be
#?overwritten?during?package?upgrades.??It?is?recommended?to?use?systemd
#?"dropin"?feature;??i.e.?create?file?with?suffix?.conf?under
#?/etc/systemd/system/postgresql-14.service.d?directory?overriding?the
#?unit's?defaults.?You?can?also?use?"systemctl?edit?postgresql-14"
#?Look?at?systemd.unit(5)?manual?page?for?more?info.#?Note:?changing?PGDATA?will?typically?require?adjusting?SELinux
#?configuration?as?well.#?Note:?do?not?use?a?PGDATA?pathname?containing?spaces,?or?you?will
#?break?postgresql-14-setup.
[Unit]
Description=PostgreSQL?14?database?server
Documentation=https://www.postgresql.org/docs/14/static/
After=syslog.target
After=network-online.target[Service]
Type=notifyUser=postgres
Group=postgres#?Location?of?database?directory
Environment=PGDATA=/pgdata/data/???#請根據實際情況修改你的PG數據庫目錄地址到這個位置
Environment=PGPORT=5432????????????#請根據實際情況修改此位置為你的PG的端口號#?StandardOutput=syslog#?Disable?OOM?kill?on?the?postmaster
OOMScoreAdjust=-1000
Environment=PG_OOM_ADJUST_FILE=/proc/self/oom_score_adj
Environment=PG_OOM_ADJUST_VALUE=0#請根據實際的情況,來編輯下方的ExecStart=/usr/local/postgres/bin/postmaster?-D?${PGDATA}
ExecStop=/usr/local/postgres/bin/pg_ctl?stop?-D?${PGDATA}?-m?fast
ExecReload=/usr/local/postgres/bin/pg_ctl?reload?-D?${PGDATA}
ExecStatus=/usr/local/postgres/bin/pg_ctl?status?-D?${PGDATA}#ExecReload=/bin/kill?-HUP?$MAINPID
#KillMode=mixed
#KillSignal=SIGINT#?Do?not?set?any?timeout?value,?so?that?systemd?will?not?kill?postmaster
#?during?crash?recovery.
TimeoutSec=0#?0?is?the?same?as?infinity,?but?"infinity"?needs?systemd?229
TimeoutStartSec=0TimeoutStopSec=1h[Install]
WantedBy=multi-user.target

更詳細的分析和解釋請參加? 德哥相關文字

https://developer.aliyun.com/article/60259

e4d815f178b7b6ce8e3d0c1f02b05803.png

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/40660.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/40660.shtml
英文地址,請注明出處:http://en.pswp.cn/news/40660.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Oracle執行計劃

Oracle執行計劃 1. 什么是執行計劃Oracle explain使用3. Explain執行順序 1. 什么是執行計劃 執行計劃是一條查詢語句在Oracle中的執行過程或訪問路徑的描述。 執行計劃描述了SQL引擎為執行SQL語句進行的操作&#xff1b;分析SQL語句相關的性能問題或僅僅質疑查詢優化器的決定…

蔚來李斌賣手機:安卓系統,蘋果售價,一年一發

?作者 | Amy 編輯 | 德新 車圈大佬的玩法真讓人尋不著套路&#xff01; 蘋果的庫克和小米的雷布斯&#xff0c;甚至是FF賈老板準備許久&#xff0c;都想分一塊新能源車的蛋糕&#xff0c;蔚來李斌卻反手進軍手機界&#xff0c;從宣布造手機到手機入網僅僅隔了一年。 近期…

說幾個常見的語法糖

目錄 面試回答 知識擴展 如何解語法糖&#xff1f; 糖塊一、swith 支持 String 與枚舉 糖塊二、泛型 糖塊三、自動裝箱與拆箱 糖塊四、枚舉 糖塊五、條件編譯 糖塊六、斷言 糖塊七、數值字面量 糖塊八、for-each 糖塊九、try-with-resource 可能遇到的坑 泛型 自…

Beats:安裝及配置 Metricbeat (一)- 8.x

在我之前的文章&#xff1a; Beats&#xff1a;Beats 入門教程 &#xff08;一&#xff09;Beats&#xff1a;Beats 入門教程 &#xff08;二&#xff09; 我詳細描述了如何在 Elastic Stack 7.x 安裝及配置 Beats。在那里的安裝&#xff0c;它通常不帶有安全及 Elasticsearc…

MapReduce介紹

目錄 ?一、什么是MapReduce 二、MapReduce 的設計思想 2.1 分而治之 2.2 構建抽象模型&#xff1a;Map和Reduce 2.3 隱藏系統層細節 三、MapReduce 的框架原理 3.1 MRv1工作原理 3.1.1 MRv1架構工作原理圖 3.1.1.1 流程說明 3.1.1.1.1 作業的提交 3.1.1.1.2 作業的初始化 3…

【AI大模型】訓練Al大模型 (上篇)

大模型超越AI 前言 潔潔的個人主頁 我就問你有沒有發揮&#xff01; 知行合一&#xff0c;志存高遠。 目前所指的大模型&#xff0c;是“大規模深度學習模型”的簡稱&#xff0c;指具有大量參數和復雜結構的機器學習模型&#xff0c;可以處理大規模的數據和復雜的問題&#x…

【Java】Queue中增加刪除方法的區別

offer&#xff0c;add 區別&#xff1a; 一些隊列有大小限制&#xff0c;因此如果想在一個滿的隊列中加入一個新項&#xff0c;多出的項就會被拒絕。 這時新的 offer 方法就可以起作用了。它不是對調用 add() 方法拋出一個 unchecked 異常&#xff0c;而只是得到由 offer() 返…

題目:售貨員的難題(狀壓dp)

售貨員的難題 題目描述輸入輸出格式輸入格式&#xff1a;輸出格式&#xff1a; 輸入輸出樣例輸入樣例#1&#xff1a;輸出樣例#1&#xff1a; 思路AC代碼&#xff1a; 題目描述 某鄉有n個村莊( 1 < n < 16 )&#xff0c;有一個售貨員&#xff0c;他要到各個村莊去售貨&am…

consul限制注冊的ip

假設當前服務器的ip是&#xff1a;192.168.56.130 1、允許 所有ip 注冊(驗證可行) consul agent -server -ui -bootstrap-expect1 -data-dir/usr/local/consul -nodedevmaster -advertise192.168.56.130 -bind0.0.0.0 -client0.0.0.0 2、只允許 當前ip 注冊 consul agent -…

Leetcode33 搜索旋轉排序數組

題解&#xff1a; /*** 旋轉排序數組可分為N1 N2兩個部分&#xff0c;如&#xff1a;[4,5,6,7,1,2,3]&#xff0c;N1為[4,5,6,7]&#xff0c;N2為[1,2,3]** 必然滿足以下兩個條件&#xff1a;* 1. N1和N2都是分別遞增的&#xff1b;* 2. N1中的所有元素大于N2中的所有元素;** …

【Python機器學習】實驗12 基于神經網絡的回歸-分類實驗

文章目錄 神經網絡的回歸例1 基于神經網絡的回歸(簡單例子)1.1 導入包1.2 構造數據集&#xff08;隨機構造的&#xff09;1.3 構造訓練集和測試集1.4 構建神經網絡模型1.5 采用訓練數據來訓練神經網絡模型 實驗1 基于神經網絡的分類(鳶尾花數據集)1.1 導入包1.2 構造數據集1.3 …

Selenium瀏覽器自動化測試框架簡單介紹

selenium簡介 介紹   Selenium [1] 是一個用于Web應用程序測試的工具。Selenium測試直接運行在瀏覽器中&#xff0c;就像真正的用戶在操作一樣。支持的瀏覽器包括IE&#xff08;7, 8, 9, 10, 11&#xff09;&#xff0c;Mozilla Firefox&#xff0c;Safari&#xff0c;Googl…

系統學習Linux-MongoDB

概述 mongodb是一個nosql數據庫&#xff0c;它有高性能、無模式、文檔型的特點。是nosql數據庫中功能最豐富&#xff0c;最像關系數據庫的。數據庫格式為BSON 相關概念實例&#xff1a;系統上運行的mongodb的進程&#xff0c;類似于mysql實例&#xff1b;庫&#xff1a;每個數…

用cpolar生成的公網地址,對位于本地的Cloudreve網盤進行訪問

文章目錄 1、前言2、本地網站搭建2.1 環境使用2.2 支持組件選擇2.3 網頁安裝2.4 測試和使用2.5 問題解決 3、本地網頁發布3.1 cpolar云端設置3.2 cpolar本地設置 4、公網訪問測試5、結語 1、前言 自云存儲概念興起已經有段時間了&#xff0c;各互聯網大廠也紛紛加入戰局&#…

MySQL 自增 ID 默認從 1 開始,如何設置自增 ID 從 0 開始

MySQL 是一種關系型數據庫&#xff0c;它是世界上最流行的關系型數據庫之一。在 MySQL 中&#xff0c;自增是一種非常有用的功能&#xff0c;它可以自動給主鍵賦值&#xff0c;并保證每個主鍵是唯一的。然而&#xff0c;許多人不知道的是&#xff0c;MySQL 默認情況下從 1 開始…

ArcGIS Pro如何制作不規則形狀圖例

在默認的情況下&#xff0c;ArcGIS Pro生成的圖例是標準的點、直線和矩形的&#xff0c;對于湖泊等要素而言&#xff0c;這樣的表示方式不夠直觀&#xff0c;我們可以將其優化一下&#xff0c;制作不規則的線和面來代替原有圖例&#xff0c;這里為大家介紹一下制作方法&#xf…

BERT數據處理,模型,預訓練

代碼來自李沐老師《動手學pytorch》 在數據處理時&#xff0c;首先執行以下代碼 def load_data_wiki(batch_size, max_len):"""加載WikiText-2數據集"""num_workers d2l.get_dataloader_workers()data_dir d2l.download_extract(wikitext-2, w…

django——配置 settings.py 及相關參數說明

3. 配置 settings.py 及相關參數說明 3.1 配置setting.py文件 設置setting.py文件 加入安裝的庫 apps.erp_test, rest_framework, django_filters, drf_spectacular,加入新增的APP users啟動項目 # 運行項目先執行數據庫相關操作&#xff0c;再啟動 django 項目 python manag…

【JavaSE】面向對象之繼承

繼承 繼承概念繼承的語法父類成員的訪問子類和父類沒有同名成員變量子類和父類有同名成員變量成員方法名字不同成員方法名字相同 super關鍵字子類構造方法super和this繼承方式 繼承概念 繼承(inheritance)機制&#xff1a;是面向對象程序設計使代碼可以復用的最重要的手段&…

docker 安裝nacos

1、下載nacos docker pull nacos/nacos-server2、啟動nacos docker run --restart always --env MODEstandalone --name nacos -d -p 8848:8848 -p 9848:9848 -p 9849:9849 nacos/nacos-server3、驗證nacos http://localhost:8848/nacos 默認用戶名和密碼&#xff1a;nacos