1. sqlServer快照功能以及其查詢如何操作
SQLServer資料庫的快照只能通過SQL語句創建,以msdb資料庫為例進行說明:
1、執行以下代碼,看看MSDB資料庫有多少數據文件
EXEC SP_HELPDB msdb
查詢結果是完全一樣的。
(如有幫助,請採納,謝謝)
2. 資料庫中的快照表什麼意思呀,最近換了一個工作,是做p2p的,因為之前沒接觸過這方面的業務,不知道這個
資料庫快照是資料庫(稱為「源資料庫」)的只讀靜態視圖。在創建時,每個資料庫快照在事務上都與源資料庫一致。在創建資料庫快照時,源資料庫通常會有打開的事務。在快照可以使用之前,打開的事務會回滾以使資料庫快照在事務上取得一致。
客戶端可以查詢資料庫快照,這對於基於創建快照時的數據編寫報表是很有用的。而且,如果以後源資料庫損壞了,便可以將源資料庫恢復到它在創建快照時的狀態。
簡單的說就像拍個照片 如果樓主用過虛擬機就應該非常清楚快照了
3. sqlserver with snapshot 有什麼作用
資料庫快照為你現有的資料庫創建了一個資料庫的殼,然後無論何時當數據頁被修改的時候,改變也同時被寫入稀疏文件(sparse file)當中。當人們獲取數據的時候,數據中沒有變化的部分是從原始資料庫中得到的,而改變的部分則是從稀疏文件中獲得。
稀疏文件和資料庫快照
當資料庫快照被創建的時候,第一次的創建是十分迅速的。因為實際上只是創建了一個用來記錄被修改文件的殼。隨著時間的推移,文件不斷的被修改,這些修改頁都將被寫進稀疏文件。你的主資料庫中修改的文件越多,就有越多的文件被寫入稀疏文件。因此,有越來越多的磁碟空間被用來保存你的主資料庫和快照的資料庫,也增加了你伺服器的磁碟輸入輸出的次數。
稀疏文件被寫入大小為64KB的分組塊當中。每一個分組塊增量能包含8個大小為8KB的數據頁。所以,每次在你的主資料庫中有任何的數據改變,都會先把數據頁拷貝到稀疏文件當中,然後再將主資料庫中文件的變化寫入稀疏文件。一旦數據頁被寫入稀疏文件,他們就不再需要被寫出來。因為頁面的全部內容被保護起來,讓其處於當快照建立時的狀態。
為了實現優化磁碟並消除磁碟沖突,在主資料庫以外的獨立的驅動器和陣列中創建稀疏文件是一個明知之舉。原因有二:
其一,當快照被建立的時候,沒有數據被寫入稀疏文件。從快照進行的所有的數據訪問實際上都是在主資料庫文件當中的。隨著時間的推移,你會通過在不同的陣列和磁碟上從主文件資料庫讀取未被修改過的文件和從稀疏文件讀取修改過的數據的方法來減少輸入輸出的負擔。
其二,根據你資料庫數據的易變動性和數據變化的數量,你可以通過將在主資料庫的讀取工作和稀疏文件的寫入工作分離來減少輸入輸出的瓶頸大小。
使用資料庫快照
在這里你一定要記住的事情就是,你的查詢請求訪問的依然是你的主資料庫。當初始的快照被建立的時候,其實僅建立了一個空的殼子。所有的數據請求都是在主資料庫文件中被完成的。隨著時間的流逝和文件不斷地被修改,就有一些數據請求從初始的資料庫文件中分離出來指向了稀疏文件。所以,盡管看上去它是一個獨立的資料庫,那些根本的數據仍然是源於主資料庫。
鑒於此,你需要確定不要試圖去進行你日常活動范圍以外的查詢。這樣說吧,你創建了一個快照,接著你進行了讀寫的操作,並對每個人做了記錄。當那些記錄被執行查詢操作時,他們仍然繼續影響著主資料庫。所以你要保證任何新的活動都不會影響主數據的活動。
另外,你需要記住到底有哪些數據是被寫入稀疏文件里的,而不是認為所有可能的數據都被寫進了稀疏文件。基本上,當快照被創立時,主資料庫的大小就是快照稀疏文件的潛在大小。如果稀疏文件中的數據量已經達到甚至超過資料庫的一半時,也許再創造一個資料庫的完整拷貝來取代現有的快照是一個更好的主意。
綜上所述,我認為,資料庫快照是一個非常新的功能。我也希望在SQL Server2005的所有版本,而不僅僅在企業版和開發版中可以應用這個功能。有一個沒有討論的地方就是我們沒有討論有關對資料庫鏡像使用快照。其實,無論是鏡像還是原資料庫,快照都給了你最好的方法。因為鏡像是離線的,你並不能訪問那些數據,所以說無論是鏡像還是原資料庫,它都給了你最好的方法。花一些時間去理解快照是如何應用於你的環境中的,並且確認你監視著維護快照的影響以及通過快照進行的數據存儲。
4. 系統還原中,快照與備份區別
快照與備份是兩個不同的概念.
先來看快照.
快照,其本質類似於資料庫的照片,也就是在某個特定時間點(創建快照的時間點)給資料庫拍個照放在那兒.但是這個照片是一個新的資料庫,可以應用SQL語句.
快照資料庫里的數據是不變的.創建快照後,系統會對原資料庫的所有數據頁做個標識,如果數據頁在創建快照後被修改,會復制一個數據頁出來,沒有修改的數據頁則不會有快照(原資料庫和快照資料庫共用該數據頁).
從這樣來看,快照存在的時間越長,對系統的壓力會越大(要維護的變化數據頁太多).
一般來說,快照用在資料庫的鏡像機上,因為鏡像機上的資料庫永遠是Restoring狀態,可以在某個特定的時間點生成一個快照,這樣就可以在鏡像機上提供一個可訪問的資料庫,用來為數據倉庫提供數據源比較合適.
再來看備份.
備份,其本質是一個副本.相當於在某個時間點把資料庫里的所有對象內容都COPY一份,放到一個特定的文件里(備份文件,一般是.bak).
這個文件不是一個資料庫,不能直接應用SQL,必須先通過還原的方式還原到一個資料庫(可以是和原資料庫名稱一致,也可以是一個新的資料庫),之後才能訪問裡面的數據.
因為備份的結果是文件,這個文件可以被COPY走,或者寫入磁帶(放到銀行里),從而實現離線容災.
此外,備份是個很復雜的概念,還涉及到資料庫的恢復模型、日誌處理等很復雜的東西,需要自己先系統學習下備份還原的相關概念。
5. linux中的快照技術的原理是什麼
快照就是一種資料庫技術。快照,其本質類似於資料庫的照片,也就是在創建快照的時間點給資料庫拍個照放在那兒。但是這個照片是一個新的資料庫,可以應用SQL語句。快照資料庫里的數據是不變的.創建快照後,系統會對原資料庫的所有數據頁做個標識,如果數據頁在創建快照後被修改,會復制一個數據頁出來,沒有修改的數據頁則不會有快照。因此快照存在的時間越長,要維護的數據頁就越多,系統的壓力也越來越大。所以不能用快照來替代備份,因為備份只是一個bak文件,它不是資料庫,只有通過還原操作才能對它進行查詢。
6. 對於虛擬機來說,快照和備份有什麼異同之處
快照是數據存儲的某一時刻的狀態記錄。
備份是數據存儲的某一時刻的副本。
相同之處:都可以用於儲存。
不同之處:
1、資料庫存不同:備份,其本質是副本。它等同於COPY在某個時間點將資料庫的所有內容的副本放入特定文件(備份文件,通常為.bak)。快照,基本上類似於資料庫的照片,即在特定時間點(創建快照的點)拍攝資料庫的照片。但是這張照片是一個可以應用於SQL語句的新資料庫。
2、訪問方式不同:快照資料庫中的數據保持不變。創建快照後,系統將識別原始資料庫的所有數據頁。如果在創建快照後修改了數據頁,則將復制數據頁,並且將復制未經修改的數據頁。將沒有快照(原始資料庫和快照資料庫共享數據頁)。此文件不是資料庫,不能直接應用SQL,必須先通過還原(可以與原始資料庫名稱或新資料庫相同)還原到資料庫,然後才能訪問其中的數據。
3、狀態不同:備份的結果是一個文件,可以復制或寫入磁帶(在銀行中)以進行離線很難恢復。由於鏡像上的資料庫始終處於「還原」狀態,因此可以在特定時間點生成快照,以便可以在鏡像上提供可訪問的資料庫,以便為數據倉庫提供數據源。