Share via


çoğaltma sistem yordamlar, kavramlar saklı...

InSQL Servertüm kullanıcı tarafından yapılandırılabilen bir çoğaltma topolojisi işlevleri programlı erişim sağlanan sistem saklı yordamları.Saklı yordamları kullanarak tek tek yürütülebilecek sıradaSQL Server Management Studioveya sqlcmd komut satırı yardımcı programı, bunu yazmak yararlıTransact-SQLkomut dosyaları, yürütülen gerçekleştirilecek bir mantıksal sıra çoğaltma görevler.

Çoğaltma görevler için komut dosyası kullanan kullanan dosyası kullanan, aşağıdaki yararları sağlar:

  • Dağıtmak üzere kullanılan adımları kalıcı bir kopyasını tutar. çoğaltma topolojisi.

  • Birden çok aboneleri yapılandırmak için tek bir komut dosyası kullanır.

  • Hızlı bir şekilde educates yeni veritabanı yöneticileri sağlayarak bunları değerlendirme, anlamak, değiştirme veya sorun giderme kodu.

    Security noteSecurity Note:

    Komut dosyası kaynağı güvenlik açığı olabilir; kullanıcı bilgi veya müdahalesi olmadan sistem işlevleri çağırabilir ve güvenlik kimlik bilgileri düz metin içerebilir.Güvenlik sorunları için komut dosyaları, onları önce gözden geçirin.

Çoğaltma komut dosyaları oluşturma

Çoğaltma, açısından bir komut dosyası ise bir dizi bir veya daha fazlaTransact-SQLifadeler burada her deyimini yürütür çoğaltma saklı bir yordam.Sqlcmd yardımcı programını kullanarak çalıştırabileceğiniz genelde .sql dosya uzantısına sahip, metin dosyaları, komut dosyalarıdır.Bir komut dosyası çalıştırdığınızda, hizmet programı dosyada depolanmış SQL deyimi yürütür.Benzer şekilde, bir komut dosyası bir sorgu nesnesi olarak depolanabilir birSQL Server Management StudioProje.

Çoğaltma komut dosyaları aşağıdaki yollarla oluşturulabilir:

Çoğaltma komut dosyalarını el ile oluşturduğunuzda, aşağıdaki konuları göz önünde bulundurun:

  • Transact-SQL komut dosyası bir veya birden çok toplu işlem vardır.GO komutu bir toplu iş sonuna bildirir., BirTransact-SQLkomut dosyası komutları GO yok, tek toplu iş iş. yürütüldüğünde

  • Birden çok çoğaltma çalıştırmak saklı yordamlar ilk yordamından sonra tek toplu iş iş toplu iş iş sonraki yordamlarda gerekir önünde yürütmek anahtar sözcüğü.

  • Önce toplu iş iş olacak tüm saklı yordamlar bir toplu iş iş iş derleme gerekir yürütmek.Ancak, toplu iş iş derlenmiş ve yürütme planı oluşturulmuş bir çalışma zamanı hatası olabilir veya ortaya çıkabilir.

  • Çoğaltmayı yapılandırmak için komut dosyaları oluşturma, güvenlik kimlik bilgileri komut dosyasında saklamak önlemek için Windows kimlik doğrulaması kullanmanız gerekir.kimlik bilgileri bilgilerini bir komut dosyasında depolamak, dosyanın, yetkisiz erişimi engellemek için güvenli olmalıdır.

Çoğaltma komut dosyası örneği

Aşağıdaki komut dosyası için kurulum yayımlamayı ve dağıtımı bir sunucuda çalıştırılabilir.

Bu komut dosyasını daha sonra yerel olarak kaydedilmesiinstdistpub.sql, bunun çalıştırmak veya gerektiğinde yeniden.

Önceki komut dosyası kullanan kullanan dosyası kullanan içerir.sqlCmdSQL ServerBooks Online., çoğaltma kod örnekleri pek çok kullanılan değişkenler, komut dosyası kullanan kullanan dosyası kullanan oluşturma komut dosyası kullanan kullanan dosyası kullanan değişkenleri kullanarak tanımlanır$(MyVariable)sözdizimi.Değişkenler için değerleri geçirilen komut satırında veya, bir komut dosyasıSQL Server Management Studio.Bu konudaki "Executing çoğaltma KomutDosyaları." bir sonraki bölüm daha fazla bilgi için bkz:

Çoğaltma komut dosyalarını çalıştırma

Bir kez oluşturduktan çoğaltma komut dosyası aşağıdaki yollardan biriyle çalıştırılabilir:

