Azure SQL Edge dağıtımlarıyla ilgili sorunları giderme
Önemli
Azure SQL Edge 30 Eylül 2025'te kullanımdan kaldırılacaktır. Daha fazla bilgi ve geçiş seçenekleri için Bkz . Kullanımdan kaldırma bildirimi.
Not
Azure SQL Edge artık ARM64 platformunu desteklememektedir.
Bu makale, Azure SQL Edge kapsayıcılarını dağıtırken ve kullanırken görülen olası hatalar hakkında bilgi sağlar ve bu sorunları çözmeye yardımcı olmak için sorun giderme teknikleri sağlar.
Azure SQL Edge iki dağıtım modeli destekler:
Azure IoT Edge aracılığıyla bağlı dağıtım: Azure SQL Edge, Azure IoT Edge için bir modül olarak dağıtılabilir. Daha fazla bilgi için bkz . Azure SQL Edge'i dağıtma.
Bağlantısız dağıtım: Azure SQL Edge kapsayıcı görüntüleri Docker hub'ından çekilebilir ve tek başına kapsayıcı olarak veya Kubernetes kümesine dağıtılabilir. Daha fazla bilgi için bkz . Docker ile Azure SQL Edge'i dağıtma ve Kubernetes'te Azure SQL Edge kapsayıcısı dağıtma.
IoT Edge cihaz ve dağıtım sorunlarını giderme
SQL Edge'i Azure IoT Edge aracılığıyla dağıtırken hata alırsanız hizmetin düzgün yapılandırıldığından ve çalıştığından iotedge
emin olun. Azure IoT Edge ile ilgili sorunları giderirken aşağıdaki belgeler yararlı olabilir:
- Azure IoT Edge için yaygın sorunlar ve çözümler.
- IoT Edge cihazınızın sorunlarını giderme
Docker komut hataları
Herhangi bir docker
komut için hata alırsanız Docker hizmetinin çalıştığından emin olun ve yükseltilmiş izinlerle çalıştırmayı deneyin.
Örneğin, Linux'ta komutları çalıştırırken docker
aşağıdaki hatayı alabilirsiniz:
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
Linux'ta bu hatayı alırsanız, ile sudo
aynı komutları çalıştırmayı deneyin. Bu başarısız olursa Docker hizmetinin çalıştığını doğrulayın ve gerekirse başlatın.
sudo systemctl status docker
sudo systemctl start docker
Windows'da, PowerShell'i veya komut isteminizi Yönetici olarak başlattığınızı doğrulayın.
Azure SQL Edge kapsayıcı başlatma hataları
SQL Edge kapsayıcısı çalıştırılamazsa aşağıdaki testleri deneyin:
Azure IoT Edge kullanıyorsanız modül görüntülerinin başarıyla indirildiğinden ve ortam değişkenlerinin ve kapsayıcı oluşturma seçeneklerinin modül bildiriminde doğru şekilde belirtildiğinden emin olun.
Docker veya Kubernetes tabanlı dağıtım kullanıyorsanız komutun
docker run
doğru biçimlendirilmiş olduğundan emin olun. Daha fazla bilgi için bkz . Docker ile Azure SQL Edge'i dağıtma ve Kubernetes'te Azure SQL Edge kapsayıcısı dağıtma.gibi
failed to create endpoint CONTAINER_NAME on network bridge. Error starting proxy: listen tcp 0.0.0.0:1433 bind: address already in use.
bir hata alırsanız, 1433 numaralı kapsayıcı bağlantı noktasını zaten kullanımda olan bir bağlantı noktasına eşlemeye çalışıyorsunuz demektir. Sql Edge'i konak makinede yerel olarak çalıştırıyorsanız bu durum oluşabilir. İki SQL Edge kapsayıcısı başlatır ve ikisini de aynı konak bağlantı noktasına eşlemeye çalışırsanız da bu durum oluşabilir. Böyle bir durumda, 1433 numaralı kapsayıcı bağlantı noktasını farklı bir konak bağlantı noktasına eşlemek için parametresini kullanın-p
. Örneğin:sudo docker run --cap-add SYS_PTRACE -e 'ACCEPT_EULA=1' -e 'MSSQL_SA_PASSWORD=<password>' -p 1433:1433 --name azuresqledge -d mcr.microsoft.com/azure-sql-edge-developer.
Kapsayıcı başlatmaya çalışırken gibi
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.30tdout=1&tail=all: dial unix /var/run/docker.sock: connect: permission denied
bir hata alırsanız, kullanıcınızı Ubuntu'daki docker grubuna ekleyin. Ardından bu değişiklik yeni oturumları etkilediğinden oturumu kapatın ve yeniden oturum açın.usermod -aG docker $USER
Kapsayıcıdan hata iletileri olup olmadığını denetleyin.
docker logs e69e056c702d
Herhangi bir kapsayıcı yönetimi yazılımı kullanıyorsanız kök olarak çalışan kapsayıcı işlemlerini desteklediğine emin olun. Kapsayıcıdaki sqlservr işlemi kök olarak çalışır.
Varsayılan olarak Azure SQL Edge kapsayıcıları adlı
mssql
kök olmayan bir kullanıcı olarak çalışır. Verileri kalıcı hale getirmek için bağlama noktaları veya veri birimleri kullanıyorsanız, kullanıcının birim üzerinde uygun izinlere sahip olduğundanmssql
emin olun. Daha fazla bilgi için bkz . Kök olmayan kullanıcı olarak çalıştırma ve Verileri Kalıcı Hale Alma.SQL Edge Docker kapsayıcınız başladıktan hemen sonra çıkarsa docker günlüklerinizi denetleyin. Windows üzerinde PowerShell'i komutuyla
docker run
kullanıyorsanız, tek tırnak yerine çift tırnak kullanın. PowerShell Core ile tek tırnak işareti kullanın.SQL Edge hata günlüklerini gözden geçirin.
SQL Edge bağlantı hataları
Kapsayıcınızda çalışan SQL Edge örneğine bağlanamıyorsanız aşağıdaki testleri deneyin:
Çıkışın sütununa bakarak SQL Edge kapsayıcınızın çalıştığından
STATUS
docker ps -a
emin olun. Aksi takdirde, başlatmak için kullanındocker start <Container ID>
.Varsayılan olmayan bir ana bilgisayar bağlantı noktasına (1433 değil) eşlediyseniz, bağlantı noktasını bağlantı dizesi belirttiğinizden emin olun. Çıkış sütununda
docker ps -a
bağlantı noktası eşlemeniziPORTS
görebilirsiniz. Azure SQL Edge'e bağlanma hakkında daha fazla bilgi için bkz . Azure SQL Edge'e bağlanma ve sorgulama.SQL Edge'i daha önce eşlenmiş bir veri birimi veya veri birimi kapsayıcısıyla dağıttıysanız ve şimdi mevcut eşlenen veri birimi veya veri birimi kapsayıcısını kullanıyorsanız, SQL Edge ortam değişkeninin
MSSQL_SA_PASSWORD
değerini yoksayar. Bunun yerine, önceden yapılandırılmış SA kullanıcı parolası kullanılır. Bunun nedeni, SQL Edge'in eşlenen birim veya veri birimi kapsayıcısında var olanmaster
veritabanları dosyalarını yeniden kullanmasıdır. Bu sorunla karşılaşırsanız aşağıdaki seçenekleri kullanabilirsiniz:- Hala kullanılabiliyorsa daha önce kullanılan parolayı kullanarak bağlanın.
- SQL Edge'i farklı bir eşlenmiş birim veya veri birimi kapsayıcısı kullanacak şekilde yapılandırın.
- Eşlenen birim veya veri birimi kapsayıcısından mevcut
master
veritabanı dosyalarını (master.mdf
vemastlog.mdf
) kaldırın.
SQL Edge hata günlüklerini gözden geçirin.
SQL Edge kurulumu ve hata günlükleri
Varsayılan olarak, SQL Edge hata günlükleri kapsayıcı içindeki /var/opt/mssql/log
dizinde bulunur ve aşağıdaki yollardan herhangi biri kullanılarak erişilebilir:
Kapsayıcınızı oluştururken bir konak dizini
/var/opt/mssql
bağladıysanız, bunun yerine konaktakilog
eşlenen yolda alt dizine bakabilirsiniz.Kapsayıcıya bağlanmak için etkileşimli bir komut istemi kullanarak. Kapsayıcı çalışmıyorsa, önce kapsayıcıyı başlatın. Ardından, günlükleri incelemek için etkileşimli bir komut istemi kullanın. komutunu
docker ps
çalıştırarak kapsayıcı kimliğini alabilirsiniz.docker start <ContainerID> docker exec -it <ContainerID> "/bin/bash"
Kapsayıcınızın içindeki bash oturumundan aşağıdaki komutları çalıştırın:
cd /var/opt/mssql/log cat errorlog
SQL Edge kapsayıcısı çalışır durumdaysa ve istemci araçlarını kullanarak örneğe bağlanabiliyorsanız, SQL Edge hata günlüğünün içeriğini okumak için saklı yordamı
sp_readerrorlog
kullanabilirsiniz.
Kapsayıcıda komut yürütme
Çalışan bir kapsayıcınız varsa, konak terminalinden kapsayıcı içinde komut yürütebilirsiniz.
Kapsayıcı kimliğini almak için komutunu çalıştırın:
docker ps -a
Kapsayıcıda bash terminali başlatmak için şunu çalıştırın:
docker exec -it <Container ID> /bin/bash
Artık komutları kapsayıcının içindeki terminalde çalıştırıyormuş gibi çalıştırabilirsiniz. İşiniz bittiğinde yazın exit
. Bu işlem etkileşimli komut oturumundan çıkar, ancak kapsayıcınız çalışmaya devam eder.
Ayrıntılı günlük kaydını etkinleştirme
Akış altyapısı için varsayılan günlük düzeyi yeterli bilgi sağlamıyorsa, SQL Edge'de akış altyapısı için hata ayıklama günlüğü etkinleştirilebilir. Hata ayıklama günlüğünü etkinleştirmek için ortam değişkenini RuntimeLogLevel=debug
SQL Edge dağıtımınıza ekleyin. Hata ayıklama günlüğünü etkinleştirdikten sonra sorunu yeniden oluşturmaya ve ilgili iletiler veya özel durumlar için günlükleri denetlemeye bakın.
Not
Ayrıntılı Günlük seçeneği normal üretim iş yükü için değil yalnızca sorun giderme için kullanılmalıdır.