Aracılığıyla paylaş


Bir Analysis Services veritabanı ReadOnly ve ReadWrite modları arasında geçiş yapma

Genellikle durumlar vardır, bir Analysis Services veritabanı yöneticisi (dba) bir veritabanında okuma/yazma modunu değiştirmek istemektedir. Bu gibi durumlarda genellikle veritabanı havuzu arasında paylaşımı gibi iş ihtiyaçlarınıza göre yönlendirilen Analysis Services sunucuları için bir daha iyi kullanıcı deneyimi.

Birçok bakımdan bir veritabanı modu değiştirilebilir.Bu belge aşağıdaki genel senaryolar açıklanmaktadır:

  • Etkileşimli kullanma SQL Server Management Studio

  • Program aracılığıyla ÇYN kullanarak

  • Komut dosyası tarafından xmla kullanma

Yordamlar

Etkileşimli olarak Management Studio'yu kullanarak bir veritabanı okuma/yazma moduna geçiş yapmak için

  1. Sol veya sağ bölmesinde geçiş için veritabanını bulun Management Studio.

  2. Veritabanını sağ tıklatın ve seçin Özellikler.Veritabanı klasörü bulun ve konumunu not edin.Boş bir veritabanı depolama konumu veritabanı klasörü sunucu veri klasöründe bulunduğunu gösterir.

    Önemli notÖnemli

    Veritabanı ilişkisi kesildi hemen sonra Management Studio artık yardımcı olabilir, elde veritabanının konumu.

  3. Veritabanını sağ tıklatın ve seçin Detach…

  4. Ayrılmış, ve sonra veritabanı için bir parola atamak Tamam Ayır komutu yürütmek için.

  5. Bulun veritabanları sol veya sağ bölmesinde klasör Management Studio.

  6. Sağ veritabanları klasörü seçip alt Attach…

  7. De klasörüne metin kutusunda, özgün veritabanı klasörünün konumunu yazın.Alternatif olarak, gözat düğmesi kullanabilirsiniz () veritabanı klasörü bulun.

  8. Veritabanı okuma/yazma modunu seçin.

  9. 3. Adımda kullanılan parolayı yazın ve'ı Tamam Ekle komutunu yürütmek için.

Program aracılığıyla ÇYN kullanarak bir veritabanı okuma/yazma moduna geçmek için

  • C# uygulama, aşağıdaki örnek kodu uyarlamak ve belirtilen görevleri tamamlayın.

private void SwitchReadWrite(Server server, string dbName,

ReadWriteMode dbReadWriteMode)

{

if (server.Databases.ContainsName(dbName))

{

Database db;

string databaseLocation;

db = server.Databases[dbName];

databaseLocation = db.DbStorageLocation;

if (databaseLocation == null)

{

string dataDir = server.ServerProperties["DataDir"].Value;

String[] possibleFolders = Directory.GetDirectories(dataDir, string.Concat(dbName,"*"), SearchOption.TopDirectoryOnly);

if (possibleFolders.Length > 1)

{

List<String> sortedFolders = new List<string>(possibleFolders.Length);

sortedFolders.AddRange(possibleFolders);

sortedFolders.Sort();

databaseLocation = sortedFolders[sortedFolders.Count - 1];

}

else

{

databaseLocation = possibleFolders[0];

}

}

db.Detach();

server.Attach(databaseLocation, dbReadWriteMode);

}

}

  1. C# uygulamanızda, harekete geçirmek SwitchReadWrite() ile gerekli parametreleri.

  2. Derlemek ve yürütmek veritabanını taşımak için kod.

Okuma/yazma modunda komut dosyası tarafından xmla kullanarak bir veritabanına geçiş yapmak için

  1. Sol veya sağ bölmesinde geçiş için veritabanını bulun Management Studio.

  2. Veritabanını sağ tıklatın ve seçin Özellikler.Veritabanı klasörü bulun ve konumunu not edin.Boş bir veritabanı depolama konumu veritabanı klasörü sunucu veri klasöründe bulunduğunu gösterir.

    Önemli notÖnemli

    Veritabanı ilişkisi kesildi hemen sonra Management Studio artık yardımcı olabilir, elde veritabanının konumu.

  3. xmla yeni sekmede aç Management Studio.

  4. Aşağıdaki komut dosyası şablon için xmla kopyalayın:

<Detach xmlns="https://schemas.microsoft.com/analysisservices/2003/engine">

<Object>

<DatabaseID>%dbName%</DatabaseID>

<Password>%password%</Password>

</Object>

</Detach>

  1. Yerine %dbName% veritabanı adını ve %password% ile parola.% Karakteri şablonunun bir parçası olan ve kaldırılması gerekir.

  2. xmla bağlamını.

  3. Aşağıdaki komut dosyası şablon için xmla xmla yeni sekmede kopyalama

<Attach xmlns="https://schemas.microsoft.com/analysisservices/2003/engine">

<Folder>%dbFolder%</Folder>

<ReadWriteMode xmlns="https://schemas.microsoft.com/analysisservices/2008/engine/100">%ReadOnlyMode%</ReadWriteMode>

</Attach>

  1. Yerine %dbFolder% , veritabanı klasörünün tam unc yol ile %ReadOnlyMode% karşılık gelen değeri ile ReadOnly veya ReadWrite, ve %password% ile parola.% Karakteri şablonunun bir parçası olan ve kaldırılması gerekir.

  2. xmla bağlamını.