创建数据库

创建RDS SQL Server实例后,您需要在实例中创建与您业务相关的数据库。您可参考本文快速掌握数据库创建的基本流程,并了解如何规划数据库数量以满足业务需求。

前提条件

创建RDS SQL Server实例

数据库数量限制

2008 R2数据库最大数量为50,其他SQL Server实例的数据库数量受实例规格限制,详细计算公式如下:

  • 集群系列/高可用系列

    CPU核数开二次方后向下取整,再乘以50,假设获得值为X,最大数据库数量取X300间的最小值。例如:2016标准高可用系列(48G)实例,最大支持100个数据库。

  • 基础系列

    CPU核数开二次方后向下取整,再乘以100,假设获得值为Y,最大数据库数量取Y400间的最小值。例如:2019标准基础系列(48G)实例,最大支持200个数据库。

说明

以上公式中min指取数据区间内最小值。例如:min{100,300}取值为100。

创建数据库

  1. 访问RDS实例列表,在上方选择地域,然后单击目标实例ID。

  2. 在左侧导航栏单击数据库管理

  3. 单击创建数据库,设置如下参数,单击创建

    参数

    说明

    数据库(DB)名称

    填写数据库名称。由大写字母、小写字母、数字、下划线(_)或中划线(-)组成,不支持中文,以字母开头,以字母或数字结尾,长度为2~64个字符。

    支持字符集

    选择数据库的字符集

    备注

    输入备注说明,最多256个字符。

相关操作

常见问题

创建数据库时报错当前数据库名称不正确,请重新设置数据库名称。如何解决?

问题描述

RDS SQL Server实例数据库管理页面中,创建数据库时出现报错当前数据库名称不正确,请重新设置数据库名称。错误码为InvalidDBName.Duplicate

image

问题原因

由于存在同名数据库,因此无法创建相同库名数据库。

同时,由于RDS SQL Server实例数据库管理页面仅展示状态为ONLINE的数据库。对于非ONLINE状态的数据库(如RESTORINGRECOVERINGOFFLINE等),控制台中不会显示。因此用户可能会误以为数据库不存在,从而导致创建失败。

解决方案

  1. 通过SSMS连接到SQL Server实例

  2. 执行如下SQL,查看实例中非系统数据库以及状态:

    SELECT
        [name] AS DatabaseName,  -- 数据库名称
        state_desc AS StateDescription,  --数据库当前状态(如ONLINE、OFFLINE、RECOVERING等)
        recovery_model_desc AS RecoveryModel  -- 数据库的恢复模式(如SIMPLE、FULL等)
    FROM
        sys.databases
    WHERE
        database_id > 4; -- 过滤掉系统数据库

    如下所示,通过查询结果,可以确认是否存在同名数据库以及其当前状态。

    image

  3. 对于非ONLINE状态的同名数据库,根据不同场景解决:

    • 场景1:OSS备份数据恢复上云时选择不打开数据库

      • 产生原因

        在使用OSS备份数据恢复到RDS SQL Server时如果选择了不打开数据库(还有差异备份或日志文件)选项,数据库会处于非ONLINE状态。

        image

      • 解决方法

        如果还需继续上传增量备份文件,恢复完成后需在备份数据上云记录页签下打开数据库;如果不再需要增量恢复可以直接打开数据库。

        image

        如果此数据库已无用需重建,可以打开数据库后执行数据库删除操作,删除后再重新创建。

    • 场景2:日志空间打满导致数据库进入RECOVERING状态

      • 产生原因

        日志空间打满导致日志无法写入,数据库进入RECOVERING状态。可通过检查实例错误日志确认:

        image

      • 解决方法

        • 如果实例空间打满导致日志空间无法扩展,则需扩容实例存储空间,扩容后手动重启实例。重启后会继续RECOVERING恢复,当恢复完成,数据库会重新进入ONLINE状态。

        • 如果数据库日志文件设置了增长上限,日志空间打满,但是实例空间还未打满,此类情况仅需通过调整数据库日志空间上限即可,无需重启实例。调整数据库文件上限的操作如下:

          image

          image

          image

        如果此数据库已无用需重建,可以等数据库状态为ONLINE执行数据库删除操作,删除后再重新创建。

    • 场景3:数据库被手动设置为OFFLINE状态

      • 产生原因

        数据库可能因管理员操作被手动设置为OFFLINE状态。

      • 解决方法

        使用sp_rds_set_db_online存储过程将数据库重新设置为ONLINE状态:

        USE master;
        GO
        EXEC sp_rds_set_db_online '数据库名称';
        GO

        如果此数据库已无用需重建,可以等数据库状态为ONLINE执行数据库删除操作,删除后再重新创建。

创建数据库时报错Due to the limit number you can't create a database如何解决?

  • 报错原因:该报错表示您的RDS SQL Server实例已达到其规格所允许的数据库数量上限。RDS SQL Server实例的数据库数量受实例规格限制,不同规格支持的数据库最大数量计算方法,请参见本文数据库数量限制

  • 解决方法:您可以为实例升级规格配置以提升数据库数量上限。

RDS SQL Server创建数据库时名称是否支持含中文?

不支持。使用中文命名数据库可能带来兼容性问题、脚本解析困难、迁移风险及管理复杂性等问题。RDS SQL Server的数据库名称仅支持由大写字母、小写字母、数字、下划线(_)或中划线(-)组成,并需要以字母开头,以字母或数字结尾,长度为2~64个字符。请遵循命名规范,确保系统的稳定性与可维护性。