您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關timeout參數怎么在postgresql中使用,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
select version(); version --------------------------------------------------------------------------------------------------------- PostgreSQL 10.3 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-18), 64-bit (1 row) select * from pg_settings ps where 1=1 and ps.name like '%timeout%' ; name | setting | unit | category | short_desc | extra_desc | context | vartype | source | min_val | max_val | enumvals | boot_val | reset_val | sourcefile | sourceline | pending_restart -------------------------------------+---------+------+--------------------------------------------------------------+-------------------------------------------------------------------------------------------+-------------------------------------+-----------+---------+---------+---------+------------+----------+----------+-----------+------------+------------+----------------- archive_timeout | 0 | s | Write-Ahead Log / Archiving | Forces a switch to the next WAL file if a new file has not been started within N seconds. | | sighup | integer | default | 0 | 1073741823 | | 0 | 0 | | | f authentication_timeout | 60 | s | Connections and Authentication / Security and Authentication | Sets the maximum allowed time to complete client authentication. | | sighup | integer | default | 1 | 600 | | 60 | 60 | | | f checkpoint_timeout | 300 | s | Write-Ahead Log / Checkpoints | Sets the maximum time between automatic WAL checkpoints. | | sighup | integer | default | 30 | 86400 | | 300 | 300 | | | f deadlock_timeout | 1000 | ms | Lock Management | Sets the time to wait on a lock before checking for deadlock. | | superuser | integer | default | 1 | 2147483647 | | 1000 | 1000 | | | f idle_in_transaction_session_timeout | 0 | ms | Client Connection Defaults / Statement Behavior | Sets the maximum allowed duration of any idling transaction. | A value of 0 turns off the timeout. | user | integer | default | 0 | 2147483647 | | 0 | 0 | | | f lock_timeout | 0 | ms | Client Connection Defaults / Statement Behavior | Sets the maximum allowed duration of any wait for a lock. | A value of 0 turns off the timeout. | user | integer | default | 0 | 2147483647 | | 0 | 0 | | | f statement_timeout | 0 | ms | Client Connection Defaults / Statement Behavior | Sets the maximum allowed duration of any statement. | A value of 0 turns off the timeout. | user | integer | default | 0 | 2147483647 | | 0 | 0 | | | f wal_receiver_timeout | 60000 | ms | Replication / Standby Servers | Sets the maximum wait time to receive data from the primary. | | sighup | integer | default | 0 | 2147483647 | | 60000 | 60000 | | | f wal_sender_timeout | 60000 | ms | Replication / Sending Servers | Sets the maximum time to wait for WAL replication. | | sighup | integer | default | 0 | 2147483647 | | 60000 | 60000 | | | f (9 rows)
archive_timeout
控制服務器周期性地切換到一個新的 WAL 段文件,通俗的講,就是定時歸檔。
authentication_timeout
完成服務器認證的最長時間,如果在這個時間內沒有完成認證,服務器將關閉連接。
checkpoint_timeout
自動 WAL 檢查點之間的最長時間,增大這個參數會使數據庫崩潰后恢復的時間加長。
deadlock_timeout
進行死鎖檢測之前在一個鎖上等待的總時間
idle_in_transaction_session_timeout
空閑事務超時。終止任何已經閑置超過這個參數所指定的時間(以毫秒計)的打開事務的會話。 這使得該會話所持有的任何鎖被釋放,并且其所持有的連接槽可以被重用, 它也允許只對這個事務可見的元組被清理。
lock_timeout
鎖等待超時。語句在試圖獲取表、索引、行或其他數據庫對象上的鎖時等到超過指定的毫秒數,該語句將被中止。不推薦在postgresql.conf中設置。
statement_timeout
控制語句執行時長,單位是ms。超過設定值,該語句將被中止。
不推薦在postgresql.conf中設置,如非要設置,應該設置一個較大值。
wal_receiver_timeout
中止處于非活動狀態超過指定毫秒數的復制鏈接。這對于正在接收的后備服務器檢測主服務器崩潰或網絡斷開有用。設置為0會禁用超時機制。這個參數只能在postgresql.conf文件中或在服務器命令行上設置。默認值是 60 秒。
wal_sender_timeout
中斷那些停止活動超過指定毫秒數的復制連接。這對發送服務器檢測一個后備機崩潰或網絡中斷有用。設置為0將禁用該超時機制。這個參數只能在postgresql.conf文件中或在服務器命令行上設置。默認值是 60 秒。
補充:Postgresql數據庫修改deadlock_timeout參數
某產品線提出要將Postgresql測試庫中 deadlock_timeout 參數 修改為1s
該庫平時不在自己手中維護,故實際操作步驟如下
(1)確定數據庫安裝所屬用戶
查看下都有哪些賬戶,可能是postgresql使用的
bash-4.1$ cd /home bash-4.1$ ls aquota.user enterprisedb lost+found prouser puppet
(2)確定數據庫安裝路徑:
bash-4.1$ ps -ef | grep post 查看服務進程,找到應用安裝目錄 /opt/app/PostgresPlus/9.2AS/
500 1891 1 0 2018 ? 01:01:47 /opt/app/PostgresPlus/9.2AS/bin/edb-postgres -D /DATA/data_utl
(3)切換到 enterprisedb 用戶,并登陸數據庫
bash-4.1$ su - enterprisedb bash-4.1$ psql -U enterprisedb psql (9.2.14.31) Type “help” for help.
查看當前該參數配置 3s
edb=# show deadlock_timeout;
3s (1 row)
(4)查看該參數
pending_restart —boolean— true if the value has been changed in the configuration file but needs a restart; or false otherwise.
即該參數為實時生效型參數
(5)嘗試使用
test=# alter system set deadlock_timeout=‘1s';
報錯如下:
ERROR: syntax error at or near “system” LINE 1: alter system set deadlock_timeout=‘1s';
查詢到解釋:
alter system 命令 只對 9.4以后的版本 的版本有效,
(6)嘗試執行
set deadlock_timeout=‘1s' edb=# show deadlock_timeout;
顯示為1s
但是其余用戶登錄路,發現該參數依然為 3s
----即該方法為session級別設置,類似于oracle的alter session set
(7) 嘗試修改 pg配置文件,進入/DATA/data_utl 路徑修改
bash-4.1$ pwd /DATA/data_utl bash-4.1$ ls base pgbin pg_ident.conf pg_notify pg_stat_tmp pg_twophase postgresql.conf postmaster.opts dbms_pipe pg_clog pg_log pg_serial pg_subtrans PG_VERSION postgresql.conf.20191119 postmaster.pid global pg_hba.conf pg_multixact pg_snapshots pg_tblspc pg_xlog postgresql.conf.bak utlp.sql vi postgresql.conf
將其中 deadlock_timeout 配置修改為1s
(8)重新加載數據庫
bash-4.1$ ./pg_ctl reload server signaled
(9)查看該參數已生效
edb=# show deadlock_timeout; deadlock_timeout 1s (1 row)
退出
edb=# \q
第9步也可通過重啟數據庫生效
停止指令:
./pg_ctl stop -m fast
啟動指令:
./pg_ctl -D /DATA/data_utl start
上述就是小編為大家分享的timeout參數怎么在postgresql中使用了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。