當前位置:首頁 » 數據倉庫 » 資料庫健康檢查
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

資料庫健康檢查

發布時間: 2023-08-01 00:56:23

⑴ 信息資料庫用戶管理規范規定了哪些原則

(一)完善管理制度,強化監管力度。資料庫系統的安全與企業自身內部的安全機制、內外網路環境、從業人員素質等密切相關。因此,企業應該完善網路系統安全規章制度,防範因制度缺陷帶來的風險;企業應該規范操作流程和故障處理流程,減少人為失誤與故障,提高故障處理速度,縮短故障處理時間;企業應該通過建立科學合理的責任追究機制,防止出現由於工作態度、工作作風等各種人為因素導致的資料庫安全事故。
(二)採取措施,確保資料庫數據的安全。保證資料庫數據的安全是資料庫日常管理與維護工作的首要任務,企業需要採取的安全措施主要有:
(1)網路及操作系統安全。網路系統是資料庫應用的外部環境和基礎,網路系統安全是資料庫安全的第一道屏障。從技術角度講,網路系統層次的安全防範技術有很多種,大致可以分為防火牆、數字簽名與認證、入侵檢測等。操作系統是資料庫系統的運行平台,能夠為資料庫系統提供一定程度的安全保護。
(2)操作系統的安全控制方法主要是採用隔離控制、訪問控制、信息加密和審計跟蹤。主要安全技術有操作系統安全策略、安全管理策略等。

(3)加強用戶身份驗證。用戶身份驗證是資料庫系統的重要防線。利用窗體身份驗證資料庫程序的漏洞,進而獲取存儲在資料庫中的用戶身份驗證密碼,這是目前對網路資料庫攻擊最常見的方式。對此,企業信息部門通常使用帶有salt值的單向密碼哈希值,以避免用戶密碼在資料庫中以明文形式存儲,減輕字典攻擊帶來的威脅。
(4)對重要數據加密。數據加密交換又稱密碼學,是計算機系統對信息進行保護的一種最可靠的辦法。它利用密碼技術對信息進行交換,實現信息隱蔽,從而有效保護信息的安全不受侵犯。資料庫加密要求加解密的粒度是每個記錄的欄位數據。採用庫外口加密的方式,對密鑰的管理較為簡單,只需借用文件加密的密鑰管理方法,將加密後的數據塊納入資料庫,在演算法或資料庫系統中做些必要的改動就行。這樣有利於公共數據字典的使用和維護系統的完整性。
(5)做好資料庫備份與恢復。數據備份是備份資料庫某個時刻的數據狀態,當系統出現意外時用來恢復系統。依靠網路辦公的企業,其信息系統很可能隨時被破壞而丟失數據。因此,資料庫管理系統必須具備把資料庫從錯誤狀態恢復到某一已知的正確狀態的功能,這就是資料庫的恢復技術。
(三)開展資料庫健康檢查。為及時發現資料庫系統存在的問題,在日常管理與維護中,數據管理員要對資料庫開展健康檢查。檢查內容主要包括以下六個方面
(1)系統環境:操作系統版本、文件系統容量、內存交換區使用率、系統性能。
(2)資料庫環境:資料庫和補丁版本、是否有僵屍資料庫進程、資料庫節點數、是否有其他資料庫產品及版本。
(3)日誌記錄:db2diag.log報錯、db2inst1.nfy報錯、是否有需要處理的DUMP文件。
(4)資料庫健康狀況:表空間利用率和狀態、表空間容器利用率和狀態、排序溢出、是否需要收集統計信息、是否需要數據重組、活動日誌和日誌所在文件系統利用率、死鎖發生率、鎖升級發生率、鎖等待的百分比、編目Cache命中率、包Cache命中率、監視堆利用率、資料庫堆利用率、資料庫緩沖池命中率。
(5)資料庫維護內容:最近一次統計信息收集時間、最近一次表數據重組時間、最近一次綁定包時間、最近一次資料庫備份時間。
(6)資料庫基本信息記錄:資料庫內存使用、環境變數。
資料庫的管理日常工作
(1) 每天對資料庫的運行狀態 , 日誌文件 , 備份情況 , 資料庫的空間使用情況 , 系統資源的使用情況進行檢查 , 發現並解決問題。
(2)每周對資料庫對象的空間擴展情況 , 數據的增長情況進行監控 , 對資料庫做健康檢查 , 對資料庫對象的狀態做檢查。

