Free
永久免費
US$0
一台伺服器,一切盡收眼底。
- 一個已儲存的連線。示範連線,以及從主要伺服器開啟的備援伺服器,不計入其中。
- 健康狀態、活動、鎖定、Purge 與膨脹、複寫、儲存空間與慢查詢
- 釘選指紋的 TLS、SSH 通道與 Face ID
- 資料瀏覽器:伺服器篩選、外來鍵、CSV 匯出與 JSON 拷貝
- 附分類器的唯讀 SQL
RowDeck: MySQL® Monitor iPhone 版
半夜收到警報,筆電卻在家裡?RowDeck 一開啟就是「健康狀態」畫面,會找出持有鎖定的交易,並算出卡在它後面的工作階段數量。在 iPhone 上終止該終止的執行緒,回到電腦前再徹底修正。
內建示範會重現一次常見的 MySQL 事件:一個被遺忘的交易持有 shop.orders 的資料列鎖定,一次遷移在它後面等待,八個工作階段排起了隊。選擇一個步驟,查看對應的畫面。
不連伺服器也能試用:在「連線」畫面點一下查看示範資料。不需要帳號,Pro 操作會在範例資料上執行。
InnoDB 鎖定等待依持有鎖定的執行緒分組,並顯示每個等待者執行的 SQL 與已等待的時間。
ALTER TABLE 佇列:誰在等待資料表的 metadata lock、哪個交易一直佔著它,還有一個按鈕可以改為取消等待中的 ALTER。
InnoDB 記錄的最近一次 deadlock:誰在等待什麼,以及哪個交易被回復。
在 Amazon RDS 或 Aurora 上沒有 KILL 權限?RowDeck 會呼叫 mysql.rds_kill,並在確認面板中寫明走的是哪條途徑。
AUTO_INCREMENT。「Purge 與膨脹」畫面顯示每個自動遞增範圍已經用掉多少、purge 落後了多少,以及哪些資料表與索引白白佔著空間。
order_items.id 用到 INT 範圍的 93% 時,RowDeck 會警告範圍用盡後每個 INSERT 都會失敗,並拷貝用來加寬該欄位的 ALTER。 ANALYZE TABLE;輸入資料表名稱後可執行 OPTIMIZE TABLE。DROP INDEX 與 ALTER 陳述式會拷貝到剪貼簿,何時執行由自己決定。 PRO
最前面是「健康狀態」畫面,每張卡片背後都有一個原生畫面,不必在手機鍵盤上輸入 mysql 命令列。其餘情況交給 SQL 主控台,每個陳述式執行前都會先經過檢查。
一個整體判斷加上十張附有門檻值的卡片:連線數對照 max_connections、被阻擋的執行緒、最久的查詢、每秒查詢數、Buffer pool 命中率、purge 延遲、AUTO_INCREMENT 餘量、Deadlocks、複寫與磁碟。畫面開啟期間每 10 秒重新整理一次,和 iOS 一樣提供深色與淺色外觀。
processlist 中的每個執行緒,等待中的排在最前面。可依執行中、交易中、超過 10 秒或等待中篩選,也可以依用戶端分組。
在備援伺服器上:IO 與 SQL 執行緒、延遲,以及讓某個通道停止的錯誤。在主要伺服器上:已連線的備援伺服器,以及 binlog 佔用的空間。
來自 performance_schema 的陳述式摘要,可依總時間、平均時間、呼叫次數或已檢查資料列數排序。
最大的架構、資料表與索引,分為資料、索引與可用空間。
瀏覽資料表、在伺服器上篩選、沿著外來鍵跳轉,將一頁資料匯出為 CSV 或拷貝為 JSON。資料列編輯屬於 Pro。
輸入時,分類器就會為每個陳述式加上標籤:讀取、寫入、DDL 或破壞性。Free 執行讀取,Pro 執行其餘陳述式。
說明事件或阻擋鏈,並草擬修正方式。它讀取遮蔽後的快照,送出前先顯示要傳送的內容,本身不執行任何操作。在示範中免費。
RowDeck 依序逐一檢查。任何一步沒通過,操作就會停止,不會有任何內容送達 MySQL。
Free 從不寫入伺服器。
將連線標記為 Read-only,該連線上的寫入就會停止,Pro 也不例外,直到為這次工作階段解鎖寫入為止。
會檢查每一個陳述式,Free 與 Pro 皆然。
預覽中顯示目標、架構、連線與 PROD 徽章。破壞性操作,以及 Production 連線上的終止操作,須先輸入目標才會執行。
SELECT * FROM orders WHERE id = 4820118; 讀取 UPDATE orders SET status = 'shipped' WHERE id = 4820118; 寫入 CREATE INDEX idx_orders_total ON orders (total); DDL TRUNCATE TABLE shop.sessions; 破壞性 SSH 支援密碼、一次性驗證碼或金鑰:OpenSSH、PEM、PKCS#8 或 PuTTY 格式的 Ed25519、ECDSA 或 RSA 金鑰,或是 Secure Enclave 金鑰。堡壘主機後方最多還可再加兩台跳板主機。
首次連線時,RowDeck 會顯示伺服器憑證的 SHA-256 指紋;之後憑證一旦變更,連線就會停止。
密碼、金鑰與指紋儲存在這支 iPhone 的 iOS Keychain 中。以 Face ID 開啟 App。
沒有此權限時,MySQL 只會顯示目前帳號自己的執行緒。RowDeck 會直接說明,並提供解決方法:
GRANT PROCESS ON *.* TO 'oncall'@'%';
RowDeck 1.0,使用內建示範資料。
健康狀態 打開筆電之前就看清事件。
鎖定 資料列鎖定與 metadata lock 在同一個樹狀圖中。
終止連線 確認之前,先看會解除哪些阻擋。
活動 等待中的執行緒排在最前面。
索引 未使用與重複索引,DROP INDEX 已代為拷貝。
複寫 通道狀態與待套用的交易。
慢查詢 依總時間排序。
儲存空間 最大的資料表與索引。
資料 在本頁篩選或在伺服器上篩選。
SQL 主控台 每個陳述式都經過分類。
DDL 執行之前先看分類器的判斷。
助理 模型自己選,每個操作自己決定。
SSH 通道 使用自己的金鑰與跳板主機。
把 RowDeck 連上正式環境伺服器,所有監控畫面都免費使用。到了需要出手的那個夜晚,再一次支付 US$14.99。
永久免費
US$0
一台伺服器,一切盡收眼底。
一次性購買
US$14.99
在任何伺服器上出手。
ANALYZE TABLE 與 OPTIMIZE TABLE 不需訂閱,也不需帳號。購買之前,可以先在示範的範例資料上試用每一項 Pro 操作。「回復購買項目」位於付費畫面與「設定」中。在美國以外的地區,App Store 會以當地貨幣顯示價格。
只要 iPhone 連得到,RowDeck 就能連線到 MySQL 8.0 及更新版本與 MariaDB 10.5 及更新版本,不論自行架設或代管,包括 Amazon RDS 與 Aurora MySQL。Percona Server for MySQL 也可以使用。
在 Amazon RDS 與 Aurora 上,管理員無法 KILL 其他使用者的執行緒,RowDeck 會改為呼叫供應商提供的預存程序 mysql.rds_kill。在代理伺服器後方時,RowDeck 不會送出 KILL,因為執行緒 ID 可能屬於另一台伺服器,而是提供須在伺服器本身執行的陳述式。
MySQL 5.7 與 10.5 之前的 MariaDB 不在支援範圍內,TiDB 的監控資料表也不一樣。連線時 App 會提示。
可以。在連線設定中開啟 SSH 通道,以密碼、金鑰或在這支 iPhone 上產生的 Secure Enclave 金鑰登入堡壘主機。金鑰可以是 OpenSSH、PEM、PKCS#8 或 PuTTY 格式的 Ed25519、ECDSA 或 RSA 金鑰,有無金鑰密碼皆可。伺服器要求一次性驗證碼時,也可以使用。
如果堡壘主機位於另一台主機後方,最多可新增兩台跳板主機。RowDeck 會在首次連線時釘選每台主機的主機金鑰,其中任何一個變更,都會拒絕繼續。
RowDeck 直接連線到伺服器,或經由堡壘主機連線。中間沒有 RowDeck 伺服器,也不需要帳號。密碼與金鑰留在 iOS Keychain 中。
在首次啟動的畫面上點一下「完成」後,當機報告會傳送到 Sentry,使用統計會傳送到我們自己的分析伺服器;該畫面上的兩個開關預設皆為開啟。可以當場關閉其中任一項,也可以之後在「設定 › 隱私權」中關閉。兩者都不包含 SQL、架構名稱、資料表名稱、欄位名稱、主機名稱、值或登入資訊。詳情請見隱私權政策。
不需要。監控畫面只需要唯讀權限,連線表單中分別列出了 MySQL 與 MariaDB 所需的授權。最重要的是 PROCESS:沒有它,MySQL 只會顯示目前帳號自己的執行緒,RowDeck 會在每個畫面上說明這一點,而不是顯示空白清單。
Pro 操作要終止其他使用者的執行緒,需要 CONNECTION_ADMIN;在 Amazon RDS 與 Aurora 上,RowDeck 會改用供應商的終止預存程序。伺服器隱藏的指標會顯示原因,絕不顯示為零。
KILL QUERY 會停止執行中的陳述式,保留連線及其交易。KILL CONNECTION 會關閉連線,並回復其開啟的交易。
在開啟的交易中處於 Sleep 狀態的執行緒沒有執行中的陳述式,所以 KILL QUERY 對它沒有作用,鎖定也仍然保留。RowDeck 會讀取根源正在做什麼,並提供能釋放佇列的那種終止方式。
Free 從不寫入:主控台的讀取會在唯讀交易內執行。在 Pro 中,每次寫入都要依序通過四道檢查:Pro、連線的 Read-only 開關、分類器,以及使用者的確認。破壞性陳述式須先輸入目標才會執行,標記為 Production 的連線會顯示 PROD 徽章,確認也更嚴格。
RowDeck 會代為拷貝 DROP INDEX 與 ALTER … BIGINT,是否執行由自己決定。它不會 purge binlog,也不會在備援伺服器上略過交易;它從不向伺服器要求 LOAD DATA LOCAL,也從不在一次呼叫中要求執行多個陳述式。
當然可以。但凌晨 3 點在手機鍵盤上,RowDeck 省去了跨 performance_schema 與 information_schema 的 JOIN 查詢:阻擋樹狀圖、等待中的 ALTER 以及它背後的交易,從「健康狀態」畫面點一下就能看到。
所詢問畫面的遮蔽後快照。主機、連接埠、IP 位址、連線名稱與密碼絕不會送出,陳述式內的值也不會。使用雲端模型時,架構、資料表與欄位名稱會以 table_1 這類預留位置送出,RowDeck 再於 iPhone 上換回真實名稱。
請求會從 iPhone 送往所選的供應商,使用自己的金鑰(Anthropic、OpenAI、OpenRouter、Z.ai 或任何相容 OpenAI 的端點),或送往自己的 Ollama。送出之前可以看到模型將收到的內容。助理屬於 Pro,在示範中免費,不會自行執行 SQL。
不需要。Pro 是一次性購買,價格 US$14.99,與 Apple 帳戶綁定。監控始終免費,沒有帳號,也沒有試用期倒數。
不會。RowDeck 不在背景運作,關閉後也不會監看伺服器。現有的警報系統照常使用:RowDeck 是收到警報後打開的那個畫面。
RowDeck 專為直向 iPhone 設計,沒有專屬的 iPad 版面配置。
Amazon Web Services、AWS、Amazon RDS 與 Amazon Aurora 是 Amazon.com, Inc. 或其關係企業的商標。RowDeck 與 Amazon 並無關聯,亦未獲其認可。
半夜把人叫醒的那些問題,每個一頁:手動執行的 SQL,以及 RowDeck 中的顯示。
指南與部落格為英文。