可以利用為了實現可用性目標而維護的映象資料庫來減輕報表的負載。若要將映象資料庫用於報表,可以在映象資料庫中建立資料庫快照,並將客戶端連線請求定向到最新的快照。由於資料庫快照只在建立快照時存在,因此,它是乙個靜態的、唯讀的並與其源資料庫保持事務一致的快照。若要在映象資料庫中建立資料庫快照,資料庫必須處於同步映象狀態。
與映象資料庫本身不同,客戶端可以訪問資料庫快照。只要映象伺服器與主體伺服器進行通訊,就可以將報表客戶端連線定向到快照。注意,由於資料庫快照是靜態的,因此沒有新資料可用。為了讓使用者能夠使用相對較新的資料,必須定期建立新的資料庫快照,並通過應用程式將傳入客戶端連線定向到最新的快照。
新的資料庫快照幾乎是空的,但是它會隨著越來越多的資料頁的首次更新而增長。由於資料庫中的每個快照都以這種方式增長,因此,每個資料庫快照與常規資料庫使用同樣多的資源。根據映象伺服器和主體伺服器的配置,在映象資料庫中保留過多的資料庫快照可能會降低主體資料庫的效能。因此,我們建議在映象資料庫中僅保留少量相對較新的快照。一般情況下,在建立替換快照之後,應重新將傳入查詢定向到新的快照,並在完成所有當前的查詢之後刪除較早的快照。
注意:有關資料庫快照的詳細資訊,請參閱資料庫快照。
如果出現角色切換,則資料庫及其快照將重新啟動並暫時斷開與使用者的連線。然後,資料庫快照保留在建立時所在的伺服器例項中,並成為新的主體資料庫。使用者可以在故障轉移後繼續使用快照。但是,這樣會給新的主體伺服器帶來額外的負荷。如果在您的環境中效能是乙個關注點,則我們建議您應在新映象資料庫成為可用後,在其中建立快照,並將客戶端重新定向到新快照,同時從以前的映象資料庫中刪除所有資料庫快照。
注意:對於能很好地向外擴充套件的專用報告解決方案,可以考慮複製。有關詳細資訊,請參閱資料倉儲和報告。
示例下面的示例將對映象資料庫建立快照。
假定資料庫映象會話的資料庫為 adventureworks。此示例在 adventureworks 資料庫(位於驅動器 f 中)的映象副本中建立了三個資料庫快照。分別將這些快照命名為 adventureworks_0600、adventureworks_1200 和 adventureworks_1800,以標識它們的近似建立次數。
在 adventureworks 的映象中建立第乙個資料庫快照。
複製**
create database adventureworks_0600
on (name = 『datafile』, filename = 『f:\adventureworks_0600.snp』)
as snapshot of adventureworks
在 adventureworks 的映象中建立第二個資料庫快照。仍在使用 adventureworks_0600 的使用者可以繼續使用它。
複製**
create database adventureworks_1200
on (name = 『datafile』, filename = 『f:\adventureworks_1200.snp』)
as snapshot of adventureworks
此時,可以用程式設計的方式將新客戶端連線定向至最新的快照。
在 adventureworks 的映象中建立第三個快照。仍在使用 adventureworks_0600 或 adventureworks_1200 的使用者可以繼續使用它們。
複製**
create database adventureworks_1800
on (name = 『datafile』, filename = 『f:\adventureworks_1800.snp』)
as snapshot of adventureworks
此時,可以用程式設計的方式將新客戶端連線定向至最新的快照。
資料庫快照
簡介 資料庫快照,正如其名稱所示那樣,是資料庫在某一時間點的檢視。快照設計最開始的目的是為了報表服務。比如我需要出2011的資產負債表,這需要資料保持在2011年12月31日零點時的狀態,則利用快照可以實現這一點。快照還可以和映象結合來達到讀寫分離的目的。下面我們來看什麼是快照。什麼是快照 資料庫快...
資料庫快照
資料庫快照是什麼 資料庫快照提供源資料庫在建立快照時的唯讀 靜態檢視,不包含未提交的事務。由於 資料庫引擎 在建立快照後執行恢復,因此未提交的事務在新近建立的資料庫快照中回滾 資料庫中的事務不受影響 在建立時,每個資料庫快照在事務上都與源資料庫一致。在建立資料庫快照時,源資料庫通常會有開啟的事務。在...
資料庫和資料庫物件
系統資料庫是指安裝完mysql伺服器後,會附帶的一些資料庫,系統資料庫會記錄一些必需的資訊,使用者不能直接修改這些系統資料庫。各個系統資料庫的作用如下 information schema 主要儲存系統中的一些資料庫物件資訊,如使用者表資訊 列資訊 許可權資訊 字符集資訊和分割槽資訊等。perfor...