SQL Server Management Studio'da bir SQL sorgusu dosyası oluşturma

Bir çoğaltmaTransact-SQLkomut dosyası SQL Query dosyası olarak oluşturulabilir birSQL Server Management StudioProje.Komut dosyası yazıldıktan sonra bu sorgu dosyasını veritabanına bir bağlantı kurulabilir ve komut dosyası çalıştırılır.Oluşturma hakkında daha fazla bilgi içinTransact-SQLkomut dosyaları kullanarakSQL Server Management StudioBkz:Yazma, çözümleme ve SQL Server Management Studio'yu ile komut dosyalarını düzenleme.

Değişkenler, komut dosyası kullanan kullanan dosyası kullanan içeren komut dosyası kullanan kullanan kullanan dosyası kullanan kullanmaSQL Server Management Studiogereken olarak çalışansqlCmd mode.InsqlCmd modu, Query Editor sqlcmd:setvar için bir değişken değeri için kullanıldığı gibi özel ilave sözdizimini kabul eder. Daha fazla bilgisqlCmd mode, see SQLCMD KomutDosyaları Query Düzenleyicisi ile düzenleme.Aşağıdaki komut dosyası:setvariçin bir değer sağlamak için kullanılan$(DistPubServer)değişken.

:setvar DistPubServer N'MyPublisherAndDistributor';

-- Install the Distributor and the distribution database.
DECLARE @distributor AS sysname;
DECLARE @distributionDB AS sysname;
DECLARE @publisher AS sysname;
DECLARE @directory AS nvarchar(500);
DECLARE @publicationDB AS sysname;
-- Specify the Distributor name.
SET @distributor = $(DistPubServer);
-- Specify the distribution database.
SET @distributionDB = N'distribution';
-- Specify the Publisher name.
SET @publisher = $(DistPubServer);

--
-- Additional code goes here
--

Sqlcmd yardımcı programı komut satırından kullanma

Aşağıdaki örnek, komut satırından çalıştırmak için nasıl kullanıldığını gösteririnstdistpub.sqlkomut dosyası kullanarakSQLCMD yardımcı programı:

sqlcmd.exe -E -S sqlserverinstance -i C:\instdistpub.sql -o C:\output.log -v DistPubServer="N'MyDistributorAndPublisher'"

Bu örnekte,-Eanahtar belirtir, Windows kimlik doğrulaması kullanıldığında bağlanırkenSQL Server.Windows kimlik doğrulaması kullanırken, bir kullanıcı adı ve parola komut dosyasında depolamak için gerek yoktur.Komut dosyasının yolunu ve adını belirtilir-igeçiş ve çıkış dosyası adı belirtilir-ogeçiş (karşı çıkış SQL ServerBu anahtar kullanıldığında, konsolun yerine bu dosyaya yazılır).The sqlcmd utility enables you to pass scripting variables to a Transact-SQL script at runtime using the -v switch.Bu örnekte,sqlcmdher örneğini değiştirir$(DistPubServer)komut değeriN'MyDistributorAndPublisher'önce yürütme.

Not

The -X switch disables scripting variables.

Bir toplu iş dosyası, görevleri otomatikleştirme

Bir toplu işlemi kullanarak dosya çoğaltma yönetim görevlerini, çoğaltma eşitleme görevleri ve diğer görevler aynı toplu iş dosyasında otomatikleştirilebilir.Aşağıdaki toplu iş dosyasını kullanansqlCmd çekme temelli abonelik. yardımcı programı açılır ve abonelik veritabanı yeniden oluşturun ve birleştirme eklemek için Daha sonra dosyayı yeni abonelik eşitlemek için Birleştirme Aracısı çağırır:

Genel komut dosyası kullanan kullanan dosyası kullanan çoğaltma görevleri

Komut çoğaltma en yaygın görevlerden bazıları dosyası sistem saklı yordamları kullanarak şunlardır:

  • Yayımlamayı ve dağıtımı yapılandırma

  • Yayımcı ve dağıtımcı özelliklerini değiştirme

  • Yayımlamayı ve dağıtımı devre dışı bırakma

  • Yayın oluşturma ve makaleleri tanımlama

  • Yayınlar ve makaleler

  • çekme temelli abonelik oluşturma

  • çekme temelli abonelik değiştirme

  • çekme temelli abonelik silme

  • Oluşturma bir gönderme temelli abonelik

  • Değişiklik bir gönderme temelli abonelik

  • İtme aboneliği silme

  • çekme temelli abonelik eşitleme