Pemeliharaan Log Transaksi saat beralih ke Pemulihan Sederhana

9

Latar Belakang:

Saya baru-baru ini mewarisi 50+ SQL Server dengan 450+ database. Backup malam hari kira-kira 8TB dan, tentu saja, kami menggunakan lebih banyak ruang disk daripada yang kami inginkan. Semua database diatur ke pemulihan LENGKAP dan log transaksi belum pernah dicadangkan. Saya telah melalui semua SQL Server dan mengidentifikasi yang berprioritas rendah yang hanya memerlukan cadangan malam dan di mana sehari kehilangan data dapat diterima.

Pertanyaan:

Saya mengalihkan banyak basis data prioritas rendah ke SIMPLEmode pemulihan FULL. Apakah log transaksi yang ada akan terpotong (ketika pos pemeriksaan dibuat)? Beberapa log transaksi yang ada adalah 50-100GB; apa pendekatan terbaik dalam menentukan apa yang harus saya perkecil untuk tujuan maju? Saya jelas tidak ingin menyimpannya sebesar itu. Atau, apakah mereka akan menyusut sendiri dari waktu ke waktu (saya pikir mereka tidak akan melakukannya)?

BamBamBeano
sumber

Jawaban:

2

Sebelum beralih dari FULLke SIMPLEmodel pemulihan, tanyakan pada diri sendiri berapa banyak data yang Anda mampu untuk kehilangan. Untuk database di mana jika terjadi bencana Anda baik-baik saja dengan mengembalikan cadangan database terakhir, SIMPLEharus OK. Jika ini tidak terjadi, tetap denganFULL .

Untuk mengecilkan ukuran LDFfile sekecil mungkin, ikuti langkah-langkah yang diberikan oleh Kimberly Tripp di sini: 8 Langkah untuk lebih baik.

  1. Tunggu saat ada aktivitas rendah di database

  2. Jalankan di SSMS:

    DBCC SHRINKFILE(transaction_log_logical_filename, TRUNCATEONLY)
  3. Ubah ukuran file log transaksi:

    ALTER DATABASE db_name
    MODIFY FILE ( NAME = transaction_log_logical_filename, SIZE = new_size)
    
Milena Petrovic
sumber
1
Saya tidak akan menyarankan untuk SHRINK file Log karena akan menyebabkan fragmentasi VLF dan seluruh beban kerja basis data akan dijeda sementara log tumbuh, karena file log transaksi tidak dapat menggunakan inisialisasi instan .
Kin Shah
9

Saya mengalihkan banyak basis data ke mode pemulihan SEDERHANA dari mode pemulihan LENGKAP (T-Log dan pemulihan titik-waktu tidak diperlukan). Apakah log transaksi yang ada akan terpotong (ketika pos pemeriksaan dibuat)?

Dalam model pemulihan sederhana, mesin database akan mengeluarkan pos pemeriksaan otomatis dan frekuensinya ditentukan oleh interval pemulihan (pengaturan konfigurasi server lanjut) atau jika log menjadi 70% penuh.

Kecuali jika Anda memiliki beberapa transaksi yang berjalan lama yang akan menunda pemotongan log, pos pemeriksaan otomatis akan memotong bagian T-log yang tidak digunakan.

Beberapa log transaksi yang ada adalah 50-100GB, apa pendekatan terbaik dalam menentukan apa yang harus saya perkecil untuk keperluan bergerak maju. Saya jelas tidak ingin menyimpannya sebesar itu.

Jika Anda memiliki model pemulihan basis data yang disetel ke FULL untuk basis data itu dengan T-log 50-100GB, maka Anda harus mulai sering melakukan pencadangan T-log. Ingat dalam model Pemulihan penuh, setelah rantai cadangan log dibuat, bahkan pos pemeriksaan otomatis tidak akan menyebabkan log terpotong.

