博客 / 列表

MSSQL123 - 記一次MySQL binlog日誌導致磁盤空間佔滿的問題

背景 某開發人員反饋,一個MySQL測試環境的數據庫服務器,磁盤空間被佔滿,並且明確告知MySQL數據庫並不大,但是其binlog日誌佔用數百GB的空間,遠遠超出預期的大小,要協助檢查為什麼binlog會佔用如此大的空間。 簡言之就是:數據量較小,binlog的日誌量很大。 binlog相關的配置信息 查看MySQL binlog相關的參數, 1,binlog_expire_logs_

數據庫

MSSQL123 - SQLServer 2019 標準版在虛擬機上無法充分利用CPU的問題診斷

最近發現一台SQLServer服務器CPU使用率中,有4個CPU心很繁忙,6個CPU核心卻很空閒,由於是SQLServer 2019標準版,猜測到可能是跟虛擬機的CPU授權數有關。 這台機器是筆者從Infrastructure部門接到的乾淨的虛擬機,然後自己安裝的數據庫,數據庫本身沒有對CPU有任何限制,當時並沒有注意這個細節,從任務管理器中可以看到虛擬機的CPU是10個邏輯核心(process

數據庫

MSSQL123 - PostgreSQL中記錄SQL日誌/慢日誌參數

PostgreSQL記錄SQL日誌的參數有三個,如下,這三個參數都可以記錄某種日誌,也可以單獨設置,也可以相互設置,因此情況比較多,某些情況下會生成一些奇怪的日誌內容,需要弄清楚每一個參數的具體含義,有助於做出合理的配置 1,log_duration = on|off; 2,log_statement='none|ddl|mod|all'; 3,log_min_duration_sta

postgresql

MSSQL123 - PostgreSQL中利用pgaudit審計擴展記錄SQL審計,以及使用fdw分析審計日誌

1,pg_audit編譯安裝 參考:https://github.com/pgaudit/pgaudit --pgaudit 編譯安裝 git clone https://github.com/pgaudit/pgaudit.git cd pgaudit/ git checkout REL_16_STABLE --這裏checkout出來postgresql16版本,中間的數字是Postg

postgresql

MSSQL123 - PostgreSQL中的copy命令快速導入導出到平面文件CSV和TXT

在PostgreSQL中,利用copy命令快速導入導出數據到平面文件CSV和TXT 1,利用copy to 命令導出表數據到CSV,copy from 命令從CSV文件中導入數據到表,可以自定義,換行符。 create table if not exists test_copy ( c1 int GENERATED ALWAYS AS IDENTITY PRIMARY KEY, c

postgresql

MSSQL123 - Ubuntu 20下PostgreSQL 17.6 源碼編譯安裝,排除doc包

前些年寫了一個PostgreSQL自動化安裝的shell腳本,這幾年一直在用,中間有微調過但都可以正常一鍵安裝,今天嘗試安裝一個最新版的PostgreSQL 17.6(Aug. 11, 2025發佈的),發現編譯過程中死活過不去,遇到如下幾個錯誤 1,ERROR: `xmllint' is missing on your system.,安裝libxml2-utils依賴包後沒有出現了 sudo

postgresql

MSSQL123 - PostgreSQL中的work_mem參數

在SQLServer中有一個內存授予(Memory Grant)的概念,意思是一個執行一個查詢語句所需的內存大小,如果獲取不到這個內存,則查詢申請等待內存,因此就會受到影響。PostgreSQL有一個類似於此的work_mem參數,該參數也是執行跟查詢所使用的內存有關的,那麼work_mem的具體含義是什麼呢? work_mem參數 1,work_mem的定義   查詢操作(例如排序或哈

postgresql

MSSQL123 - PostgreSQL 17 pg_basebackup增量備份新特性測試,以及基於完整備份+增量備份+WAL日誌備份的恢復

PostgreSQL 17版本的pg_baseback開始支持增量備份,終於可以像大多數的數據庫物理備份工具一樣支持增量備份了,下班後抽空嘗試了一下,跟其他數據庫的物理備份類似,還是比較簡單的。 以下基於一個月前發佈的PostgreSQL 17.6為測試環境,利用pg_basebackup,基於full+incremental+wal日誌的備份,做一個基於時間點的恢復(Point-In-Ti

postgresql

MSSQL123 - PostgreSQL repmgr 高可用之故障轉移

PostgreSQL高可用之repmgr自動切換 之前寫過一個repmgr的高可用搭建的,https://www.cnblogs.com/wy123/p/18531710,repmgr的搭建過程還是比較簡單的,具體過程不再贅述。這裏為了簡化,做了1主2從的結構,之前一直沒空測試repmgr的手動和自動故障轉移,抽空找了個環境,做了個repmgr的故障轉移測試。 環境: ubuntu05:1

postgresql

MSSQL123 - PostgreSQL 18 源碼編譯安裝體驗

PostgreSQL 18 於前幾個小時剛剛發佈,來個一鍵安裝(Ubuntu 20.0) 一鍵安裝腳本,全自動編譯安裝,兩個實例的安裝pg1800和pg1900也只是1分鐘的事,自定義各級目錄,乾淨清晰。 前兩天羣裏竟然還有人推崇apt/yum安裝,説是統一規範,apt/yum安裝出來的目錄結構亂七八的,反規範吧,難道是那個人不會編譯安裝? 源碼包地址:https://ftp.po

postgresql

MSSQL123 - PostgreSQL patroni 高可用 1:ectd 安裝和配置

PostgreSQL patroni高可用 PostgreSQL patroni 高可用 1:ectd 安裝和配置 PostgreSQL patroni 高可用 2:patroni安裝和配置 PostgreSQL patroni 高可用 3:patroni 運維 PostgreSQL patroni 高可用 4:HAProxy和Keepalived實現讀寫分離 P

postgresql

MSSQL123 - PostgreSQL patroni 高可用 2:patroni安裝和配置

PostgreSQL patroni高可用 PostgreSQL patroni 高可用 1:ectd 安裝和配置 PostgreSQL patroni 高可用 2:patroni安裝和配置 PostgreSQL patroni 高可用 3:patroni 運維 PostgreSQL patroni 高可用 4:HAProxy和Keepalived實現讀寫分離

postgresql

MSSQL123 - PostgreSQL patroni 高可用 3:patroni 運維

PostgreSQL patroni高可用 PostgreSQL patroni 高可用 1:ectd 安裝和配置 PostgreSQL patroni 高可用 2:patroni安裝和配置 PostgreSQL patroni 高可用 3:patroni 運維 PostgreSQL patroni 高可用 4:HAProxy和Keepalived實現讀寫分離

postgresql

MSSQL123 - PostgreSQL patroni 高可用 4:HAProxy和Keepalived實現讀寫分離

PostgreSQL patroni高可用 PostgreSQL patroni 高可用 1:ectd 安裝和配置 PostgreSQL patroni 高可用 2:patroni安裝和配置 PostgreSQL patroni 高可用 3:patroni 運維 PostgreSQL patroni 高可用 4:HAProxy和Keepalive

postgresql

MSSQL123 - PostgreSQL pg_auto_failover 高可用 1:pg_auto_failover集羣搭建

PostgreSQL pg_auto_failover 高可用 1:pg_auto_failover集羣搭建 PostgreSQL pg_auto_failover 高可用 2:pg_auto_failover集羣運維 0,pg_auto_failover架構 開始之前,先看一下pg_auto_failover的一個最基礎架構原理如下,需要弄清楚幾個節點的作用 1,monitor節點的

postgresql

MSSQL123 - PostgreSQL pg_auto_failover 高可用 2:pg_auto_failover集羣運維

PostgreSQL pg_auto_failover 高可用 1:pg_auto_failover集羣搭建 PostgreSQL pg_auto_failover 高可用 2:pg_auto_failover集羣運維 鑑於官方https://pg-auto-failover.readthedocs.io/en/main/ref/pg_autoctl.html有很多命令,並且有些命

postgresql

MSSQL123 - SQLServer中,大表的數據刪除操作,單次刪除和批量多次刪除產生的事務日誌的差別

1,應用場景 SQLServer中一個大表(測試環境千萬級,實際情況下會更多,達到10億級),刪除其中大部分數據。然後測試分批多次刪除和一次性全部刪除產生的transaction log的日誌大小的問題。 另:受限於相關的表做了複製分發,因此無法通過備份部分數據後truncate table的方式來實現,也無法通過新建一個表,通過rename的方式來交換實現,這兩種方式不

sqlserver

MSSQL123 - SQLServer中,實測CPU主頻高低對計算密集型SQL執行速度的影響

從一個簡單的SQL來看,CPU主頻對計算密集型SQL執行速度影響的差別,測試語句有三個特點:簡單SQL,計算密集型SQL,循環多次執行來放大執行時間 1,構造一個簡單的插入語句SQL 2,通過隨機排序,來模擬計算密集型操作 3,通過循環來放大執行時間 完全一樣的SQL: 10年前的4代i7,老掉牙的PC級CPU了,但是主頻高,3.6GHz主頻的CPU,2秒鐘跑完 5年前的Xeon E5620,服

sqlserver

MSSQL123 - SQLServer Always On環境的數據庫備份

SQL Server的Always on環境的備份規則設置比較混亂,加上一個copy_only備份,更是亂上加亂,copy_only備份實在極少的特殊情況下使用的備份,企業級日常備份,不可能用copy_only備份的,因此這裏不討論copy_only備份。 Backup preference有多重設置,企業級生產環境保持默認就可以,這裏以默認設置為例 1、不管怎麼設置,正常的數據庫備份(fu

sqlserver

MSSQL123 - SQLServer事務日誌的VLF虛擬文件個數過多的處理

Review某個SQLServer的生產環境的errolog的時候,無意中發現這麼一條日誌,意思是過多的VLF文件,會影響數據庫的啓動速度和日誌備份效率。 Database *** has more than 10000 virtual log files which is excessive. Too many virtual log files can cause long startup

sqlserver

MSSQL123 - 暫停和恢復(Suspend and Resume)Always On數據庫副本之間的數據同步(譯)

原文地址:https://www.sqlshack.com/suspend-and-resume-data-movement-in-sql-server-always-on-availability-groups/ 在關於SQLServer2016AlwaysOn的第26篇文章中,我們將會討論AlwaysOn數據庫副本之間的掛起和恢復流程 要求 我們可以配置SQL

sqlserver

MSSQL123 - 在 SQL Server Always On Availability Groups中應用SQL Server 補丁程序或累積更新(譯)

原文地址:https://www.sqlshack.com/apply-sql-server-patches-or-cumulative-updates-in-sql-server-always-on-availability-groups/ 在本系列關於 SQL Server 始終在線可用性組的第 32 篇文章中,我們將討論為 AG 複製實例應用服務包或累積更新包的過程。 SQL Serv

sqlserver

MSSQL123 - sqlserver系統表查出job的下一次運行時間異常現象

前兩天某SQLServer服務器斷斷續續出現性能問題,綜合排查之後懷疑是job定時任務引起的,於是查了一下job的schedule和最近一次執行情況。 大部分job的schedule都沒有問題,由於當前實例是啓用了複製分發,無意中喵到'Distribution clean up: distribution這個job的下一次執行時間明顯不正常,下一次運行時間跟上一次運行時間一樣??? 啓

sqlserver

MSSQL123 - MySQL,SqlServer,PostgreSQL中,如何實現鎖定一張表

最近有個需要求,需要在SqlServer中鎖定一張表後,然後搞一些事情,完成後解鎖。 如何鎖定一張表,在MySQL和PostgreSQL中都比較好處理。有專用的語法來實現,在SqlServer中並沒有對於“直接鎖定一張表的語法”,如何來處理? 變通一下也比較簡單,甚至比MySQL和postgresql都更簡單。 1,如何在MySQL中鎖定一張表 MySQL語法:lock tables t2

sqlserver