Replika provisi ulang - SQL Managed Instance diaktifkan oleh Azure Arc
Artikel ini menjelaskan cara menyediakan replika baru untuk mengganti replika yang ada di SQL Managed Instance yang diaktifkan oleh Azure Arc.
Saat Anda memprovisikan ulang replika, Anda membangun kembali replika instans terkelola baru untuk SQL Managed Instance yang diaktifkan oleh penyebaran Azure Arc. Gunakan tugas ini untuk mengganti replika yang gagal disinkronkan, misalnya, karena kerusakan data pada volume persisten (PV) untuk instans tersebut, atau karena beberapa masalah SQL berulang.
Anda dapat memprovisikan ulang replika melalui az
CLI atau melalui kubectl
. Anda tidak dapat memprovisi ulang replika dari portal Azure.
Prasyarat
Anda hanya dapat memprovisi ulang replika pada instans multi-replika.
Melalui az
CLI
Grup perintah Azure CLI az sql mi-arc
menyertakan reprovision-replica
. Untuk menyediakan ulang replika, perbarui contoh berikut. Ganti <instance_name-replica_number>
dengan nama instans dan nomor replika replika yang ingin Anda ganti. Ganti <namespace>
.
az sql mi-arc reprovision-replica -n <instance_name-replica_number> -k <namespace> --use-k8s
Misalnya, untuk memprovisi ulang replika 2 instans mySqlInstance
di namespace arc
, gunakan:
az sql mi-arc reprovision-replica -n mySqlInstance-2 -k arc --use-k8s
Perintah berjalan hingga selesai, di mana konsol mengembalikan nama tugas Kubernetes:
sql-reprov-replica-mySqlInstance-2-1664217002.376132 is Ready
Pada titik ini, Anda dapat memeriksa tugas atau menghapusnya.
Memeriksa tugas
Contoh berikut mengembalikan informasi tentang status tugas Kubernetes:
kubectl describe SqlManagedInstanceReprovisionReplicaTask sql-reprov-replica-mySqlInstance-2-1664217002.376132 -n arc
Penting
Setelah replika diprovisikan ulang, Anda harus menghapus tugas sebelum provisi ulang lain dapat berjalan pada instans yang sama. Untuk informasi selengkapnya, lihat Batasan.
Hapus tugas
Contoh berikut menghapus tugas Kubernetes:
kubectl delete SqlManagedInstanceReprovisionReplicaTask sql-reprov-replica-mySqlInstance-2-1664217002.376132 -n arc
Parameter opsi: --no-wait
Ada parameter opsional --no-wait
untuk perintah . Jika Anda mengirim permintaan dengan --no-wait
, output menyertakan nama tugas yang akan dipantau. Contohnya:
az sql mi-arc reprovision-replica -n mySqlInstance-2 -k arc --use-k8s --no-wait
Reprovisioning replica mySqlInstance-2 in namespace `arc`. Please use
`kubectl get -n arc SqlManagedInstanceReprovisionReplicaTask sql-reprov-replica-mySqlInstance-2-1664217434.531035`
to check its status or
`kubectl get -n arc SqlManagedInstanceReprovisionReplicaTask`
to view all reprovision tasks.
Melalui kubectl
Untuk menyediakan ulang dengan kubectl
, buat sumber daya kustom. Untuk membuat sumber daya kustom untuk provisi ulang, Anda dapat membuat file .yaml dengan struktur ini:
apiVersion: tasks.sql.arcdata.microsoft.com/v1beta1
kind: SqlManagedInstanceReprovisionReplicaTask
metadata:
name: <task name you make up>
namespace: <namespace>
spec:
replicaName: instance_name-replica_number
Untuk menggunakan contoh yang sama seperti di atas, mySqlinstance
replika 2, payloadnya adalah:
apiVersion: tasks.sql.arcdata.microsoft.com/v1beta1
kind: SqlManagedInstanceReprovisionReplicaTask
metadata:
name: my-reprovision-task-mySqlInstance-2
namespace: arc
spec:
replicaName: mySqlInstance-2
Memantau atau menghapus tugas
Setelah yaml diterapkan melalui kubectl apply, Anda dapat memantau atau menghapus tugas melalui kubectl:
kubectl get -n arc SqlManagedInstanceReprovisionReplicaTask my-reprovision-task-mySqlInstance-2
kubectl describe -n arc SqlManagedInstanceReprovisionReplicaTask my-reprovision-task-mySqlInstance-2
kubectl delete -n arc SqlManagedInstanceReprovisionReplicaTask my-reprovision-task-mySqlInstance-2
Penting
Setelah replika diprovisikan ulang, Anda harus menghapus tugas sebelum provisi ulang lain dapat berjalan pada instans yang sama. Untuk informasi selengkapnya, lihat Batasan.
Batasan
Tugas menolak upaya untuk memprovisi ulang replika utama saat ini. Jika replika utama saat ini rusak dan membutuhkan provisi ulang, failover ke replika yang berbeda, lalu minta provisi ulang.
Provisi ulang beberapa replika dalam instans yang sama berjalan secara serial. Antrean tugas dan ditahan dalam
Creating
status hingga tugas yang saat ini aktif selesai dan dihapus. Tidak ada pembersihan otomatis tugas yang selesai, sehingga serialisasi ini akan memengaruhi Anda bahkan jika Anda menjalankanaz sql mi-arc reprovision-replica
perintah secara sinkron dan menunggunya selesai sebelum meminta provisi ulang lain. Dalam semua kasus, Anda harus menghapus tugas melaluikubectl
sebelum provisi ulang lain pada instans yang sama dapat berjalan.
Detail selengkapnya tentang serialisasi tugas provisi ulang: Jika Anda memiliki beberapa permintaan untuk memprovisikan ulang replika dalam satu instans, Anda mungkin melihat sesuatu seperti ini dalam output dari kubectl get SqlManagedInstanceReprovisionReplicaTask
:
kubectl get SqlManagedInstanceReprovisionReplicaTask -n arc
NAME STATUS AGE
sql-reprov-replica-c-sql-djlexlmty-1-1664217344.304601 Completed 13m
sql-reprov-replica-c-sql-kkncursza-1-1664217002.376132 Completed 19m
sql-reprov-replica-c-sql-kkncursza-1-1664217434.531035 Creating 12m
Entri terakhir untuk replika c-sql-kkncursza-1, sql-reprov-replica-c-sql-kkncursza-1-1664217434.531035
, akan tetap dalam status Creating
sampai yang sql-reprov-replica-c-sql-kkncursza-1-1664217002.376132
selesai dihapus.