我需要在多个不同的位置使用SQL。最好的选择是在不同的位置设置一些数据库(甚至一些记录,比如在Mongo上标记(。有可能在Google SQL上实现吗?
可能有两种情况-
- 多个位置的单个云SQL实例
- 多个位置的不同云SQL实例
创建云SQL实例时,您可以选择存储实例及其数据的区域。要减少延迟并提高可用性,请为您的数据、计算引擎实例、标准环境应用程序和其他服务选择相同的区域。
区位类型主要有两种,区域区位,即特定地理位置和包含至少两个地理位置的多区域区位。多区域位置仅用于Cloud SQL中的备份操作。
您可以在第一次创建实例时选择一个位置。创建实例后无法更改位置。
一个区域由许多称为区域的小型数据中心组成。创建云SQL实例时,可以指定实例在选定区域内的单个区域或两个不同区域中可用。将云SQL实例选择在两个不同的区域中称为高可用性(HA(配置。
HA配置的目的是减少分区或实例不可用时的停机时间,这可能发生在分区停机期间,或者实例损坏时。使用HA,您的数据可以继续提供给客户端应用程序。
HA配置提供数据冗余。为HA配置的云SQL实例也称为区域实例,位于配置区域内的主区域和辅助区域中。在区域实例中,配置由一个主实例和一个备用实例组成。
因此,考虑第一种情况,如果云SQL实例可以位于多个位置,那么如果将不同的区域视为不同的位置,则是肯定的(这是正确的,因为两个区域是单个GCP区域内物理分离的数据中心(。但它只能位于两个区域中,因此您必须为该实例配置高可用性(HA(。
对于第二种情况,您总是可以在不同的区域创建不同的云SQL实例。
您可以通过云SQL中的实例位置和HA配置的概述来简要了解以上内容。
Cloud SQL中还有另一个选项,称为读取副本。
您使用读取副本来从云SQL实例卸载工作。读取副本是主实例的精确副本。主实例上的数据和其他更改在读取的复制副本上几乎实时更新。
读取副本是只读的;你不能给他们写信。读取副本处理查询、读取请求和分析流量,从而减少主实例的负载。
如果希望数据在多个位置可用,可以考虑使用跨区域读取副本。
跨区域复制允许您在与主实例不同的区域中创建读取复制副本。
跨区域读取副本有很多优点-
- 通过使副本更靠近您的应用程序的区域
- 提供额外的灾难恢复能力以防范区域性故障
- 允许您将数据从一个区域迁移到另一个区域