資料庫的可靠性
mysql資料庫有undo空間
5種mysql做可靠性分析的方案:
1.MySQL Clustering(ndb-cluster stogare)
簡介:
MySQL公司以存儲引擎方式提供的高可靠性方案,是事務安全的,實時復制數據,可用於需要高可靠性及負載均衡的場合。該方案至少需要三個節點伺服器才能達到較好的效果。
成本:
節點伺服器對RAM的需求很大,與資料庫大小呈線性比例;
最好使用千兆乙太網絡;
還需要使用Dolphin公司提供的昂貴的SCI卡。
優點:
可用於負載均衡場合;
可用於高可靠性場合;
高伸縮性;
真正的資料庫冗餘;
容易維護。
缺點:
隨著資料庫的變大,對RAM的需求變得更大,因此成本很高;
速度:
幾乎 比典型的單獨伺服器(無千兆乙太網,無SCI卡,存儲引擎相關的限制少)慢10倍。
應用場合:
冗餘,高可靠性,負載均衡
2. MySQL / GFS-GNBD/ HA (Active/Passive)
簡介:
如果多個MySQL伺服器使用共享硬碟作為數據存儲,此方案如何?
GFS/GNBD可以提供所需的共享硬碟。
GFS是事務安全的文件系統。同一時刻你可以讓一個MySQL使用共享數據。
成本:
最多n台高性能伺服器的成本,其中一個激活的,其他作為備份伺服器。
優點:
高可靠性
某種程度的冗餘
按照高可靠性進行伸縮
缺點:
沒有負載均衡
沒有保證的冗餘
無法對寫操作進行伸縮
速度:
單獨伺服器的2倍。對讀操作支持得較好。
應用場合:
需要高可靠性的、讀操作密集型的應用
3. MySQL / DRBD / HA (Active/Passive)
簡介:
如果多個MySQL伺服器使用共享硬碟作為數據存儲,此方案如何?
DRBD可以提供這樣的共享硬碟。DRBD可以被設置成事務安全的。
同一時刻你可以讓一個MySQL使用共享數據。
成本:
最多n台高性能伺服器的成本,其中一個激活的,而其他則作為備份伺服器。
優點:
高可靠性;
一定程度的冗餘;
以高可靠性名義來看是可伸縮的。
缺點:
沒有負載均衡
沒有保證的冗餘
在寫負載方面沒有伸縮性
速度:
在讀寫方面相當於單獨伺服器
應用場合
需要高可靠性、讀操作密集型的應用
4. MySQL Write Master / Multiple MySQL Read Slaves (Active/Active)
簡介:
考慮不同的讀、寫DB資料庫連接的情況。可以使用一台主伺服器用於寫操作,而採用n台從伺服器用於讀操作。
成本:
最多1台高性能寫伺服器,n台讀伺服器的成本
優點:
讀操作的高可靠性;
讀操作的負載均衡;
在讀操作負載均衡方面是可伸縮的。
缺點:
無寫操作的高可靠性;
無寫操作的負載均衡;
在寫操作方面無伸縮性;
速度:
同單獨伺服器;在讀操作方面支持得較好
應用場合
讀操作密集型的、需要高可靠性和負載均衡的應用。
5. Standalone MySQL Servers(Functionally separated) (Active)
多台功能分離的單獨伺服器,沒有高可靠性、負載均衡能力,明顯缺點太多,不予考慮。
❷ 如何確保MYSQL資料庫的可靠性 - 技術問答
正版好貴啊...21andy
發表於
2009-6-10
11:14[i]那就用MySQL的innoDB引擎..支持事物..不過話說回來..你用MySQL出了問題的時候是叫天天不靈叫地地不理啊.
❸ 資料庫系統的特點
資料庫的主要特點:
⑴ 實現數據共享
數據共享包含所有用戶可同時存取資料庫中的數據,也包括用戶可以用各種方式通過介面使用資料庫,並提供數據共享。
⑵ 減少數據的冗餘度
同文件系統相比,由於資料庫實現了數據共享,從而避免了用戶各自建立應用文件。減少了大量重復數據,減少了數據冗餘,維護了數據的一致性。
⑶ 數據的獨立性
數據的獨立性包括邏輯獨立性(資料庫中資料庫的邏輯結構和應用程序相互獨立)和物理獨立性(數據物理結構的變化不影響數據的邏輯結構)。
⑷ 數據實現集中控制
文件管理方式中,數據處於一種分散的狀態,不同的用戶或同一用戶在不同處理中其文件之間毫無關系。利用資料庫可對數據進行集中控制和管理,並通過數據模型表示各種數據的組織以及數據間的聯系。
⑸數據一致性和可維護性,以確保數據的安全性和可靠性
主要包括:①安全性控制:以防止數據丟失、錯誤更新和越權使用;②完整性控制:保證數據的正確性、有效性和相容性;③並發控制:使在同一時間周期內,允許對數據實現多路存取,又能防止用戶之間的不正常交互作用。
⑹ 故障恢復
由資料庫管理系統提供一套方法,可及時發現故障和修復故障,從而防止數據被破壞。資料庫系統能盡快恢復資料庫系統運行時出現的故障,可能是物理上或是邏輯上的錯誤。比如對系統的誤操作造成的數據錯誤等。
請採納!
❹ 資料庫系統的安全特徵有哪些
資料庫系統有4
個特徵:
1,允許使用數據定義語言,建立新的資料庫和指定它的模式。
2,能夠查詢數據和更新數據
3,支持存儲大量的數據,長時間以後可以保證其安全。
4,控制多用戶訪問資料庫,保證不沖突。
❺ 資料庫的備份是為了維護資料庫的什麼、安全性,完整性,還是可靠性什麼的
數據的安全,保護好數據
❻ 如何確保數據,信息的准確性,完整性,可靠性,及時性,安全性和保密性
數據完整性(Data Integrity)是
指數據的精確性(Accuracy) 和可靠性(Reliability)。它是應防止資料庫中存在不符合語義規定的數據和防止因錯誤信息的輸入輸出造成無效操作或錯誤信息而提出的。數據完整性分為四類:實體完整性(Entity Integrity)、域完整
性(Domain Integrity)、參照完整性(Referential Integrity)、用戶定義的完整性(User-definedIntegrity)。
保證數據的完整性:
用約束而非商務規則強制數據完整性
如果你按照商務規則來處理需求,那麼你應當檢查商務層次/用戶界面:如果商務規則以後發生變化,那麼只需要進行更新即可。
假如需求源於維護數據完整性的需要,那麼在資料庫層面上需要施加限制條件。
如果你在數據層確實採用了約束,你要保證有辦法把更新不能通過約束檢查的原因採用用戶理解的語言通知用戶界面。除非你的欄位命名很冗長,否則欄位名本身還不夠。 — Lamont Adams
只要有可能,請採用資料庫系統實現數據的完整性。這不但包括通過標准化實現的完整性而且還包括數據的功能性。在寫數據的時候還可以增加觸發器來保證數據的正確性。不要依賴於商務層保證數據完整性;它不能保證表之間(外鍵)的完整性所以不能強加於其他完整性規則之上。
— Peter Ritchie
2. 分布式數據系統
對分布式系統而言,在你決定是否在各個站點復制所有數據還是把數據保存在一個地方之前應該估計一下未來5 年或者10 年的數據量。當你把數據傳送到其他站點的時候,最好在資料庫欄位中設置一些標記。在目的站點收到你的數據之後更新你的標記。為了進行這種數據傳輸,請寫下你自己的批處理或者調度程序以特定時間間隔運行而不要讓用戶在每天的工作後傳輸數據。本地拷貝你的維護數據,比如計算常數和利息率等,設置版本號保證數據在每個站點都完全一致。
— Suhair TechRepublic
3. 強制指示完整性
沒有好辦法能在有害數據進入資料庫之後消除它,所以你應該在它進入資料庫之前將其剔除。激活資料庫系統的指示完整性特性。這樣可以保持數據的清潔而能迫使開發人員投入更多的時間處理錯誤條件。
— kol
4. 關系
如果兩個實體之間存在多對一關系,而且還有可能轉化為多對多關系,那麼你最好一開始就設置成多對多關系。從現有的多對一關系轉變為多對多關系比一開始就是多對多關系要難得多。
— CS Data Architect
5. 採用視圖
為了在你的資料庫和你的應用程序代碼之間提供另一層抽象,你可以為你的應用程序建立專門的視圖而不必非要應用程序直接訪問數據表。這樣做還等於在處理資料庫變更時給你提供了更多的自由。
— Gay Howe
6. 給數據保有和恢復制定計劃
考慮數據保有策略並包含在設計過程中,預先設計你的數據恢復過程。採用可以發布給用戶/開發人員的數據字典實現方便的數據識別同時保證對數據源文檔化。編寫在線更新來「更新查詢」供以後萬一數據丟失可以重新處理更新。
— kol
7. 用存儲過程讓系統做重活
解決了許多麻煩來產生一個具有高度完整性的資料庫解決方案之後,我所在的團隊決定封裝一些關聯表的功能組,提供一整套常規的存儲過程來訪問各組以便加快速度和簡化客戶程序代碼的開發。在此期間,我們發現3GL 編碼器設置了所有可能的錯誤條件,比如以下所示:
SELECT Cnt = COUNT (*)
FROM [<Table>]
WHERE [<primary key column>] = <new value>
IF Cnt = 0
BEGIN
INSERT INTO [<Table>]
( [< primary key column>] )
VALUES ( <New value> )
ELSE
BEGIN
<indicate plication error>
而一個非3GL 編碼器是這樣做的:
INSERT INTO [<Table>]
( [< primary key column>] )
VALUES
( <New value> )
IF @@ERROR = 2627 -- Literal error code for Primary Key Constraint
BEGIN
<indicate plication error>
第2 個程序簡單多了,而且事實上,利用了我們給資料庫的功能。雖然我個人不喜歡使用嵌入文字(2627)。但是那樣可以很方便地用一點預先處理來代替。資料庫不只是一個存放數據的地方,它也是簡化編碼之地。
— a-smith
8. 使用查找
控制數據完整性的最佳方式就是限制用戶的選擇。只要有可能都應該提供給用戶一個清晰的價值列表供其選擇。這樣將減少鍵入代碼的錯誤和誤解同時提供數據的一致性。某些公共數據特別適合查找:國家代碼、狀態代碼等
❼ 如何確保MYSQL資料庫的可靠性 - 技術問答
正版好貴啊...21andy
發表於
2009-6-10
11:14[i][/url][/b]那就用MySQL的innoDB引擎..支持事物..不過話說回來..你用MySQL出了問題的時候是叫天天不靈叫地地不理啊.
❽ 資料庫具有特點有哪些
主要特點 (1)實現數據共享。 數據共享包含所有用戶可同時存取資料庫中的數據,也包括用戶可以用各種方式通過介面使用資料庫,並提供數據共享。 (2)減少數據的冗餘度。 同文件系統相比,由於資料庫實現了數據共享,從而避免了用戶各自建立應用文件。減少了大量重復數據,減少了數據冗餘,維護了數據的一致性。 (3)數據的獨立性。 數據的獨立性包括資料庫中資料庫的邏輯結構和應用程序相互獨立,也包括數據物理結構的變化不影響數據的邏輯結構。 (4)數據實現集中控制。 文件管理方式中,數據處於一種分散的狀態,不同的用戶或同一用戶在不同處理中其文件之間毫無關系。利用資料庫可對數據進行集中控制和管理,並通過數據模型表示各種數據的組織以及數據間的聯系。 (5)數據一致性和可維護性,以確保數據的安全性和可靠性。 主要包括:①安全性控制:以防止數據丟失、錯誤更新和越權使用; ②完整性控制:保證數據的正確性、有效性和相容性; ③並發控制:使在同一時間周期內,允許對數據實現多路存取, 又能防止用戶之間的不正常交互作用; ④故障的發現和恢復:由資料庫管理系統提供一套方法, .