Saya harap Anda bisa mengarahkan saya ke arah yang benar. Saya bukan pengguna T-SQL yang sering, tetapi saya melakukan beberapa pencarian google, dan menemukan skrip di bawah ini. Saya sedikit mengoreksi naskah.
Saya ingin skrip:
- Untuk memilih semua basis data, kecuali DB sistem.
- Untuk mengatur pemulihan menjadi sederhana.
- Untuk mengecilkan file log untuk setiap db (.ldf), kecuali sistem db
Naskah:
USE MASTER
declare
@isql varchar(2000),
@dbname varchar(64)
declare c1 cursor for select name from master..sysdatabases where name not in ('master','model','msdb','tempdb','ReportServer','ReportServerTempDB')
open c1
fetch next from c1 into @dbname
While @@fetch_status <> -1
begin
select @isql = 'ALTER DATABASE @dbname SET RECOVERY SIMPLE'
select @isql = replace(@isql,'@dbname',@dbname)
print @isql
exec(@isql)
select @isql='USE @dbname checkpoint'
select @isql = replace(@isql,'@dbname',@dbname)
print @isql
exec(@isql)
select @isql='DBCC SHRINKFILE @dbname.ldf'
select @isql = replace(@isql,'@dbname',@dbname)
print @isql
exec(@isql)
fetch next from c1 into @dbname
end
close c1
deallocate c1
Mengapa mengapa mengapa? Apa itu "arah yang benar"? Apakah skrip tidak berfungsi? Jika ya, bagaimana caranya? Apakah Anda mendapatkan pesan kesalahan? Apa itu? Mungkin membutuhkan perintah USE di blok terakhir. Tetapi sekali lagi: Mengapa, mengapa, mengapa?
—
Aaron Bertrand
Karena file .ldf membutuhkan 70% ruang disk di server. Tetapi jika Anda tahu cara yang lebih baik, tolong beri tahu saya. Saya tidak tahu apakah skrip berfungsi, saya tidak bisa menjalankannya. Saya harus yakin itu berfungsi dulu, karena ini merupakan lingkungan produksi.
—
Arviddk
Anda tidak memiliki dev atau lingkungan pengujian di mana Anda dapat menguji ini? Terus terang saya tidak akan mengambil apa pun dari sini, terlepas dari siapa yang menulisnya, dan menerapkannya pada produksi hanya berdasarkan jaminan orang asing di Internet ...
—
Aaron Bertrand
@Arviddk Tahukah Anda apa konsekuensi dari mengubah model pemulihan dari FULL / BULK LOGGED ke SIMPLE? Jika Anda sadar, silakan dan lakukan itu.
—
BuahahaXD
Saya hanya ingin mengomentari mengapa untuk pembaca masa depan yang mungkin mencari untuk melakukan hal yang sama. Kami biasa melakukan backup SQL lengkap dengan backup log transaksi. Kami sejak itu beralih menggunakan Dell AppAssure untuk melakukan pencadangan yang menempatkan kami di tempat di mana kami tidak memerlukan pencadangan log transaksi. Sekarang kita dibiarkan dengan ratusan basis data di beberapa server masih diatur penuh dengan terabyte file LDF tanpa alasan. Ini mempengaruhi backup / mengembalikan serta hal-hal lain yang ada di sekitar itu, replikasi dan semacamnya.
—
Thorin