

# 重启数据库实例
<a name="USER_RebootInstance"></a>

您可以通过一项名为*重启*的操作在 RDS 数据库实例上停止和启动数据库服务。可能需要重启才能应用配置更改、解决小问题或解决网络问题，而无需对数据库执行完全重启或迁移。



**注意**  
本主题仅适用于重启单可用区或多可用区数据库*实例*。有关重启多可用区数据库集群的说明，请参阅[重启 Amazon RDS 的多可用区数据库集群和读取器数据库实例](multi-az-db-clusters-concepts-rebooting.md)。

**Topics**
+ [重启数据库实例的使用案例](#USER_RebootInstance.use-cases)
+ [数据库实例重启的工作方式](#USER_RebootInstance.how-it-works)
+ [如何在多可用区部署中重启数据库实例](#USER_RebootInstance.MAZ)
+ [重启数据库实例时的注意事项](#USER_RebootInstance.considerations)
+ [重启数据库实例的先决条件](#USER_RebootInstance.prereqs)
+ [重启数据库实例：基本步骤](#USER_RebootInstance.steps)

## 重启数据库实例的使用案例
<a name="USER_RebootInstance.use-cases"></a>

通常出于维护原因而重启数据库实例，以使您的更改生效。以下是常见的使用案例：
+ **关联新数据库参数组** – 将新数据库参数组与数据库实例关联时，RDS 将仅在数据库实例重启后才应用修改后的静态和动态参数。但是，如果在将数据库参数组与数据库实例关联之后修改数据库参数组中的动态参数，这些更改将立即得到应用，而无需重启。有关更多信息，请参阅 [Amazon RDS 的参数组](USER_WorkingWithParamGroups.md)。
+ **将对静态参数的更改应用于现有数据库参数组** - 当您更改静态参数并保存数据库参数组时，控制台中与该参数组关联的数据库实例的状态将更改为 **pending-reboot**。参数更改仅在重启关联的数据库实例之后才会生效。当您更改现有参数组中的动态参数时，更改默认情况下会立即生效，不需要重启。
**注意**  
**pending-reboot** 状态不会在下一个维护时段导致自动重启。要向数据库实例应用最新的参数更改，请手动重启数据库实例。有关参数组的更多信息，请参阅 [Amazon RDS 的参数组](USER_WorkingWithParamGroups.md)。
+ **故障排除** - 您可能会遇到需要重启的性能或其他操作问题。例如，数据库实例可能没有响应。

## 数据库实例重启的工作方式
<a name="USER_RebootInstance.how-it-works"></a>

当 Amazon RDS 重启您的数据库实例时，它会执行以下连续任务：

1. 在数据库实例中停止相应的数据库服务

1. 在数据库实例中启动相应的数据库服务

重启过程会导致短暂中断。在此中断期间，数据库实例的状态为*重启*。即使您通过失效转移进行重启，单可用区部署和多可用区数据库实例部署也会出现中断。

## 如何在多可用区部署中重启数据库实例
<a name="USER_RebootInstance.MAZ"></a>

如果 Amazon RDS 数据库实例位于多可用区部署中，则可以通过失效转移进行重启。此操作对于模拟数据库实例的故障，或在效转移后将操作还原到原始可用区非常有用。

在包括失效转移的重启期间，Amazon RDS 将执行以下操作
+ 立即中断数据库。数据库实例及其客户端会话可能来不及正常关闭。
**警告**  
为避免数据丢失，建议先停止数据库实例上的事务，再使用失效转移进行重启。
+ 必要时对数据库执行崩溃恢复。
+ 自动切换到另一个可用区中的备用副本。可用区更改可能在几分钟内无法反映在 AWS 管理控制台、对 AWS CLI 的调用以及 RDS API 中。
+ 更新数据库实例的 DNS 记录，使其指向备用数据库实例。因此，您需要清理并重新建立到数据库实例的任何现有连接。有关更多信息，请参阅 [配置和管理 Amazon RDS 的多可用区部署](Concepts.MultiAZ.md)。
+ 在重启后创建 Amazon RDS 事件。

在 RDS for Microsoft SQL Server 上，失效转移仅重启主数据库实例。失效转移后，主数据库实例将成为新的备用数据库实例。多可用区实例的参数可能不更新。对于不进行失效转移的重新启动，主数据库实例和备用数据库实例将重新启动，并在重新启动后更新参数。如果数据库实例没有响应，我们建议重新启动而不进行失效转移。

## 重启数据库实例时的注意事项
<a name="USER_RebootInstance.considerations"></a>

在重启实例之前，请考虑以下事项：
+ 对于具有只读副本的数据库实例，您可以独立地重启源数据库实例及其只读副本。重启完成后，复制将自动恢复。
+ 重启时间取决于崩溃恢复过程、重启时的数据库活动以及特定数据库引擎的行为。为缩短重启时间，建议在重启期间尽可能减少数据库活动。此方法可减少传输中事务的回滚活动。

## 重启数据库实例的先决条件
<a name="USER_RebootInstance.prereqs"></a>

请确保满足以下先决条件：
+ 数据库实例必须处于 `available` 状态。您的数据库可能会由于几个原因而不可用，例如，正在进行备份、以前请求的修改或维护时段操作。
+ 如果您强制失效转移到其他可用区，则必须为多可用区配置数据库实例。
+ 如果您强制失效转移到其他可用区，建议您先停止数据库实例上的事务，以防止可能丢失数据。

## 重启数据库实例：基本步骤
<a name="USER_RebootInstance.steps"></a>

您可以使用 AWS 管理控制台、AWS CLI 或 RDS API 重启数据库实例。

### 控制台
<a name="USER_RebootInstance.Console"></a>

**重启数据库实例**

1. 登录AWS 管理控制台并通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1. 在导航窗格中，选择**数据库**，然后选择要重启的数据库实例。

1. 对于**操作**，选择**重启**。

   将显示**重启数据库实例**页面。

1. （可选）选择**重启失效转移?**强制在可用区之间进行失效转移。

1. 选择**重新引导**以重新引导您的数据库实例。

   或者，选择**取消**。

### AWS CLI
<a name="USER_RebootInstance.CLI"></a>

要使用 AWS CLI 重新引导数据库实例，请调用 [https://docs.aws.amazon.com/cli/latest/reference/rds/reboot-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/reboot-db-instance.html) 命令。

**Example 简单重启**  
对于 Linux、macOS 或 Unix：  

```
aws rds reboot-db-instance \
    --db-instance-identifier mydbinstance
```
对于：Windows  

```
aws rds reboot-db-instance ^
    --db-instance-identifier mydbinstance
```

**Example 通过失效转移重启**  
若要在多可用区数据库集群中，从一个可用区强制失效转移到另一个可用区，请使用 `--force-failover` 参数。  
对于 Linux、macOS 或 Unix：  

```
aws rds reboot-db-instance \
    --db-instance-identifier mydbinstance \
    --force-failover
```
对于：Windows  

```
aws rds reboot-db-instance ^
    --db-instance-identifier mydbinstance ^
    --force-failover
```

### RDS API
<a name="USER_RebootInstance.API"></a>

要使用 Amazon RDS API 重启数据库实例，请调用 [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RebootDBInstance.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RebootDBInstance.html) 操作。