Selesaikan masalah SQL Server di Linux
Berlaku untuk: SQL Server - Linux
Artikel ini menjelaskan cara memecahkan masalah SQL Server yang berjalan di Linux atau dalam kontainer Linux. Saat memecahkan masalah SQL Server di Linux, ingatlah untuk meninjau fitur yang didukung dan batasan yang diketahui:
- Catatan rilis untuk SQL Server 2022 di Linux
- Catatan rilis untuk SQL Server 2019 di Linux
- Catatan rilis untuk SQL Server 2017 di Linux
Untuk jawaban atas pertanyaan yang sering diajukan , lihat TANYA JAWAB UMUM SQL Server di Linux.
Memecahkan masalah kegagalan koneksi
Jika Anda mengalami kesulitan menyambungkan ke instans Linux SQL Server Anda, ada beberapa hal yang perlu diperiksa.
Jika Anda tidak dapat tersambung secara lokal menggunakan
localhost
, coba gunakan alamat IP 127.0.0.1 sebagai gantinya. Ada kemungkinan bahwalocalhost
tidak dipetakan dengan benar ke alamat ini.Verifikasi bahwa nama server atau alamat IP dapat dijangkau dari komputer klien Anda.
Untuk menemukan alamat IP komputer Ubuntu, Anda dapat menjalankan
ifconfig
perintah seperti dalam contoh berikut:sudo ifconfig eth0 | grep 'inet addr'
Untuk Red Hat, Anda dapat menggunakan
ip addr
perintah seperti dalam contoh berikut:sudo ip addr show eth0 | grep "inet"
Tip
Satu pengecualian untuk teknik ini berkaitan dengan Azure VM. Untuk Azure VM, temukan IP publik untuk VM di portal Azure.
Jika berlaku, periksa apakah Anda membuka port SQL Server (default 1433) pada firewall.
Untuk Azure VM, periksa apakah Anda memiliki aturan grup keamanan jaringan untuk port SQL Server default.
Verifikasi bahwa nama pengguna dan kata sandi tidak berisi kesalahan ketik, spasi tambahan, atau casing yang salah.
Cobalah untuk secara eksplisit mengatur protokol dan nomor port dengan nama server seperti contoh berikut:
tcp:servername,1433
.Masalah konektivitas jaringan juga dapat menyebabkan kesalahan koneksi dan batas waktu. Setelah memverifikasi informasi koneksi dan konektivitas jaringan Anda, coba koneksi lagi.
Mengelola layanan SQL Server
Bagian berikut menunjukkan cara mengelola eksekusi kontainer Linux SQL Server. Untuk mengelola layanan untuk Linux, lihat Memulai, menghentikan, dan memulai ulang layanan SQL Server di Linux.
Mengelola eksekusi kontainer Linux SQL Server
Anda bisa mendapatkan status dan ID kontainer dari kontainer Linux SQL Server terbaru yang dibuat dengan menjalankan perintah berikut (ID berada di bawah CONTAINER ID
kolom):
sudo docker ps -l
Anda dapat menghentikan atau memulai ulang layanan SQL Server sesuai kebutuhan menggunakan perintah berikut:
sudo docker stop <container ID>
sudo docker restart <container ID>
Tip
Untuk tips pemecahan masalah selengkapnya untuk kontainer Linux, lihat Memecahkan Masalah kontainer Docker SQL Server.
Mengakses file log
Mesin Database SQL Server mencatat ke /var/opt/mssql/log/errorlog
file di penginstalan Linux dan kontainer. Anda harus berada dalam mode superuser untuk menelusuri direktori ini.
Log alat penginstal di sini: /var/opt/mssql/setup-<time stamp representing time of install>
Anda dapat menelusuri errorlog
file dengan alat yang kompatibel dengan UTF-16 seperti vim atau kucing seperti ini:
sudo cat errorlog
Jika mau, Anda juga dapat mengonversi file ke UTF-8 untuk membacanya dengan lebih atau kurang dengan perintah berikut:
sudo iconv -f UTF-16LE -t UTF-8 <errorlog> -o <output errorlog file>
Aktivitas yang Diperluas
Peristiwa yang diperluas dapat dikueri melalui perintah SQL. Untuk informasi selengkapnya, lihat peristiwa yang diperluas.
Crash dumps
Cari cadangan di direktori log di Linux. Periksa di bawah /var/opt/mssql/log
direktori untuk dump Linux Core (.tar.gz2
ekstensi) atau minidump SQL (.mdmp
ekstensi).
Misalnya, untuk melihat cadangan inti:
sudo ls /var/opt/mssql/log | grep .tar.gz2
Untuk cadangan SQL, gunakan skrip ini:
sudo ls /var/opt/mssql/log | grep .mdmp
Mulai SQL Server dalam konfigurasi minimal atau dalam mode pengguna tunggal
Memulai SQL Server dalam mode konfigurasi minimal
Mode ini berguna jika pengaturan nilai konfigurasi (misalnya, memori yang terlalu berkomitmen) mencegah server dimulai.
sudo -u mssql /opt/mssql/bin/sqlservr -f
Memulai SQL Server dalam mode pengguna tunggal
Terkadang Anda mungkin harus memulai instans SQL Server dalam mode pengguna tunggal dengan menggunakan opsi -m
startup . Untuk informasi selengkapnya, lihat parameter startup. Misalnya, Anda mungkin ingin mengubah opsi konfigurasi server atau memulihkan database yang rusak master
atau database sistem lainnya.
Misalnya, gunakan skrip berikut untuk memulai SQL Server dalam mode pengguna tunggal:
sudo -u mssql /opt/mssql/bin/sqlservr -m
Skrip ini memulai SQL Server dalam mode pengguna tunggal dengan sqlcmd:
sudo -u mssql /opt/mssql/bin/sqlservr -m sqlcmd
Anda harus selalu memulai SQL Server di Linux dengan mssql
pengguna untuk mencegah masalah startup di masa mendatang. Misalnya: sudo -u mssql /opt/mssql/bin/sqlservr [STARTUP OPTIONS]
Jika Anda tidak sengaja memulai SQL Server dengan pengguna lain, Anda harus mengubah kepemilikan file database SQL Server kembali ke mssql
pengguna sebelum Anda memulai SQL Server dengan systemd. Misalnya, untuk mengubah kepemilikan semua file database pada /var/opt/mssql
mssql
pengguna, jalankan perintah berikut:
chown -R mssql:mssql /var/opt/mssql/
Membangun kembali database sistem
Sebagai upaya terakhir, Anda dapat memilih untuk membangun master
kembali database dan model
kembali ke versi default.
Peringatan
Proses ini berbahaya, karena Anda dapat menghapus semua data sistem SQL Server yang telah Anda konfigurasi, termasuk informasi tentang database pengguna Anda (tetapi bukan database pengguna itu sendiri).
Anda perlu melampirkan database pengguna ke instans setelahnya. Ini juga menghapus informasi lain yang disimpan dalam database sistem, termasuk:
- informasi kunci master database (DMK)
- sertifikat apa pun yang dimuat di
master
- kata sandi untuk login SA
- informasi terkait pekerjaan dari
msdb
- Informasi Email Database dari
msdb
- Opsi
sp_configure
Anda tidak dapat memasang kembali database pengguna apa pun yang dienkripsi dengan enkripsi data transparan (TDE) kecuali sertifikat dan kunci privat Anda juga dicadangkan.
Hanya gunakan langkah-langkah ini jika Anda memahami implikasinya.
Hentikan Mesin Database SQL Server
sudo systemctl stop mssql-server
Jalankan sqlservr dengan
force-setup
parametersudo -u mssql /opt/mssql/bin/sqlservr --force-setup
Anda harus selalu memulai SQL Server di Linux dengan
mssql
pengguna untuk mencegah masalah startup di masa mendatang.Setelah Anda melihat pesan "Pemulihan selesai", tekan Ctrl+C. Ini mematikan SQL Server.
Mengonfigurasi ulang kata sandi SA.
sudo /opt/mssql/bin/mssql-conf set-sa-password
Mulai SQL Server dan konfigurasi ulang server, termasuk memulihkan atau memasang ulang database pengguna apa pun.
sudo systemctl start mssql-server
Meningkatkan Performa
Banyak faktor yang memengaruhi performa, termasuk desain database, perangkat keras, dan tuntutan beban kerja. Jika Anda ingin meningkatkan performa, mulailah dengan meninjau praktik terbaik dalam artikel, Praktik terbaik performa dan panduan konfigurasi untuk SQL Server di Linux. Kemudian jelajahi beberapa alat yang tersedia untuk memecahkan masalah performa.
- Memantau performa dengan menggunakan Penyimpanan Kueri
- Tampilan manajemen dinamis sistem
- Dasbor Performa di SQL Server Management Studio
Masalah umum
Anda tidak dapat tersambung ke instans SQL Server jarak jauh Anda.
Lihat bagian pemecahan masalah artikel, Sambungkan ke SQL Server di Linux.
Anda mengalami pesan kesalahan:
ERROR: Hostname must be 15 characters or less.
Ini adalah masalah yang diketahui yang terjadi setiap kali nama komputer yang mencoba menginstal paket SQL Server lebih panjang dari 15 karakter. Saat ini tidak ada solusi selain mengubah nama komputer. Anda dapat melakukan ini dengan mengedit dan
/etc/hostname
/etc/hosts
, mengubah nama host, menyimpan setiap file, dan memulai ulang komputer.Kata sandi administrasi sistem (SA) harus diatur ulang, yang menghentikan layanan SQL Server untuk sementara.
Jika Anda lupa kata sandi administrator sistem (SA) atau perlu mengatur ulang karena alasan lain, ikuti langkah-langkah ini.
Masuk ke terminal host, jalankan perintah berikut dan ikuti perintah untuk mengatur ulang kata sandi SA:
sudo systemctl stop mssql-server sudo /opt/mssql/bin/mssql-conf setup
Karakter khusus dalam kata sandi masuk menyebabkan kesalahan atau kegagalan masuk.
Jika Anda menggunakan beberapa karakter dalam kata sandi masuk SQL Server, Anda mungkin perlu melepaskannya dengan garis miring terbelakang saat Anda menggunakannya di baris perintah Linux. Misalnya, Anda harus keluar dari tanda dolar ($) kapan saja Anda menggunakannya dalam perintah terminal/skrip shell:
Tidak berfungsi:
sudo sqlcmd -S myserver -U sa -P Test$$
Apakah berfungsi:
sqlcmd -S myserver -U sa -P Test\$\$
Konten terkait
Dapatkan bantuan
- Ide untuk SQL: Memiliki saran untuk meningkatkan SQL Server?
- Microsoft Q & A (SQL Server)
- DBA Stack Exchange (tag sql-server): Ajukan pertanyaan SQL Server
- Stack Overflow (tag sql-server): Jawaban atas pertanyaan pengembangan SQL
- Reddit: Diskusi umum tentang SQL Server
- Syarat dan Informasi Lisensi Microsoft SQL Server
- Opsi dukungan untuk pengguna bisnis
- Hubungi Microsoft
- Bantuan dan umpan balik SQL Server tambahan
Berkontribusi pada dokumentasi SQL
Tahukah Anda bahwa Anda dapat mengedit konten SQL sendiri? Jika Anda melakukannya, Anda tidak hanya membantu meningkatkan dokumentasi kami, tetapi Anda juga dikreditkan sebagai kontributor ke halaman.
Untuk informasi selengkapnya, lihat Cara berkontribusi pada dokumentasi SQL Server