Sebagai upaya terakhir, Anda dapat memotong file log dan kemudian segera mengambil cadangan penuh dan kemudian mulai mengambil cadangan T-log sehingga Anda dapat melakukan pemulihan point-in-time jika terjadi bencana.

Atau, apakah mereka akan menyusut sendiri dari waktu ke waktu (saya pikir mereka tidak akan melakukannya)?

Seperti @TomTom tunjukkan, ini adalah operasi manual.

Baca :

Kin Shah
sumber
2

Banyak pertanyaan yang tidak dapat kami jawab. Berapa lama seutas tali?

Beberapa log transaksi yang ada adalah 50-100GB, apa pendekatan terbaik dalam menentukan apa yang harus saya perkecil untuk keperluan bergerak maju.

Selama mereka perlu. Saya sarankan TIDAK menyusut. Trunacate log, kembali dalam seminggu dan lihat berapa banyak ruang yang digunakan, MAKA putuskan. Tetapi ANDA harus menjawab yang ini.

Backup malam hari kira-kira 8TB dan tidak perlu dikatakan, kami menggunakan lebih banyak ruang disk daripada yang kami inginkan.

Jadi mengapa mengubahnya menjadi sederhana? Maksudku, serius.

Semua database diatur ke pemulihan LENGKAP dan log transaksi belum pernah dicadangkan.

Sedikit logika akan memberi tahu Anda bahwa jika Anda memotongnya SEKALI, maka Anda kemungkinan akan menggunakan BANYAK lebih sedikit ruang untuk mendukungnya. Hasilnya mungkin Anda dapat menyimpannya dalam mode pemulihan penuh. Cobalah dulu. Jika mereka reli adalah volume rendah dll. Maka cadangan log akan menjadi BANYAK lebih kecil di masa depan.

Saya telah melalui semua SQL Server dan mengidentifikasi prioritas RENDAH yang hanya membutuhkan cadangan setiap malam dan kehilangan data selama berhari-hari bahkan dalam bencana tidak akan menjadi masalah (Database faks dan hal-hal seperti itu).

Iya. Itu sampai Anda berakhir di pengadilan dan menyerahkan pantat Anda karena tidak memiliki dokumen hukum kritis. Apakah Anda tahu bahwa log faks mungkin menjadi bagian dari apa yang harus Anda simpan selama bertahun-tahun sebagai informasi yang relevan dengan bisnis? Ini seperti itu di yurisdiksi saya (10 tahun). Jika Anda adalah perusahaan saham U, mungkin ada kejutan serupa (SOX). Kegagalan untuk melakukannya membuatnya sangat buruk di pengadilan jika Anda ingin membuktikan bahwa Anda tidak mendapatkan faks. Atau memang mengirim satu. Tidak ada yang peduli apakah ini terjadi setiap bulan dan Anda memiliki log yang lebih baru - Anda gagal dalam persyaratan hukum. Pastikan ini ditandatangani oleh seseorang yang SANGAT tinggi, karena bisnis Anda yang tidak kritis mungkin menjadi alasan Anda.

Atau, apakah mereka akan menyusut sendiri dari waktu ke waktu (saya pikir mereka tidak akan melakukannya)?

Tidak. Dan mereka seharusnya tidak melakukan itu. Pengubahan ukuran log adalah operasi manual kecuali untuk basis data volume rendah.

TomTom
sumber
Terima kasih untuk umpan baliknya. Saya setuju dengan poin pertama dan akan mengawasi mereka. Pengaturan mereka menjadi sederhana agar tidak perlu khawatir tentang perawatan log. dan kita tidak perlu mempertahankannya. Tetap dalam pemulihan LENGKAP dan mulai mengambil cadangan log (meskipun kecil) masih merupakan ruang tambahan yang tidak kita miliki. Penunjukan SQL Server Prioritas RENDAH adalah keputusan bisnis yang dibuat di atas saya.
BamBamBeano