Terdapat 3 kaedah khusus.
Kaedah 1:
Langkah pertama:
nama_database log sandaran dengan no_log
atau nama pangkalan data log sandaran dengan truncate_only
-- no_log dan truncate_only adalah sinonim di sini, anda boleh melaksanakan mana-mana ayat.
Langkah 2:
1 Kecilkan semua data dan fail log pangkalan data tertentu, laksanakan:
dbcc shrinkdatabase (database_name,[,target_percent])
-- database_name ialah nama pangkalan data yang akan dikecilkan; target_percent ialah peratusan baki ruang kosong yang diperlukan dalam fail pangkalan data selepas pangkalan data dikecilkan.
2 Kecilkan data atau log fail dalam pangkalan data tertentu pada satu masa, laksanakan
dbcc shrinkfile(file_id,[,sasaran_saiz])
-- file_id ialah nombor pengenalan (ID) bagi fail yang akan dikecilkan Untuk mendapatkan ID fail, gunakan fungsi FILE_ID atau cari sysfiles dalam pangkalan data semasa ialah saiz fail yang dikehendaki dalam megabait (dinyatakan sebagai integer ) . Jika tidak dinyatakan, dbcc shrinkfile mengurangkan saiz fail kepada saiz fail lalai. Kedua-dua dbcc boleh membawa parameter notruncate atau truncate sahaja. Sila rujuk bantuan dalam talian untuk maksud khusus.
Kaedah 2:
Langkah pertama:
Sandarkan keseluruhan pangkalan data terlebih dahulu untuk persediaan menghadapi kecemasan.
Langkah 2:
Selepas sandaran selesai, laksanakan pernyataan berikut dalam Penganalisis Pertanyaan:
exec sp_detach_db yourDBName,true
--Nyahpasang maklumat pendaftaran DB ini dalam MSSQL
Langkah 3:
Pergi ke direktori di mana fail log fizikal terletak untuk memadam fail log atau mengalihkan fail log keluar dari direktori
Langkah 4:
Laksanakan pernyataan berikut dalam Penganalisis Pertanyaan:
exec sp_attach_single_file_db yourDBName,'
d:mssqldatayourDBName_data.mdf '
--Daftarkan DB sebagai satu fail Jika berjaya, MSSQL akan menjana fail log 500K secara automatik untuk DB ini.
Kaedah 3:
1 Masukkan pengurus perusahaan dan pilih pangkalan data, seperti demo
2. Semua tugas->Asingkan pangkalan data
3 Pergi ke direktori tempat fail pangkalan data disimpan dan padamkan fail MuOnline_log.LDF untuk berjaga-jaga, anda boleh menyalinnya
4. Pengurus Perusahaan -> Lampirkan pangkalan data, pilih muonline Pada masa ini, anda akan melihat bahawa item fail log adalah salib. Pada masa ini, pangkalan data akan meminta anda untuk membuat yang baru satu jika pangkalan data tidak mempunyai log.5 Ingat bahawa pengguna perlu menetapkan semula selepas pangkalan data dilampirkan semula.
Jika anda tidak mahu ia menjadi lebih besar pada masa hadapan:
Digunakan di bawah SQL2000:
Klik kanan pada pangkalan data->Properties->Options->Failure Recovery-Model-Select-Simple Model.
Atau gunakan pernyataan SQL:
ubah nama pangkalan data set pemulihan mudah
Apa yang perlu dilakukan jika pangkalan data SQL terlalu besar
--Mampatkan saiz fail log dan pangkalan data
/*--Perhatian istimewa
Sila ikut langkah Jika anda belum menyelesaikan langkah sebelum ini, sila jangan lakukan langkah berikut
Jika tidak, ia boleh merosakkan pangkalan data anda.
--*/
1.Kosongkan log
DUMP TRANSACTION nama perpustakaan TANPA_LOG
2. Potong log transaksi:
MACKUP LOG nama pangkalan data DENGAN NO_LOG
3. Kecilkan fail pangkalan data (jika tidak dimampatkan, fail pangkalan data tidak akan berkurangan
Pengurus Perusahaan--klik kanan pangkalan data yang ingin anda mampatkan--Semua tugas--Kecilkan pangkalan data--Kecilkan fail
--Pilih fail log--Dalam mod mengecut, pilih mengecut ke XXM akan ada bilangan minimum M yang dibenarkan untuk mengecilkan terus
--Pilih fail data--Dalam mod mengecut, pilih mengecut ke XXM akan ada bilangan minimum M yang dibenarkan untuk mengecilkan terus
Ia juga boleh dilakukan menggunakan pernyataan SQL
--Kecilkan pangkalan data
DBCC SHRINKDATABASE (Data Pelanggan)
--Kecilkan fail data yang ditentukan, 1 ialah nombor fail, yang boleh ditanya melalui pernyataan ini: pilih * daripada sysfiles
DBCC SHRINKFILE(1)
4 Untuk meminimumkan saiz fail log (jika sql 7.0, langkah ini hanya boleh dilakukan dalam penganalisis pertanyaan)
.
a. Pangkalan data berasingan:Pengurus Perusahaan--Pelayan--Pangkalan Data--klik kanan--Alihkan Pangkalan Data
b. Padamkan fail LOG pada komputer saya
c. Pangkalan data tambahan:
Pengurus Perusahaan--Pelayan--Pangkalan Data--klik kanan--Lampirkan Pangkalan Data
Kaedah ini akan menghasilkan LOG baru, saiznya hanya melebihi 500K
atau gunakan kod:
Contoh di bawah memisahkan pub dan kemudian menambahkan fail daripada pub ke pelayan semasa.
a.Perpisahan
EXEC sp_detach_db @dbname = 'pub'
b. Padamkan fail log
c.Tambah lagi
EXEC sp_attach_single_file_db @dbname = 'pub',
@physname = 'c:Program FilesMicrosoft SQL ServerMSSQLDatapubs.mdf'
5 Untuk mengecut secara automatik pada masa hadapan, buat tetapan berikut:
Pengurus Perusahaan--Pelayan--klik kanan pangkalan data--Properties--Options--Pilih "Auto Shrink"
--Kaedah tetapan pernyataan SQL:
EXEC sp_dboption 'nama pangkalan data', 'autoshrink', 'TRUE'
6 Jika anda ingin mengelakkan kayu balak daripada membesar terlalu besar pada masa hadapan
Pengurus Perusahaan--Pelayan--Klik kanan Pangkalan Data--Properti--Log Transaksi
--Hadkan pertumbuhan fail kepada xM (x ialah saiz fail data maksimum yang anda benarkan)
--Kaedah tetapan pernyataan SQL:
ubah nama pangkalan data pangkalan data ubah suai fail(nama=nama fail logik, saiz maksimum=20)
Atas ialah kandungan terperinci Kaedah dan langkah untuk memampatkan fail log pangkalan data. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!