- 關於
- 開始使用
- 資料儲存、複製和驗證
- 資料遷移
- 備份與還原
- 管理執行個體
- 洞察
- 價格與計費
- 搭配 App Engine 使用 Cloud SQL
- 我可以從 App Engine 連線至 PostgreSQL 執行個體嗎?
- 美國的 App Engine 應用程式可以存取歐盟的 Cloud SQL 執行個體嗎?反之亦然?
- 我適合使用哪一種 Google Cloud 資料庫服務?
- 我是否需要安裝本機資料庫伺服器,才能使用 App Engine 開發伺服器?
- 我可以使用哪些語言存取執行個體?
- 我可以將 Django 與 Cloud SQL 搭配使用嗎?
- 我在 Python 查詢字串中可以使用哪些預留位置?
- 如何管理連線?
- 「無效的連線 ID」訊息代表什麼?
- 我可以透過程式輔助方式,在 App Engine 以外存取 Cloud SQL 執行個體嗎?
簡介
- 什麼是 Cloud SQL?
- Cloud SQL 是雲端式的全代管 SQL 資料庫服務,Cloud SQL 提供 PostgreSQL、SQL Server 和 MySQL 資料庫。
- 使用 Cloud SQL 有什麼好處?
- 您可以把枯燥但必要,且通常相當耗時的工作轉由 Google 執行,例如套用修補與更新檔、管理備份與設定複寫作業,這樣您就能專心打造出色的應用程式。由於我們採用標準線路通訊協定,因此您可以從任何應用程式連線,不限地點。
- 哪些資料庫版本可以搭配 Cloud SQL 使用?如何管理更新?
-
PostgreSQL 適用的 Cloud SQL 支援 PostgreSQL 9.6、10、11、12、13、14、15、16 和 17 (預設)。
次要版本更新會在預定維護期間部署,您不需要另外採取任何動作。如要進一步瞭解更新,請參閱「Cloud SQL 執行個體維護作業總覽」。
如要查看執行個體的目前版本,請前往 Google Cloud 主控台,按一下執行個體名稱,以開啟「Instance details」(執行個體詳細資料) 頁面。或者,您也可以使用
gcloud sql instances describe
指令。 - Cloud SQL 是否支援所有資料庫功能?
- Cloud SQL 支援 PostgreSQL 的大部分常見功能。如要查看標準 PostgreSQL 與 Cloud SQL 提供的功能之間的所有差異,請參閱「Cloud SQL 與標準 PostgreSQL 功能之間的差異」。
- 是否有任何大小或 QPS 限制?
- Cloud SQL 執行個體沒有每秒查詢次數 (QPS) 限制。如要進一步瞭解連線、大小及 App Engine 專用限制,請參閱「配額與限制」一文。
- 我要如何得知 Cloud SQL 的任何變動?
- 您可以訂閱 google-cloud-sql-announce 論壇,我們會在該論壇發布 Cloud SQL 相關公告和新聞。
- 如何回報錯誤、要求新功能或詢問問題?
- 您可以在 google-cloud-sql-discuss 群組中回報錯誤並要求新功能。您可以在 Stack Overflow 中提問。如需其他支援選項,請參閱 Cloud SQL 支援頁面。
開始使用
- 為什麼我的新執行個體沒有資料顯示已使用的磁碟空間?
- 建立執行個體時,Cloud SQL 和資料庫都會使用一些空間來儲存系統檔案和中繼資料。 返回頁首
- 我的資料儲存在哪裡?
-
執行個體資料會儲存在該執行個體所在的地區。如果您未指定儲存位置,備份會儲存在地理位置上最接近 Cloud SQL 執行個體位置的多地區中。舉例來說,如果您的 Cloud SQL 執行個體位於
us-central1
,系統預設會將備份儲存在us
多區域。但是,諸如australia-southeast1
等預設位置不在多地區範圍內。最近的多地區為asia
。 - 什麼是區域?
區域是特定地理位置中的獨立實體,您可在其中執行資源。舉例來說,名為 us-central1-a 的可用區表示美國中部的某個位置。
如要進一步瞭解區域,請參閱 Compute Engine 說明文件中的「區域資源」一文。
- 什麼是儲存空間限制?
- 如需進一步瞭解儲存空間限制,請參閱「配額與限制」一文。
- 我的資料是如何複製的?
- 我可以建立哪一種讀取備用資源?
-
如要進一步瞭解唯讀備用資源 (包括每種類型的用途),請參閱「複製選項」。
- Cloud SQL 容錯移轉的運作方式為何?
-
如要瞭解容錯移轉功能,請參閱「高可用性設定總覽」。
- 我的資料有經過加密嗎?
- 儲存在資料庫資料表、暫存檔案和備份中的 Cloud SQL 客戶資料會受到加密保護。您可以使用安全資料傳輸層 (SSL) 或使用 Cloud SQL 驗證 Proxy 來加密外部連線。
- 如何管理靜態資料加密?
您的資料會依照 256 位元進階加密標準 (AES-256) 加密,或以更好的對稱金鑰加密:亦即,儲存資料時會使用金鑰加密,使用資料時再使用相同的金鑰解密。這些資料金鑰本身會使用儲存在安全 KeyStore 中的金鑰進行加密,並定期變更。
詳情請參閱 Google Cloud 靜態資料加密。
- 如何管理傳輸中的資料加密?
-
資料移出 Google 或 Google 代理單位控管的實體界限時,Google 會在一或多個網路層加密及驗證所有傳輸中的資料。系統通常會驗證在 Google 控制或代表 Google 控制的實體界限內傳輸的資料,但不會預設為加密這些資料。如果您使用執行個體的公開 IP 位址連線,請使用 SSL/TLS 憑證,確保資料在傳輸期間的安全性。您可以依據威脅模型,選擇要套用哪些額外的安全措施。舉例來說,您可以為區域內連線至 Cloud SQL 的連線設定 SSL。
詳情請參閱 Google Cloud 中的傳輸加密。
- 如何將資料和限制條件遷移至 Cloud SQL?
- 在遷移程序期間,系統會先遷移資料,然後再在執行個體上重新建立限制 (例如主鍵、外鍵和索引)。
- 如何加快資料遷移速度?
-
您現在可以並行遷移資料庫資料表中的資料。由於 Cloud SQL 可在資料庫中以平行程序傳輸資料,因此效能會有所提升。您可以設定 Cloud SQL 將這項資料傳輸至
min
、optimal
或max
的速度。詳情請參閱「 使用代管匯入功能設定從外部資料庫的複製作業」。 - 如何復原執行個體?
-
如要還原備份,您可以使用 Google Cloud 主控台或
gcloud
指令列工具。詳情請參閱「還原執行個體」。如要將執行個體還原至特定時間點,請使用時間點復原功能。詳情請參閱「 使用時間點復原」一文。
- 備份的費用是多少?
-
備份費用會以執行個體儲存空間費率計費。
如需進一步瞭解執行個體儲存空間價格和執行個體費率,請參閱定價一文。
- 我可以存取七天前建立的自動備份嗎?
-
系統每天都會自動備份,預設保留期限為七天。您可以設定備份保留值,範圍從 1 到 365 個備份。保留期限屆滿時,系統會刪除最舊的備份。自動備份功能為漸進式。只包含上次備份後變更的資料。最久以前的備份大小與資料庫相近。刪除最舊的備份後,下一個最舊的備份大小會增加,以便保留完整備份。
請注意,系統不會刪除隨選備份,除非您手動移除。
- 何時應使用外部複製功能,而非跨區域複製功能來保護區域故障?
-
外部複製 跨區域複製作業 由客戶自行管理 Cloud SQL 管理跨區域備用資源 可在非 Google Cloud 和 Google Cloud 執行個體之間複製 只能在 Cloud SQL 執行個體之間複製 遷移至 Google Cloud 或從 Google Cloud 遷移,以盡量減少停機時間,或為混合/多雲資料保護 在 Google Cloud 區域之間遷移資料,盡量減少停機時間 支援跨主要版本的複製 不支援跨主要版本的複製作業 - 哪些動作可能會導致 Cloud SQL 執行個體重新啟動?
-
當您或 Cloud SQL 執行下列操作時,Cloud SQL 執行個體可能會重新啟動:
- 更新
- 建立
- 升級備用資源
- 維護
- 重新建立複本
- 容錯移轉
- 重新啟動
- 從備份還原執行個體
- 在現有執行個體上啟用高可用性 (這是對執行個體的更新)
- 新增需要重新啟動的資料庫旗標
重新啟動執行個體不會變更執行個體的公開或私人 IP 位址。
請參閱下列章節:重新啟動時,執行個體會關閉多久?
- 重新啟動期間,執行個體會關閉多久?
-
重新啟動執行個體時,大多數執行個體會關閉一到兩分鐘。在執行個體關閉前,所有連線都會結束,並將目前的工作從磁碟中刷出。
對於負載較高的執行個體,這項程序會耗時較久,且執行個體可能會停滯不前。在這種情況下,執行個體可能需要最多一小時才能關閉及重新啟動。執行個體關閉及重新啟動所需的時間可能會很長,原因包括使用者有許多寫入交易,或是交易執行時間很長。
- 可以擴大或縮小我的資料庫嗎?
-
您隨時可以增加執行個體可用的儲存空間,且不會造成停機時間。您不能縮減執行個體的儲存空間大小。您也可以設定執行個體,在儲存空間即將用盡時自動增加儲存空間容量。瞭解詳情。
- 我可以升級和降級 vCPU 嗎?
-
可以,您可以變更執行個體使用的 vCPU 數量。您可以視需要增加或減少使用的核心數量。變更 vCPU 數量通常會造成五分鐘以下的服務中斷時間。如果您要增加 Cloud SQL Enterprise Plus 版本主要執行個體的 vCPU 數量,變更會在幾乎無停機的情況下生效。
- 是否需要使用 Google Cloud 控制台管理 Cloud SQL?
- 不需要。凡是能在主控台執行的管理工作,都可以透過 Cloud SQL Admin API 運用程式來執行,或使用
gcloud
指令列工具撰寫指令碼來執行。 - 如何釋出暫存檔使用的空間?
- 當 SQL 查詢建立許多臨時表格時,臨時檔案可能會增加。如要釋出臨時表使用的空間,您必須重新啟動資料庫。請注意,重新啟動資料庫不會減少因暫存檔案增加而預留的磁碟空間。
- 是否可以匯入或匯出特定的資料庫?
- 是的。您只能匯入或匯出特定的資料庫;您無法同時匯入或匯出多個資料庫。詳情請參閱「匯入資料」或「匯出資料」。
- 是否可以匯入或匯出 CSV 檔案?
-
您可以匯入或匯出 MySQL 或 PostgreSQL 的 CSV 檔案。詳情請參閱「建立 CSV 檔案」。
Cloud SQL for SQL Server 目前不支援 CSV。
- 需要 Cloud Storage 帳戶才能在執行個體中匯入或匯出資料嗎?
- Cloud SQL 支援使用 CSV 或 pg_dump 檔案匯入及匯出資料庫。詳情請參閱「使用 pg_dump 和 pg_restore 匯出及匯入」或「使用 CSV 檔案匯出及匯入」。
- 當我刪除執行個體時,是否可以重新使用這個執行個體的名稱?
- 是。
- Cloud SQL 提供的交易隔離等級為何?
-
PostgreSQL 執行個體:Cloud SQL 提供
Read committed
交易隔離。您可以變更特定交易的交易隔離層級,但通常建議使用預設值。詳情請參閱 PostgreSQL 說明文件中的「Transaction Isolation」一節。 - 如何避免意外刪除執行個體?
- 您可以在建立執行個體時或稍後啟用防刪除功能。如果已啟用這項設定,您必須先停用,再刪除執行個體。請參閱「防止刪除執行個體」一文。
- 為什麼我無法在「深入分析」中找到查詢計畫範例?
- 由於查詢計畫可能會對查詢造成效能影響,因此我們只提供取得查詢計畫的查詢範例。因此,有時系統不會顯示查詢計畫範例。
- 如何才能試用 Cloud SQL?
- 最小的執行個體是
db-f1-micro
。您可以使用這項工具試用服務。請注意,服務水準協議不適用於共用核心執行個體。 - 可以在專案中建立多少執行個體?
- 如需進一步瞭解執行個體限制,請參閱「配額與限制」一文。
- 我需要多大的資料庫執行個體大小?多大的 RAM?
- 一般來說,您可以選擇記憶體和 CPU 較多的大型執行個體,提升資料庫效能。這麼做可提高許多涉及大量運算的查詢效能,例如涉及彙整、ORDER BY 或 GROUP 的查詢,但影響單一資料列的更新效能不會受到太大影響。不過,執行個體越大,作業延遲時間就越長。如要進一步瞭解執行個體大小和價格,請參閱定價頁面。
- 如何計算執行個體的使用?
-
依據執行個體啟用的時間,按每分鐘收費。
- 如何計算儲存空間?
- 儲存空間的計算依據為佈建供執行個體使用的儲存空間量。備份儲存空間的計費方式是按照備份使用的空間量。無論執行個體是開啟還是關閉狀態,都會產生儲存空間費用。
- 如何知道我將支付多少費用?
- Google Cloud 主控台的「Billing」分頁會顯示自上一份帳單發出後執行個體產生的費用。
- 當我的執行個體到達大小上限時,會發生什麼情況?
- 如果執行個體達到已配置的儲存空間大小,且您未啟用自動增加儲存空間功能,或已達到所設定的上限,則在您增加儲存空間大小之前,系統將不允許寫入資料庫。增加儲存空間大小不需要重新啟動或關閉執行個體。
- 為什麼我的執行個體被停權了?
- 這可能是因為您的 Google Cloud 帳戶發生問題。 您可以提交 帳單支援要求來判斷您的帳單狀態。帳單問題解決後,執行個體會在幾小時內恢復為可執行狀態。請注意,系統會在 90 天後刪除遭到停權的 MySQL 執行個體。
- 為什麼我的執行個體遭到刪除?
-
被停權的執行個體會在 90 天後遭到刪除。這適用於狀態為
SUSPENDED
的執行個體。已停止但狀態為RUNNABLE
的執行個體不會遭到刪除。 - 如何取消我的 Cloud SQL 帳戶?
- 如要停用專案的 Cloud SQL,請前往 Google Cloud 控制台,選取專案,然後選取 API 服務以開啟 API 資訊主頁。找出 Cloud SQL API,然後按一下該 API 的「Disable」。
- 如何停用計費功能?
- 您可以停用計費功能,方法是按一下 Google Cloud 控制台專案的「Billing & settings」窗格中的「Disable billing」。如果停用計費功能,也會同時停用 Cloud SQL 服務。請務必先確認您確實要停用 Cloud SQL 服務,再停用計費功能。
您會在停用計費功能之後收到最後一份帳單,我們會向您收取自付費週期起到取消服務日這段期間內所產生的費用。
中的「停用帳單」一節。 - 可以從 App Engine 連結至 PostgreSQL 執行個體嗎?
- 您可以從 App Engine 應用程式連線至 PostgreSQL 執行個體,具體取決於您使用的環境和語言。詳情請參閱「從 App Engine 標準環境連線」或「從 App Engine 彈性環境連線」。
- 美國的 App Engine 應用程式可以存取歐盟的 Cloud SQL 執行個體嗎?反之亦然?
-
如果您要連線至 Cloud SQL 執行個體,App Engine 應用程式不必位於相同的地區。但 Cloud SQL 執行個體和 App Engine 應用程式之間的距離愈遠,連結資料庫的延遲時間就會愈長。
- 哪項 Google Cloud 資料庫服務最適合我?
- 這取決於應用程式的需求。 Google Cloud 提供多種儲存、管理及擷取資料的選項。詳情請參閱「Google Cloud 資料庫」。
- 是否需要安裝本機資料庫伺服務才能使用 App Engine 開發伺服器?
- 否。您可以設定 App Engine,在開發伺服器上執行時使用 Cloud SQL 或本機安裝的資料庫伺服器。
- 我可以使用哪些語言來存取執行個體?
-
App Engine 標準環境支援多種語言,可用於連線至執行個體。詳情請參閱「從 App Engine 標準環境連線」或「從 App Engine 彈性環境連線」。
如果您不是使用 App Engine,可以使用任何具備關聯連接器或 API 的語言。
- 可以使用 Django 搭配 Cloud SQL 嗎?
- 可以。Cloud SQL 與 Django 相容。請參閱「開始使用 Django」。
- 哪一個預留位置可以用於 Python 查詢字串中?
- Python 使用者只能在參數替代中使用
%s
格式碼。因此,下列為無效的陳述式:cursor.execute('INSERT INTO entries (guestAge) VALUES (%d)', (age))
。 - 如何管理連線?
-
有效管理資料庫連線是資料庫應用程式開發的一個重要方面,包括使用連線集區與指數輪詢。如需如何以多種語言和架構使用這些技術的範例,請參閱管理資料庫連線一文。
如要進一步瞭解執行個體連線限制,請參閱配額與限制。
- SQLException 的「無效的連線 ID」訊息代表什麼?
- 這表示連線不再在伺服器上開啟,且已遭用戶端捨棄。您不需要對這些連線呼叫「close」;這些連線已關閉。
- 可以在 App Engine 以外透過程式來存取我的 Cloud SQL 執行個體嗎?
- 可以。您可以使用任何支援的語言,透過程式輔助方式從外部應用程式存取 Cloud SQL 執行個體。請參閱「連線總覽」。