Veritabanları, dağıtım topolojileri ve yedekleme
Azure DevOps Server 2022 | Azure DevOps Server 2020 | Azure DevOps Server 2019
Azure DevOps Server'ın bağımlı olduğu veritabanları için düzenli bir yedekleme zamanlaması oluşturarak dağıtımınızı veri kaybına karşı korumaya yardımcı olabilirsiniz. Azure DevOps Server dağıtımınızı tamamen geri yüklemek için öncelikle tüm Azure DevOps Server veritabanlarını yedekleyin.
Dağıtımınız SQL Server Reporting Services içeriyorsa, Azure DevOps'un bu bileşenlerde kullandığı veritabanlarını da yedeklemeniz gerekir. Eşitleme hatalarını veya veri uyuşmazlığı hatalarını önlemek için tüm yedeklemeleri aynı zaman damgasına eşitlemeniz gerekir. Eşitlemenin başarılı olmasını sağlamanın en kolay yolu işaretli işlemleri kullanmaktır. Her veritabanındaki ilgili işlemleri düzenli olarak işaretleyerek veritabanlarında bir dizi ortak kurtarma noktası oluşturursunuz. Raporlama kullanan tek sunuculu dağıtımı yedeklemeye yönelik adım adım yönergeler için bkz . Yedekleme zamanlaması ve planı oluşturma.
Veritabanlarını yedekleme
Veritabanı yedeklemeleri oluşturarak Azure DevOps dağıtımınızı veri kaybına karşı koruyun. Aşağıdaki tablo ve bunlara eşlik eden çizimler hangi veritabanlarının yedeklenebileceğini gösterir ve bu veritabanlarının bir dağıtımda fiziksel olarak nasıl dağıtılacağına ilişkin örnekler sağlar.
Veritabanı Türü | Ürün | Gerekli bileşen mi? |
---|---|---|
Yapılandırma veritabanı | Azure DevOps Server | Yes |
Ambar veritabanı | Azure DevOps Server | Yes |
Proje koleksiyonu veritabanları | Azure DevOps Server | Yes |
Raporlama veritabanları | SQL Server Reporting Services | Hayır |
Çözümleme veritabanları | SQL Server Analysis Services | Hayır |
Dağıtım topolojileri
Dağıtım yapılandırmanıza bağlı olarak, yedekleme gerektiren tüm veritabanları bu örnek topolojide olduğu gibi aynı fiziksel sunucuda olabilir.
Not
Bu örnek Reporting Services veya SharePoint Ürünlerini içermez, bu nedenle raporlama, analiz veya SharePoint Ürünleri ile ilişkili veritabanlarını yedeklemeniz gerekmez.
Alternatif olarak, veritabanları birçok sunucu ve sunucu grubu arasında dağıtılabilir. Bu örnek topolojide, altı sunucu veya sunucu grubu arasında ölçeklendirilen aşağıdaki veritabanlarını yedeklemeniz gerekir:
yapılandırma veritabanı
ambar veritabanı
SQL Server kümesinde bulunan proje koleksiyonu veritabanları
SQL Server çalıştıran tek başına sunucuda bulunan koleksiyon veritabanı
Reporting Services çalıştıran sunucuda bulunan veritabanları
Analysis Services çalıştıran sunucuda bulunan veritabanı
Her iki SharePoint web uygulaması için SharePoint Ürünleri yönetim veritabanları ve site koleksiyonu veritabanları
SharePoint veritabanlarınız birden çok sunucu arasında ölçeklendirildiyse, bunları yedeklemek için Zamanlanmış Yedeklemeler özelliğini kullanamazsınız. Bu veritabanları için yedeklemeleri el ile yapılandırmanız ve bu yedeklemelerin Azure DevOps Server veritabanı yedeklemeleriyle eşitlenmiş olduğundan emin olmanız gerekir. Daha fazla bilgi için bkz. Azure DevOps Server'ı el ile yedekleme.
Bu örneklerin her ikisinde de sunucuya bağlanan istemcileri yedeklemeniz gerekmez. Ancak, geri yüklenen dağıtıma yeniden bağlanabilmek için önce istemci bilgisayarlardaki Azure DevOps Server önbelleklerini el ile temizlemeniz gerekebilir.
Yedeklene veritabanları
Aşağıdaki listede, dağıtım kaynaklarınıza bağlı olarak yedeklemeniz gerekenlerle ilgili ek ayrıntılar sağlanır.
Önemli
Aşağıdaki listede yer alan tüm veritabanları SQL Server veritabanlarıdır. Sql Server Management Studio'yu kullanarak tek tek veritabanlarını istediğiniz zaman yedekleyebilirsiniz, ancak mümkün olduğunda bu tür tek tek yedeklemeleri kullanmaktan kaçınmalısınız. Azure DevOps'un kullandığı veritabanlarının tümü ilişkili olduğundan tek tek yedeklemelerden geri yüklerseniz beklenmeyen sonuçlarla karşılaşabilirsiniz. Yalnızca bir veritabanını yedeklerseniz, bu veritabanındaki veriler diğer veritabanlarındaki verilerle eşitlenmeyebilir.
- Azure DevOps Server veritabanları - Azure DevOps Server'ın mantıksal veri katmanı yapılandırma veritabanı, ambar veritabanı ve dağıtımdaki her proje koleksiyonu için bir veritabanı dahil olmak üzere çeşitli SQL Server veritabanlarını içerir. Bu veritabanlarının tümü aynı sunucuda, aynı SQL Server dağıtımındaki birkaç örneğe dağıtılmış veya birden çok sunucuya dağıtılmış olabilir. Fiziksel dağılımlarından bağımsız olarak, veri kaybına karşı emin olmak için tüm veritabanlarını aynı zaman damgasına yedeklemeniz gerekir. Belirli zamanlarda veya aralıklarda çalışan bakım planlarını kullanarak veritabanı yedeklemelerini el ile veya otomatik olarak gerçekleştirebilirsiniz.
Önemli
Azure DevOps veritabanlarının listesi statik değildir. Her koleksiyon oluşturduğunuzda yeni bir veritabanı oluşturulur. Koleksiyon oluştururken, bu koleksiyon için veritabanını bakım planınıza eklediğinizden emin olun.
- Reporting Services ve Analysis Services veritabanları - Dağıtımınız Azure DevOps Server için raporlar oluşturmak için SQL Server Reporting Services veya SQL Server Analysis Services kullanıyorsa, raporlama ve analiz veritabanlarını yedeklemeniz gerekir. Ancak, geri yüklemeden sonra ambar gibi bazı veritabanlarını yeniden oluşturmanız gerekir.
- Rapor sunucusu için şifreleme anahtarı - Rapor sunucusunda yedeklemeniz gereken bir şifreleme anahtarı vardır. Bu anahtar, rapor sunucusu için veritabanında depolanan hassas bilgileri korur. Reporting Services Yapılandırma aracını veya komut satırı aracını kullanarak bu anahtarı el ile yedekleyebilirsiniz.
Yedeklemeler için gelişmiş hazırlık
Azure DevOps'u dağıtırken, oluşturduğunuz hesapların ve belirttiğiniz bilgisayar adlarının, parolaların ve kurulum seçeneklerinin kaydını tutmanız gerekir. Ayrıca tüm kurtarma malzemelerinin, belgelerin, veritabanı ve işlem günlüğü yedeklemelerinin bir kopyasını güvenli bir konumda tutmanız gerekir. Yangın veya deprem gibi bir olağanüstü durumla mücadele etmek için sunucu yedeklerinizin yinelemelerini sunucuların konumundan farklı bir konumda tutmanız gerekir. Bu strateji, kritik veri kaybına karşı korunmanıza yardımcı olur. En iyi yöntem olarak, yedekleme medyasının üç kopyasını ve en az bir kopyayı denetimli bir ortamda site dışında tutmalısınız.
Önemli
Dosyalarınızın doğru yedeklendiğini doğrulamak için düzenli aralıklarla deneme verilerini geri yükleme gerçekleştirin. Deneme amaçlı geri yükleme, yalnızca yazılım doğrulamasıyla görünmeyen donanım sorunlarını ortaya çıkarabilir.
Veritabanını yedekleyip geri yüklerken, verileri bir ağ adresiyle (örneğin, ağ sürücüsü olarak paylaşılan bantlar ve diskler) medyaya yedeklemeniz gerekir. Yedekleme planınız aşağıdaki taktikler gibi medya yönetimine yönelik sağlamalar içermelidir:
- Yedekleme kümelerini depolamak ve geri dönüştürmek için bir izleme ve yönetim planı.
- Yedekleme medyası üzerine yazmak için bir zamanlama.
- Çok sunuculu bir ortamda, merkezi veya dağıtılmış yedeklemeleri kullanma kararı.
- Medyanın yararlı ömrünü izlemenin bir yolu.
- Yedekleme kümesi veya yedekleme medyası (örneğin, bir bant) kaybının etkilerini en aza indirme yordamı.
- Yedekleme kümelerini yerinde veya yerinde depolama kararı ve bu kararın kurtarma süresini nasıl etkileyebileceğine ilişkin bir analiz.
Azure DevOps verileri SQL Server veritabanlarında depolandığından, Azure DevOps istemcilerinin yüklü olduğu bilgisayarları yedeklemeniz gerekmez. Bu bilgisayarları içeren bir medya hatası veya olağanüstü durum oluşursa, istemci yazılımını yeniden yükleyebilir ve sunucuya yeniden bağlanabilirsiniz. İstemci yazılımını yeniden yükleyerek, kullanıcılarınız bir istemci bilgisayarı yedekten geri yüklemeye daha temiz ve daha güvenilir bir alternatife sahip olur.
Kullanılabilir Zamanlanmış Yedeklemeler özelliklerini kullanarak veya Azure DevOps dağıtımınızla ilgili veritabanlarını yedeklemek için SQL Server'da el ile bakım planları oluşturarak bir sunucuyu yedekleyebilirsiniz. Azure DevOps veritabanları birbiriyle ilişkili olarak çalışır ve el ile bir plan oluşturursanız bunları aynı anda yedeklemeli ve geri yüklemelisiniz. Veritabanlarını yedekleme stratejileri hakkında daha fazla bilgi için bkz . SQL Server Veritabanlarını yedekleme ve geri yükleme.
Yedekleme türleri
Kullanılabilir yedekleme türlerini anlamak, dağıtımınızı yedeklemek için en iyi seçenekleri belirlemenize yardımcı olur. Örneğin, büyük bir dağıtımla çalışıyorsanız ve sınırlı depolama kaynaklarını verimli bir şekilde kullanırken veri kaybına karşı koruma sağlamak istiyorsanız, değişiklik yedeklemelerinin yanı sıra tam veri yedeklemeleri de yapılandırabilirsiniz. SQL Server Always On kullanıyorsanız, ikincil veritabanınızın yedeklerini alabilirsiniz. Yedekleme sıkıştırmayı veya yedeklemeleri birden çok dosyaya bölmeyi de deneyebilirsiniz. Yedekleme seçeneklerinizin kısa açıklamaları şunlardır:
Tam veri yedeklemeleri (veritabanları)
Dağıtımınızın kurtarılabilirliği için tam veritabanı yedeklemesi gereklidir. Tam yedekleme, tam yedeklemeyi kurtarabilmeniz için işlem günlüğünün bir bölümünü içerir. Tam yedeklemeler, veritabanını yedeklediğiniz sırada var olan veritabanının tamamını temsil ettikleri için kendi içinde yer alır. Daha fazla bilgi için bkz . Tam veritabanı yedeklemeleri.
Değişiklik verileri yedeklemeleri (veritabanları)
Değişiklik veritabanı yedeklemesi yalnızca değişiklik tabanı olarak adlandırılan son tam veritabanı yedeklemesinin ardından değişen verileri kaydeder. Değişiklik veritabanı yedeklemeleri, tam veritabanı yedeklemelerinden daha küçük ve daha hızlıdır. Bu seçenek, artan karmaşıklık maliyetiyle yedekleme süresinden tasarruf sağlar. Büyük veritabanları için değişiklik yedeklemeleri veritabanı yedeklemelerinden daha kısa aralıklarla gerçekleşebilir ve bu da iş kaybına maruz kalma süresini azaltır. Daha fazla bilgi için bkz . Değişiklik veritabanı yedeklemeleri.
Ayrıca işlem günlüklerinizi düzenli olarak yedeklemeniz gerekir. Bu yedeklemeler, tam veritabanı yedekleme modelini kullandığınızda verileri kurtarmak için gereklidir. İşlem günlüklerini yedeklerseniz veritabanını hata noktasına veya zamanın önceki bir noktasına kurtarabilirsiniz.
İşlem günlüğü yedeklemeleri
İşlem günlüğü, her değişikliği gerçekleştiren işleme ek olarak bir veritabanında gerçekleşen tüm değişikliklerin seri kaydıdır. İşlem günlüğü her işlemin başlangıcını, verilerde yapılan değişiklikleri ve gerekirse bu işlem sırasında yapılan değişiklikleri geri almak için yeterli bilgiyi kaydeder. Günlüğe kaydedilen işlemler veritabanında gerçekleştikçe günlük sürekli olarak büyür.
İşlem günlüklerini yedekleyerek veritabanını zamanın önceki bir noktasına kurtarabilirsiniz. Örneğin, veritabanını istenmeyen veriler girilmeden veya hata oluşmadan önceki bir noktaya geri yükleyebilirsiniz. Veritabanı yedeklemelerinin yanı sıra işlem günlüğü yedeklemeleri de kurtarma stratejinizin bir parçası olmalıdır. Daha fazla bilgi için bkz . İşlem Günlüğü Yedeklemeleri (SQL Server).
İşlem günlüğü yedeklemeleri genellikle tam yedeklemelerden daha az kaynak kullanır. Bu nedenle, işlem günlüğü yedeklemelerini tam yedeklemelere göre daha sık oluşturabilirsiniz ve bu da veri kaybetme riskinizi azaltır. Ancak, bazen bir işlem günlüğü yedeklemesi tam yedeklemeden daha büyüktür. Örneğin, yüksek işlem hızına sahip bir veritabanı işlem günlüğünün hızla büyümesine neden olur. Bu durumda, işlem günlüğü yedeklemelerini daha sık oluşturmanız gerekir. Daha fazla bilgi için bkz . Tam işlem günlüğü sorunlarını giderme (SQL Server Hatası 9002).
Aşağıdaki işlem günlüğü yedekleme türlerini gerçekleştirebilirsiniz:
- Saf günlük yedeklemesi, toplu değişiklik olmadan yalnızca bir aralık için işlem günlüğü kayıtlarını içerir.
- Toplu günlük yedeklemesi, toplu işlemler tarafından değiştirilen günlük ve veri sayfalarını içerir. Belirli bir noktaya kurtarma işlemine izin verilmez.
- Henüz yedeklenmemiş günlük kayıtlarını yakalamak için büyük olasılıkla zarar görmüş bir veritabanından bir kuyruk günlüğü yedeklemesi alınır. İş kaybını önlemek için bir hatadan sonra kuyruk günlüğü yedeklemesi alınır ve saf günlük veya toplu günlük verileri içerebilir.
Verilerin eşitlenmesi Azure DevOps Server'ın başarıyla geri yüklenmesi için kritik öneme sahiptir. Yedeklemeleri el ile yapılandırıyorsanız, yedekleme stratejinizin bir parçası olarak işaretli işlemleri kullanmanız gerekir. Daha fazla bilgi için bkz . Yedekleme zamanlaması ve planı oluşturma ve Azure DevOps Server'ı el ile yedekleme.
Uygulama katmanı hizmet yedeklemeleri
Mantıksal uygulama katmanı için gereken tek yedekleme, Reporting Services için şifreleme anahtarıdır. Dağıtımınızı yedeklemek için Zamanlanmış Yedeklemeler özelliğini kullanırsanız, bu anahtar planın bir parçası olarak sizin için yedeklenir. Proje portalı olarak kullanılan web sitelerini yedeklemeniz gerektiğini varsayabilirsiniz.
Bir uygulama katmanını veri katmanından daha kolay yedekleyebilirsiniz ancak yine de uygulama katmanını geri yüklemek için birkaç adım vardır. Azure DevOps Server için başka bir uygulama katmanı yüklemeniz, proje koleksiyonlarını yeni uygulama katmanını kullanacak şekilde yeniden yönlendirmeniz ve projeler için portal sitelerini yeniden yönlendirmeniz gerekir.
Varsayılan veritabanı adları
Veritabanlarınızın adlarını özelleştirmezseniz, Azure DevOps Server dağıtımınızda kullanılan veritabanlarını tanımlamak için aşağıdaki tabloyu kullanabilirsiniz. Daha önce belirtildiği gibi, tüm dağıtımlarda bu veritabanları yoktur. Örneğin, Azure DevOps Server'ı Reporting Services ile yapılandırmadıysanız, ReportServer veya ReportServerTempDB veritabanlarına sahip olmazsınız. Benzer şekilde, Azure DevOps Server'ı Laboratuvar Yönetimi'ni destekleyecek şekilde yapılandırmadığınız sürece System Center Virtual Machine Manager (SCVMM), VirtualManagerDB için veritabanınız olmayacaktır. Ayrıca, Azure DevOps Server'ın kullandığı veritabanları birden fazla SQL Server örneğine veya birden fazla sunucuya dağıtılabilir.
Not
Varsayılan olarak, TFS_ ön eki, Azure DevOps Server'ı yüklediğinizde veya çalışırken otomatik olarak oluşturulan veritabanlarının adlarına eklenir.
Veritabanı | Açıklama |
---|---|
TFS_Configuration | Azure DevOps Server yapılandırma veritabanı, dağıtımın katalog, sunucu adları ve yapılandırma verilerini içerir. Bu veritabanının adı, TFS_ ile Yapılandırma arasında Azure DevOps Server'ı yükleyen kişinin kullanıcı adı gibi ek karakterler içerebilir. Örneğin, veritabanının adı TFS_UserNameConfiguration |
TFS_Warehouse | Ambar veritabanı, Reporting Services tarafından kullanılan ambarı oluşturmaya yönelik verileri içerir. Bu veritabanının adı, TFS_ ile Ambar arasında Azure DevOps Server'ı yükleyen kişinin kullanıcı adı gibi ek karakterler içerebilir. Örneğin, veritabanının adı TFS_UserNameWarehouse olabilir. |
TFS_CollectionName | Bir proje koleksiyonunun veritabanı, bu koleksiyondaki projelere ilişkin tüm verileri içerir. Bu veriler kaynak kodu, derleme yapılandırmaları ve laboratuvar yönetimi yapılandırmalarını içerir. Koleksiyon veritabanı sayısı, koleksiyon sayısına eşit olacaktır. Örneğin, dağıtımınızda üç koleksiyon varsa, bu üç koleksiyon veritabanını yedeklemeniz gerekir. Her veritabanının adı, TFS_ ile CollectionName arasında koleksiyonu oluşturan kişinin kullanıcı adı gibi ek karakterler içerebilir. Örneğin, koleksiyon veritabanının adı TFS_UserNameCollectionName olabilir. |
TFS_Analysis | SQL Server Analysis Services veritabanı, Azure DevOps Server dağıtımınız için veri kaynaklarını ve küpleri içerir. Bu veritabanının adı TFS_ ile Analysis arasında Analysis Services'i yükleyen kişinin kullanıcı adı gibi ek karakterler içerebilir. Örneğin, veritabanının adı TFS_UserNameAnalysis olabilir. Not: Bu veritabanını yedekleyebilirsiniz, ancak geri yüklenen TFS_Warehouse veritabanından ambarı yeniden oluşturmanız gerekir. |
ReportServer | Reporting Services veritabanı, Azure DevOps Server dağıtımınıza ilişkin raporları ve rapor ayarlarını içerir. Not: Reporting Services, Azure DevOps Server'dan ayrı bir sunucuda yüklüyse, bu veritabanı Azure DevOps Server için veri katmanı sunucusunda bulunmayabilir. Bu durumda, Azure DevOps Server'dan ayrı olarak yapılandırmanız, yedeklemeniz ve geri yüklemeniz gerekir. Eşitleme hatalarını önlemek için veritabanlarının bakımını eşitlemeniz gerekir. |
ReportServerTempDB | Reporting Services için geçici veritabanı, belirli raporları çalıştırdığınızda bilgileri geçici olarak depolar. Not: Reporting Services, Azure DevOps Server'dan ayrı bir sunucuda yüklüyse, bu veritabanı Azure DevOps Server için veri katmanı sunucusunda bulunmayabilir. Bu durumda, Azure DevOps Server'dan ayrı olarak yapılandırmanız, yedeklemeniz ve geri yüklemeniz gerekir. Ancak, eşitleme hatalarını önlemek için veritabanlarının bakımını eşitlemeniz gerekir. |
VirtualManagerDB | SCVMM yönetim veritabanı, SCVMM Yönetici Konsolu'nda görüntüleyebileceğiniz sanal makineler, sanal makine konakları, sanal makine kitaplığı sunucuları ve bunların özellikleri gibi bilgileri içerir. Not: SCVMM, Azure DevOps Server'dan ayrı bir sunucuda yüklüyse, bu veritabanı Azure DevOps Server için veri katmanı sunucusunda bulunmayabilir. Bu durumda, Azure DevOps Server'dan ayrı olarak yapılandırmanız, yedeklemeniz ve geri yüklemeniz gerekir. Ancak, eşitleme hatalarını önlemek için işaretli işlemleri kullanmanız ve veritabanlarının bakımını eşitlemeniz gerekir. |