Saturday, October 29, 2011

1 Restore Database (2) Snapshot and Snapshot restore

Database snapshot is the read only database storing ONLY the modify pages from the original database. Internally it use sparse file type, therefore it use less space compare the original database size. After the snapshot being created. Whenever the original database page being modified, sql server copy the original page to the snapshot file.

Create the snapshot. The snapshot can be created at the same server as the source database.

  1. CREATE DATABASE SSAdventureWorks_201110291450 ON
  2. ( NAME = AdventureWorks_Data, FILENAME =
  3. 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQL2008R2\MSSQL\DATA\SSAdventureWorks_data_1800.ss' )
  4. AS SNAPSHOT OF AdventureWorks;
  5. GO

We can query the snapshot just like query regular database.

  1. Select * from SSAdventureWorks_201110291450.HumanResources.Department

image

When access the snapshot, user actual access the source database unless those page has been updated from the source. Form this logical, all the security, file group status will be maintain as is when the time the snapshot is created. The snapshot is the read only copy. hence even user has write permission, user still can not update the table in the snapshot.

If the source database, or file group become unavailable, user may encounter issue accessing the snapshot as well. Therefore we can not treat the snapshot as type of disaster recovery solution.

Copy-on-write operation

We can find the snapshot from the sys.database

  1. SELECTNAME,
  2.       database_id,
  3.       source_database_id,
  4.       is_read_only
  5.   FROMsys.databases where name='SSAdventureWorks_201110291450'

image

Find out the snapshot file size

Form Windows explorer: The size is the max size it can grow. The Size on the disk is the size of the current file.

image

Find current size from DMV sys.dm_io_virtual_file_stats

  1. select size_on_disk_bytes from sys.dm_io_virtual_file_stats(DB_ID(N'SSAdventureWorks_201110291450'),1)

image

Find max size within the database’s sys.database_files or sys.master_files. The size number shows in the size column is in Pages. So it needs to times 8192 to get the actual byte.

  1. use SSAdventureWorks_201110291450;
  2. select size from sys.database_files
  3.  
  4. select size  from sys.master_files where database_id=14

image

21760* 8192 = 178 257 920 bytes

Lets try create table and insert rows in the source database to see how the snapshot file size grow.

  1. -- Create The test Table
  2. use AdventureWorks;
  3. CREATE TABLE TB_1
  4.          (number INT IDENTITY(1,1) NOT NULL,
  5.           name varchar(50) NOT NULL,
  6.           updateTIme datetime default getdate(),       
  7.          )
  8. --- Insert Test data
  9. DECLARE @count INT
  10. SET @count = 0
  11. WHILE (@count < 10000)
  12. BEGIN
  13.    Insert into TB_1 (name)values('SUMMER')
  14.    SET @count = (@count + 1)
  15. END
  16.  
  17. select * from dbo.TB_1
  18. go
  19. select size_on_disk_bytes from sys.dm_io_virtual_file_stats(DB_ID(N'SSAdventureWorks_201110291450'),1)

As you can see when the source database changes, the snapshot file size will start increasing.

image

To restore (revert) the database from snapshot

  1. Only one snapshot can be use to restored. we have to drop all other snapshot first.
  2. Only can be restore to the source database, we can not restore the snapshot to the different database.
  3. If the source database contain FILESTREAM file group, the file group will be marked offline in the snapshot. The snapshot can not be used to revert it to the source database.

Msg 3138, Level 16, State 2, Line 2
The database cannot be reverted because FILESTREAM BLOBs are present.
Msg 3013, Level 16, State 1, Line 2
RESTORE DATABASE is terminating abnormally.

  1. use master;
  2. RESTORE DATABASE AdventureWorks  from
  3. DATABASE_SNAPSHOT = 'SSAdventureWorks_201110291450';
  4. GO

Drop the snapshot

  1. DROP DATABASE SSAdventureWorks2008R2_201110291550

Reference

Database snapshots

http://msdn.microsoft.com/en-us/library/ms175158.aspx

File steam storage

http://msdn.microsoft.com/en-us/library/cc949109(SQL.100).aspx

1 comments:

  1. trăm hai mươi ba mươi người.

    Cường giả Đấu Tôn chính là mấu chốt quyết định thắng bại, cường giả Đấu Tôn thường tạo ra uy lực rất lớn, Đấu Tông không thể so sánh được.

    Nói như vậy bây giờ trong đám môn phái, giao chiến cũng chỉ là cường giả thực lực Đấu Vương và Đấu Hoàng thôi, ở U Minh tông và Luyện Dược sư công hội cường giả Đấu Tôn tới năm sáu chục người, tứ đại thế lực không thể là đối thủ.

    Thân là phó cốc chủ của Hồ Điệp cốc, Nhạc Thành dĩ nhiên cũng không đành lòng nhìn đám đệ tử thực lực thấp của Hồ Điệp cốc chịu chết, cho nên hiện tại Nhạc Thành suy nghĩ bidongtam
    mu moi ra hom nay
    tim phong tro
    http://nhatroso.com/
    nhạc sàn
    tổng đài tư vấn luật
    văn phòng luật hà nội
    tổng đài tư vấn luật
    thành lập công ty trọn gói
    http://we-cooking.com/
    chém gió
    trung tâm tiếng anhện pháp, biện pháp bây giờ chính là kiếm nhiều hơn Đấu Tôn, càng nhiều Đấu Tôn thì thắng bại càng đi vào mấu chốt.

    Bảy tám chục Đấu Tôn xuất hiện ở Luyện Dược sư công hội và U Minh tông khỏi cần đoán Nhạc Thành cũng biết là người của Hắc Ám Thần Điện, chỉ có Hắc Ám Thần Điện mới có thế lực lớn như vậy mà thôi.

    - Không sai, trong thành Mai Lĩnh hiện tại người cũng không ít, nếu như đại chiến thì lần này bất kể ai thắng ai bại đối với chúng tác vẫn là tổn thất thảm trọng.

    Đỗ Kiều Kiều bất đắc dĩ nói.

    ReplyDelete

 

SQL Panda Copyright © 2011 - |- Template created by O Pregador - |- Powered by Blogger Templates