(3) 每月對表和索引等進行 Analyze, 檢查表空間碎片 , 尋找資料庫性能調整的機會 , 進行資料庫性能調整 , 提出下一步空間管理
計劃。對 ORACLE 資料庫狀態進行一次全面檢查。
資料庫管理的意義重大,關繫到企業信息系統的正常運作,仍至整個企業的生死存亡。要做好資料庫的日常管理與維護,不僅要求資料庫管理員熟悉掌握專業技術知識,還要有足夠的細心和高度的責任心。

⑵ 如何驗證GBase8s資料庫ACID特性

在實際的生產運行環境中,很多客戶現場都看到開發人員和系統管理人員遇到很多有關於GBase 8s 資料庫引起的性能問題,進而被多次問起如何進行GBase 8s 資料庫性能調優,

性能優化原則
包括:

性能規劃:深入了解應用與資料庫的交互特徵,確立良好的設計、開發、測試迭代過程,上線前消除模型上的性能瓶頸。
實例調優:建立性能基準,對比調節資料庫、操作系統、存儲、網路等的配置,主動監控、消除瓶頸。
sql 調優:書寫高效 SQL,優化相關資料庫對象,充分藉助優化器,確定最佳執行計劃。
性能優化流程
首先執行下面的初始檢查:
– 獲取直接用戶的使用反饋,確定性能目標和范圍。
– 獲取性能表現好與壞時的操作系統、資料庫、應用統計信息。
– 對資料庫做一次全面健康檢查。
根據收集的信息,以及對應用特性的了解,構建性能概念模型,明確性能瓶頸所在,以及導致性能的根本原因。
– 首先應該排除操作系統、硬體資源造成的瓶頸。
– 然後針對資料庫系統性能進行分析
– 必要時,還需要檢查應用日誌,因為系統性能問題也可能由於應用非 SQL 部分造成瓶頸。
提出一系列針對的優化措施,並根據它們對性能改善的重要程度排序,然後逐一加以實施。不要一次執行所有的優化措施,必須逐條嘗試,逐步對比。
通過獲取直接用戶的反饋驗證調節是否已經產生預期的效果,否則,需要重新提煉性能概念模型,直到對應用特性了解進一步准確。
重復上述,直到性能達到目標或由於客觀約束無法進一步優化。
常見調優技巧
找到 CPU 佔用最高的 SQL

在 sysmaster 庫中執行
select sqx_estcost, sqx_sqlstatement
from syssqexplain
order by sqx_estcost desc
1
2
3
注意:此時看到的僅僅是當前正在執行的 SQL
需要多看幾次

onstat 命令
onstat -g act 得到當前正在執行的 SQL

根據 rstcb 列
onstat -u | grep 57c68220
1
從第三列 sessid 得到 SESSION
onstat -g ses SESSION 即可得到當時正在執行的 SQL
一般多找幾個 threads 後,就基本可以確定問題 SQL

得到 SQL 後,利用 set explain on 分析其查詢路徑,看是否未利用索引,在對大表進行全表掃描,根據需要創建相應索引。

⑶ oracle資料庫日常健康檢查會檢查哪些內容使用哪些命令

oracle檢測壞塊的方式:
1、利用oracle的RMAN工具
2、利用dbv工具檢測
3、利用 exp/imp工具檢測
其中2、3的方式無法徹底檢測所有壞塊,所以重點介紹下RMAN方式

RMAN>backup check logical validate datafile n ;
可以檢查數據文件是否包含壞塊,同時並不產生實際的備份輸出。
而且當使用Recovery Manager進行實際的資料庫備份時,同時也就進行了壞塊
檢查。但要注意的是,在線使用Recovery Manager掃描壞塊和備份時,需要數
據庫運行在歸檔模式(archive log),否則只能在資料庫未打開的情況下進行。

⑷ 資料庫運維服務具體有哪些

