Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:SQL Server
Database sistem harus dibangun kembali untuk memperbaiki masalah kerusakan dalam database sistem master, model, msdb, atau sumber daya , atau untuk mengubah kolase tingkat server default. Artikel ini menyediakan instruksi langkah demi langkah untuk membangun kembali database sistem di SQL Server.
Artikel ini tidak terkait dengan membangun ulang indeks.
Batasan
masterKetika database sistem , model, msdb, dan tempdb dibangun kembali, database dihilangkan dan dibuat ulang di lokasi aslinya. Jika kolasasi baru ditentukan dalam pernyataan pembangunan ulang, database sistem dibuat menggunakan pengaturan kolaterasi tersebut. Setiap modifikasi pengguna pada database ini hilang. Misalnya, Anda mungkin memiliki objek yang ditentukan pengguna dalam master database, pekerjaan terjadwal di msdb, atau perubahan pada pengaturan database default dalam model database.
Prasyarat
Lakukan tugas berikut sebelum Anda membangun ulang database sistem untuk memastikan bahwa Anda dapat memulihkan database sistem ke pengaturannya saat ini.
Rekam semua nilai konfigurasi di seluruh server.
SELECT * FROM sys.configurations;Rekam semua perbaikan yang diterapkan ke instans SQL Server dan kolase saat ini. Anda harus menerapkan kembali perbaikan ini setelah membangun kembali database sistem.
SELECT SERVERPROPERTY('ProductVersion ') AS ProductVersion, SERVERPROPERTY('ProductLevel') AS ProductLevel, SERVERPROPERTY('ResourceVersion') AS ResourceVersion, SERVERPROPERTY('ResourceLastUpdateDateTime') AS ResourceLastUpdateDateTime, SERVERPROPERTY('Collation') AS Collation;Rekam lokasi semua data dan file log saat ini untuk database sistem. Membangun kembali database sistem menginstal semua database sistem ke lokasi aslinya. Jika Anda telah memindahkan data database sistem atau file log ke lokasi lain, Anda harus memindahkan file lagi.
SELECT name, physical_name AS current_file_location FROM sys.master_files WHERE database_id IN (DB_ID('master'), DB_ID('model'), DB_ID('msdb'), DB_ID('tempdb'));Temukan cadangan saat ini dari database
master,model, danmsdb.Jika instans SQL Server dikonfigurasi sebagai distributor replikasi, temukan cadangan
distributiondatabase saat ini.Pastikan Anda memiliki izin yang sesuai untuk membangun kembali database sistem. Untuk menjalankan operasi ini, Anda harus menjadi anggota dari peran tetap server sysadmin. Untuk informasi selengkapnya, lihat Peran Tingkat Server.
Verifikasi bahwa salinan data dan file templat log
master,model,msdbada di server lokal. Lokasi default untuk file templat adalahC:\Program Files\Microsoft SQL Server\MSSQL<xx>.MSSQLSERVER\MSSQL\Binn\Templates(di mana<xx>adalah versi yang telah Anda instal). File-file ini digunakan selama proses pembangunan ulang dan harus ada agar Penyetelan berhasil. Jika hilang, jalankan fitur Perbaikan Penyiapan, atau salin file secara manual dari media penginstalan Anda. Untuk menemukan file di media penginstalan, navigasikan ke direktori platform yang sesuai (x86 atau x64) lalu navigasikan kesetup\sql_engine_core_inst_msi\Pfiles\SqlServr\MSSQL.X\MSSQL\Binn\Templates.
Membangun kembali database sistem
Prosedur berikut membangun kembali database sistem master, model, msdb, dan tempdb. Anda tidak dapat menentukan database sistem yang akan dibangun kembali. Untuk instans terkluster, prosedur ini harus dilakukan pada simpul aktif dan sumber daya SQL Server dalam grup aplikasi kluster yang sesuai harus diambil secara offline sebelum melakukan prosedur.
Prosedur ini tidak membangun kembali database resource. Lihat bagian Membangun ulang database sistem sumber daya nanti di artikel ini.
Membangun kembali database sistem untuk instans SQL Server
Masukkan media penginstalan SQL Server ke drive disk, atau, dari prompt perintah, ubah direktori ke lokasi
setup.exefile di server lokal. Untuk SQL Server 2022 (16.x), lokasi default di server adalahC:\Program Files\Microsoft SQL Server\160\Setup Bootstrap\SQLServer2022.Dari jendela prompt perintah, masukkan perintah berikut. Kurung siku digunakan untuk menunjukkan parameter opsional. Jangan masukkan tanda kurung. Saat menggunakan sistem operasi Windows yang mengaktifkan Kontrol Akun Pengguna (UAC), menjalankan Penyetelan memerlukan hak istimewa yang ditingkatkan. Perintah harus dijalankan sebagai Administrator.
setup /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=InstanceName /SQLSYSADMINACCOUNTS=accounts [ /SAPWD= StrongPassword ] [ /SQLCOLLATION=CollationName ]Nama Parameter Deskripsi /QUIET atau /Q Menentukan bahwa Penyetelan harus berjalan tanpa antarmuka pengguna apa pun. /ACTION=REBUILDDATABASE Menentukan bahwa Penyetelan harus membuat ulang database sistem. /INSTANCENAME=InstanceName Nama instans SQL Server. Untuk instans default, masukkan MSSQLSERVER. /SQLSYSADMINACCOUNTS=accounts Menentukan kelompok Windows atau akun individual untuk ditambahkan ke peran server sysadmin tetap. Saat menentukan lebih dari satu akun, pisahkan akun dengan ruang kosong. Misalnya, masukkan BUILTIN\Administrators MyDomain\MyUser. Saat Anda menentukan akun yang berisi ruang kosong dalam nama akun, sertakan akun dalam tanda kutip ganda. Misalnya, masukkan NT AUTHORITY\SYSTEM. [ /SAPWD=StrongPassword ] Menentukan kata sandi untuk akun sa SQL Server. Parameter ini diperlukan jika instans menggunakan mode Autentikasi Campuran (SQL Server dan Autentikasi Windows).
Catatan keamanan: Akun sa adalah akun SQL Server terkenal dan sering ditargetkan oleh pengguna berbahaya. Sangat penting bahwa Anda menggunakan kata sandi yang kuat untuk login sa .
Jangan tentukan parameter ini untuk mode Autentikasi Windows.[ /SQLCOLLATION=CollationName ] Menentukan pengaturan pengurutan tingkat server yang baru. Parameter ini bersifat opsional. Ketika tidak ditentukan, kolasi server yang saat ini digunakan akan diterapkan.
Penting: Mengubah kolatasi tingkat server tidak mengubah kolatasi database pengguna yang ada. Semua database pengguna yang baru dibuat akan menggunakan kolatasi baru secara default.
Untuk informasi selengkapnya, lihat Mengatur atau Mengubah Kolasi Server.[ /SQLTEMPDBFILECOUNT=NumberOfFiles ] Menentukan jumlah tempdbfile data. Nilai ini dapat ditingkatkan hingga 8 atau jumlah inti, mana yang lebih tinggi.
Nilai default: 8 atau jumlah inti, mana yang lebih rendah.[ /SQLTEMPDBFILESIZE=FileSizeInMB ] Menentukan ukuran awal setiap tempdbfile data dalam MB. Penyiapan memungkinkan ukuran hingga 1024 MB.
Nilai default: 8[ /SQLTEMPDBFILEGROWTH=FileSizeInMB ] Menentukan kenaikan pertumbuhan file dari setiap tempdbfile data dalam MB. Nilai 0 menunjukkan bahwa pertumbuhan otomatis tidak aktif dan tidak ada ruang tambahan yang diizinkan. Penyiapan memungkinkan ukuran hingga 1024 MB.
Nilai default: 64[ /SQLTEMPDBLOGFILESIZE=FileSizeInMB ] Menentukan ukuran awal file log tempdbdalam MB. Penyiapan memungkinkan ukuran hingga 1024 MB.
Nilai default: 8.
Rentang yang diizinkan: Min = 8, maks = 1024.[ /SQLTEMPDBLOGFILEGROWTH=FileSizeInMB ] Menentukan kenaikan pertumbuhan log file tempdbdalam MB. Nilai 0 menunjukkan bahwa pertumbuhan otomatis tidak aktif dan tidak ada ruang tambahan yang diizinkan. Penyiapan memungkinkan ukuran hingga 1024 MB.
Nilai default: 64
Rentang yang diizinkan: Min = 8, maks = 1024.[ /SQLTEMPDBDIR=Direktori ] Menetapkan direktori untuk file data tempdb. Saat menentukan lebih dari satu direktori, pisahkan direktori dengan spasi kosong. Jika beberapa direktori ditentukan, file data akan tersebar di seluruh direktori dengan cara bergiliran.
Nilai default: Direktori Data Sistem[ /SQLTEMPDBLOGDIR=Direktori ] Menentukan direktori untuk file log tempdb.
Nilai default: Direktori Data SistemKetika Penyetelan telah selesai membangun ulang database sistem, kembali ke prompt perintah tanpa pesan. Periksa file log Summary.txt untuk memverifikasi bahwa proses berhasil diselesaikan. File ini terletak di
C:\Program Files\Microsoft SQL Server\160\Setup Bootstrap\Logs.Skenario RebuildDatabase menghapus database sistem dan menginstalnya lagi dalam keadaan bersih. Karena pengaturan
tempdbjumlah file tidak tetap, jumlahtempdbfile tidak diketahui selama pengaturan. Oleh karena itu, skenario ebuildDatabase tidak tahu jumlahtempdbfile yang akan dibaca. Anda dapat memberikan nilai jumlahtempdbfile lagi dengan parameter SQLTEMPDBFILECOUNT. Jika parameter tidak disediakan, RebuildDatabase akan menambahkan jumlah file default sebanyaktempdb, yaitu sebanyak filetempdbsebesar jumlah CPU atau 8, mana yang lebih rendah.
Tugas pasca-pembangunan ulang
Setelah membangun ulang database, Anda mungkin perlu melakukan tugas tambahan berikut:
Pulihkan cadangan lengkap terbaru Anda dari
masterdatabase ,model, danmsdb. Untuk informasi selengkapnya, lihat Mencadangkan dan Memulihkan Database Sistem (SQL Server).Penting
Jika Anda telah mengubah kolatasi server, jangan pulihkan database sistem. Melakukannya akan mengganti kolasi baru dengan pengaturan kolasi sebelumnya.
Jika cadangan tidak tersedia atau jika cadangan yang dipulihkan tidak terkini, buat ulang entri yang hilang. Misalnya, buat ulang semua entri yang hilang untuk database pengguna Anda, perangkat cadangan, login SQL Server, titik akhir, dan sebagainya. Cara terbaik untuk membuat ulang entri adalah dengan menjalankan skrip asli yang membuatnya.
Penting
Kami menyarankan agar Anda mengamankan skrip Anda untuk mencegah perubahannya oleh individu yang tidak sah.
Jika instans SQL Server dikonfigurasi sebagai distributor replikasi, Anda harus memulihkan
distributiondatabase. Untuk informasi selengkapnya, lihat Mencadangkan dan Memulihkan Database yang Direplikasi.Pindahkan database sistem ke lokasi yang Anda rekam sebelumnya. Untuk informasi selengkapnya, lihat Memindahkan Database Sistem.
Verifikasi nilai konfigurasi di seluruh server cocok dengan nilai yang Anda rekam sebelumnya.
Membangun kembali database sumber daya
Prosedur berikut membangun kembali database sistem resource. Ketika Anda membangun kembali database resource, semua pembaruan cepat hilang, sehingga harus diterapkan kembali.
Membangun kembali database sistem sumber daya
Luncurkan program Penyiapan SQL Server (
setup.exe) dari media distribusi.Di area navigasi kiri, pilih Pemeliharaan, lalu pilih Perbaiki.
Menyiapkan aturan dukungan untuk pemasangan dan menjalankan rutinitas file guna memastikan bahwa sistem Anda telah menginstal prasyarat dan komputer memenuhi aturan validasi pemasangan. Pilih OK atau Instal untuk melanjutkan.
Pada halaman Pilih Instans, pilih instans untuk diperbaiki, lalu pilih Berikutnya.
Aturan perbaikan akan berjalan untuk memvalidasi operasi. Untuk melanjutkan, pilih Berikutnya.
Dari halaman Siap Diperbaiki , pilih Perbaiki. Halaman Selesai menunjukkan bahwa operasi selesai.
Membuat database msdb baru
msdb Jika database rusak atau dicurigai dan Anda tidak memiliki cadangan msdb database, Anda bisa membuat msdb database baru dengan menggunakan instmsdb skrip.
Peringatan
Membangun kembali database menggunakan skrip msdb akan menghilangkan semua informasi yang disimpan di instmsdb.sql seperti pekerjaan, pemberitahuan, operator, rencana pemeliharaan, riwayat pencadangan, pengaturan Manajemen Berbasis Kebijakan, Surat Elektronik Basis Data, Pusat Data Kinerja, dan sebagainya.
Hentikan semua layanan yang terhubung ke Mesin Database, termasuk SQL Server Agent, SSRS, SSIS, dan semua aplikasi yang menggunakan SQL Server sebagai penyimpanan data.
Mulai SQL Server dari baris perintah menggunakan perintah :
NET START MSSQLSERVER /T3608Untuk informasi selengkapnya, lihat Mulai, Hentikan, Jeda, Lanjutkan, Mulai Ulang Mesin Database, Agen SQL Server, atau Layanan Browser SQL Server. Untuk informasi tentang bendera pelacakan 3608, lihat TF3608.
Di jendela baris perintah lain, lepaskan
msdbdatabase dengan menjalankan perintah berikut, mengganti<servername>dengan instans SQL Server:SQLCMD -E -S<servername> -dmaster -Q"EXEC sp_detach_db msdb"Menggunakan Windows Explorer, ganti nama
msdbfile database. Secara default ini ada di subfolder DATA untuk instans SQL Server.Menggunakan Pengelola Konfigurasi SQL Server, hentikan dan mulai ulang layanan Mesin Database biasanya tanpa bendera pelacakan tambahan.
Di jendela prompt perintah, sambungkan ke SQL Server dan jalankan perintah:
SQLCMD -E -S<servername> -i"C:\Program Files\Microsoft SQL Server\MSSQLXX.INSTANCE_NAME\MSSQL\Install\instmsdb.sql" -o"C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\Install\instmsdb.out"Ganti
<servername>dengan instans Mesin Database. Gunakan jalur sistem file instans SQL Server. Selain itu, gantiMSSQLXX.INSTANCE_NAMEdengan direktori yang sesuai dengan versi dan instans Anda.Menggunakan Windows Notepad, buka
instmsdb.outfile dan periksa output untuk kesalahan apa pun.Terapkan kembali semua CUs yang terpasang pada instans untuk meningkatkan database Anda
msdbke tingkat CU saat ini.Buat ulang konten pengguna yang disimpan dalam
msdbdatabase, seperti pekerjaan, pemberitahuan, dan item lainnya.Cadangkan basis data
msdb.
Membangun kembali database tempdb
Jika database tempdb rusak atau dicurigai dan mesin database gagal dimulai, Anda dapat membangun ulang tempdb tanpa perlu membangun ulang semua database sistem.
Ubah nama file
tempdb.mdfdantemplog.ldfsaat ini, jika tidak hilang.Mulai SQL Server dari Command Prompt dengan menggunakan aplikasi sqlservr.
sqlservr -c -f -T3608 -T4022 -s <instance> -mSQLCMDUntuk nama instans default, gunakan
MSSQLSERVER, untuk instans bernama gunakanMSSQL$<instance_name>. Trace flag 4022 menonaktifkan eksekusi prosedur tersimpan saat startup.-mSQLCMDhanya memungkinkan sqlcmd.exe untuk terhubung ke server. Untuk informasi selengkapnya, lihat Opsi Startup Lainnya.Catatan
Pastikan bahwa jendela prompt perintah tetap terbuka setelah SQL Server dimulai. Menutup jendela prompt perintah akan mengakhiri proses.
Sambungkan ke server dengan menggunakan sqlcmd, lalu gunakan prosedur tersimpan
tempdbberikut untuk mengatur ulang status database.exec master..sp_resetstatus tempdbMatikan server dengan menekan
Ctrl+Cdi jendela prompt perintah.Mulai ulang layanan SQL Server. Ini membuat sekumpulan
tempdbfile database baru, dan memulihkantempdbdatabase.
Memecahkan masalah kesalahan pembangunan ulang
Sintaksis dan kesalahan run-time lainnya ditampilkan di jendela command prompt. Periksa pernyataan Penyiapan untuk kesalahan sintaks berikut:
Tanda garis miring hilang (
/) di depan setiap nama parameter.Tanda sama dengan (
=) tidak ada antara nama parameter dan nilai parameter.Kehadiran spasi kosong antara nama parameter dan tanda sama dengan.
Kehadiran koma (
,) atau karakter lain yang tidak ditentukan dalam sintaks.
Setelah operasi pembangunan ulang selesai, periksa log SQL Server untuk kesalahan apa pun. Lokasi log default adalah C:\Program Files\Microsoft SQL Server\160\Setup Bootstrap\Logs. Untuk menemukan file log yang berisi hasil proses pembangunan ulang, ubah direktori ke folder Log dari prompt perintah, lalu jalankan findstr /s RebuildDatabase summary*.*. Pencarian ini akan mengarahkan Anda ke file log apa pun yang berisi hasil pembangunan ulang database sistem. Buka file log dan periksa untuk pesan kesalahan yang relevan.