设置 Cloud SQL 实例

此页面介绍如何使用 Cloud Tools for PowerShell 设置新的 Cloud SQL 实例。如需详细了解 cmdlet,请参阅 Cloud Tools for PowerShell cmdlet 参考

对于大多数 cmdlet,您可以指定项目 ID,但如果将其省略,PowerShell 会默认为在活动 Cloud SDK 配置中指定的任何内容。

设置新实例

Cloud SQL 实例是在云中运行的 MySQL 数据库。您可以使用 Cloud SQL 实例来存储、复制和保护 MySQL 数据库。您可以配置实例的行为,例如复制数据的时间和位置,或者可以执行数据库维护的时间。

要创建和启动 Cloud SQL 数据库,必须先指定其配置和设置。要使用 Cloud Tools for PowerShell 执行此操作,请使用 New-GcSqlSettingConfigNew-GcSqlInstanceConfig cmdlet。

SQL 设置(如日志记录、维护窗口等)是 New-GcSqlSettingConfig cmdlet 的参数。实例级设置(例如数据库计算机的硬件特性)通过 SqlInstanceConfig 对象或 New-GcSqlInstanceConfig cmdlet 上的标志进行设置。

使用“db-n1-standard-1”层级时,不指定任何参数可创建最基本的 Cloud SQL 实例:

$setting = New-GcSqlSettingConfig
$instance = New-GcSqlInstanceConfig `
    "mynewinstance" -SettingConfig $setting

如需了解层级和价格,请参阅 Cloud SQL 价格主题。

如需了解配置选项,请使用 Get-Help New-GcSqlSettingConfig 或查看 DatabaseInstance 对象文档。

创建新实例

完成上一部分介绍的配置和设置后,现在即可使用 Add-GcSqlInstance cmdlet 创建 Cloud SQL 数据库:

Add-GcSqlInstance $instance

创建新实例可能需要一分钟左右。该过程完成后,cmdlet 会返回一个 DatabaseInstance 对象,用于描述刚创建的实例。您可以转到 GCP Console 查看实例。

从此时起,您可以按照 Cloud SQL 文档中的说明管理数据库。

创建读取副本实例

读取副本实例为主实例中的数据提供复制功能。创建读取副本实例后,可将其提升为故障转移或其自己的独立实例。根据半同步复制规则,可以从读取副本实例读取数据,但数据可能是半过时的。通过读取副本实例备份多个区域的数据,在出现中断的情况下仍可读取数据。

以下代码段会为现有主实例 gootoso 创建读取副本 mynewreplica。该代码段使用 cmdlet New-GcSqlInstanceReplicaConfig。这会配置特定于读取副本实例的设置,例如它们复制数据的速度或它们是否从外部实例复制:

$setting = New-GcSqlSettingConfig "db-n1-standard-1"
$replicaConfig = New-GcSqlInstanceReplicaConfig
$instance = New-GcSqlInstanceConfig "mynewreplica" `
    -SettingConfig $setting `
    -ReplicaConfig $replicaConfig `
    -MasterInstanceName "gootoso"
Add-GcSqlInstance $instance

如需详细了解读取副本要求,请参阅配置副本的要求和提示

如需查看将读取副本提升为故障转移或独立实例的演示,请参阅管理实例副本

创建故障转移副本实例

Cloud SQL 通过使用故障转移副本为实例提供高可用性配置。故障转移副本使用半同步复制功能来复制主实例中数据发生的所有更改。如果主实例中的地区遇到中断,则会激活故障转移副本并进行控制。因此,副本必须位于与主服务器不同的地区。

以下代码段会为主实例 gootoso 创建新的故障转移副本 myfailover。副本实例使用 config cmdlet 采用与上面相同的方式创建。但是,请注意添加 -FailoverTarget 标志:

$setting = New-GcSqlSettingConfig "db-n1-standard-1"
$replicaConfig = New-GcSqlInstanceReplicaConfig -FailoverTarget
$instance = New-GcSqlInstanceConfig "myfailover" `
    -SettingConfig $setting `
    -ReplicaConfig $replicaConfig `
    -MasterInstanceName "gootoso"
Add-GcSqlInstance $instance

请注意,副本实例影响计费的方式与普通实例相同。