發表文章

目前顯示的是 2017的文章

MySQL欄位加密工具:MyDiamo

圖片
這是一套主要針對MySQL Fork(MySQL, Percona Server, MariaDB)的欄位進行加密管理的第三方工具 它可以對欄位設定不同的加密方式,且加密、解密的權限可獨立分開設定 另外,它還支援連線管控及稽核的功能 詳細的功能就上 官網 查詢 MyDiamo運作原理 它是屬於MySQL管理層和Storage Engine層之間的一個Plugin,透過自行設定的原則來對InnoDB或MyISAM表的欄位進行加密。(如圖一) 軟體安裝好後,它有自已的管理介面,要在這個介面中先設定好【原則】,接著在此原則之下設定有哪些【欄位】要使用這個原則,再來就是設定有哪些【使用者】被授予這些欄位的權限為何,最後再執行plugin所屬的migration funcation對資料表欄位進行加密。 圖一 在安裝前要先註冊帳號,它才會把軟體下載的連結寄給你… MyDiamo安裝 在下載軟體的時候要注意,它不是全部的版本都支援的,它只支援部份小版本,例如:MySQL 5.7.12不支援…等,所以要先確認目前資料庫的版本再來下載,更多的版本內容請看官網啦: Support Platform 如果你的MySQL是用RPM方式安裝的話,遇到的問題相對會少一些 我的測試環境是以tar安裝,很多路徑是要另外做設定的(我懶沒設啦…)所以會多一些步驟 ◆安裝 [root@mysql-course D`Amo_MyDiamo_v3.0.9.4]# ./install-linux-mydiamo-3.0.9.4.run -p /opt/mysql -h 127.0.0.1 -P 3307 ===================================================== MyDiamo Install Script ===================================================== Input MySQL/MariaDB root Password : ===================================================== NDB Cluster : No DBMS : MySQL VERSION : 5.7

【工作筆記】SQL Timeout追蹤

圖片
幾個禮拜前去客戶那處理『SQL效能問題』,到場後,問題延伸為『SQL不定期發生Timeout的問題』 【客戶問題描述】 AP會建立100多個連線,且同時會將程式用幾十個連線來並行處理事務,會在不固定的時間會發生SQL Timeout的問題,由程式端無法定位是哪句SQL以及哪支程式導致的問題,在DB端也不會看到任何的錯誤訊息及警告訊息出現在Error Log中  【架構背景】 OS: CentOS 6.8, CPU 20 Cores, RAM 64G, HDD RAID 10 DB: MariaDB 10.0.1 Galera Cluster 【問題追踨】 在執行壓測過程中監控作業系統的狀態,包括CPU、RAM、IO的負載狀況 =>監控的結果CPU的load average大約在1,RAM有使用到少量的SWAP,cached的部份還有滿多可以使用,IO的負載不算太高,整體看來應該不是硬體方面造成的問題 在執行壓測過程中監控資料庫的錯誤日誌、慢查詢記錄、show processlist的狀況 =>錯誤日誌並未記錄到任何的錯誤及警告訊息,慢查詢只有其他資料庫中全表掃描的記錄,show processlist看到多數的連線均為sleep狀態,且SQL執行的時間都很短 在執行壓測過程中監控InnoDB的狀態 ------------------------ LATEST DETECTED DEADLOCK ------------------------ 2017-01-17 16:02:22 7fd7a00e6700 *** (1) TRANSACTION: TRANSACTION 755310052, ACTIVE 2 sec fetching rows mysql tables in use 1, locked 1 LOCK WAIT 6 lock struct(s), heap size 1184, 154 row lock(s) MySQL thread id 2916595, OS thread handle 0x7fdd2d9fe700, query id 213093063 192.168.3.2 tsap Sending data SELECT id, cid, time, retry FROM ss WHERE r