資料庫運維服務是指:針對用戶資料庫開展的軟體安裝、配置優化、備份策略選擇及實施、數據恢復、數據遷移、故障排除、預防性巡檢等一系列服務。
主要服務內容如下:
1、資料庫安裝與配置;主要指定製資料庫安裝配置方案,檢查軟體安裝環境,安裝資料庫軟體,完成資料庫配置,並測試之;
2、資料庫性能優化: 主要是指核心參數調優,SQL語句調優,性能評估方案的提供。
3、資料庫備份與恢復;主要是指本地、異地、同步、實時的分級備份與恢復方案及實施;
4、數據遷移:不同版本、不同廠商、不同結構資料庫間的數據遷移;
5、故障排除;通過遠程、上門等方式按服務級別實施故障排除
6、預防性巡檢;定期提供預防性巡檢,並完成系統參數、配置調優,及補丁分發、安裝服務。

⑸ 如何衡量mysql庫的健康度

  • 系統mysql的進程數

  • 查看 mysql buffer pool hit

  • ps -ef | grep "mysql" | grep -v "grep" | wc –l

    2.Slave_running

    mysql > show status like 'Slave_running';

    如果系統有一個從復***務器,這個值指明了從伺服器的健康度

    3.Threads_connected

    mysql > show status like 'Threads_connected';

    當前客戶端已連接的數量。這個值會少於預設的值,但你也能監視到這個值較大,這可保證客戶端是處在活躍狀態。

    4.Threads_running

    mysql > show status like 'Threads_running';

    如果資料庫超負荷了,你將會得到一個正在(查詢的語句持續)增長的數值。這個值也可以少於預先設定的值。這個值在很短的時間內超過限定值是沒問題的。當Threads_running值超過預設值時並且該值在5秒內沒有回落時, 要同時監視其他的一些值。

    5.Aborted_clients

    mysql > show status like 'Aborted_clients';

    客戶端被異常中斷的數值,即連接到mysql伺服器的客戶端沒有正常地斷開或關閉。對於一些應用程序是沒有影響的,但對於另一些應用程序可能你要跟蹤該值,因為異常中斷連接可能表明了一些應用程序有問題。

    6.Questions

    mysql> show status like 'Questions';

    每秒鍾獲得的查詢數量,也可以是全部查詢的數量,根據你輸入不同的命令會得到你想要的不同的值。

    7.Handler_*

    mysql> show status like 'Handler_%';

    如果你想監視底層(low-level)資料庫負載,這些值是值得去跟蹤的。

    如果Handler_read_rnd_next值相對於你認為是正常值相差懸殊,可能會告訴你需要優化或索引出問題了。Handler_rollback表明事務被回滾的查詢數量。你可能想調查一下原因。

    8.Opened_tables

    mysql> show status like 'Opened_tables';

    緩存沒有命中的數量。如果該值很大,你可能需要增加table_cache的數值。典型地,你可能想要這個值每秒打開的表數量少於1或2。

    9.Select_full_join

    mysql> show status like 'Select_full_join';

    沒有主鍵(key)聯合(Join)的執行。該值可能是零。這是捕獲開發錯誤的好方法,因為一些這樣的查詢可能降低系統的性能。

    10.Select_scan

    mysql> show status like 'Select_scan';

    執行全表搜索查詢的數量。在某些情況下是沒問題的,但占總查詢數量該比值應該是常量(即Select_scan/總查詢數量商應該是常數)。如果你發現該值持續增長,說明需要優化,缺乏必要的索引或其他問題。

    11.Slow_queries

    mysql> show status like 'Slow_queries';

    超過該值(--long-query-time)的查詢數量,或沒有使用索引查詢數量。對於全部查詢會有小的沖突。如果該值增長,表明系統有性能問題。

    12.Threads_created

    mysql> show status like 'Threads_created';

    該值應該是低的。較高的值可能意味著你需要增加thread_cache的數值,或你遇到了持續增加的連接,表明了潛在的問題。

    13.客戶端連接進程數

    shell> mysqladmin processlist

    mysql> show processlist;

    你可以通過使用其他的統計信息得到已連接線程數量和正在運行線程的數量,檢查正在運行的查詢花了多長時間是一個好主意。如果有一些長時間的查詢,管理員可以被通知。你可能也想了解多少個查詢是在"Locked"的狀態—---該值作為正在運行的查詢不被計算在內而是作為非活躍的。一個用戶正在等待一個資料庫響應。

    14.innodb狀態

    mysql> show engine innodb statusG;

    該語句產生很多信息,從中你可以得到你感興趣的。首先你要檢查的就是「從最近的XX秒計算出來的每秒的平均負載」。

    (1)Pending normal aio reads:該值是innodb io請求查詢的大小(size)。如果該值大到超過了10—20,你可能有一些瓶頸。

    (2)reads/s, avg bytes/read, writes/s, fsyncs/s:這些值是io統計。對於reads/writes大值意味著io子系統正在被裝載。適當的值取決於你系統的配置。

    (3)Buffer pool hit rate:這個命中率非常依賴於你的應用程序。當你覺得有問題時請檢查你的命中率

    (4)inserts/s, updates/s, deletes/s, reads/s:有一些Innodb的底層操作。你可以用這些值檢查你的負載情況查看是否是期待的數值范圍。

