Theo dõi sự phát triển của cơ sở dữ liệu là một yếu tố quan trọng trong việc lập kế hoạch tài nguyên của máy chủ. Sử dụng tập lệnh này và tạo báo cáo tăng trưởng cơ sở dữ liệu dễ hiểu
Tại sao bạn cần theo dõi sự phát triển của cơ sở dữ liệu
Nếu bạn là quản trị viên Cơ sở dữ liệu SQL và nếu bạn không có “SQL Server lập kế hoạch dung lượng cơ sở dữ liệu” trong danh sách nhiệm vụ chính của bạn, thì bạn có thể chắc chắn rằng cơ sở dữ liệu trên máy chủ của bạn sẽ sớm lấp đầy dung lượng đĩa của bạn. Theo dõi kích thước và sự phát triển của cơ sở dữ liệu SQL là một trong những nhiệm vụ chính của Lập kế hoạch năng lực. Điều này cũng đảm bảo rằng có đủ dung lượng trên đĩa để cơ sở dữ liệu của bạn phát triển.
Tự làm qua SQL Script và Excel
Trong bài viết này, chúng tôi sẽ sử dụng SQL và Excel để nắm bắt kích thước của cơ sở dữ liệu SQL cùng với mẫu. Điều này sẽ cho phép chúng tôi lập kế hoạch cho các yêu cầu về không gian Sắp xảy ra và cũng giúp chúng tôi hiểu dòng thời gian trong đó có khối lượng lớn.
Quá trình này được chia nhỏ thành bốn bước khác nhau để bạn có thể làm theo mà không gặp bất kỳ sự cố nào.
Bước 1: Thực thi tập lệnh này trên cửa sổ truy vấn mới.
Đầu ra sẽ có tên cơ sở dữ liệu làm tiêu đề hàng và Tháng làm tiêu đề Cột. Các giá trị hiển thị trong đầu ra là kích thước cơ sở dữ liệu tính bằng 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
Đầu ra:
Bước 2: Tạo một phiên bản Excel mới và sao chép Kết quả từ bước trước vào trang tính Excel mới của bạn.
Bước 3: Bây giờ, chọn hai hàng đầu tiên trên trang tính và chèn biểu đồ đường 2D.
Thao tác này sẽ tạo biểu đồ xu hướng cho cơ sở dữ liệu đã chọn. Trong Biểu đồ, Trục X sẽ biểu thị tháng và Trục Y sẽ biểu thị kích thước cơ sở dữ liệu tính bằng GB.
Bước 4: Chọn toàn bộ dữ liệu bằng cách kéo biểu tượng 'dấu cộng' để bao lấy dữ liệu đó.
Điều này sẽ hiển thị xu hướng của tất cả các cơ sở dữ liệu trên biểu đồ.
Nếu bạn bỏ qua Bước 3 và chèn biểu đồ đường 2D bằng cách chọn toàn bộ bảng, bạn sẽ vẫn nhận được biểu đồ nhưng trục X sẽ biểu thị tên Cơ sở dữ liệu thay vì Tháng,Đây không phải là đầu ra bắt buộc.
Bảng đầu ra có thể có một số giá trị NULL. Điều này xảy ra vì lịch sử sao lưu cơ sở dữ liệu có thể không có bất kỳ bản ghi nào cho cơ sở dữ liệu trong tháng cụ thể đó. Nó cũng ngụ ý rằng tập lệnh đề cập đến kích thước sao lưu trong bảng lịch sử sao lưu để theo dõi xu hướng tăng trưởng. Nếu bất kỳ cơ sở dữ liệu nào của bạn không được bao gồm trong gói sao lưu, bảng Đầu ra sẽ vẫn giữ tên cơ sở dữ liệu nhưng các giá trị cho tất cả các tháng sẽ là NULL
Sửa cơ sở dữ liệu quá khổ
Nếu trước đây bạn không tuân theo chiến lược trên và cơ sở dữ liệu của bạn quá khổ, thì nó có thể gây ra nhiều vấn đề khác nhau. Trong trường hợp như vậy, bạn nên tìm một SQL Server công cụ phục hồi tập tin để giải quyết vấn đề một cách hiệu quả và hiệu quả.
Giới thiệu tác giả:
Neil Varley là một chuyên gia phục hồi dữ liệu trong DataNumen, Inc., công ty hàng đầu thế giới về công nghệ khôi phục dữ liệu, bao gồm sửa lỗi Outlook và các sản phẩm phần mềm phục hồi excel. Để biết thêm thông tin, hãy truy cập www.datanumennăm





