- 關於
- 開始使用
- 資料儲存、複製和驗證
- 備份與還原
- 管理執行個體
- 哪些動作會導致 Cloud SQL 執行個體重新啟動?
- 重新啟動期間,執行個體會關閉多久?
- 可以擴充或縮減資料庫嗎?
- 我可以升級和降級 vCPU 嗎?
- 我是否需要使用 Google Cloud 控制台管理 Cloud SQL?
- 如何回收已捨棄資料表的空間?
- 如何回收暫存檔占用的空間?
- 我可以手動清除執行個體中的二進位記錄檔嗎?
- 可以設定自訂二進位記錄保留政策嗎?
- 如何追蹤資料變更?
- 我可以匯入或匯出特定資料庫嗎?
- 我可以匯入或匯出 CSV 檔案嗎?
- 是否需要 Cloud Storage 帳戶,才能從執行個體匯入或匯出資料?
- 匯入作業中的
ERROR_RDBMS代表什麼意思? - 如果刪除執行個體,可以重複使用執行個體名稱嗎?
- 什麼是 cloudsqladmin 資料庫使用者?
- 如何使用
GRANT ALL? - 如何存取執行個體的交易記錄?
- Cloud SQL 提供哪種等級的交易隔離?
- 如何防止執行個體遭到意外刪除?
- 洞察
- 價格與計費
- 搭配 App Engine 使用 Cloud SQL
- 我可以從 App Engine 連線至 MySQL 執行個體嗎?
- 位於美國的 App Engine 應用程式是否能存取位於歐盟的 Cloud SQL 執行個體 (反之亦然)?
- 哪種 Google Cloud 資料庫服務適合我?
- 我需要安裝本機資料庫伺服器,才能使用 App Engine 開發伺服器嗎?
- 我可以使用哪些語言存取執行個體?
- 我可以搭配 Cloud SQL 使用 Django 嗎?
- Python 查詢字串中可以使用哪些預留位置?
- 如何管理連結?
- 訊息為「Invalid connection ID」的 SQLException 是什麼意思?
- 我可以在 App Engine 外部,透過程式輔助方式存取 Cloud SQL 執行個體嗎?
簡介
- 什麼是 Cloud SQL?
- Cloud SQL 是雲端式的全代管 SQL 資料庫服務,Cloud SQL 提供 PostgreSQL、SQL Server 和 MySQL 資料庫。
- 使用 Cloud SQL 有什麼好處?
- Cloud SQL 可讓您將枯燥但必要,且通常相當耗時的工作轉由 Google 執行,例如套用修補與更新檔、管理備份與設定複寫作業,這樣您就能專心打造出色的應用程式。由於我們使用標準線路通訊協定,因此您幾乎可以從任何應用程式連線至任何位置。
- 哪些資料庫版本可以搭配 Cloud SQL 使用?如何管理更新?
-
MySQL 適用的 Cloud SQL 支援 MySQL 8.4 (預設)、8.0、5.7 和 5.6。
子版本更新會在排定的維護作業中部署,您不需採取任何行動。如要進一步瞭解更新,請參閱「Cloud SQL 執行個體維護作業總覽」。
如要查看執行個體的目前版本,請前往 Google Cloud 控制台,然後按一下執行個體名稱,開啟「Instance details」(執行個體詳細資料) 頁面。或者,您也可以使用
gcloud sql instances describe指令。 - Cloud SQL 是否支援所有資料庫功能?
- Cloud SQL 支援 MySQL 的大多數常見功能。如要查看標準 MySQL 與 Cloud SQL 功能之間的所有差異清單,請參閱「Cloud SQL 與標準 MySQL 功能之間的差異」。
- 是否有任何大小或 QPS 限制?
- Cloud SQL 執行個體沒有每秒查詢次數 (QPS) 限制。如要瞭解連線、大小和 App Engine 專屬限制,請參閱「配額與限制」。
- 我要如何得知 Cloud SQL 的任何變動?
- 你可以訂閱「MySQL 版本資訊」頁面的 RSS 動態消息。
- 如何回報錯誤、要求新功能或詢問問題?
-
您可以在 Google Cloud 開發人員計畫社群論壇中提問。詳情請參閱下列 Cloud SQL 討論論壇:
如要查看一般 Google Cloud 狀態,請前往 Google Cloud 狀態追蹤工具。
如果您發現可重現的 Cloud SQL 錯誤,或想要求新功能,請前往 Issue Tracker。
開始使用
- 什麼 MySQL 工具最適合用來管理執行個體?
- Cloud SQL 提供多種 MySQL 工具,如要執行個別陳述式,可以使用 MySQL 指令列工具。如要執行更複雜的工作,或使用更豐富的資料庫開發環境,可以試試 Toad for MySQL 或 MySQL Workbench。詳情請參閱「管理和報表工具」。
- 我使用哪種儲存空間引擎?
- 以 MySQL 執行個體來說,InnoDB 是唯一支援的儲存引擎。
如果您的
mysqldump檔案中所有表格都是 MyISAM 格式,可以透過管道將檔案傳送至 sed 指令碼,將表格轉換為 InnoDB 格式:mysqldump --databases [DATABASE_NAME] \ -h [INSTANCE_IP] -u [USERNAME] -p [PASSWORD] \ --hex-blob --default-character-set=utf8mb4 | sed 's/ENGINE=MyISAM/ENGINE=InnoDB/g' > [DATABASE_FILE].sql
警告:如果
mysqldump檔案包含mysql結構定義,請勿執行這項操作。這些檔案必須保留在 MyISAM 中。 - 為什麼我的新執行個體沒有資料顯示已使用的磁碟空間?
- 建立執行個體時,Cloud SQL 和資料庫都會使用部分空間來儲存系統檔案和中繼資料。 返回頁首
- 我的資料儲存在哪裡?
-
執行個體資料會儲存在執行個體所在的區域。如未指定儲存位置,備份會儲存在地理位置最接近 Cloud SQL 執行個體的多區域。舉例來說,如果您的 Cloud SQL 執行個體位於
us-central1,系統預設會將備份儲存在us多區域。不過,australia-southeast1等預設位置在多區域之外,最近的多區域為asia。 - 什麼是區域?
區域是特定地理位置中的獨立實體,您可在其中執行資源。例如,名為 us-central1-a 的可用區代表美國中部的位置。
如果是 MySQL 執行個體,您可以將執行個體設為高可用性,以達到跨可用區容錯。強烈建議所有正式環境執行個體採用高可用性設定。
如要進一步瞭解可用區,請參閱 Compute Engine 說明文件中的「可用區資源」。
- 什麼是儲存空間限制?
- 如要瞭解儲存空間限制,請參閱「配額與限制」。
- 我的資料是如何複製的?
-
MySQL 執行個體:MySQL 執行個體提供高可用性設定和 MySQL 唯讀副本。MySQL 唯讀副本會使用非同步複製。
- 我可以建立哪一種讀取備用資源?
-
如要進一步瞭解唯讀副本,包括各種類型的用途,請參閱「複製選項」。
- 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 控制台查看所有 Cloud SQL 執行個體,以及執行個體是主要執行個體還是唯讀副本執行個體。您也可以使用 gcloud CLI,檢查執行個體是主要執行個體還是唯讀副本。詳情請參閱「查看複製狀態」。
- Cloud SQL 是否會為讀取副本的要求提供負載平衡功能?
- Cloud SQL 不會自動提供或設定負載平衡。您可以使用連線集區,在多個連線端點之間切換,將讀取要求分配給唯讀副本。
- 如何復原執行個體?
-
如要從備份還原,可以使用 Google Cloud 控制台或
gcloud指令列工具。詳情請參閱「還原執行個體」。如要將執行個體還原至特定時間點,請使用時間點復原功能。詳情請參閱「 使用時間點復原功能」。
- 備份的費用是多少?
-
備份費用會依執行個體儲存空間費率計算。
如需進一步瞭解執行個體儲存空間價格和執行個體費率,請參閱定價一文。
- 可以存取超過七天的自動備份嗎?
-
系統每天都會自動備份,預設保留期限為七天。您可以設定備份保留值,範圍為 1 到 365 個備份。保留期限結束時,系統會刪除最舊的備份。自動備份為漸進式。只包含上次備份後變更的資料。最舊的備份大小與資料庫相似。刪除最舊的備份時,次舊備份的大小會增加,因此仍會保留完整備份。
請注意,隨選備份不會自動刪除,必須手動移除。
- 時間點復原會對效能造成什麼影響?
- 如果是 MySQL 適用的 Cloud SQL,您必須啟用二進位記錄,才能使用時間點復原功能。也就是說,資料庫的每次更新都會寫入獨立記錄,這會稍微降低寫入效能。無論二進位記錄檔的大小為何,讀取作業的效能都不會受到二進位記錄的影響。
- 為了防範區域故障,我該使用外部複製還是跨區域複製?
-
外部複製 跨區域複製 由客戶自行管理 Cloud SQL 代管跨區域副本 可在非 Google Cloud 和 Google Cloud 執行個體之間複製 只能在 Cloud SQL 執行個體之間複製 遷移至 Google Cloud 或從 Google Cloud 遷移,盡可能縮短停機時間,或保護混合雲/多雲端資料 在 Google Cloud 區域之間遷移資料,盡量減少停機時間 支援跨主要版本複寫 不支援跨主要版本複製 - 哪些動作可能會導致 Cloud SQL 執行個體重新啟動?
-
當您或 Cloud SQL 採取下列動作時,Cloud SQL 執行個體可能會重新啟動:
- 更新
- 建立
- 升級備用資源
- 維護
- 重新建立副本
- 容錯移轉
- 重新啟動
- 從備份還原執行個體
- 在現有執行個體上啟用高可用性 (這是執行個體的更新)
- 新增需要重新啟動的資料庫旗標
重新啟動執行個體不會變更執行個體的公開或私人 IP 位址。
請參閱以下章節:重新啟動期間,執行個體會關閉多久?
- 重新啟動期間,執行個體會關閉多久?
-
重新啟動執行個體時,大多數執行個體會關閉一到兩分鐘。 執行個體關閉前,所有連線都會終止,目前的工作也會從磁碟中清除。
如果執行個體負載量大,這個程序會耗費較長時間,執行個體可能看似卡住。在這些情況下,執行個體可能需要最多一小時才能關閉並重新啟動。執行個體需要很長時間才能關機和重新啟動的原因包括:使用者有許多寫入交易,或是交易執行時間很長。
- 可以擴大或縮小我的資料庫嗎?
-
MySQL 執行個體:您隨時可以增加執行個體的可用儲存空間,不會造成停機。您無法縮減執行個體的儲存空間大小。
您也可以將執行個體設為在空間不足時自動增加儲存空間容量。瞭解詳情。
- 可以升級和降級 vCPU 嗎?
-
可以。您可以變更執行個體使用的 vCPU 數量。您可以視需要調整核心數量,變更 vCPU 數量通常需要不到五分鐘的停機時間。如果您要增加 Cloud SQL Enterprise Plus 版本主要執行個體的 vCPU 數量,變更會生效,且幾乎不會停機。
- 我是否需要使用 Google Cloud 控制台管理 Cloud SQL?
- 不需要。所有可透過控制台執行的管理工作,都能使用 Cloud SQL Admin API 以程式輔助方式執行,或使用
gcloud指令列工具編寫指令碼。 - 如何收回已捨棄的資料表所佔用的空間?
- 從資料庫捨棄表格後,如果檢查 Google Cloud 控制台,可能會發現捨棄表格釋出的空間並未反映在執行個體回報的「已用儲存空間」中。執行 MySQL 5.5 的執行個體預設會將
innodb_file_per_table旗標設為OFF;InnoDB 絕不會縮減預設資料表空間。如要回收這項設定的空間,請從較小的資料庫建立新執行個體,或將innodb_file_per_table旗標的值變更為ON。如要瞭解如何變更資料庫旗標,請參閱「設定資料庫旗標」。 - 如何回收暫存檔案使用的空間?
- 如果 SQL 查詢建立許多臨時資料表,臨時檔案可能會變大。如要回收臨時表使用的空間,請重新啟動資料庫。 請注意,重新啟動資料庫不會減少因暫存檔案增加而佈建的磁碟空間。
- 我可以從執行個體手動清除二進位記錄嗎?
- 二進位記錄會占用儲存空間。二進位記錄會與相關聯的自動備份一併自動刪除,通常是在約七天後。您無法手動刪除二進位記錄。
如果二進位記錄的大小導致執行個體發生問題,您可以增加儲存空間大小。您也可以停用二進位記錄功能,然後重新啟用,這樣就會刪除二進位記錄。不過請注意,這麼做並不會縮減為執行個體佈建的儲存空間大小。
- 我可以設定自訂二進位記錄保留政策嗎?
-
可以,您可以調整二進位記錄保留期限。這是交易記錄保留期限和
binlog_expire_logs_seconds標記的值 (或 MySQL 8.4 以前版本的expire_logs_days標記) 中較小的值。詳情請參閱這些提示、交易記錄保留和設定交易記錄保留。 - 如何追蹤資料變更?
- 如要追蹤資料變更,請為執行個體啟用二進位記錄。追蹤資料變更可協助您還原資料,避免資料意外遺失。如果因
DROP DATABASE指令等原因而意外遺失資料,您可以還原至資料遺失事件發生前的二進位記錄座標。詳情請參閱「時間點復原」。 - 是否可以匯入或匯出特定的資料庫?
- 可以。您可以匯入或匯出特定資料庫,或執行個體上的所有資料庫。詳情請參閱「匯入資料」或「匯出資料」。
- 是否可以匯入或匯出 CSV 檔案?
-
您可以匯入或匯出 MySQL 或 PostgreSQL 的 CSV 檔案。詳情請參閱「建立 CSV 檔案」。
SQL Server 適用的 Cloud SQL 目前不支援 CSV 格式。
- 是否需要 Cloud Storage 帳戶,才能將資料匯入或匯出至執行個體?
- Cloud SQL 支援使用 Cloud Storage bucket 匯入及匯出資料庫 (壓縮或未壓縮的 SQL 轉儲檔案) 和 CSV 檔案。如要使用 Cloud Storage bucket 匯入或匯出資料,您必須註冊 Google Cloud 帳戶並建立 bucket,或有權存取其他帳戶中的 Cloud Storage bucket。詳情請參閱「使用 SQL dump 檔案匯出及匯入」或「使用 CSV 檔案匯出及匯入」。
ERROR_RDBMS對匯入作業有什麼意義?-
如果 MySQL 在資料匯入作業期間傳回錯誤,就會發生這項錯誤。常見原因包括語法無效、使用未定義的資料庫或資料表,以及嘗試執行需要
SUPER權限的 MySQL 陳述式。 - 當我刪除執行個體時,是否可以重新使用這個執行個體的名稱?
- 可以。
cloudsqladmin資料庫使用者是什麼?-
每個 MySQL 適用的 Cloud SQL 執行個體都包含名為
cloudsqladmin的資料庫使用者。如果您執行SHOW GRANTS FOR cloudsqladmin@localhost,可能會注意到這個使用者。 在某些執行個體中,這位使用者也會顯示在系統使用者表格中。這個使用者帳戶是由自動化程序使用,這些程序需要存取執行個體中的資料 (例如備份執行個體或執行匯入或匯出作業)。 - 如何使用
GRANT ALL? - Cloud SQL 不支援
SUPER權限,也就是說,GRANT ALL PRIVILEGES陳述式無法運作。或者,您也可以使用GRANT ALL ON `%`.*。 - 如何存取執行個體的交易記錄檔?
- 如果是 MySQL 執行個體,只要為執行個體啟用二進位記錄 (請參閱「啟用二進位記錄」),並為執行個體設定 IP 位址 (請參閱「 設定 IP 連線的存取權」),即可使用標準 MySQL mysqlbinlog 公用程式檢查執行個體的交易記錄。
- Cloud SQL 提供的交易隔離等級為何?
-
MySQL 執行個體: Cloud SQL 提供
REPEATABLE READ交易隔離。您可以變更目前工作階段的交易隔離等級,但通常建議使用預設值。詳情請參閱 MySQL 說明文件中的「 交易隔離層級」。 - 如何避免意外刪除執行個體?
- 您可以在建立執行個體時或之後啟用防刪除功能。如果已啟用這項設定,請先停用,再刪除執行個體。請參閱「防止刪除執行個體」。
- 為什麼在 Insights 中找不到範例查詢計畫?
- 我們僅提供取得查詢計畫的範例查詢,因為這可能會影響查詢效能。因此有時不會顯示範例查詢計畫。
- 如何才能試用 Cloud SQL?
- 最小的執行個體是
db-f1-micro。您可以使用這項服務。請注意,共用核心執行個體不在服務水準協議的保障範圍內。 - 可以在專案中建立多少執行個體?
- 如要瞭解執行個體限制,請參閱「配額與限制」。
- 我需要多大的資料庫執行個體大小?多大的 RAM?
- 一般來說,只要選擇 RAM 和 CPU 較多的較大執行個體,即可提升資料庫效能。這項功能可提升許多涉及大量運算的查詢效能,例如涉及聯結、ORDER BY 或 GROUPING 的查詢,但影響單一資料列的更新效能不會受到太大影響。不過,執行個體越大,運作延遲時間就越長。如要進一步瞭解執行個體大小和定價,請參閱定價頁面。
- 如何計算執行個體的使用?
-
MySQL 執行個體: 系統會依據執行個體啟用的時間 (啟用政策為
ALWAYS) 按分鐘計費。 - 如何計算儲存空間?
- 儲存空間是根據您為執行個體佈建的儲存空間量計算。備份儲存空間的計費方式是按照備份使用的空間量。無論執行個體是否開啟,都會收取儲存空間費用。
- 如何知道我將支付多少費用?
- Google Cloud 控制台的「Billing」(帳單) 分頁會顯示自上次帳單核發以來,執行個體產生的費用。
- 當我的執行個體到達大小上限時,會發生什麼情況?
- 如果執行個體達到佈建的儲存空間大小,且您未啟用自動增加儲存空間功能,或已達到設定的上限,則在您增加儲存空間大小之前,系統不允許日後寫入資料庫。增加儲存空間大小時,無須重新啟動執行個體或停機。
- 為什麼我的執行個體被停權了?
- 這可能是因為 Google Cloud 帳戶發生問題。 您可以提交 帳單支援要求,確認帳單狀態。帳單問題解決後,執行個體會在幾小時內恢復可執行狀態。請注意,MySQL 執行個體會在暫停 90 天後刪除。
- 為什麼我的執行個體遭到刪除?
-
如果 MySQL 執行個體暫停 90 天,就會遭到刪除。這適用於狀態為
SUSPENDED的執行個體。狀態為RUNNABLE的已停止執行個體不會遭到刪除。 - 如何取消我的 Cloud SQL 帳戶?
- 如要停用專案的 Cloud SQL,請前往Google Cloud 控制台,選取專案,然後選取「API」服務,開啟 API 資訊主頁。找到 Cloud SQL API,然後按一下「Disable」(停用)。
- 如何停用計費功能?
- 如要停用計費功能,請在 Google Cloud 控制台的專案「Billing & settings」(帳單與設定) 窗格中,按一下「Disable billing」(停用計費功能)。如果停用計費功能,也會同時停用 Cloud SQL 服務。停用計費功能前,請務必確認您確實要停用 Cloud SQL 服務。
您會在停用計費功能之後收到最後一份帳單,我們會向您收取自付費週期起到取消服務日這段期間內所產生的費用。
中的「停用計費功能」一節。 - 可以從 App Engine 連線至 MySQL 執行個體嗎?
- 無論應用程式是在標準環境或彈性環境中執行,您都可以從 App Engine 應用程式連線至 MySQL 執行個體。詳情請參閱「從 App Engine 標準環境連線」或「從 App Engine 彈性環境連線」。
- 位於美國的 App Engine 應用程式是否能存取位於歐盟的 Cloud SQL 執行個體 (反之亦然)?
-
如果您連線至 MySQL 執行個體,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 的語言。如需支援的語言清單,請參閱 MySQL 參考手冊中的「連線器和 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 執行個體。您也可以使用 Cloud SQL Java 連接器連線,包括編寫 Apps Script 指令碼來存取 Cloud SQL 資料庫。 請參閱「連線總覽」。