快速入门:在 Azure SQL 数据库中创建超大规模数据库

在本快速入门中,你将使用 Azure 门户、PowerShell 脚本或 Azure CLI 脚本在 Azure SQL 数据库中创建 Azure 逻辑服务器超大规模数据库,并使用相应的选项创建一个或多个高可用性 (HA) 副本。 如果要使用 Azure 中的现有逻辑服务器,则还可以使用 Transact-SQL 创建超大规模数据库。

提示

SQL 数据库(超大规模)简化定价已于 2023 年 12 月推出。 有关详情,请查看超大规模定价博客

先决条件

权限

若要通过 Transact-SQL 创建数据库:需要 CREATE DATABASE 权限。 若要创建数据库,登录名必须是服务器管理员登录名(预配 Azure SQL 数据库逻辑服务器时创建)、服务器的 Microsoft Entra 管理员、master 中 dbmanager 数据库角色的成员。 有关详细信息,请参阅 CREATE DATABASE

若要通过 Azure 门户、PowerShell、Azure CLI 或 REST API 创建数据库:需要 Azure RBAC 权限,特别是参与者、SQL DB 参与者或 SQL Server 参与者 Azure RBAC 角色。 有关详细信息,请参阅 Azure RBAC 内置角色

创建“超大规模”数据库

本快速入门在超大规模服务层级中创建单一数据库。

若要使用 Transact-SQL 创建超大规模数据库,必须先为 Azure 中的现有逻辑服务器创建或确定连接信息

使用 SQL Server Management Studio (SSMS)Azure Data Studio 或你选择的客户端连接到 master 数据库,以运行 Transact-SQL 命令(sqlcmd 等)。

创建超大规模数据库时,请认真考虑 BACKUP_STORAGE_REDUNDANCY 的设置。 对于超大规模数据库,存储冗余只能在数据库创建过程中指定。 可以选择本地冗余、区域冗余或异地冗余存储。 所选存储冗余选项将在数据库的整个生存期内使用,以同时实现数据存储冗余备份存储冗余。 现有数据库可以通过数据库复制或时间点还原迁移到不同的存储冗余。 BackupStorageRedundancy 参数允许的值为:LOCALZONEGEO。 除非明确指定,否则数据库将配置为使用异地冗余备份存储。

运行以下 Transact-SQL 命令,以使用第 5 代硬件、2 个 vCore 和异地冗余备份存储创建新的超大规模数据库。 必须在 CREATE DATABASE 语句中指定版本和服务目标。 有关有效服务目标(例如 HS_Gen5_2)的列表,请参阅资源限制

此示例代码创建一个空数据库。 若要使用示例数据创建数据库,请使用本快速入门中的 Azure 门户、Azure CLI 或 PowerShell 示例。

CREATE DATABASE [myHyperscaleDatabase] 
    (EDITION = 'Hyperscale', SERVICE_OBJECTIVE = 'HS_Gen5_2') WITH BACKUP_STORAGE_REDUNDANCY= 'LOCAL';
GO

有关其他参数和选项,请参阅 CREATE DATABASE (Transact-SQL)

若要将一个或多个高可用性 (HA) 副本添加到数据库,请使用 Azure 门户中数据库的“计算和存储”窗格、Set-AzSqlDatabase PowerShell 命令或 az sql db update Azure CLI 命令。

查询数据库

创建数据库后,可以使用 Azure 门户中的“查询编辑器(预览)”连接到该数据库并查询数据。 如果需要,可以改为通过连接到 Azure Data StudioSQL Server Management Studio (SSMS) 或你选择的客户端来查询数据库,以运行 Transact-SQL 命令(sqlcmd 等)。

  1. 在门户中搜索并选择“SQL 数据库”,然后从列表中选择你的数据库。

  2. 在数据库页面的左侧菜单中,选择“查询编辑器(预览)”。

  3. 输入服务器管理员登录信息,然后选择“确定”。

    Azure SQL 数据库中的查询编辑器(预览版)窗格的屏幕截图,该窗格提供两个用于身份验证的选项。在此示例中,我们在“SQL Server 身份验证”下填充了“登录名”和“密码”。

  4. 如果从 AdventureWorksLT 示例数据库创建了超大规模数据库,请在“查询编辑器”窗格中输入以下查询。

    SELECT TOP 20 pc.Name as CategoryName, p.name as ProductName
    FROM SalesLT.ProductCategory pc
    JOIN SalesLT.Product p
          ON pc.productcategoryid = p.productcategoryid;
    

    如果使用 Transact-SQL 示例代码创建了空数据库,请在“查询编辑器”窗格中输入另一个示例查询,如下所示:

    CREATE TABLE dbo.TestTable(
        TestTableID int IDENTITY(1,1) NOT NULL,
        TestTime datetime NOT NULL,
        TestMessage nvarchar(4000) NOT NULL,
     CONSTRAINT PK_TestTable_TestTableID PRIMARY KEY CLUSTERED (TestTableID ASC)
    ) 
    GO
    
    ALTER TABLE dbo.TestTable ADD CONSTRAINT DF_TestTable_TestTime  DEFAULT (getdate()) FOR TestTime
    GO
    
    INSERT dbo.TestTable (TestMessage)
    VALUES (N'This is a test');
    GO
    
    SELECT TestTableID, TestTime, TestMessage
    FROM dbo.TestTable;
    GO
    
  5. 选择“运行”,然后在“结果”窗格中查看查询结果。

    在针对 AdventureWorks 示例数据运行查询后,Azure SQL 数据库中的查询编辑器(预览版)窗格的屏幕截图。

  6. 关闭“查询编辑器”页,并在系统提示时选择“确定”,以放弃未保存的修改 。

清理资源

保留资源组、服务器和单一数据库可以继续执行后续步骤,并了解如何以不同的方法连接和查询数据库。

用完这些资源后,可以删除创建的资源组,这也会删除该资源组中的服务器和单一数据库。

此选项仅删除超大规模数据库。 除此之外,它不会删除你创建的任何逻辑服务器或资源组。

要使用 Transact-SQL 删除超大规模数据库,请使用 SQL Server Management Studio (SSMS)Azure Data Studio 或你选择的客户端连接到 master 数据库,以运行 Transact- SQL 命令(sqlcmd 等)。

运行以下 Transact-SQL 命令以删除数据库:

DROP DATABASE [myHyperscaleDatabase];
GO

使用不同的工具与语言连接和查询数据库:

在以下文章中详细了解超大规模数据库: