Mengalihkan database Analysis Services antara mode ReadOnly dan ReadWrite
Berlaku untuk: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium
SQL Server Analysis Services administrator database dapat mengubah mode baca/tulis database Tabular atau Multidmensional sebagai bagian dari upaya yang lebih besar yang mendistribusikan beban kerja kueri di antara beberapa server khusus kueri.
Mode database dapat dialihkan dengan beberapa cara. Dokumen ini menjelaskan skenario umum berikut:
Secara interaktif menggunakan SQL Server Management Studio
Secara terprogram menggunakan AMO
Skrip menggunakan XMLA atau TMSL
Mengalihkan mode baca/tulis database secara interaktif menggunakan Management Studio
Di Object Explorer, klik kanan database dan pilih Properti.
Perhatikan lokasinya. Lokasi penyimpanan database kosong menunjukkan bahwa folder database terletak di folder data server.
Klik kanan database dan pilih Lepaskan...
Tetapkan kata sandi ke database yang akan dilepas, lalu klik OK untuk menjalankan perintah lepaskan.
Di Object Explorer, klik kanan folder Database dan pilih Lampirkan...
Dalam kotak teks folder , ketik lokasi asli folder database. Atau, Anda dapat menggunakan tombol telusuri (...) untuk menemukan folder database.
Pilih mode baca/tulis untuk database.
Ketik kata sandi dan klik OK untuk menjalankan perintah lampirkan.
Mengalihkan mode baca/tulis ke database secara terprogram menggunakan AMO
Dalam aplikasi C#Anda, panggil SwitchReadWrite()
dengan parameter yang diperlukan. Kompilasi dan jalankan kode Anda untuk memindahkan database.
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 dataDir = server.ServerProperties["DataDir"].Value;
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);
}
}
Mengalihkan mode baca/tulis ke database berdasarkan skrip menggunakan XMLA
Instruksi berikut berlaku untuk database Multidmensional dan database Tabular pada mode kompatibilitas 1050, 1100, atau 1103.
Di Object Explorer, klik kanan database dan pilih Properti.
Perhatikan lokasinya. Lokasi penyimpanan database kosong menunjukkan bahwa folder database terletak di folder data server.
Klik kanan database dan pilih Lepaskan...
Buka tab XMLA baru di Management Studio.
Salin templat skrip berikut untuk XMLA:
<Detach xmlns="http://schemas.microsoft.com/analysisservices/2003/engine"> <Object> <DatabaseID>%dbName%</DatabaseID> <Password>%password%</Password> </Object> </Detach>
Ganti
%dbName%
dengan nama database dan%password%
dengan kata sandi. Karakter % adalah bagian dari templat dan harus dihapus.Jalankan perintah XMLA.
Salin templat skrip berikut untuk XMLA di tab XMLA baru
<Attach xmlns="http://schemas.microsoft.com/analysisservices/2003/engine"> <Folder>%dbFolder%</Folder> <ReadWriteMode xmlns="http://schemas.microsoft.com/analysisservices/2008/engine/100">%ReadOnlyMode%</ReadWriteMode> </Attach>
Ganti
%dbFolder%
dengan jalur UNC lengkap folder database,%ReadOnlyMode%
dengan nilai readOnly atau ReadWrite yang sesuai, dan%password%
dengan kata sandi. Karakter % adalah bagian dari templat dan harus dihapus.Jalankan perintah XMLA.
Lihat juga
Ketersediaan tinggi dan Skalabilitas dalam Analysis Services
Melampirkan dan Melepaskan Database Analysis Services
Lokasi Penyimpanan Database
Database ReadWriteModes
Lampirkan Elemen
Lepaskan Elemen
Elemen ReadWriteMode
Elemen DbStorageLocation