⑴ 如何檢查資料庫中數據的一致性
資料庫一致性檢查(dbcc)提供了一些命令用於檢查資料庫的邏輯和物理一致性。Dbcc主要有兩個功能: 使用checkstorage 或 checktable 及 checkdb 在頁一級和行一級檢查頁鏈及數據指針。 使用checkstorage, checkalloc, 或 checkverify, tablealloc, 及indexalloc 檢查頁分配。 在下列情況中需要使用 dbcc 命令: 作為資料庫日常維護工作的一部分, 資料庫內部結構的完整性決定於sa 或dbo 定期地運行 dbcc 檢查。 在系統報錯以後, 確定資料庫是否有損壞。 在備份資料庫之前, 確保備份的完整性。 如果懷疑資料庫有損壞時, 例如, 使用某個表時報出表損壞的信息, 可以使用 dbcc 確定資料庫中其他表是否也有損壞。 下面是dbcc的簡單用法: dbcc checktable (table_name) 檢查指定的表, 檢查索引和數據頁是否正確鏈接, 索引是否正確排序, 所有指針是否一致, 每頁的數據信息是否合理, 頁偏移是否合理。 dbcc checkdb (database_name) 對指定資料庫的所有表做和checktable 一樣的檢查。 dbcc checkalloc (database_name,fix|nofix) 檢查指定資料庫, 是否所有頁面被正確分配, 是否被分配的頁面沒被使用。當使用"fix"選項時,在檢查資料庫的同時會自動修復有問題的頁面。(若資料庫數據量很大,則該過程會持續很長時間。) dbcc tablealloc (table_name,fix|nofix) 檢查指定的表, 是否所有頁面被正確分配, 是否被分配的頁面沒被使用。是 checkalloc 的縮小版本, 對指定的表做完整性檢查。當使用"fix"選項時,在檢查數據表的同時會自動修復數據表中有問題的頁面。 關於上述命令的其它選項及詳細使用方法和checkstorage, checkverify, indexalloc 的詳細使用方法, 請參閱有關命令手冊。
⑵ 怎樣用Windows服務實現自動檢查資料庫中的數據
1、Windows服務好方法,除了此方法還可以使用sql Server的作業或者Windows的計劃任務。
2、至於為何沒有插入數據,那不用問肯定是SQL沒有被執行(首先您要保證SQL語句的正確性,即在SQL Server的查詢分析器中是可以運行成功的,如果這個都保證不了,那麼SQL語句有問題了)。
3、建議您為您的Windows服務建立一個文本日誌,而且在關鍵步驟上需要去將成功或失敗的過程寫入此日誌,比如將下列過程使用try語句寫入日誌:連接資料庫、發送SQL語句到資料庫執行、以及其他功能操作,如果成功,在日誌中寫入「某某操作成功」(也可不寫入成功信息),如果失敗寫上「某某操作失敗!失敗原因:×××。」,失敗原因就是try語句的報錯的ex消息體,當然必須為每步操作加上日期(根據情況,一般需要精確到秒)。寫日誌後您就能發現到底是哪裡出錯了,是Windows服務開發本身的邏輯錯誤還是代碼錯誤還是SQL語句的錯誤等等。
4、SQL語句建議使用存儲過程。
5、據我了解Windows服務是不需要使用Timer控制項的來控制的,您是用Timer控制項控制訪問資料庫的時間間隔嘛?
建議您一步步開發,就和穿衣服一樣一件衣服穿好了再穿另外一件,明白我的意思嗎?找問題的Bug也是和脫衣服一樣,一件衣服脫完了再脫另外一件!有關具體Windows服務的開發可以看看我博客中的這篇文章《一個有用的Windows服務小程序——用來完成Server端的Socket通信》,雖然是在VS.NET2003下開發的Windows服務,但大同小異,希望能在Windows服務方面對您有所啟發。
另外說明:Windows服務是C/S架構程序,跟您項目本身使用Asp.Net C#(即B/S架構程序)沒有直接關系,只是兩個用的是同一個資料庫而已(即操作的數據相同),其他互不往來也不影響,且您開發的這個Windows服務是要安裝在伺服器上,而不是客戶端上。
轉載,僅供參考。
⑶ 如何檢查資料庫中數據的一致性
資料庫一致性檢查(dbcc)提供了一些命令用於檢查資料庫的邏輯和物理一致性。Dbcc主要有兩個功能:
使用checkstorage 或 checktable 及 checkdb 在頁一級和行一級檢查頁鏈及數據指針。
使用checkstorage, checkalloc, 或 checkverify, tablealloc, 及indexalloc
檢查頁分配。
在下列情況中需要使用 dbcc 命令: 作為資料庫日常維護工作的一部分, 資料庫內部結構的完整性決定於sa 或dbo 定期地運行
dbcc 檢查。 在系統報錯以後, 確定資料庫是否有損壞。 在備份資料庫之前, 確保備份的完整性。 如果懷疑資料庫有損壞時, 例如,
使用某個表時報出表損壞的信息, 可以使用 dbcc 確定資料庫中其他表是否也有損壞。
下面是dbcc的簡單用法: dbcc checktable (table_name) 檢查指定的表,
檢查索引和數據頁是否正確鏈接, 索引是否正確排序, 所有指針是否一致, 每頁的數據信息是否合理, 頁偏移是否合理。 dbcc
checkdb (database_name) 對指定資料庫的所有表做和checktable 一樣的檢查。 dbcc
checkalloc (database_name,fix|nofix) 檢查指定資料庫, 是否所有頁面被正確分配,
是否被分配的頁面沒被使用。當使用"fix"選項時,在檢查資料庫的同時會自動修復有問題的頁面。(若資料庫數據量很大,則該過程會持續很長時間。)
dbcc tablealloc (table_name,fix|nofix) 檢查指定的表, 是否所有頁面被正確分配,
是否被分配的頁面沒被使用。是 checkalloc 的縮小版本,
對指定的表做完整性檢查。當使用"fix"選項時,在檢查數據表的同時會自動修復數據表中有問題的頁面。
關於上述命令的其它選項及詳細使用方法和checkstorage, checkverify, indexalloc
的詳細使用方法, 請參閱有關命令手冊。 舉例1: Unix平台檢查pubs2資料庫的一致性 單用戶模式啟動Server:
$SYBASE/install startserver -f RUN_server_name -m
vi dbcc_db.sqluse mastergosp_dboption pubs2,"single user",truegouse pubs2gocheckpoint go dbcc checkdb(pubs2)godbcc checkalloc(pubs2,fix)godbcc checkcatalog(pubs2)gouse mastergosp_dboption pubs2,"single user",falsegouse pubs2gocheckpointgoquit go isql -Usa -Pxxxxxx -SSYBASE dbcc_db.out
grep Msg dbcc_db.out
舉例2: Unix平台檢查pubs2資料庫中titles表的一致性
⑷ 如何利用percona-toolkit工具檢查MySQL資料庫主從一致性以及修復
用 pt-table-checksum 時,會不會影響業務性能?
實驗
實驗開始前,給大家分享一個小經驗:任何性能評估,不要相信別人的評測結果,要在自己的環境上測試,並(大概)知曉原理。
我們先建一對主從:
之後工具獲取了一個數據塊的 checksum,這個數據塊不大,如果跟業務流量有沖突,會馬上出發 innodb 的鎖超時,立刻退讓。
以上是 pt-table-checksum 的一些設計,可以看到這幾處都是精心維護了業務流量不受影響。
工具還設計了其他的一些機制保障業務流量,比如參數 --max-load 和 --pause-file 等,還有精心設計的數據塊劃分方法,索引選擇方法等。大家根據自己的情況配合使用即可達到很好的效果。
總結
本期我們介紹了簡單分析 pt-table-checksum 是否會影響業務流量,坊間會流傳工具的各種參數建議或者不建議使用,算命的情況比較多,大家都可以用簡單的實驗來分析其中機制。
還是那個觀點,性能測試不能相信道聽途說,得通過實驗去分析。
⑸ 如何檢查和設置資料庫的基本屬性
1.Power script 語言里的事務處理對象怎麼理解
PowerBuilder程序與資料庫之間傳遞信息的一個結構變數,共有15個成員.你可以詳細列表它的所有成員看看它的組成.PB的應用程序會初始化一個全局的結構體變數,SQLCA,當然你也可以自定義一個自己的事務對象.
1 DBMS string 所使用的資料庫管理系統的名字,如Sybase,Oracle,ODBC。
2 Database string 要連接的資料庫名字。
3 UserID string 連接資料庫所用的用戶名。有的DBMS不需要此項。
4 DBPass string 用戶連接資料庫的口令。
5 Lock string 這是資料庫的保護級別,一般不必給出。
6 LogID string 登錄到資料庫伺服器上的用戶名,有的DBMS不需要此項,但Sybase和Oracle需要指定這個參數。
7 LogPass string 登錄到資料庫伺服器上的用戶口令。這個屬性可設可不設,但Sybase和Oracle需要指定口令。
⑹ 數模變更代碼在資料庫中如何檢查
在設計資料庫時,對現實世界進行分析、抽象、並從中找出內在聯系,進而確定資料庫的結構,這一過程就稱為資料庫建模。它主要包括兩部分內容:確定最基本的數據結構;對約束建模。
資料庫設計 資料庫設計(Database Design)是指對於一個給定的應用環境,構造最優的資料庫模式,建立資料庫及其應用系統,使之能夠有效地存儲數據,滿足各種用戶的應用需求(信息要求和處理要求)。
在資料庫領域內,常常把使用資料庫的各類系統統稱為資料庫應用系統。
一、資料庫和信息系統
(1)資料庫是信息系統的核心和基礎,把信息系統中大量的數據按一定的模型組織起來,提供存儲、維護、檢索數據的功能,使信息系統可以方便、及時、准確地從資料庫中獲得所需的信息。
(2)資料庫是信息系統的各個部分能否緊密地結合在一起以及如何結合的關鍵所在。
(3)資料庫設計是信息系統開發和建設的重要組成部分。
(4)資料庫設計人員應該具備的技術和知識:
資料庫的基本知識和資料庫設計技術
計算機科學的基礎知識和程序設計的方法和技巧
軟體工程的原理和方法
應用領域的知識
二、資料庫設計的特點
資料庫建設是硬體、軟體和干件的結合
三分技術,七分管理,十二分基礎數據
技術與管理的界面稱之為「干件」
資料庫設計應該與應用系統設計相結合
結構(數據)設計:設計資料庫框架或資料庫結構
行為(處理)設計:設計應用程序、事務處理等
結構和行為分離的設計
傳統的軟體工程忽視對應用中數據語義的分析和抽象,只要有可能就盡量推遲數據結構設計的決策。早期的資料庫設計致力於數據模型和建模方法研究,忽視了對行為的設計。
⑺ 教你如何檢查Access資料庫中數據有效性
開發一個好的資料庫管理系統,關鍵是要確保錄入數據的完整性和准確性。Access提供了很多檢查錄入數據有效性的手段,筆者這里就簡單介紹兩種常用的方法。 一、 利用欄位屬性 1. 數據類型屬性 :數據類型決定了用戶能保存在此欄位中值的種類,如果用戶鍵入的數據與欄位規定的類型不一致,Access就不會存儲該數據。如「日期/時間」欄位,只允許輸入有效的日期與時間格式。 2. 欄位大小屬性 :對於「數字」型欄位,通過設置欄位的大小控制輸入值的類型和范圍;而對「文本」欄位,可以設置可輸入的最大字元數(最大為255)。 3. 必填欄位屬性 :資料庫中除「自動編號」欄位外(該欄位可自行生成數據)的其它欄位,都可利用設置必填欄位屬性值為「是」,要求欄位中必須有數據輸入,以避免一些重要信息的遺漏。 4. 輸入掩碼屬性 :該屬性可幫助用戶按照正確的格式輸入數據。如創建輸入掩碼顯示電話號碼的括弧、空格及連接符,輸入時只要在空格中填入即可。 5. 有效性規則屬性 :欄位有效性規則屬性用於在用戶離開欄位時,檢查輸入欄位的值是否符合要求。 表有效性規則與欄位有效性規則不同,當需要設置涉及表中多個欄位的有效性規則屬性時,可以設置表屬性的有效性規則。 二、 使用事件過程 在某些情況下,當有效性規則含有復雜的條件,並且需根據條件執行不同的操作時,往往很難寫出有效性規則,這時可以通過對如下的事件過程編寫代碼來代替有效性規則進行檢查。
⑻ 如何檢查oracle資料庫性能
oracle的性能判斷需要綜合資料庫的多個運行指標來判斷:
1、進程數量和佔用cpu:這個主要看有沒有長時間佔用cpu的進行。通常會判斷大出sql,需要優化;這個可以用執行計劃或者awr報告查看;
2、內存佔用:主要用系統命令查看ora_佔用和系統總內存的比例,swap的使用率;通常swap使用率低就沒事;這個主要使用系統命令;
3、磁碟佔用率:防止磁碟空間不足,需要的主要在系統和用戶表空間、RMAN等操作上;這個主要使用系統命令;RMAN命令查看
⑼ 如何檢查oracle資料庫性能
這種問題要回答好要求知識比較全面。
1 從操作系統層次上看
看CPU 內存 swqp(交換分區)等使用率
2 從磁碟上看
主要看磁碟讀寫。可以用dd測磁碟讀寫的速度 也可以在業務高峰期檢測磁碟的速率。
3 從資料庫本身來看。
先要看資料庫各個參數的值 。 如sga的大小,process的大小,redo日誌的個數與大小等這些關繫到性能的參數是否設置合理。
長期觀察的方式就是看各個時期的AWR報告。裡面有各種性能指標,以及按執行時間或資源排列的sql ,以及各種等待時間的排名。從這裡面可以掌握資料庫的長期的性能變化。
即時觀察的方式就是利用各種sql 查詢 資料庫在當前時間的各個性能指標(AWR報告裡面的各種指標也都是通過sql查詢出來的)
還有對資料庫整體的一個檢查:
如 表的大小,表是否需要分區而沒有分區,索引是否創建,索引是否失效,開發人員寫的sql是否正確使用到了索引,頻繁使用的sql是否有綁定變數,有頻繁大批量增刪改的表是否存在高水位。。。
額 總之,這個話題涉及的知識非常多,盡可能多的學習一些東西,祝你好運。
⑽ 如何檢查資料庫某個欄位中的數據
用[欄位] is null,如下:
select * from table where col1 is null
具體支不支持還得看資料庫類型啊