it-swarm.asia

Bagaimana cara memotong log transaksi di database SQL Server 2008?

Bagaimana cara memotong log transaksi di database SQL Server 2008?

Apa cara terbaik yang mungkin?

Saya mencoba ini dari blog sebagai berikut:

1) Dari pengaturan database ke pemulihan sederhana, menyusutkan file dan sekali lagi pengaturan dalam pemulihan penuh, Anda sebenarnya kehilangan data log berharga Anda dan tidak akan dapat mengembalikan titik waktu. Tidak hanya itu, Anda juga tidak akan dapat menggunakan file log selanjutnya.

2) Mengecilkan file database atau menambah database fragmentasi.

Ada banyak hal yang dapat Anda lakukan. Pertama, mulailah mengambil cadangan log yang benar menggunakan perintah berikut alih-alih memotongnya dan sering kehilangannya.

BACKUP LOG [TestDb] TO  DISK = N'C:\Backup\TestDb.bak'
GO

Hapus kode SHRINKING file. Jika Anda mengambil cadangan log yang benar, file log Anda biasanya (sekali lagi biasanya, kasus khusus dikecualikan) tidak tumbuh sangat besar.

9
Neo

Cara paling aman dan benar untuk memotong file log jika database berada dalam Mode Pemulihan Penuh adalah dengan melakukan Backup Log Transaksi (tanpa TRUNCATE_ONLY. Ini akan ditinggalkan dalam rilis mendatang dan tidak disarankan).

Sepertinya Anda ingin mengecilkan file log Anda setelahnya, dalam hal ini Anda akan menjalankan perintah DBCC SHRINKFILE(yourTLogName). Ada parameter kedua opsional untuk ukuran yang diminta untuk menyusutkan.

4
Thomas Stringer

Anda dapat mencadangkan log ke perangkat null:

backup log [databasename] to disk = 'nul';

Atau Anda dapat mengganti model pemulihan menjadi sederhana dan kemudian kembali ke full/bulk lagi.

8
Luis Gonzalez

Jika Anda tidak peduli dengan data log Anda dan hanya ingin menyingkirkannya:

Ubah model pemulihan dari penuh menjadi sederhana, lalu kembali ke penuh. Kecilkan file menggunakan DBCC SHRINKFILE dengan argumen TRUNCATEONLY

Perintah berikut akan mengubah model pemulihan dari penuh menjadi sederhana

ALTER DATABASE <databse_name> SET RECOVERY SIMPLE

Perintah berikut akan mengubah model pemulihan menjadi penuh

ALTER DATABASE <databse_name> SET RECOVERY FULL

Untuk menemukan nama file log Anda dapat menggunakan kueri berikut

SELECT name 
FROM sys.master_files
WHERE database_id = DB_ID('<databse_name>')

Kecilkan file

DBCC SHRINKFILE (N'<logical_file_name_of_the_log>' , 0, TRUNCATEONLY)

Lihat Apa perintah untuk memotong file log SQL Server? untuk informasi lebih lanjut tentang ini

6
Alex