Memantau pertumbuhan pangkalan data adalah faktor utama dalam merancang sumber pelayan. Gunakan skrip ini dan buat laporan pertumbuhan pangkalan data yang mudah difahami
Mengapa Anda Perlu Memantau Pertumbuhan Pangkalan Data
Sekiranya anda adalah pentadbir Pangkalan Data SQL dan jika anda tidak mempunyai "SQL Server perancangan kapasiti pangkalan data ”dalam senarai tugas utama anda, maka anda dapat memastikan bahawa pangkalan data di pelayan anda akan segera memenuhi ruang cakera anda. Menjejaki ukuran dan pertumbuhan pangkalan data SQL adalah salah satu tugas utama perancangan Kapasiti. Ini juga memastikan bahawa terdapat cukup ruang pada cakera untuk pangkalan data anda berkembang.
DIY melalui Skrip SQL dan Excel
Dalam artikel ini, kita akan menggunakan SQL dan Excel untuk menangkap ukuran pangkalan data SQL bersama dengan pola. Ini akan membolehkan kita merancang keperluan ruang yang akan datang dan juga membantu kita memahami garis masa di mana terdapat banyak jumlah.
Proses ini dibahagikan kepada empat langkah yang berbeza sehingga anda dapat mengikuti tanpa masalah.
Langkah 1: Jalankan skrip ini pada tetingkap pertanyaan baru.
Hasilnya akan mempunyai nama pangkalan data sebagai tajuk baris dan Bulan sebagai tajuk Kolum. Nilai yang ditunjukkan dalam output adalah ukuran pangkalan data dalam GB.
declare @v_count as integer, @do_count as integer, @v_month as varchar(20),@sql as varchar(5000) create table [t_databases] ( Database_Name varchar(200), January float(3), February float(3), March float(3), April float(3), May float(3), June float(3), July float(3), August float(3), September float(3), October float(3), November float(3), December float(3), ) create table t_databases_gateway ( Database_Name varchar(200), Database_Size float(3) ) set @v_count = (select COUNT(*) from t_databases ) if @v_count = 0 begin insert into t_databases(Database_Name) select name from sysdatabases end if @v_count <> 0 begin --this script captures the size of all databases. You can add a where clause to capture the size of specific database name INSERT t_databases (Database_Name) SELECT DISTINCT Name FROM sysdatabases cr LEFT JOIN t_databases c ON cr.Name = c.Database_Name WHERE c.Database_Name IS NULL end --select * from master.dbo.t_databases --drop table t_databases set @do_count = 1 while (@do_count <=12) begin set @v_month = DATENAME(m, str(@do_count) + '/1/2016') –change the year to 2017 or other year as per your requirement truncate table master.dbo.t_databases_gateway insert into master.dbo.t_databases_gateway select distinct (msdb.dbo.backupset.[database_name]),max(msdb.dbo.backupset.[Backup_Size]/1073741824) from msdb.dbo.backupset inner join master.dbo.t_databases on msdb.dbo.backupset.[database_name] = master.dbo.t_databases.[Database_Name] where datepart(m,msdb.dbo.backupset.[backup_finish_date]) = @do_count and datepart(yyyy,msdb.dbo.backupset.[backup_finish_date] ) = 2015 group by msdb.dbo.backupset.[database_name] set @sql = 'update master.dbo.t_databases set ' + @v_month + ' = (select Database_Size from master.dbo.t_databases_gateway where master.dbo.t_databases.Database_Name = master.dbo.t_databases_gateway.Database_Name)' exec (@sql) set @do_count = @do_count + 1 end select * from t_databases drop table t_databases_gateway drop table t_databases
Pengeluaran :
Langkah 2: Buat contoh baru Excel, dan salin Hasil dari langkah sebelumnya ke lembaran Excel baru anda.
Langkah 3: Sekarang pilih dua baris pertama pada helaian dan masukkan carta garis 2D.
Ini akan membuat carta trend untuk pangkalan data yang dipilih. Dalam Carta, X Paksi akan menunjukkan bulan dan Paksi Y akan menunjukkan ukuran pangkalan data dalam GB.
Langkah 4: Pilih keseluruhan data dengan menyeret simbol 'tambah' untuk menyelimutkannya.
Ini akan menunjukkan arah aliran semua pangkalan data pada carta.
Sekiranya anda melangkau Langkah 3 dan memasukkan carta garis 2D dengan memilih keseluruhan jadual, anda masih akan mendapat carta tetapi paksi X akan menunjukkan nama Pangkalan Data dan bukannya Bulan, Ini bukan output yang diperlukan.
Jadual Output mungkin mempunyai beberapa nilai NULL. Ini berlaku kerana sejarah sandaran pangkalan data mungkin tidak mempunyai catatan untuk pangkalan data untuk bulan tersebut. Ini juga menyiratkan bahawa skrip merujuk kepada ukuran cadangan dalam jadual sejarah sandaran untuk mengesan tren pertumbuhan. Sekiranya mana-mana pangkalan data anda tidak termasuk dalam rancangan cadangan, jadual Output akan tetap menyimpan nama pangkalan data tetapi nilai untuk semua bulan akan NULL
Betulkan Pangkalan Data Berukuran Besar
Sekiranya anda tidak mengikuti strategi di atas pada masa lalu, dan pangkalan data anda terlalu besar, maka ia boleh menyebabkan pelbagai masalah. Dalam kes sedemikian, anda lebih baik mencari a SQL Server alat pemulihan fail untuk menyelesaikan masalah dengan berkesan dan cekap.
Pengenalan Pengarang:
Neil Varley adalah pakar pemulihan data di DataNumen, Inc., yang merupakan pemimpin dunia dalam teknologi pemulihan data, termasuk membaiki masalah Outlook dan produk perisian pemulihan yang unggul. Untuk maklumat lebih lanjut, lawati www.datanumen.com





