MySQL Shell 9.0  /  MySQL AdminAPI  /  擷取處理常式物件

6.3 擷取處理常式物件

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

若要擷取處理常式物件,您需要建立與屬於 InnoDB 叢集、InnoDB ClusterSet 或 InnoDB ReplicaSet 的其中一個作用中執行個體 (包括讀取複本) 的連線。例如,當您使用 dba.createCluster() 建立叢集時,此操作會傳回可以指派給變數的 Cluster 物件。您可以使用此處理常式物件來處理叢集。例如,新增執行個體或檢查叢集的狀態。如果您想要在稍後 (例如重新啟動 MySQL Shell 之後) 再次擷取 Cluster 物件,請使用 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 會嘗試連線至主要執行個體。如果主要執行個體無法使用,則會連線至次要執行個體。