SQL Server 適用的 Cloud SQL 常見問題

簡介

什麼是 Cloud SQL?
Cloud SQL 是雲端式的全代管 SQL 資料庫服務,Cloud SQL 提供 PostgreSQL、SQL Server 和 MySQL 資料庫。
使用 Cloud SQL 有什麼好處?
Cloud SQL 可讓您將枯燥但必要,且通常相當耗時的工作轉交給 Google 處理,例如套用修補程式與更新、管理備份與設定複寫作業,這樣您就能專心打造出色的應用程式。由於我們使用標準線路通訊協定,因此您幾乎可以從任何應用程式連線至任何位置。
哪些資料庫版本可以搭配 Cloud SQL 使用?如何管理更新?

SQL Server 適用的 Cloud SQL 支援下列版本的 SQL Server:SQL Server 2017 Standard、SQL Server 2017 Enterprise、SQL Server 2017 Express、SQL Server 2017 Web、SQL Server 2019 Standard、SQL Server 2019 Enterprise、SQL Server 2019 Express、SQL Server 2019 Web、SQL Server 2022 Standard (預設)、SQL Server 2022 Enterprise、SQL Server 2022 Express 和 SQL Server 2022 Web。

子版本更新會在排定的維護作業中部署,您無須採取任何行動。如要進一步瞭解更新,請參閱「Cloud SQL 執行個體維護作業總覽」。

如要查看執行個體的目前版本,請前往 Google Cloud 控制台,點選執行個體名稱開啟「執行個體詳細資料」頁面。或者,您也可以使用 gcloud sql instances describe 指令。

Cloud SQL 是否支援所有資料庫功能?
Cloud SQL 支援 SQL Server 的大部分常見功能。如需不支援的功能,請參閱「 Cloud SQL 不提供的 SQL Server 功能」。
是否有任何大小或 QPS 限制?
Cloud SQL 執行個體沒有每秒查詢次數 (QPS) 限制。如要瞭解連線、大小和 App Engine 專屬限制,請參閱「配額與限制」。
我要如何得知 Cloud SQL 的任何變動?
你可以訂閱「SQL Server 版本資訊」頁面的 RSS 動態消息。
如何回報錯誤、要求新功能或詢問問題?

您可以在 Google Cloud 開發人員計畫社群論壇中提問。詳情請參閱下列 Cloud SQL 討論論壇:

如要查看一般 Google Cloud 狀態,請前往 Google Cloud 狀態追蹤工具。

如果您發現可重現的 Cloud SQL 錯誤,或想要求新功能,請前往 Issue Tracker。

返回頁首

開始使用

為什麼我的新執行個體沒有資料顯示已使用的磁碟空間?
建立執行個體時,Cloud SQL 和資料庫都會使用部分空間儲存系統檔案和中繼資料。
返回頁首

資料儲存、複製和驗證

我的資料儲存在哪裡?

執行個體資料會儲存在執行個體所在的區域。 如未指定儲存位置,備份會儲存在地理位置最接近 Cloud SQL 執行個體的多區域。舉例來說,如果您的 Cloud SQL 執行個體位於 us-central1,系統預設會將備份儲存在 us 多區域。不過,australia-southeast1 之類的預設位置在多區域之外。最接近的多區域是 asia。

什麼是區域?

區域是特定地理位置中的獨立實體,您可在其中執行資源。舉例來說,名為 us-central1-a 的可用區表示位於美國中部。

如要進一步瞭解可用區,請參閱 Compute Engine 說明文件中的「可用區資源」。

什麼是儲存空間限制?
如要瞭解儲存空間限制,請參閱「配額與限制」。
我的資料是如何複製的?

SQL Server 執行個體提供高可用性設定和唯讀副本。

我可以建立哪一種讀取備用資源?

如要進一步瞭解唯讀副本,包括每種副本的用途,請參閱「複寫選項」。

Cloud SQL 容錯移轉的運作方式為何?

如要瞭解容錯移轉,請參閱「高可用性設定總覽」。

我的資料有經過加密嗎?
無論是儲存在資料庫資料表、暫存檔案和備份中,Cloud SQL 客戶資料皆處於加密狀態。外部連線可使用 SSL 或 Cloud SQL Auth Proxy 加密。
如何管理靜態資料加密?

您的資料會使用 256 位元進階加密標準 (AES-256) 或更高等級的對稱式金鑰加密,也就是說,儲存資料時會使用同一把金鑰加密,使用資料時則會解密。這些資料金鑰本身會使用儲存在安全金鑰儲存區的金鑰加密,並定期變更。

詳情請參閱「Google Cloud 靜態資料加密」。

如何管理傳輸中的資料加密?

資料移出 Google 或 Google 代理單位控管的實體界限時,Google 會在一或多個網路層加密及驗證所有傳輸中的資料。系統通常會驗證在 Google 控制或代表 Google 控制的實體界限內傳輸的資料,但不會預設為加密這些資料。如果您使用執行個體的公開 IP 位址連線,請使用 SSL/TLS 憑證,確保資料在傳輸過程中受到保護。您可以根據威脅模型,選擇要採取的額外安全措施。舉例來說,您可以設定 SSL,以供區域內連線至 Cloud SQL。

詳情請參閱「Google Cloud 中的傳輸加密」。

是。您可以使用驗證、授權等功能,詳情請參閱總覽。
返回頁首

備份與還原

如何復原執行個體?

如要從備份還原,可以使用 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 數量通常只需要不到五分鐘的停機時間。

