Skrip Batch Membuat Penyenggaraan Pangkalan Data SQL Server Mudah
Sebagai tambahan untuk membuat sandaran, terdapat pelbagai tugas dan fungsi yang disediakan oleh SQL Server yang boleh meningkatkan prestasi dan kebolehpercayaan pangkalan data anda. Kami telah menunjukkan kepada anda bagaimana untuk membina pangkalan data SQL Server dengan skrip baris perintah yang mudah jadi dalam cara yang sama kami menyediakan skrip yang akan membolehkan anda dengan mudah melaksanakan tugas penyelenggaraan biasa.
Compacting / Shrinking Database [/ Compact]
Terdapat beberapa faktor yang menyumbang kepada ruang cakera fizikal yang menggunakan pangkalan data SQL Server. Hanya untuk menamakan beberapa:
- Sepanjang masa sebagai rekod ditambah, dipadam dan dikemas kini, SQL terus berkembang dan menyusut jadual serta menjana struktur data sementara untuk melaksanakan manipulasi pertanyaan. Untuk memenuhi keperluan penyimpanan cakera, SQL Server akan meningkatkan saiz pangkalan data (biasanya sebanyak 10%) seperti yang diperlukan supaya saiz fail pangkalan data tidak sentiasa berubah. Walaupun ini sesuai untuk prestasi, ia boleh menyebabkan sambungan dengan ruang storan yang digunakan kerana jika, sebagai contoh, anda menambah bilangan rekod yang sangat besar yang menyebabkan pangkalan data berkembang dan seterusnya menghapuskan rekod ini, SQL Server tidak akan menuntut semula secara automatik ruang cakera.
- Jika anda menggunakan Mod Pemulihan Penuh pada pangkalan data anda, fail log transaksional (LDF) boleh berkembang agak besar, terutamanya pada pangkalan data dengan jumlah kemas kini yang tinggi.
Memampatkan (atau mengecut) pangkalan data akan menuntut semula ruang cakera yang tidak digunakan. Untuk pangkalan data kecil (200 MB atau kurang) ini biasanya tidak akan sangat banyak, tetapi untuk pangkalan data yang besar (1 GB atau lebih) ruang yang ditebus mungkin penting.
Reindexing Database [/ Reindex]
Sama seperti sentiasa mencipta, mengedit dan memadam fail boleh menyebabkan pemecahan cakera, memasukkan, mengemas kini dan memadamkan rekod dalam pangkalan data boleh menyebabkan pemecahan jadual. Keputusan praktikal adalah sama dalam operasi membaca dan menulis yang mengalami hit prestasi. Walaupun tidak analogi yang sempurna, reindexing jadual dalam pangkalan data pada asasnya defragments mereka. Dalam sesetengah kes, ini dapat meningkatkan kelajuan pengambilan data dengan ketara.
Kerana cara kerja SQL Server, jadual mesti ditindih semula secara individu. Untuk pangkalan data dengan sejumlah besar jadual ini boleh menjadi kesakitan yang nyata untuk dilakukan secara manual, tetapi skrip kami mencecah setiap jadual dalam pangkalan data masing-masing dan membina semula semua indeks.
Mengesahkan Integriti [/ Verify]
Agar pangkalan data untuk kekal berfungsi dan menghasilkan hasil yang tepat, terdapat banyak perkara integriti yang mesti disediakan. Syukurlah, masalah integriti fizikal dan / atau logik tidak begitu biasa, tetapi amalan yang baik untuk kadangkala menjalankan proses pengesahan integriti pada pangkalan data anda dan semak hasilnya.
Apabila proses pengesahan dijalankan melalui skrip kami, hanya ralat yang dilaporkan, jadi tidak ada berita yang baik.
Menggunakan Skrip
Skrip batch SQLMaint serasi dengan SQL 2005 dan lebih tinggi dan mesti dijalankan pada mesin yang mempunyai alat SQLCMD dipasang (dipasang sebagai sebahagian daripada pemasangan SQL Server). Adalah disyorkan untuk menggugurkan skrip ini ke dalam lokasi yang ditetapkan dalam pembolehubah PATH Windows anda (mis. C: Windows) supaya ia dapat dipanggil dengan mudah seperti mana-mana aplikasi lain dari baris perintah.
Untuk melihat maklumat bantuan, cukup masukkan:
SQLMaint /?
Contoh
Untuk menjalankan padat dan kemudian mengesahkan pada pangkalan data "MyDB" menggunakan sambungan yang dipercayai:
SQLMaint MyDB / Compact / Verify
Untuk menjalankan reindex dan kemudian padat pada "MyDB" pada contoh bernama "Khas" menggunakan pengguna "sa" dengan kata laluan "123456":
SQLMaint MyDB /S:.Special / U: sa / P: 123456 / Reindex / Compact
Menggunakan dari dalam Skrip Batch
Walaupun skrip batch SQLMaint boleh digunakan seperti aplikasi dari baris arahan, apabila anda menggunakannya dalam skrip batch lain, ia mesti didahului dengan kata kunci CALL.
Sebagai contoh, skrip ini menjalankan semua tugas penyelenggaraan pada setiap pangkalan data bukan sistem pada pemasangan SQL Server lalai menggunakan pengesahan yang dipercayai:
@ECHO OFF
EnableExtensions SETLOCAL
SET DBList = "% TEMP% DBList.txt"
SqlCmd -E -h-1 -w 300 -Q "SET NoCount ON; SELECT name FROM master.dbo.sysDatabases WHERE Name Not IN ('master', 'model', 'msdb', 'tempdb') ">% DBList%
FOR / F "usebackq tokens = 1" %% i IN (% DBList%) DO (
CALL SQLMaint "%% i" / Compact / Reindex / Verify
ECHO +++++++++++
)
JIKA EXIST% DBList% DEL / F / Q% DBList%
ENDLOCAL
Muat turun Skrip Batch SQLMaint dari SysadminGeek.com