Как программно создать базу данных SQL Azure в эластичном пуле?
Я хочу написать код на C#, который бы программно создавал и добавлял базу данных SQL Azure в существующий эластичный пул. Я заглянул в клиентскую библиотеку Elastic Database, но она не обрабатывает создание баз данных, а только регистрирует существующие базы данных как сегменты, которые я определенно использовал бы.
Возможно ли создать базу данных с помощью чего-то простого, такого как SqlClient, или, может быть, это можно сделать с помощью Azure SQL Management SDK или какой-либо другой опции?
2 ответа
Вы можете использовать Transact SQL для создания базы данных и добавления ее в эластичный пул одним оператором. В этом примере мы создаем новую базу данных в пуле с именем S3M100:
CREATE DATABASE db1 ( SERVICE_OBJECTIVE = ELASTIC_POOL ( name = S3M100 ) )
Вы также можете использовать Transact-SQL, чтобы сначала создать базу данных.
CREATE DATABASE YourNewDB ( EDITION = 'GeneralPurpose' );
Это может быть копия другой базы данных.
CREATE DATABASE YourNewDB AS COPY OF OldDB;
После этого вы можете переместить его в любой эластичный бассейн.
ALTER DATABASE YourNewDB
MODIFY ( SERVICE_OBJECTIVE = ELASTIC_POOL ( name = pool1 ) ) ;
Пожалуйста, посмотрите этот учебник: Создайте новый пул эластичных баз данных с C#.
Это дает вам пример кода C# для создания новой базы данных в пуле:
// Create a database: configure create or update parameters and properties explicitly
DatabaseCreateOrUpdateParameters newPooledDatabaseParameters = new DatabaseCreateOrUpdateParameters()
{
Location = currentServer.Location,
Properties = new DatabaseCreateOrUpdateProperties()
{
Edition = "Standard",
RequestedServiceObjectiveName = "ElasticPool",
ElasticPoolName = "ElasticPool1",
MaxSizeBytes = 268435456000, // 250 GB,
Collation = "SQL_Latin1_General_CP1_CI_AS"
}
};
var poolDbResponse = sqlClient.Databases.CreateOrUpdate("resourcegroup-name", "server-name", "Database2", newPooledDatabaseParameters);
Если у вас уже есть базы данных SQL Azure, вы можете ссылаться на Монитор и управлять пулом эластичных баз данных с помощью C#.
Например, переместите базу данных в эластичный пул:
// Retrieve current database properties.
currentDatabase = sqlClient.Databases.Get("resourcegroup-name", "server-name", "Database1").Database;
// Configure create or update parameters with existing property values, override those to be changed.
DatabaseCreateOrUpdateParameters updatePooledDbParameters = new DatabaseCreateOrUpdateParameters()
{
Location = currentDatabase.Location,
Properties = new DatabaseCreateOrUpdateProperties()
{
Edition = "Standard",
RequestedServiceObjectiveName = "ElasticPool",
ElasticPoolName = "ElasticPool1",
MaxSizeBytes = currentDatabase.Properties.MaxSizeBytes,
Collation = currentDatabase.Properties.Collation,
}
};
// Update the database.
var dbUpdateResponse = sqlClient.Databases.CreateOrUpdate("resourcegroup-name", "server-name", "Database1", updatePooledDbParameters);
Надеюсь это поможет.