Utilitas SQLdiag
Berlaku untuk: SQL Server
Utilitas SQLdiag adalah utilitas pengumpulan diagnostik tujuan umum yang dapat dijalankan sebagai aplikasi konsol atau sebagai layanan. Anda dapat menggunakan SQLdiag untuk mengumpulkan log dan file data dari SQL Server dan jenis server lainnya, dan menggunakannya untuk memantau server Anda dari waktu ke waktu atau memecahkan masalah spesifik dengan server Anda. SQLdiag dimaksudkan untuk mempercepat dan menyederhanakan pengumpulan informasi diagnostik untuk Layanan Dukungan Pelanggan Microsoft.
Catatan
Utilitas ini dapat diubah, dan aplikasi atau skrip yang mengandalkan argumen atau perilaku baris perintahnya mungkin tidak berfungsi dengan benar dalam rilis mendatang.
SQLdiag dapat mengumpulkan jenis informasi diagnostik berikut:
Log performa Windows
Log peristiwa Windows
Jejak SQL Server Profiler
Informasi pemblokiran SQL Server
Informasi konfigurasi SQL Server
Anda dapat menentukan jenis informasi apa yang Anda inginkan untuk dikumpulkan SQLdiag dengan mengedit file konfigurasi SQLDiag.xml, yang dijelaskan di bagian berikut.
Sintaks
sqldiag
{ [/?] }
|
{ [/I configuration_file]
[/O output_folder_path]
[/P support_folder_path]
[/N output_folder_management_option]
[/M machine1 [ machine2 machineN]| @machinelistfile]
[/C file_compression_type]
[/B [+]start_time]
[/E [+]stop_time]
[/A SQLdiag_application_name]
[/T { tcp [ ,port ] | np | lpc } ]
[/Q] [/G] [/R] [/U] [/L] [/X] }
|
{ [START | STOP | STOP_ABORT] }
|
{ [START | STOP | STOP_ABORT] /A SQLdiag_application_name }
Argumen
/?
Menampilkan informasi penggunaan.
Aku configuration_file
Mengatur file konfigurasi untuk digunakan SQLdiag . Secara default, /I diatur ke SQLDiag.Xml.
/O output_folder_path
Mengalihkan output SQLdiag ke folder yang ditentukan. Jika opsi /O tidak ditentukan, output SQLdiag ditulis ke subfolder bernama SQLDIAG di bawah folder startup SQLdiag. Jika folder SQLDIAG tidak ada, SQLdiag mencoba membuatnya.
Catatan
Lokasi folder output relatif terhadap lokasi folder dukungan yang dapat ditentukan dengan /P. Untuk mengatur lokasi yang sama sekali berbeda untuk folder output, tentukan jalur direktori lengkap untuk /O.
/P support_folder_path
Mengatur jalur folder dukungan. Secara default, /P diatur ke folder tempat SQLdiag executable berada. Folder dukungan berisi file dukungan SQLdiag , seperti file konfigurasi XML, skrip Transact-SQL, dan file lain yang digunakan utilitas selama pengumpulan diagnostik. Jika Anda menggunakan opsi ini untuk menentukan jalur file dukungan alternatif, SQLdiag akan secara otomatis menyalin file dukungan yang diperlukan ke folder yang ditentukan jika belum ada.
Catatan
Untuk mengatur folder Anda saat ini sebagai jalur dukungan, tentukan %cd% pada baris perintah sebagai berikut:
SQLDIAG /P %cd%
/N output_folder_management_option
Mengatur apakah SQLdiag menimpa atau mengganti nama folder output saat dimulai. Opsi yang tersedia:
1 = Menimpa folder output (default)
2 = Ketika SQLdiag dimulai, SQLdiag mengganti nama folder output menjadi SQLDIAG_00001, SQLDIAG_00002, dan sebagainya. Setelah mengganti nama folder output saat ini, SQLdiag menulis output ke folder output default SQLDIAG.
Catatan
SQLdiag tidak menambahkan output ke folder output saat ini saat dimulai. Ini hanya dapat menimpa folder output default (opsi 1) atau mengganti nama folder (opsi 2), dan kemudian menulis output ke folder output default baru bernama SQLDIAG.
/M machine1 [ machine2 machineN] | @machinelistfile
Mengambil alih komputer yang ditentukan dalam file konfigurasi. Secara default, file konfigurasi adalah SQLDiag.Xml, atau diatur dengan parameter /I . Saat menentukan lebih dari satu komputer, pisahkan setiap nama komputer dengan spasi.
Menggunakan @machinelistfile menentukan nama file daftar komputer yang akan disimpan dalam file konfigurasi.
/C file_compression_type
Mengatur jenis kompresi file yang digunakan pada file folder output SQLdiag . Opsi yang tersedia:
0 = none (default)
1 = menggunakan kompresi NTFS
/B [+]start_time
Menentukan tanggal dan waktu untuk mulai mengumpulkan data diagnostik dalam format berikut:
YYYYMMDD_HH:MM:SS
Waktu ditentukan menggunakan notasi 24 jam. Misalnya, 2:00 P.M. harus ditentukan sebagai 14:00:00.
Gunakan + tanpa tanggal (HH:MM:SS saja) untuk menentukan waktu yang relatif terhadap tanggal dan waktu saat ini. Misalnya, jika Anda menentukan /B +02:00:00, SQLdiag akan menunggu 2 jam sebelum mulai mengumpulkan informasi.
Jangan sisipkan spasi antara + dan start_time yang ditentukan.
Jika Anda menentukan waktu mulai yang ada di masa lalu, SQLdiag secara paksa mengubah tanggal mulai sehingga tanggal dan waktu mulai berada di masa mendatang. Misalnya, jika Anda menentukan /B 01:00:00 dan waktu saat ini adalah 08:00:00, SQLdiag secara paksa mengubah tanggal mulai sehingga tanggal mulai adalah hari berikutnya.
Perhatikan bahwa SQLdiag menggunakan waktu lokal di komputer tempat utilitas berjalan.
/E [+]stop_time
Menentukan tanggal dan waktu untuk berhenti mengumpulkan data diagnostik dalam format berikut:
YYYYMMDD_HH:MM:SS
Waktu ditentukan menggunakan notasi 24 jam. Misalnya, 2:00 P.M. harus ditentukan sebagai 14:00:00.
Gunakan + tanpa tanggal (HH:MM:SS saja) untuk menentukan waktu yang relatif terhadap tanggal dan waktu mulai . Misalnya, jika Anda menentukan waktu mulai dan waktu akhir dengan menggunakan /B +02:00:00 /E +03:00:00, SQLdiag menunggu 2 jam sebelum mulai mengumpulkan informasi, lalu mengumpulkan informasi selama 3 jam sebelum berhenti dan keluar. Jika /B tidak ditentukan, SQLdiag mulai mengumpulkan diagnostik segera dan berakhir pada tanggal dan waktu yang ditentukan oleh /E.
Jangan sisipkan spasi antara + dan start_time atau end_time yang ditentukan.
Perhatikan bahwa SQLdiag menggunakan waktu lokal di komputer tempat utilitas berjalan.
/A SQLdiag_application_name
Memungkinkan menjalankan beberapa instans utilitas SQLdiag terhadap instans SQL Server yang sama.
Setiap SQLdiag_application_name mengidentifikasi instans SQLdiag yang berbeda. Tidak ada hubungan antara instans SQLdiag_application_name dan nama instans SQL Server.
SQLdiag_application_name dapat digunakan untuk memulai atau menghentikan instans tertentu dari layanan SQLdiag.
Contohnya:
SQLDIAG START /A SQLdiag_application_name
Ini juga dapat digunakan dengan opsi /R untuk mendaftarkan instans SQLdiag tertentu sebagai layanan. Contohnya:
SQLDIAG /R /A SQLdiag_application_name
Catatan
SQLdiag secara otomatis mengawali DIAG$ ke nama instans yang ditentukan untuk SQLdiag_application_name. Ini menyediakan nama layanan yang masuk akal jika Anda mendaftarkan SQLdiag sebagai layanan.
/T { tcp [ ,port ] | np | lpc }
Menyambungkan ke instans SQL Server menggunakan protokol yang ditentukan.
tcp [,port]
Protokol Kontrol Transmisi/Protokol Internet (TCP/IP). Anda dapat secara opsional menentukan nomor port untuk koneksi.
Np
Pipa yang bernama. Secara default, instans default SQL Server mendengarkan pada pipa \\.\pipe\sql\query
bernama dan \\.\pipe\MSSQL$<instancename>\sql\query
untuk instans bernama. Anda tidak dapat tersambung ke instans SQL Server dengan menggunakan nama pipa alternatif.
Lpc
Panggilan prosedur lokal. Protokol memori bersama ini tersedia jika klien tersambung ke instans SQL Server di komputer yang sama.
/Q
Menjalankan SQLdiag dalam mode diam. /Q menekan semua perintah, seperti perintah kata sandi.
/G
Menjalankan SQLdiag dalam mode generik. Ketika /G ditentukan, pada startup SQLdiag tidak memberlakukan pemeriksaan konektivitas SQL Server atau memverifikasi bahwa pengguna adalah anggota peran server tetap sysadmin . Sebagai gantinya, SQLdiag menangguhkan ke Windows untuk menentukan apakah pengguna memiliki hak yang sesuai untuk mengumpulkan setiap diagnostik yang diminta.
Jika /G tidak ditentukan, SQLdiag memeriksa untuk menentukan apakah pengguna adalah anggota grup Administrator Windows, dan tidak akan mengumpulkan diagnostik SQL Server jika pengguna bukan anggota grup Administrator.
/R
Mendaftarkan SQLdiag sebagai layanan. Argumen baris perintah apa pun yang ditentukan saat Anda mendaftarkan SQLdiag sebagai layanan dipertahankan untuk menjalankan layanan di masa mendatang.
Ketika SQLdiag terdaftar sebagai layanan, nama layanan defaultnya adalah SQLDIAG. Anda dapat mengubah nama layanan dengan menggunakan argumen /A .
Gunakan argumen baris perintah START untuk memulai layanan:
MULAI SQLDIAG
Anda juga dapat menggunakan perintah net start untuk memulai layanan:
net start SQLDIAG
/U
Membatalkan pendaftaran SQLdiag sebagai layanan.
Gunakan argumen /A juga jika membatalkan pendaftaran instans SQLdiag bernama.
/L
Menjalankan SQLdiag dalam mode berkelanjutan ketika waktu mulai atau waktu akhir juga ditentukan dengan argumen /B atau /E. SQLdiag secara otomatis dimulai ulang setelah pengumpulan diagnostik berhenti karena penonaktifan terjadwal. Misalnya, dengan menggunakan argumen /E atau /X .
Catatan
SQLdiag mengabaikan argumen /L jika waktu mulai atau waktu akhir tidak ditentukan dengan menggunakan argumen baris perintah /B dan /E .
Menggunakan /L tidak menyiratkan mode layanan. Untuk menggunakan /L saat menjalankan SQLdiag sebagai layanan, tentukan pada baris perintah saat Anda mendaftarkan layanan.
/X
Menjalankan SQLdiag dalam mode rekam jepret. SQLdiag mengambil rekam jepret dari semua diagnostik yang dikonfigurasi dan kemudian dimatikan secara otomatis.
MULAI | HENTIKAN | STOP_ABORT
Memulai atau menghentikan layanan SQLdiag . STOP_ABORT memaksa layanan untuk dimatikan secepat mungkin tanpa menyelesaikan pengumpulan diagnostik yang saat ini dikumpulkan.
Ketika argumen kontrol layanan ini digunakan, argumen tersebut harus menjadi argumen pertama yang digunakan pada baris perintah. Contohnya:
MULAI SQLDIAG
Hanya argumen /A, yang menentukan instans SQLdiag bernama, yang dapat digunakan dengan START, STOP, atau STOP_ABORT untuk mengontrol instans tertentu dari layanan SQLdiag. Contohnya:
SQLDIAG START /A SQLdiag_application_name
Persyaratan Keamanan
Kecuali SQLdiag dijalankan dalam mode generik (dengan menentukan argumen baris perintah /G), pengguna yang menjalankan SQLdiag harus menjadi anggota grup Administrator Windows dan anggota peran server tetap SQL Server sysadmin. Secara default, SQLdiag terhubung ke SQL Server dengan menggunakan Autentikasi Windows, tetapi juga mendukung Autentikasi SQL Server.
Pertimbangan Performa
Efek performa dari menjalankan SQLdiag bergantung pada jenis data diagnostik yang telah Anda konfigurasi untuk dikumpulkan. Misalnya, jika Anda telah mengonfigurasi SQLdiag untuk mengumpulkan informasi pelacakan SQL Server Profiler, semakin banyak kelas peristiwa yang Anda pilih untuk dilacak, semakin banyak performa server Anda terpengaruh.
Dampak performa menjalankan SQLdiag kira-kira setara dengan jumlah biaya pengumpulan diagnostik yang dikonfigurasi secara terpisah. Misalnya, mengumpulkan jejak dengan SQLdiag dikenakan biaya performa yang sama seperti mengumpulkannya dengan SQL Server Profiler. Dampak performa penggunaan SQLdiag dapat diabaikan.
Ruang Disk yang Diperlukan
Karena SQLdiag dapat mengumpulkan berbagai jenis informasi diagnostik, ruang disk kosong yang diperlukan untuk menjalankan SQLdiag bervariasi. Jumlah informasi diagnostik yang dikumpulkan tergantung pada sifat dan volume beban kerja yang diproses server dan dapat berkisar dari beberapa megabyte hingga beberapa gigabyte.
File Konfigurasi
Saat memulai, SQLdiag membaca file konfigurasi dan argumen baris perintah yang telah ditentukan. Anda menentukan jenis informasi diagnostik yang dikumpulkan SQLdiag dalam file konfigurasi. Secara default, SQLdiag menggunakan file konfigurasi SQLDiag.Xml, yang diekstrak setiap kali alat berjalan dan terletak di folder startup utilitas SQLdiag . File konfigurasi menggunakan skema XML, SQLDiag_schema.xsd, yang juga diekstrak ke direktori startup utilitas dari file yang dapat dieksekusi setiap kali SQLdiag berjalan.
Mengedit File Konfigurasi
Anda dapat menyalin dan mengedit SQLDiag.Xml untuk mengubah jenis data diagnostik yang dikumpulkan SQLdiag . Saat mengedit file konfigurasi, selalu gunakan editor XML yang dapat memvalidasi file konfigurasi terhadap skema XML-nya, seperti Management Studio. Anda tidak boleh mengedit SQLDiag.Xml secara langsung. Sebagai gantinya, buat salinan SQLDiag.Xml dan ganti namanya menjadi nama file baru di folder yang sama. Kemudian edit file baru, dan gunakan argumen /I untuk meneruskannya ke SQLdiag.
Mengedit File Konfigurasi Saat SQLdiag Berjalan sebagai Layanan
Jika Anda telah menjalankan SQLdiag sebagai layanan dan perlu mengedit file konfigurasi, batalkan pendaftaran layanan SQLDIAG dengan menentukan argumen baris perintah /U lalu daftarkan ulang layanan dengan menggunakan argumen baris perintah /R . Membatalkan pendaftaran dan mendaftarkan ulang layanan akan menghapus informasi konfigurasi lama yang di-cache di registri Windows.
Output Folder
Jika Anda tidak menentukan folder output dengan argumen /O , SQLdiag membuat subfolder bernama SQLDIAG di bawah folder startup SQLdiag . Untuk pengumpulan informasi diagnostik yang melibatkan pelacakan volume tinggi, seperti SQL Server Profiler , pastikan folder output berada di drive lokal dengan ruang yang cukup untuk menyimpan output diagnostik yang diminta.
Ketika SQLdiag dimulai ulang, SQLdiag menimpa konten folder output. Untuk menghindari hal ini, tentukan /N 2 pada baris perintah.
Proses Pengumpulan Data
Ketika SQLdiag dimulai, SQLdiag melakukan pemeriksaan inisialisasi yang diperlukan untuk mengumpulkan data diagnostik yang telah ditentukan di SQLDiag.Xml. Proses ini mungkin memakan waktu beberapa detik. Setelah SQLdiag mulai mengumpulkan data diagnostik saat dijalankan sebagai aplikasi konsol, pesan akan menampilkan informasi bahwa koleksi SQLdiag telah dimulai dan Anda dapat menekan CTRL+C untuk menghentikannya. Ketika SQLdiag dijalankan sebagai layanan, pesan serupa ditulis ke log peristiwa Windows.
Jika Anda menggunakan SQLdiag untuk mendiagnosis masalah yang dapat Anda reproduksi, tunggu hingga Anda menerima pesan ini sebelum mereproduksi masalah di server Anda.
SQLdiag mengumpulkan sebagian besar data diagnostik secara paralel. Semua informasi diagnostik dikumpulkan dengan menyambungkan ke alat, seperti utilitas sqlcmd SQL Server atau prosesor perintah Windows, kecuali ketika informasi dikumpulkan dari log performa Windows dan log peristiwa. SQLdiag menggunakan satu utas pekerja per komputer untuk memantau pengumpulan data diagnostik alat lain ini, sering kali secara bersamaan menunggu beberapa alat selesai. Selama proses pengumpulan, SQLdiag merutekan output dari setiap diagnostik ke folder output.
Menghentikan Pengumpulan Data
Setelah SQLdiag mulai mengumpulkan data diagnostik, SQLdiag terus melakukannya kecuali Anda menghentikannya secara manual melalui CTRL+C
, atau membuat sqldiag.stop
file, atau Anda mengonfigurasinya untuk berhenti pada waktu yang ditentukan. Anda dapat mengonfigurasi SQLdiag untuk berhenti pada waktu tertentu dengan menggunakan argumen /E , atau dengan menggunakan argumen /X , yang menyebabkan SQLdiag berjalan dalam mode rekam jepret.
Ketika SQLdiag berhenti, SQLdiag menghentikan semua diagnostik yang telah dimulainya. Misalnya, ia menghentikan jejak SQL Server Profiler yang dikumpulkannya, ia berhenti menjalankan skrip Transact-SQL yang dijalankannya, dan menghentikan subproses apa pun yang telah diluncurkannya selama pengumpulan data. Setelah pengumpulan data diagnostik selesai, SQLdiag keluar.
Untuk menghentikan SQLdiag saat berjalan sebagai aplikasi konsol
Jika Anda menjalankan SQLdiag sebagai aplikasi konsol, tekan CTRL+C di jendela konsol tempat SQLdiag berjalan untuk menghentikannya. Setelah Anda menekan CTRL+C, pesan ditampilkan di jendela konsol yang memberi tahu Anda bahwa pengumpulan data SQLDiag berakhir, dan Anda harus menunggu hingga proses dimatikan, yang mungkin memakan waktu beberapa menit.
Tekan Ctrl+C dua kali untuk mengakhiri semua proses diagnostik anak dan segera mengakhiri aplikasi.
Untuk menghentikan SQLdiag saat menjalankan sebagai layanan
Jika Anda menjalankan SQLdiag sebagai layanan, jalankan SQLDiag STOP di folder startup SQLdiag untuk menghentikannya. Atau Anda cukup menghentikan layanan SQLDiag di applet Services.msc.
Catatan
Menjeda layanan SQLdiag tidak didukung. Jika Anda mencoba menjeda layanan SQLdiag , layanan tersebut berhenti setelah selesai mengumpulkan diagnostik yang dikumpulkannya saat Anda menjedanya. Jika Anda memulai ulang SQLdiag setelah menghentikannya, aplikasi akan memulai ulang dan menimpa folder output. Untuk menghindari penimpaan folder output, tentukan /N 2 pada baris perintah.
Jika Anda menjalankan beberapa instans SQLdiag di komputer yang sama, Anda juga dapat meneruskan nama instans SQLdiag ke pada baris perintah saat Anda menghentikan layanan. Misalnya, untuk menghentikan instans SQLdiag bernama Instance1, gunakan sintaks berikut:
SQLDIAG STOP /A Instance1
Catatan
/A adalah satu-satunya argumen baris perintah yang dapat digunakan dengan START, STOP, atau STOP_ABORT. Jika Anda perlu menentukan instans bernama SQLdiag dengan salah satu kata kerja kontrol layanan, tentukan /A setelah kata kerja kontrol pada baris perintah seperti yang ditunjukkan pada contoh sintaks sebelumnya. Ketika kata kerja kontrol digunakan, kata kerja harus menjadi argumen pertama pada baris perintah.
Untuk menghentikan layanan secepat mungkin, jalankan SQLDIAG STOP_ABORT di folder startup utilitas. Perintah ini membatalkan semua diagnostik yang dikumpulkan yang saat ini sedang dilakukan tanpa menunggunya selesai.
Catatan
Gunakan STOP_ABORT SQLDiag STOP atau SQLDIAG untuk menghentikan layanan SQLdiag. Jangan gunakan Konsol Layanan Windows untuk menghentikan SQLdiag atau layanan SQL Server lainnya.
Untuk menghentikan SQLDiag menggunakan file sqldiag.stop
SQLDiag juga akan dimatikan secara otomatis ketika menemukan file bernama sqldiag.stop
di folder \Output utilitas. Opsi ini berlaku terlepas dari apakah SQLDiag berjalan sebagai aplikasi konsol atau sebagai layanan. Membuat file .stop dapat berguna ketika Anda ingin mematikan SQLDiag secara terprogram setelah beberapa peristiwa terjadi, tetapi Anda tidak tahu terlebih dahulu waktu peristiwa ini akan terjadi. Konten sqldiag.stop
file tidak relevan. Salah satu opsi, selain membuat file secara manual, adalah menggunakan perintah seperti berikut ini dalam file batch untuk membuat sqldiag.stop
:
ECHO abc > F:\PSSDIAG\Output\sqldiag.stop
Opsi lain adalah menggunakan PowerShell
Set-Content -Value "stop please" -Path "G:\pssdiag\output\sqldiag.stop"
Memulai dan Menghentikan SQLdiag Secara Otomatis
Untuk memulai dan menghentikan pengumpulan data diagnostik secara otomatis pada waktu yang ditentukan, gunakan argumen /Bstart_time dan /Estop_time, menggunakan notasi 24 jam. Misalnya, jika Anda memecahkan masalah yang secara konsisten muncul pada sekitar pukul 02:00:00, Anda dapat mengonfigurasi SQLdiag untuk secara otomatis mulai mengumpulkan data diagnostik pada pukul 01:45 dan secara otomatis berhenti pada pukul 03:00:00. Gunakan argumen /B dan /E untuk menentukan waktu mulai dan berhenti. Gunakan notasi 24 jam untuk menentukan tanggal dan waktu mulai dan berhenti yang tepat dengan format umum YYYYMMDD_HH:MM:SS. Berikut ini akan memulai pengumpulan data pada pukul 01.45 dan menghentikannya pada pukul 03.00.
sqldiag /B 01:45:00 /E 03:00:00
Untuk menentukan waktu mulai atau berhenti relatif, awali waktu mulai dan hentikan dengan + dan hilangkan bagian tanggal (YYYYMMDD_) seperti yang ditunjukkan dalam contoh berikut. Hal ini menyebabkan SQLdiag menunggu 1 jam sebelum mulai mengumpulkan informasi, kemudian mengumpulkan informasi selama 2,5 jam sebelum berhenti dan keluar:
sqldiag /B +01:00:00 /E +02:30:00
Ketika start_time relatif ditentukan, SQLdiag dimulai pada waktu yang relatif terhadap tanggal dan waktu saat ini. Ketika end_time relatif ditentukan, SQLdiag berakhir pada waktu yang relatif terhadap start_time yang ditentukan. Jika tanggal dan waktu mulai atau berakhir yang telah Anda tentukan ada di masa lalu, SQLdiag secara paksa mengubah tanggal mulai sehingga tanggal dan waktu mulai berada di masa mendatang.
Ini memiliki implikasi penting pada tanggal mulai dan berakhir yang Anda pilih. Pertimbangkan contoh berikut:
sqldiag /B +01:00:00 /E 08:30:00
Jika waktu saat ini adalah 08:00, waktu akhir berlalu sebelum pengumpulan diagnostik benar-benar dimulai. Karena SQLDiag secara otomatis menyesuaikan tanggal mulai dan berakhir ke hari berikutnya ketika terjadi di masa lalu, dalam contoh ini koleksi diagnostik dimulai pada pukul 09:00 hari ini (waktu mulai relatif telah ditentukan pada 1 jam dari sekarang menggunakan +) dan terus mengumpulkan hingga pukul 08:30 pagi berikut.
Menghentikan dan Memulai Ulang SQLdiag untuk Mengumpulkan Diagnostik Harian
Untuk mengumpulkan serangkaian diagnostik tertentu setiap hari tanpa harus memulai dan menghentikan SQLdiag secara manual, gunakan argumen /L . Argumen /L menyebabkan SQLdiag berjalan terus menerus dengan secara otomatis memulai ulang dirinya sendiri setelah penonaktifan terjadwal. Ketika /L ditentukan, dan SQLdiag berhenti karena telah mencapai waktu akhir yang ditentukan dengan argumen /E , atau berhenti karena sedang dijalankan dalam mode rekam jepret dengan menggunakan argumen /X , SQLdiag memulai ulang alih-alih keluar.
Contoh berikut menentukan bahwa SQLdiag berjalan dalam mode berkelanjutan untuk memulai ulang secara otomatis setelah pengumpulan data diagnostik terjadi antara pukul 03:00:00 dan 05:00:00.
sqldiag /B 03:00:00 /E 05:00:00 /L
Contoh berikut menentukan bahwa SQLdiag berjalan dalam mode berkelanjutan untuk memulai ulang secara otomatis setelah mengambil rekam jepret data diagnostik pada pukul 03:00:00.
sqldiag /B 03:00:00 /X /L
Menjalankan SQLdiag sebagai Layanan
Ketika Anda ingin menggunakan SQLdiag untuk mengumpulkan data diagnostik untuk jangka waktu yang lama di mana Anda mungkin perlu keluar dari komputer tempat SQLdiag berjalan, Anda dapat menjalankannya sebagai layanan.
Untuk mendaftarkan SQLDiag agar berjalan sebagai layanan
Anda dapat mendaftarkan SQLdiag untuk dijalankan sebagai layanan dengan menentukan argumen /R di baris perintah. Ini mendaftarkan SQLdiag untuk dijalankan sebagai layanan. Nama layanan SQLdiag adalah SQLDIAG. Argumen lain yang Anda tentukan pada baris perintah saat Anda mendaftarkan SQLDiag sebagai layanan dipertahankan dan digunakan kembali saat layanan dimulai.
Untuk mengubah nama layanan SQLDIAG default, gunakan argumen baris perintah /A untuk menentukan nama lain. SQLdiag secara otomatis mengawali DIAG$ ke nama instans SQLdiag apa pun yang ditentukan dengan /A untuk membuat nama layanan yang masuk akal.
Untuk membatalkan pendaftaran layanan SQLDIAG
Untuk membatalkan pendaftaran layanan, tentukan argumen /U . Membatalkan pendaftaran SQLdiag sebagai layanan juga menghapus kunci registri Windows dari layanan.
Untuk memulai atau memulai ulang layanan SQLDIAG
Untuk memulai atau memulai ulang layanan SQLDIAG, jalankan SQLDiag START dari baris perintah.
Jika Anda menjalankan beberapa instans SQLdiag dengan menggunakan argumen /A, Anda juga dapat meneruskan nama instans SQLdiag pada baris perintah saat memulai layanan. Misalnya, untuk memulai instans SQLdiag bernama Instance1, gunakan sintaks berikut:
SQLDIAG START /A Instance1
Anda juga dapat menggunakan perintah net start untuk memulai layanan SQLDIAG.
Saat Anda memulai ulang SQLdiag, SQLdiag akan menimpa konten di folder output saat ini. Untuk menghindari hal ini, tentukan /N 2 pada baris perintah untuk mengganti nama folder output saat utilitas dimulai.
Menjeda layanan SQLdiag tidak didukung.
Menjalankan Beberapa Instans SQLdiag
Jalankan beberapa instans SQLdiag di komputer yang sama dengan menentukan /ASQLdiag_application_name pada baris perintah. Ini berguna untuk mengumpulkan set diagnostik yang berbeda secara bersamaan dari instans SQL Server yang sama. Misalnya, Anda dapat mengonfigurasi instans SQLdiag bernama untuk terus melakukan pengumpulan data ringan. Kemudian, jika masalah tertentu terjadi di SQL Server, Anda dapat menjalankan instans SQLdiag default untuk mengumpulkan diagnostik untuk masalah tersebut, atau untuk mengumpulkan serangkaian diagnostik yang diminta Microsoft Customer Support Services untuk Anda kumpulkan untuk mendiagnosis masalah.
Mengumpulkan Data Diagnostik dari Instans SQL Server Berkluster
SQLdiag mendukung pengumpulan data diagnostik dari instans SQL Server terkluster. Untuk mengumpulkan diagnostik dari instans SQL Server terkluster, pastikan bahwa "." ditentukan untuk atribut< nama elemen Mesin> dalam file konfigurasi SQLDiag.Xml dan tidak menentukan argumen /G pada baris perintah. Secara default, "." ditentukan untuk atribut nama dalam file konfigurasi dan argumen /G dinonaktifkan. Biasanya, Anda tidak perlu mengedit file konfigurasi atau mengubah argumen baris perintah saat mengumpulkan dari instans SQL Server terkluster.
Ketika "." ditentukan sebagai nama komputer, SQLdiag mendeteksi bahwa komputer berjalan pada kluster, dan secara bersamaan mengambil informasi diagnostik dari semua instans virtual SQL Server yang diinstal pada kluster. Jika Anda ingin mengumpulkan informasi diagnostik hanya dari satu instans virtual SQL Server yang berjalan di komputer, tentukan SQL Server virtual tersebut untuk atribut <nama elemen Komputer> di SQLDiag.Xml.
Catatan
Untuk mengumpulkan informasi pelacakan SQL Server Profiler dari instans SQL Server terkluster, berbagi administratif (ADMIN$) harus diaktifkan pada kluster.