Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
SQL Server veritabanı anlık görüntüsü oluşturmanın tek yolu Transact-SQL kullanmaktır. SQL Server Management Studio, veritabanı anlık görüntülerinin oluşturulmasını desteklemez.
Önkoşullar
Herhangi bir kurtarma modelini kullanabilen kaynak veritabanı aşağıdaki önkoşulları karşılamalıdır:
Sunucu örneği, veritabanı anlık görüntüsünü destekleyen bir SQL Server sürümü çalıştırıyor olmalıdır. SQL Server'da veritabanı anlık görüntüleri desteği hakkında bilgi için bkz. SQL Server 2022'nin sürümleri ve desteklenen özellikleri.
Kaynak veritabanı, bir veritabanı yansıtma oturumu içindeki bir yansıtma veritabanı olmadığı sürece çevrimiçi olmalıdır.
Yansıtma veritabanında veritabanı anlık görüntüsü oluşturmak için veritabanının eşitlenmiş yansıtma durumunda olması gerekir.
Kaynak veritabanı ölçeklenebilir paylaşılan veritabanı olarak yapılandırılamaz.
SQL Server 2019'un (15.x) öncesinde kaynak veritabanı bir
MEMORY_OPTIMIZED_DATAdosya grubu içeremiyordu. SQL Server 2019'da (15.x) bellek içi veritabanı anlık görüntüleri desteği eklendi.
Önemli
Diğer önemli noktalar hakkında daha fazla bilgi için bkz. Veritabanı Anlık Görüntüleri (SQL Server).
Recommendations
Bu bölümde aşağıdaki en iyi yöntemler ele alınmaktadır:
- En iyi yöntem: veritabanı anlık görüntülerini adlandırma
- En iyi yöntem: veritabanı anlık görüntü sayısını sınırlama
- En iyi yöntem: veritabanı anlık görüntüsüne istemci bağlantıları
En iyi yöntem: veritabanı anlık görüntülerini adlandırma
Anlık görüntüleri oluşturmadan önce, bunları nasıl adlandıracaklarını göz önünde bulundurmanız önemlidir. Her veritabanı anlık görüntüsü benzersiz bir veritabanı adı gerektirir. Yönetim kolaylığı için, anlık görüntünün adı veritabanını tanımlayan bilgileri içerebilir, örneğin:
Kaynak veritabanının adı.
Yeni adın anlık görüntü için olduğunu gösteren bir gösterge.
Anlık görüntünün oluşturulma tarihi ve saati, bir sıra numarası veya belirli bir veritabanındaki sıralı anlık görüntüleri ayırt etmek için günün saati gibi başka bilgiler.
Örneğin, AdventureWorks2025 veritabanı için bir dizi anlık görüntü düşünün. 24 saatlik bir saat temelinde 06:00 ile 18:00 arasında 6 saatlik aralıklarla üç günlük anlık görüntü oluşturulur. Her günlük anlık görüntü, silinmeden önce 24 saat boyunca tutulur ve aynı isimdeki yeni bir anlık görüntüyle değiştirilir. Her anlık görüntü adı saati gösterir, ancak günü göstermez.
AdventureWorks_snapshot_0600
AdventureWorks_snapshot_1200
AdventureWorks_snapshot_1800
Alternatif olarak, bu günlük anlık görüntülerin oluşturma süresi günden güne değişirse, daha az kesin bir adlandırma kuralı tercih edilebilir, örneğin:
AdventureWorks_snapshot_morning
AdventureWorks_snapshot_noon
AdventureWorks_snapshot_evening
En iyi yöntem: veritabanı anlık görüntü sayısını sınırlama
Zaman içinde bir dizi anlık görüntü oluşturmak, kaynak veritabanının sıralı anlık görüntülerini yakalar. Her anlık görüntü açıkça silinene kadar kalır. Özgün sayfalar güncelleştirildikçe her anlık görüntü büyümeye devam edeceğinden, yeni bir anlık görüntü oluşturduktan sonra eski bir anlık görüntüyü silerek disk alanından tasarruf etmek isteyebilirsiniz.
Uyarı
Veritabanı anlık görüntüsüne geri dönmek için bu veritabanındaki diğer anlık görüntüleri silmeniz gerekir.
En iyi yöntem: veritabanı anlık görüntüsüne istemci bağlantıları
Bir veritabanı anlık görüntüsünü kullanmak için istemcilerin bu anlık görüntüyü nerede bulacağını bilmesi gerekir. Bir veritabanı anlık görüntüsü oluşturulurken veya silinirken, kullanıcılar başka bir veritabanı anlık görüntüsünden okuyabilir. Ancak, mevcut anlık görüntüye yeni bir anlık görüntü eklediğinizde istemcileri yeni anlık görüntüye yeniden yönlendirmeniz gerekir. Kullanıcılar SQL Server Management Studio veya Azure Data Studio ile veritabanı anlık görüntüsüne el ile bağlanabilir. Ancak, bir üretim ortamını desteklemek için rapor yazma istemcilerini saydam bir şekilde veritabanının en son veritabanı anlık görüntüsüne yönlendiren bir programlı çözüm oluşturmanız gerekir.
Permissions
Veritabanı oluşturabilen tüm kullanıcılar veritabanı anlık görüntüsü oluşturabilir; ancak yansıtma veritabanının anlık görüntüsünü oluşturmak için sysadmin sabit sunucu rolünün üyesi olmanız gerekir.
Transact-SQL kullanarak veritabanı anlık görüntüsü oluşturma
Kaynak veritabanının geçerli boyutuna bağlı olarak, veritabanı anlık görüntüsünü tutmak için yeterli disk alanınız olduğundan emin olun. Veritabanı anlık görüntüsünün en büyük boyutu, anlık görüntü oluşturma sırasında kaynak veritabanının boyutudur. Daha fazla bilgi için, Veritabanı Anlık Görüntüsünün Seyrek Dosyasının Boyutunu Görüntüle (Transact-SQL) bölümüne bakınız.
AS SNAPSHOT OFyan tümcesini kullanarak dosyalar üzerinde birCREATE DATABASEemir oluşturun. Anlık görüntü oluşturmak için kaynak veritabanının her veritabanı dosyasının mantıksal adının belirtilmesi gerekir. Söz dizimi aşağıdaki gibidir:CREATE DATABASE database_snapshot_name ON ( NAME = logical_file_name , FILENAME = 'os_file_name' ) [ , ...n ] AS SNAPSHOT OF source_database_name [;]Bağımsız değişkenler aşağıdaki gibidir:
Argument Description database_snapshot_nameVeritabanını geri döndürmek istediğiniz anlık görüntünün adı. logical_file_nameKaynak veritabanının dosyaya başvururken SQL Server'da kullandığı mantıksal ad. os_file_nameDosyayı oluştururken işletim sistemi tarafından kullanılan yol ve dosya adı. source_database_nameKaynak veritabanı. Bu söz diziminin tam açıklaması için bkz. CREATE DATABASE (SQL Server Transact-SQL).
Uyarı
Veritabanı anlık görüntüsü oluşturduğunuzda,
CREATE DATABASEifadesinde günlük dosyaları, çevrimdışı dosyalar, geri yükleme dosyaları ve geçersiz dosyalara izin verilmez.
Örnekler
.ss Bu örneklerde kullanılan uzantı kolaylık sağlamak içindir ve gerekli değildir. Birden çok dosya içeren veritabanlarında, söz dizimine uygun olarak tüm dosyaların belirtilmesi gerekir. Dosya grupları belirtilmemiş.
A. AdventureWorks veritabanında anlık görüntü oluşturma
Bu örnek, AdventureWorks veritabanında bir veritabanı anlık görüntüsü oluşturur. Anlık görüntü adı, AdventureWorks_dbss_1800ve seyrek dosyasının dosya adı, AdventureWorks_data_1800.ss18:00 (1800 saat) oluşturma zamanını gösterir.
CREATE DATABASE AdventureWorks_dbss1800 ON (
NAME = AdventureWorks,
FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\Data\AdventureWorks_data_1800.ss'
) AS SNAPSHOT OF AdventureWorks;
GO
B. Sales veritabanında anlık görüntü oluşturma
Bu örnek, sales_snapshot1200, Sales veritabanında bir anlık görüntü oluşturur. Bu, CREATE DATABASE içinde dosya gruplarına sahip bir veritabanı oluşturma örneğindeki aynı örnek veritabanıdır.
--Create sales_snapshot1200 as snapshot of the Sales database:
CREATE DATABASE sales_snapshot1200 ON (
NAME = SPri1_dat,
FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\data\SPri1dat_1200.ss'
),
(
NAME = SPri2_dat,
FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\data\SPri2dt_1200.ss'
),
(
NAME = SGrp1Fi1_dat,
FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\mssql\data\SG1Fi1dt_1200.ss'
),
(
NAME = SGrp1Fi2_dat,
FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\data\SG1Fi2dt_1200.ss'
),
(
NAME = SGrp2Fi1_dat,
FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\data\SG2Fi1dt_1200.ss'
),
(
NAME = SGrp2Fi2_dat,
FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\data\SG2Fi2dt_1200.ss'
) AS SNAPSHOT OF Sales;
GO