Veritabanları, dağıtım topolojileri ve yedekleme

Azure DevOps Server 2022 | Azure DevOps Server 2020 | Azure DevOps Server 2019

Azure DevOps Server bağlı 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 önce tüm Azure DevOps Server veritabanlarını yedekleyin.

Dağıtımınız SQL Server Reporting Services içeriyorsa, Azure DevOps'un bu bileşenler içinde 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 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ılabileceğine ilişkin örnekler sağlar.

Veritabanı Türü Ürün Gerekli bileşen mi?
Yapılandırma veritabanı Azure DevOps Server Evet
Ambar veritabanı Azure DevOps Server Evet
Proje koleksiyonu veritabanları Azure DevOps Server Evet
Raporlama veritabanları SQL Server Reporting Services No
Çö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 örnekte Reporting Services veya SharePoint Ürünleri yoktur, bu nedenle raporlama, analiz veya SharePoint Ürünleri ile ilişkili veritabanlarını yedeklemeniz gerekmez.

Basit Azure DevOps Server veritabanı yapısı

Alternatif olarak, veritabanları birçok sunucuya ve sunucu grubuna dağıtılabilir. Bu örnek topolojisinde, 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ı

  • SharePoint Ürünleri yönetim veritabanları ve her iki SharePoint web uygulaması için 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.

Karmaşık Azure DevOps Server veritabanı yapısı

Bu örneklerin her ikisinde de sunucuya bağlanan istemcilerin hiçbirini yedeklemeniz gerekmez. Ancak, geri yüklenen dağıtıma yeniden bağlanabilmek için 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. her zaman tek tek veritabanlarını yedeklemek için SQL Server Management Studio kullanabilirsiniz, 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ükleme yaparsanız 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 için mantıksal veri katmanı yapılandırma veritabanı, ambar veritabanı ve dağıtımdaki her proje koleksiyonu için bir veritabanı gibi ç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 veya birden çok sunucuya dağıtılmış olabilir. Fiziksel dağılımlarından bağımsız olarak, veri kaybına karşı yardımcı 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. Bir koleksiyon oluşturduğunuzda, bu koleksiyonun 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 rapor 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 tüm 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üğü yedeklerinin 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 yedeklemelerinizin kopyalarını sunucuların konumundan farklı bir konumda tutmanız gerekir. Bu strateji, kritik verilerin kaybına karşı korunmanıza yardımcı olur. En iyi uygulama olarak, yedekleme medyasının üç kopyasını tutmanız ve en az bir kopyayı denetimli bir ortamda site dışında tutmanız gerekir.

Önemli

Dosyalarınızın doğru yedeklendiğini doğrulamak için düzenli aralıklarla deneme verileri geri yükleme işlemi gerçekleştirin. Deneme amaçlı geri yükleme, yalnızca yazılım doğrulamasında görünmeyen donanım sorunlarını ortaya koyabilir.

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 hükümler 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ümesinin veya yedekleme medyasının (ö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ğinin analizi.

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 alternatif elde eder.

Kullanılabilir Zamanlanmış Yedeklemeler özelliklerini kullanarak veya Azure DevOps dağıtımınızla ilgili veritabanlarını yedeklemek için SQL Server'de 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 yedeklerinin 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ı kullanmayı 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ın tamamını yedeklediğiniz sırada olduğu gibi 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ştirilen 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ında değişiklik yedekleri 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 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 almaya yetecek kadar 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 yedeklemelerden daha sık oluşturabilirsiniz ve bu da veri kaybetme riskinizi azaltır. Ancak, bazen işlem günlüğü yedeklemesi tam yedeklemeden daha büyüktür. Örneğin, yüksek işlem oranı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 Hata 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 bozuk bir veritabanından bir kuyruk günlüğü yedeklemesi alınır. İş kaybını önlemek için bir hatadan sonra bir 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 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 veAzure 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 portal sitelerini projeler için 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ı belirlemek için aşağıdaki tabloyu kullanabilirsiniz. Daha önce belirtildiği gibi, tüm dağıtımlarda bu veritabanları yoktur. Örneğin, Reporting Services ile Azure DevOps Server 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 olmaz. Ayrıca, Azure DevOps Server tarafından kullanılan 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ı Description
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 projelerin tüm verilerini 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 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 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'den ayrı bir sunucuda yüklüyse, bu veritabanı Azure DevOps Server için veri katmanı sunucusunda bulunmayabilir. Bu durumda, Azure DevOps Server 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'den ayrı bir sunucuda yüklüyse, bu veritabanı Azure DevOps Server için veri katmanı sunucusunda bulunmayabilir. Bu durumda, Azure DevOps Server 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.