⑹ Oracle DBA應該定期做什麼

本文從整體上介紹了一個dba的職責和任務等等。 ORACLE資料庫管理員應按如下方式對ORACLE資料庫系統做定期監控: (1). 每天對ORACLE資料庫的運行狀態,日誌文件,備份情況,資料庫的空間使用情況,系統資源的使用情況進行檢查,發現並解決問題。 (2). 每周對資料庫對象的空間擴展情況,數據的增長情況進行監控,對資料庫做健康檢查,對資料庫對象的狀態做檢查。 (3). 每月對表和索引等進行Analyze,檢查表空間碎片,尋找資料庫 性能調整的機會,進行資料庫性能調整,提出下一步空間管理 計劃。對ORACLE資料庫狀態進行一次全面檢查。 每天的工作 (1).確認所有的INSTANCE狀態正常 登陸到所有資料庫或常式,檢測ORACLE後台進程: $ps ?ef|grep ora (2). 檢查文件系統的使用(剩餘空間)。如果文件系統的剩餘空間小於20%,需刪除不用的文件以釋放空間。 $df ?k (3). 檢查日誌文件和trace文件記錄alert和trace文件中的錯誤。 連接到每個需管理的系統 ? 使用』telnet』 ? 對每個資料庫,cd 到bmp目錄,通常是$ORACLE_BASE//bmp ?使用 Unix 『tail』命令來查看alert_.log文件 ?如果發現任何新的ORA- 錯誤,記錄並解決 (4). 檢查資料庫當日備份的有效性。 對RMAN備份方式: 檢查第三方備份工具的備份日誌以確定備份是否成功 對EXPORT備份方式: 檢查exp日誌文件以確定備份是否成功 對其他備份方式: 檢查相應的日誌文件 (5). 檢查數據文件的狀態記錄狀態不是「online」的數據文件,並做恢復。 Select file_name from dba_data_files where status=』OFFLINE』 (6). 檢查表空間的使用情況 SELECT tablespace_name, max_m, count_blocks free_blk_cnt, sum_free_m,to_char(100*sum_free_m/sum_m, 』ArrayArray.ArrayArray』) || 』%』 AS pct_free FROM ( SELECT tablespace_name,sum(bytes)/1024/1024 AS sum_m FROM dba_data_files GROUP BY tablespace_name), ( SELECT tablespace_name AS fs_ts_name, max(bytes)/1024/1024 AS max_m, count(blocks) AS count_blocks, sum(bytes/1024/1024) AS sum_free_m FROM dba_free_space GROUP BY tablespace_name ) WHERE tablespace_name = fs_ts_name (7). 檢查剩餘表空間 SELECT tablespace_name, sum ( blocks ) as free_blk , trunc ( sum ( bytes ) /(1024*1024) ) as free_m, max ( bytes ) / (1024) as big_chunk_k, count (*) as num_chunks FROM dba_free_space GROUP BY tablespace_name; (8). 監控資料庫性能 運行bstat/estat生成系統報告 或者使用statspack收集統計數據 (Array). 檢查資料庫性能,記錄資料庫的cpu使用、IO、buffer命中率等等 使用vmstat,iostat,glance,top等命令 (10). 日常出現問題的處理。 每周的工作 (1). 控資料庫對象的空間擴展情況 根據本周每天的檢查情況找到空間擴展很快的資料庫對象,並採取相 應的措施 -- 刪除歷史數據 --- 擴表空間 alter tablespace add datafile 『』 size --- 調整數據對象的存儲參數 next extent pct_increase (2). 監控數據量的增長情況 根據本周每天的檢查情況找到記錄數量增長很快的資料庫對象,並采 取相應的措施 -- 刪除歷史數據 --- 擴表空間 alter tablespace add datafile 『』 size (3). 系統健康檢查 檢查以下內容: init.ora controlfile redo log file archiving sort area size tablespace(system,temporary,tablespace fragment) datafiles(autoextend,location) object(number of extent,next extent,index) rollback segment logging &tracing(alert.log,max_mp_file_size,sqlnet) (4). 檢查無效的資料庫對象 SELECT owner, object_name, object_type FROM dba_objects WHERE status=』INVALID』。 (5). 檢查不起作用的約束 SELECT owner, constraint_name, table_name, constraint_type, status FROM dba_constraints WHERE status = 』DISABLED』 AND constraint_type = 』P』 (6). 檢查無效的trigger SELECT owner, trigger_name, table_name, status FROM dba_triggers WHERE status = 』DISABLED』 每月的工作 (1). Analyze Tables/Indexes/Cluster analyze table estimate statistics sample 50 percent; (2). 檢查表空間碎片 根據本月每周的檢查分析資料庫碎片情況,找到相應的解決方法 (3). 尋找資料庫性能調整的機會 比較每天對資料庫性能的監控報告,確定是否有必要對資料庫性能進 行調整 (4). 資料庫性能調整 如有必要,進行性能調整 (5). 提出下一步空間管理計劃 根據每周的監控,提出空間管理的改進方法 Oracle DBA 日常管理 目的:這篇文檔有很詳細的資料記錄著對一個甚至更多的ORACLE 資料庫每天的,每月的, 每年的運行的狀態的結果及檢查的結果,在文檔的附錄中你將會看到所有檢查,修改的SQL 和PL/SQL 代碼。 一.日維護過程 A.查看所有的實例是否已起 確定資料庫是可用的,把每個實例寫入日誌並且運行日報告或是運行測試 文件。當然有一些操作我們是希望它能自動運行的。 可選擇執行:用ORACLE 管理器中的『PROBE』事件來查看 B.查找新的警告日誌文件 1. 聯接每一個操作管理系統 2. 使用『TELNET』或是可比較程序 3. 對每一個管理實例,經常的執行$ORACLE_BASE//bmp 操 作,並使其能回退到控制資料庫的SID。 4. 在提示下,使用UNIX 中的『TAIL』命令查看alert_.log,或是 用其他方式檢查文件中最近時期的警告日誌 5. 如果以前出現過的一些ORA_ERRORS 又出現,將它記錄到資料庫 恢復日誌中並且仔細的研究它們,這個資料庫恢復日誌在〈FILE〉中 C.查看DBSNMP 的運行情況 檢查每個被管理機器的『DBSNMP』進程並將它們記錄到日誌中。 在UNIX 中,在命令行中,鍵入ps ?ef | grep dbsnmp,將回看到2 個 DBSNMP 進程在運行。如果沒有,重啟DBSNMP。 D.查資料庫備份是否成功 E.檢查備份的磁帶文檔是否成功 F.檢查對合理的性能來說是否有足夠的資源 1. 檢查在表空間中有沒有剩餘空間。 對每一個實例來說,檢查在表空間中是否存在有剩餘空間來滿足當天 的預期的需要。當資料庫中已有的數據是穩定的,數據日增長的平均 數也是可以計算出來,最小的剩餘空間至少要能滿足每天數據的增 長。 A) 運行『FREE.SQL』來檢查表空間的剩餘空間。 B) 運行『SPACE.SQL』來檢查表空間中的剩餘空間百分率 2. 檢查回滾段 回滾段的狀態一般是在線的,除了一些為復雜工作準備的專用 段,它一般狀態是離線的。 a) 每個資料庫都有一個回滾段名字的列表。 b) 你可以用V$ROLLSTAT 來查詢在線或是離線的回滾段的現在狀 態. c) 對於所有回滾段的存儲參數及名字, 可用 DBA_ROLLBACK_SEGS 來查詢。但是它不如V$ROLLSTAT 准確。 3. 識別出一些過分的增長 查看資料庫中超出資源或是增長速度過大的段,這些段的存儲參 數需要調整。 a) 收集日數據大小的信息, 可以用 『ANALYZE5PCT.SQL』。如果你收集的是每晚的信息, 則可跳過這一步。