- 關於
- 開始使用
- 資料儲存、複製和驗證
- 資料遷移
- 備份與還原
- 管理執行個體
- 洞察
- 價格與計費
- 搭配 App Engine 使用 Cloud SQL
- 我可以從 App Engine 連線至 PostgreSQL 執行個體嗎?
- 美國的 App Engine 應用程式可以存取歐盟的 Cloud SQL 執行個體嗎?反之亦然嗎?
- 哪種 Google Cloud 資料庫服務適合我?
- 使用 App Engine 開發伺服器時,是否需要安裝本機資料庫伺服器?
- 我可以使用哪些語言存取執行個體?
- 我可以在 Cloud SQL 中使用 Django 嗎?
- 我可以在 Python 查詢字串中使用哪些預留位置?
- 如何管理連線?
- SQLException 的「無效的連線 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) 加密,或以更好的對稱金鑰加密:亦即,儲存資料時會使用金鑰加密,使用資料時再使用相同的金鑰解密。這些資料金鑰本身會使用儲存在安全金鑰儲存區的金鑰加密,並定期變更。
詳情請參閱 Google Cloud 靜態資料加密一文。
- 如何管理傳輸中的資料加密?
-
資料移出 Google 或 Google 代理單位控管的實體界限時,Google 會在一或多個網路層加密及驗證所有傳輸中的資料。系統通常會驗證在 Google 控制或代表 Google 控制的實體界限內傳輸的資料,但不會預設為加密這些資料。如果使用執行個體的公開 IP 位址連線至執行個體,請使用 SSL/TLS 憑證,確保資料在傳輸過程中安全無虞。您可以依據您的威脅模型,選擇要套用哪些額外的安全措施。舉例來說,您可以設定 SSL,確保連線至 Cloud SQL 的區域內連線安全無虞。
詳情請參閱「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 區域之間遷移資料,盡量減少停機時間 支援跨主要版本複寫 不支援跨主要版本複製 - 哪些動作可能會導致 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 說明文件中的「交易隔離」。 - 如何避免執行個體遭到意外刪除?
- 您可以在建立執行個體時或稍後啟用防刪除功能。 如果啟用這項設定,您必須先停用,才能刪除執行個體。請參閱防止刪除執行個體。
- 為什麼我無法在「洞察」中找到範例查詢計畫?
- 我們只提供取得查詢計畫的查詢範例,因為這可能會影響查詢效能。因此有時不會顯示查詢計畫範例。
- 如何才能試用 Cloud SQL?
- 最小的執行個體是
db-f1-micro
。你可以使用這項服務。 請注意,服務水準協議不適用於共用核心執行個體。 - 可以在專案中建立多少執行個體?
- 如需進一步瞭解執行個體限制,請參閱 配額與限制。
- 我需要多大的資料庫執行個體大小?多大的 RAM?
- 一般而言,選擇 RAM 和 CPU 較多的較大執行個體,即可提升資料庫效能。這項功能可提升許多涉及大量運算的查詢效能,例如涉及聯結、ORDER BY 或 GROUPING 的查詢,但影響單一資料列的更新作業效能不會受到太大影響。不過,執行個體越大,運作延遲時間就越長。如要進一步瞭解執行個體大小和價格,請參閱定價頁面。
- 如何計算執行個體的使用?
-
系統會依據執行個體啟用的時間,按每分鐘收費。
- 如何計算儲存空間?
- 儲存空間的計算依據為佈建供執行個體使用的儲存空間量。備份儲存空間的計費方式是按照備份使用的空間量。無論執行個體是開啟還是關閉狀態,都會產生儲存空間費用。
- 如何知道我將支付多少費用?
- Google Cloud 主控台的「帳單」分頁會顯示自上一份帳單發出後,執行個體產生的費用。
- 當我的執行個體到達大小上限時,會發生什麼情況?
- 如果執行個體達到佈建的儲存空間大小,且您未啟用自動增加儲存空間功能或已達到設定的上限,則在您增加儲存空間大小之前,您無法將新資料寫入資料庫。增加儲存空間大小不需要重新啟動或關閉執行個體。
- 為什麼我的執行個體被停權了?
- 可能是因為您的 Google Cloud 帳戶發生問題。 您可以提交 帳單支援要求來判斷您的帳單狀態。帳單問題解決之後,執行個體會在幾小時內恢復為可執行狀態。 請注意,系統會在 90 天後刪除遭到停權的 MySQL 執行個體。
- 為什麼我的執行個體遭到刪除?
-
被停權的執行個體會在 90 天後遭到刪除。這適用於狀態為
SUSPENDED
的執行個體。已停止但狀態為RUNNABLE
的執行個體不會遭到刪除。 - 如何取消我的 Cloud SQL 帳戶?
- 如要停用專案的 Cloud SQL,請前往Google Cloud 控制台,選取專案,然後選取「API」服務以開啟 API 資訊主頁。 找出 Cloud SQL API,然後按一下該 API 的「停用」。
- 如何停用計費功能?
- 如要停用計費功能,請在專案的 Google Cloud 控制台「帳單與設定」窗格中,按一下「停用計費功能」。如果停用計費功能,也會同時停用 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 執行個體。請參閱連線總覽。