MySQL Shell 8.4  /  MySQL AdminAPI  /  擷取處理器物件

6.3 擷取處理器物件

當您使用 AdminAPI 時,您會使用代表 InnoDB Cluster、InnoDB ClusterSet 或 InnoDB ReplicaSet 的處理器物件。您將此物件指派給變數,然後使用可用的操作來監視和管理 InnoDB Cluster、InnoDB ClusterSet 或 InnoDB ReplicaSet。

若要擷取處理器物件,您必須建立與屬於 InnoDB Cluster、InnoDB ClusterSet 或 InnoDB ReplicaSet 的其中一個作用中執行個體的連線 (包括讀取複本)。例如,當您使用 dba.createCluster() 建立叢集時,此操作會傳回可指派給變數的 Cluster 物件。您可以使用此處理器物件來使用叢集。例如,新增執行個體或檢查叢集狀態。如果您想要稍後再次擷取 Cluster 物件,例如在重新啟動 MySQL Shell 之後,請使用 dba.getCluster([name],[options]) 函數。例如,使用 JavaScript

mysql-js> var cluster1 = dba.getCluster()

或者使用 Python

mysql-py> cluster1 = dba.get_cluster()

若要擷取代表 InnoDB ClusterSet 部署的 ClusterSet 物件,請使用 dba.getClusterSet()cluster.getClusterSet() 函數。例如,使用 JavaScript

mysql-js> myclusterset = dba.getClusterSet()

或者使用 Python

mysql-py> myclusterset = dba.get_cluster_set()
注意

當您使用 ClusterSet 物件時,您從中取得該物件的伺服器執行個體必須仍在 InnoDB ClusterSet 中處於線上狀態。如果該伺服器執行個體離線,則該物件將不再運作,您需要從仍在 InnoDB ClusterSet 中處於線上狀態的伺服器再次取得該物件。

使用 dba.getReplicaSet() 操作來擷取 ReplicaSet 物件。例如,使用 JavaScript

mysql-js> var replicaset1 = dba.getReplicaSet()

或者使用 Python

mysql-py> replicaset1 = dba.get_replica_set()

如果您未指定 name,則會傳回預設物件。傳回的物件會使用新的工作階段,獨立於 MySQL Shell 的全域工作階段。這可確保如果您變更 MySQL Shell 全域工作階段,ClusterClusterSetReplicaSet 物件會保持其與伺服器執行個體的工作階段。

依預設,當您擷取處理器時,MySQL Shell 會嘗試連線至主要執行個體。如果主要執行個體無法使用,則會連線至次要執行個體。