我需要使用 Google Cloud 控制台管理 Cloud SQL 嗎?
否。您可以使用控制台執行所有管理工作,也可以透過 Cloud SQL Admin API 以程式輔助方式執行,或使用 gcloud 指令列工具編寫指令碼。
如何回收暫存檔占用的空間?
如果 SQL 查詢建立許多臨時資料表,臨時檔案可能會變大。如要回收臨時表使用的空間,請重新啟動資料庫。 請注意,重新啟動資料庫不會減少因暫存檔案增加而佈建的磁碟空間。
是否可以匯入或匯出特定的資料庫?
可以。您可以匯入或匯出特定資料庫,或執行個體上的所有資料庫。詳情請參閱「 匯入及匯出資料的最佳做法」。
是否可以匯入或匯出 CSV 檔案?
SQL Server 適用的 Cloud SQL 目前不支援 CSV 格式。
我是否需要 Cloud Storage 帳戶,才能將資料匯入/匯出至執行個體?
Cloud SQL 支援匯入及匯出資料庫。詳情請參閱「 使用 SQL 傾印檔案匯出及匯入」和「 使用 BAK 檔案匯出及匯入」。
當我刪除執行個體時,是否可以重新使用這個執行個體的名稱?
可以。
Cloud SQL 提供的交易隔離等級為何?

SQL Server 執行個體: Cloud SQL 提供所有 層級的交易隔離。因此,支援的類型如下:UNCOMMITTED、READ COMMITTED、REPEATABLE READ、SNAPSHOT 和 SERIALIZABLE。

如何避免意外刪除執行個體?
您可以在建立執行個體時啟用防刪除功能,也可以稍後再啟用。 如果啟用這項設定,您必須先停用,才能刪除執行個體。請參閱「防止刪除執行個體」。
返回頁首

深入分析

為什麼在「洞察」中找不到查詢計畫範例?
我們只提供查詢計畫的查詢範例,因為這可能會影響查詢效能。因此有時不會顯示範例查詢計畫。
返回頁首

價格與計費

如何才能試用 Cloud SQL?
最小的執行個體是 db-f1-micro。 您可以使用這項服務。 請注意,共用核心執行個體不在服務水準協議的保障範圍內。
可以在專案中建立多少執行個體?
如要瞭解執行個體限制,請參閱「配額與限制」。
我需要多大的資料庫執行個體大小?多大的 RAM?
一般來說,選擇具有更多 RAM 和 CPU 的較大執行個體,可以提升資料庫效能。這項功能可提升許多涉及大量運算的查詢效能,例如涉及聯結、ORDER BY 或 GROUPING 的查詢,但影響單一資料列的更新效能不會受到太大影響。不過,執行個體越大,運作延遲時間就越長。如要進一步瞭解執行個體大小和定價,請參閱定價頁面。
如何計算執行個體的使用?

系統會依執行個體運作時間 (以分鐘為單位) 收費。 此外,Microsoft SQL Server 授權規定,您必須為執行個體上的每顆虛擬 CPU 指派核心授權 (每個執行個體至少四核心)。為符合相關規定,假設執行個體的 vCPU 少於 4 顆,系統仍會視同 4 顆收取 SQL Server 授權費用。如果執行個體有四個以上的 vCPU,系統會根據 vCPU 數量收取相同數量的 SQL Server 授權費用。

如何計算儲存空間?
儲存空間費用是根據您為執行個體佈建的儲存空間量計算。備份儲存空間的計費方式是按照備份使用的空間量。無論執行個體是否開啟,都會收取儲存空間費用。
如何知道我將支付多少費用?
Google Cloud 控制台的「帳單」分頁會顯示自上次開立帳單以來,執行個體產生的費用。
當我的執行個體到達大小上限時,會發生什麼情況?
如果執行個體達到佈建的儲存空間大小,且您未啟用自動增加儲存空間功能或已達到設定的上限,則在增加儲存空間大小前,系統會禁止日後寫入資料庫。增加儲存空間大小時,不需要重新啟動執行個體或停機。
為什麼我的執行個體被停權了?
這可能是因為帳戶發生問題。 Google Cloud 如要判斷帳單狀態,請提出 帳單支援要求。帳單問題解決後,執行個體會在幾小時內恢復可執行狀態。 請注意,SQL Server 執行個體暫停 90 天後就會遭到刪除。
為什麼我的執行個體遭到刪除?
如果執行個體已暫停 90 天,系統就會刪除。這適用於狀態為 SUSPENDED 的執行個體。狀態為 RUNNABLE 的已停止執行個體不會遭到刪除。
如何取消我的 Cloud SQL 帳戶?
如要停用專案的 Cloud SQL,請前往Google Cloud 控制台,選取專案,然後選取「API」服務開啟 API 資訊主頁。找出 Cloud SQL API,然後點選該 API 的「停用」。
如何停用計費功能?
如要停用帳單,請在專案的 Google Cloud 控制台「帳單與設定」窗格中,按一下「停用帳單」。如果停用計費功能,也會同時停用 Cloud SQL 服務。停用計費功能前,請確認您確實要停用 Cloud SQL 服務。

您會在停用計費功能之後收到最後一份帳單,我們會向您收取自付費週期起到取消服務日這段期間內所產生的費用。

返回頁首

使用 Cloud SQL 搭配 App Engine

我可以從 App Engine 連線至 SQL Server 執行個體嗎?
您可以從 App Engine 應用程式連線至 SQL Server 執行個體,具體做法取決於您使用的環境和語言。詳情請參閱「從 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 執行個體。 請參閱「連線總覽」。
返回頁首