檢查 MogDB 狀態(tài)
檢查 MogDB 狀態(tài)
通過 MogDB 提供的工具查詢數(shù)據(jù)庫和實例狀態(tài),確認數(shù)據(jù)庫和實例都處于正常的運行狀態(tài),可以對外提供數(shù)據(jù)服務。
檢查實例狀態(tài)
gs_check -U omm -i CheckClusterState
檢查參數(shù)
mogdb=# SHOW parameter_name;上述命令中,parameter_name需替換成具體的參數(shù)名稱。
修改參數(shù)
gs_guc reload ?-D /mogdb/data/dbnode -c "paraname=value"
檢查鎖信息
鎖機制是數(shù)據(jù)庫保證數(shù)據(jù)一致性的重要手段,檢查相關(guān)信息可以檢查數(shù)據(jù)庫的事務和運行狀況。
查詢數(shù)據(jù)庫中的鎖信息
mogdb=# SELECT * FROM pg_locks;
查詢等待鎖的線程狀態(tài)信息
mogdb=# SELECT * FROM pg_thread_wait_status WHERE wait_status = 'acquire lock';
結(jié)束系統(tǒng)進程
查找正在運行的系統(tǒng)進程,然后使用 kill 命令結(jié)束此進程。
ps uxkill -9 pid
統(tǒng)計事件數(shù)據(jù)
SQL 語句長時間運行會占用大量系統(tǒng)資源,用戶可以通過查看事件發(fā)生的時間,占用內(nèi)存大小來了解現(xiàn)在數(shù)據(jù)庫運行狀態(tài)。
查詢事件的時間
查詢事件的線程啟動時間、事務啟動時間、SQL 啟動時間以及狀態(tài)變更時間。
mogdb=# SELECT backend_start,xact_start,query_start,state_change FROM pg_stat_activity;
查詢當前服務器的會話計數(shù)信息
mogdb=# SELECT count(*) FROM pg_stat_activity;
系統(tǒng)級統(tǒng)計信息
查詢當前使用內(nèi)存最多的會話信息。
mogdb=# SELECT * FROM pv_session_memory_detail() ORDER BY usedsize desc limit 10;
對象檢查
表、索引、分區(qū)、約束等是數(shù)據(jù)庫的核心存儲對象,其核心信息和對象維護是 DBA 重要的日常工作。
查看表的詳細信息
mogdb=# \d+ table_name
查詢表統(tǒng)計信息
mogdb=# SELECT * FROM pg_statistic;
查看索引的詳細信息
mogdb=# \d+ index_name
查詢分區(qū)表信息
mogdb=# SELECT * FROM pg_partition;
收集統(tǒng)計信息
使用 ANALYZE 語句收集數(shù)據(jù)庫相關(guān)的統(tǒng)計信息。
使用 VACUUM 語句可以回收空間并更新統(tǒng)計信息。
查詢約束信息
mogdb=# SELECT * FROM pg_constraint;
SQL 報告檢查
使用 EXPLAIN 語句查看執(zhí)行計劃。
備份
數(shù)據(jù)備份重于一切,日常應檢查備份執(zhí)行情況,并檢查備份有效性,確保備份能夠保障數(shù)據(jù)安全,備份安全加密也應兼顧。
指定用戶導出數(shù)據(jù)庫
gs_dump dbname -p port -f out.sql -U user_name -W password
導出 schema
gs_dump dbname -p port -n schema_name -f out.sql
導出 table:
gs_dump dbname -p port -t table_name -f out.sql
基本信息檢查
基本信息包括版本、組件、補丁集等信息,定期檢查數(shù)據(jù)庫信息并登記在案是數(shù)據(jù)庫生命周期管理的重要內(nèi)容之一。
版本信息
mogdb=# SELECT version();
容量檢查
mogdb=# SELECT pg_table_size('table_name');mogdb=# SELECT pg_database_size('database_name');