本文将指导您使用RDS SQL Server实例的主机账号登录和管理SQL Server Reporting Services(SSRS)数据库。
RDS SQL Server提供Webshell功能,用户可以通过Web界面登录RDS SQL Server实例的操作系统。通过Webshell,用户可以在RDS SQL Server实例上执行命令、上传和下载文件以及执行各种操作。Webshell 提供了一种方便高效的远程管理方法,尤其是在 SSH 客户端不可用时。
SQL Server Reporting Services (SSRS) 是一种 Microsoft 企业级报告服务,使用户能够从 SQL Server 数据库和其他数据源生成各种类型的报告。这些报表包括表格报表、图表报表、交叉表报表和多维数据报表。SSRS 可以连接到 RDS SQL Server 数据库,并将其用作数据源来生成不同类型的报表。这种组合可实现高效的数据管理、分析和报告生成,以支持业务决策和管理。
例如,假设您是一家中小型企业的数据库管理员,负责管理公司的 SQL Server 数据库。随着公司工作负载和数据库访问请求的增加,需要使用 SSRS 来分析和监视数据库。但是,由于公司的服务器位于其他地方,因此无法直接登录主机进行这些操作。
最终访问RDS SQL Server实例所在的主机。登录后,可以使用 SSRS 轻松管理和操作 SQL Server 数据库。
确保RDS实例满足以下要求:
• RDS实例位于中国(张家口)以外的区域。
• RDS实例:基础版、集群版、RDS高可用版。如果您的RDS实例为RDS高可用版,请确保该实例为SQL Server 2012及以上版本。
• RDS实例属于通用型或独享型实例规格族。不支持共享实例规格族。
• RDS实例位于VPC中。关于如何修改RDS实例的网络类型,请参见修改RDS SQL Server实例的网络类型。
RDS实例的创建时间满足以下要求:
• 如果RDS实例运行RDS高可用版或RDS集群版,则该实例创建时间为2021年1月1日(含)之后。
• 如果RDS基础版为RDS基础版,则创建时间为2022年9月2日(含)之后。
注意:您可以在RDS控制台基本信息页面的“状态”区域查看RDS实例的创建时间参数。
• 使用阿里云账号登录RDS实例。
• 授予创建系统管理员帐户的权限。具体操作,请参见创建RDS SQL Server系统管理员账号。
• 已创建系统管理员帐户。具体操作,请参见创建RDS SQL Server系统管理员账号。
• 创建帐户类型为“系统管理员帐户”的主机帐户。具体操作,请参见为RDS SQL Server实例创建主机账号并使用主机账号登录。
注意:
RDS实例的系统管理员账号或主机账号拥有超出RDS管理范围的权限。RDS实例创建此类账号后,系统不会为RDS实例提供阿里云服务等级协议(SLA)中指定的服务可用性。
1. 转到实例页面。在顶部菜单栏,选择RDS实例所在的地域。然后,找到RDS实例,单击实例ID。
2. 在弹出的页面左侧导航栏,单击账号管理。
3. 在显示的页面上,单击“主持人帐户”选项卡。找到所需的主机帐户,然后单击操作列中的远程连接(主)。
4. 在“远程连接”对话框中,输入主机帐户的密码。
5. 单击“确定”。
系统生成Webshell地址,并通过该URL自动连接RDS实例所在的主机。系统在弹出的窗口中显示一个webshell页面。该页面可能被浏览器阻止。如果页面被阻止,您可以配置浏览器以允许显示该页面。示例如下图所示。
在为 RDS 实例所在的主机配置 SSRS 之前,请确保 SQL Server Reporting Services (MSSQLSERVER) 已启用并正在运行。有关如何查看或更改 SSRS 状态的详细信息,请参阅查看或修改 SSRS 的状态。
当您的RDS实例运行RDS高可用版或RDS集群版时,RDS实例处于镜像状态或Always On可用性组状态。这可能会导致 SSRS 配置中出现错误。如果出现错误,您需要使用系统管理员账号登录RDS实例,并执行以下语句解决错误。
注意:RDS实例会定期构建镜像或可用组。配置 SSRS 时,可能会出现多个配置错误。每次报错时,您需要使用系统管理员账号登录RDS实例,并执行相关语句。
-- Execute the following statements to disable the image of the database on an RDS instance that runs RDS High-availability Edition:
ALTER DATABASE [ReportServer] SET PARTNER OFF;
ALTER DATABASE [ReportServerTempDB] SET PARTNER OFF;
-- Execute the following statements to remove the database from the ag-rds availability group of an RDS instance that runs RDS Cluster Edition:
ALTER AVAILABILITY GROUP [ag-rds] REMOVE DATABASE [ReportServer];
ALTER AVAILABILITY GROUP [ag-rds] REMOVE DATABASE [ReportServerTempDB];
这些语句可确保 SSRS 可以正确配置和运行。如果您的RDS集群版运行,配置SSRS后,您需要使用系统管理员账号登录RDS实例,并执行以下语句将数据库添加到可用组中。这有助于确保高可用性以及正确的数据库备份和还原。
ALTER AVAILABILITY GROUP [AG-RDS] ADD DATABASE [ReportServer]
ALTER AVAILABILITY GROUP [AG-RDS] ADD DATABASE [ReportServerTempDB]
1. 使用系统管理员账号登录RDS实例,执行如下语句:
DISABLE TRIGGER [_$$_tr_$$_rds_alter_database] ON ALL SERVER;
注意:
关于如何连接RDS实例,请参见连接RDS SQL Server实例。
2. 单击“
>”图标,然后选择“Reporting Services 配置管理器”。
3. 在弹出的对话框中,确认报表服务器的名称,然后单击“连接”。
注意:如果您的RDS实例运行RDS高可用版或RDS集群版,则由于镜像或可用性组状态,可能无法将RDS实例连接到报表服务器。如果连接失败,您可以根据使用说明解决问题。
4. 在左侧导航栏,单击“服务账号和Web服务URL”,根据业务需要配置相关参数。
注意:更多信息,请参见官方文档。
5. 在左侧导航栏,单击数据库。在页面右侧,单击“更改数据库”以在主机上创建报表服务器数据库。
a) 选择“创建新的报表服务器数据库”,然后单击“下一步”。
b) 确认服务器名称,配置以下参数,然后单击“下一步”。
参数 | 描述 |
服务器名称 | 服务器的名称。名称无法更改。 |
身份验证类型 | 身份验证类型。选择“SQL Server 帐户”。 |
用户名 | 为RDS实例创建的主机账号的用户名。 |
密码 | 为RDS实例创建的主机账号的密码。 |
c) 输入报表服务器数据库的名称,并选择脚本的语言。然后,单击“下一步”。
d) 指定要连接到报表服务器的帐户的凭据,然后单击“下一步”。
e) 确认“摘要”页面上的信息,然后单击“下一步”。等到创建报表服务器数据库。然后,单击“完成”。
6. 使用系统管理员账号登录RDS实例,执行以下语句:
USE [master]
GO
-- Change the recovery model of the database to FULL. Use the NO_WAIT parameter to allow the change to immediately take effect.
ALTER DATABASE [ReportServer] SET RECOVERY FULL WITH NO_WAIT
GO
ALTER DATABASE [ReportServerTempDB] SET RECOVERY FULL WITH NO_WAIT
GO
-- Enable a specific trigger on all databases on the server.
ENABLE TRIGGER [_$$_tr_$$_rds_alter_database] ON ALL SERVER;
7. 后续操作(如创建数据源)根据业务需要而有所不同。具体操作,请参见在ECS上安装并使用SSRS中的步骤6-步骤8或官方文档。
1. 登录RDS实例所在的主机。在搜索框中,输入以打开“服务”。services.msc
2. 在“服务(本地)”窗口中,查看 SQL 的状态。Server Reporting Services (MSSQLSERVER)
注意:
SSRS 支持以下启动类型:
• 手动:系统启动时服务不会自动启动,必须手动启动。
• 自动:服务在系统启动时自动启动。
• 自动(延迟启动):服务在系统启动一段时间后自动启动。
• 已禁用:服务已禁用且无法启动。
3. 可选。更改 SSRS 的状态并启动服务。
a) 双击该服务。在弹出的对话框中,修改“启动类型”参数的值。
b) 右键单击该服务。在弹出的对话框中,单击“开始”。
c) 查看 SSRS 的新状态。
是否可以通过API接口获取RDS实例的主机名和Webshell的URL来连接RDS实例的主机?
是的,您可以使用 DescribeDBInstanceIpHostname 接口获取 RDS 实例的主机名,然后调用 DescribeHostWebShell 接口获取 LoginUrl(webshell URL)。
注意
• webshell URL 的有效期为 2 分钟。您必须尽早使用该 URL。
• 如果URL无效,您可以调用API获取新的URL。