Cách xóa dữ liệu từ ePO mà không cần sử dụng bảng điều khiển ePO

Môi trường dữ liệu

  • McAfee ePolicy Orchestrator (ePO) 5.x
  • Microsoft SQL Server – all supported versions
  • Microsoft SQL Server Management Studio Express – all supported versions

Tóm tắt

Nếu bạn có quyền truy cập vào bảng điều khiển ePO, chúng tôi thực sự khuyên bạn nên xóa dữ liệu khỏi cơ sở dữ liệu ePO của mình.

Chỉ phải tuân theo bài viết này nếu bạn không thể xóa dữ liệu, bằng các tác vụ bảo trì cơ sở dữ liệu được cung cấp trong bảng điều khiển ePO.

Nếu cơ sở dữ liệu ePO của bạn lớn và bạn cần giảm kích thước, hãy xác định bảng nào bạn cần xóa.

Truy vấn cơ sở dữ liệu ePO

Bạn có thể truy vấn trực tiếp cơ sở dữ liệu ePO, để xác định các bảng lớn nhất bằng cách sử dụng các bước sau:

  1. Sử dụng SQL Server Management Studio để mở cửa sổ truy vấn và chọn cơ sở dữ liệu ePO.
  2. Chạy đoạn mã sau và phân tích kết quả. Tập lệnh này trả về như sau:
  • Các bảng trong ePO.
  • Có bao nhiêu hàng trong mỗi bảng.
  • Mỗi bảng chiếm bao nhiêu dung lượng tính bằng megabyte. Tập lệnh liệt kê các bảng theo kích thước theo thứ tự giảm dần:

LƯU Ý: Nếu bạn đang sử dụng ePO 5.10, bạn phải chạy tập lệnh này trên cả hai cơ sở dữ liệu ePO.

select t.[Name] AS TableName, p.[rows],

CAST(ROUND(((SUM(a.total_pages) * 8) / 1024.00), 2) as numeric(36, 2)) 

as TotalSpaceMB,

CAST(ROUND(((SUM(a.total_pages) – SUM(a.used_pages)) * 8) / 1024.00, 2) 

as numeric (36, 2)) as UnusedSpaceMB

from sys.tables t inner join sys.indexes i on t.OBJECT_ID = i.object_id

inner join sys.partitions p on i.object_id = p.OBJECT_ID AND i.index_id = p.index_id

inner join sys.allocation_units a on p.partition_id = a.container_id

left outer join sys.schemas s on t.schema_id = s.schema_id

where t.[Name] not like ‘dt%’ AND t.is_ms_shipped = 0 AND i.OBJECT_ID > 255 

group by t.[Name], s.[Name], p.[rows]

order by TotalSpaceMB desc, t.[Name];

  1. Dựa trên kết quả của tập lệnh, bạn có thể xóa dữ liệu bằng một trong các giải pháp thích hợp bên dưới.

Sau khi bạn xóa dữ liệu khỏi các bảng có liên quan, cơ sở dữ liệu có nhiều không gian trống hơn. Tuy nhiên, hành động này không thực sự làm giảm kích thước của tệp cơ sở dữ liệu trên giải pháp lưu trữ. Để giảm kích thước cơ sở dữ liệu, bạn cần phải thu nhỏ cơ sở dữ liệu. Nhưng bạn thường không cần phải thu nhỏ cơ sở dữ liệu.

Xóa nhật ký sự kiện mối đe dọa

Giải pháp này áp dụng nếu bạn cần xóa dữ liệu khỏi các bảng sau:

  • ATD_Events
  • DC_OSS_Events
  • EPCertEventMT
  • EPExtendedEventMT
  • EPOEvents
  • EPStoryGraphInfoMT
  • HIP8_EventInfo
  • HIP8_IPSEventParameter
  • JTIClientEventInfo
  • MVEDRCustomEventMT
  • MVIS_EP_ExtendedEventMT
  • SCOR_Events
  • VSECustomEvent
  • WP_EventInfoMT

Xóa nhật ký tác vụ máy chủ

Giải pháp này áp dụng nếu bạn cần xóa dữ liệu khỏi các bảng sau:

  • OrionSchedulerTaskLog
  • OrionSchedulerTaskLogDetail
  • EPOCoreLogMessage
  • EPORepositoryLogMessage

Xóa các mục nhập nhật ký tác vụ trong máy chủ cũ vào một khung thời gian được chỉ định:

  1. Mở SQL Server Management Studio.
  2. Mở cửa sổ truy vấn và chọn cơ sở dữ liệu ePO.
  3. Dán truy vấn này vào cửa sổ truy vấn:

execute SP_Task_PurgeTaskLogOlderThan ‘mm-dd-yyyyy’;

Cập nhật phần của truy vấn trong dấu ngoặc kép. Thay thế nó bằng ngày mà bạn muốn xóa các mục nhập nhật ký tác vụ máy chủ.

Ví dụ: Nếu bạn muốn xóa tất cả các mục nhập nhật ký tác vụ máy chủ cũ hơn ngày 1 tháng 5 năm 2020, truy vấn sẽ giống như sau:

execute SP_Task_PurgeTaskLogOlderThan ’05-01-2020 ‘;

  1. Để chạy truy vấn, bấm thực hiện hoặc nhấn F5.

LƯU Ý: Nếu bạn đang xóa nhiều dữ liệu, truy vấn này có thể mất nhiều giờ để hoàn thành.

Xóa nhật ký kiểm tra

Giải pháp này áp dụng nếu bạn cần xóa dữ liệu khỏi bảng OrionAuditLog.

Để xóa các mục nhập nhật ký tác vụ máy chủ cũ hơn một khung thời gian cụ thể:

  1. Mở SQL Server Management Studio.
  2. Mở cửa sổ truy vấn và chọn cơ sở dữ liệu ePO.
  3. Dán truy vấn này vào cửa sổ truy vấn:

declare @PurgeOlderThanDays int = ##;

–*****Do not edit below this line*****

declare @BatchSize int = 10000, @BatchDelaySeconds int = 5, @RowCount int;

set @RowCount = @BatchSize;

while (@RowCount = @BatchSize) begin

begin transaction;

delete top(@BatchSize) from OrionAuditLog

where EndTime < GetDate() – @PurgeOlderThanDays;

set @RowCount = @@ROWCOUNT;

commit transaction;

if (@RowCount = @BatchSize) waitfor delay @BatchDelaySeconds;

end

go

  1. Thay thế ## trong dòng đầu tiên của tập lệnh, cho số ngày bạn muốn giữ lại các mục nhập nhật ký kiểm tra.

Ví dụ: nếu bạn muốn xóa tất cả các mục nhập nhật ký kiểm tra cũ hơn 90 ngày, dòng đầu tiên sẽ trông giống như sau:

khai báo @PurgeOlderThanDays int = 90;

  1. Để chạy truy vấn, bấm Thực hiện hoặc nhấn F5.

LƯU Ý: Nếu bạn đang xóa nhiều dữ liệu, truy vấn này có thể mất nhiều giờ để hoàn thành.

Xóa sự kiện sản phẩm

Giải pháp này áp dụng nếu bạn cần xóa dữ liệu khỏi các bảng sau:

  • EPOProductEventsMT
  • EPEEventParameters

Để xóa các sự kiện sản phẩm cũ hơn một khung thời gian đã chỉ định:

  1. Mở SQL Server Management Studio.
  2. Mở cửa sổ truy vấn và chọn cơ sở dữ liệu ePO.
  3. Dán truy vấn này vào cửa sổ truy vấn:

declare @PurgeOlderThanDays int = ##;

— DO NOT EDIT BELOW THIS LINE

declare @BatchSize int = 1000, @BatchDelaySeconds int = 5, @rowcount int = 1;

while (@rowcount > 0)

begin

begin transaction;

delete top(@BatchSize) from EPOProductEventsMT

where ReceivedUTC < GetDate() – @PurgeOlderThanDays;

set @rowcount = @@ROWCOUNT;

commit transaction;

If @rowcount > 0 waitfor delay @BatchDelaySeconds;

end go

  1. Để cho biết số ngày bạn muốn giữ lại các sự kiện sản phẩm, thay thế ## trong dòng đầu tiên của tập lệnh.

Ví dụ: nếu bạn muốn xóa tất cả các sự kiện sản phẩm cũ hơn 90 ngày, dòng đầu tiên sẽ giống như sau:

khai báo @PurgeOlderThanDays int = 90;

  1. Để chạy truy vấn, bấm thực hiện hoặc nhấn F5.

LƯU Ý: Nếu bạn đang xóa nhiều dữ liệu, truy vấn này có thể mất nhiều giờ để hoàn thành.

Thu nhỏ cơ sở dữ liệu

QUAN TRỌNG: Khi bạn xóa dữ liệu, nó không thực sự làm giảm kích thước cơ sở dữ liệu trên đĩa. Để giảm kích thước, bạn cần chạy lệnh thu nhỏ đối với cơ sở dữ liệu. Thông thường, bạn không cần chạy thao tác thu nhỏ trên cơ sở dữ liệu ePO. Hãy xem xét những điều sau trước khi bạn tiếp tục:

  • Việc thu hẹp cơ sở dữ liệu ePO không được khuyến nghị hoặc cần thiết, để ePO hoạt động.
  • Việc thu hẹp các tệp cơ sở dữ liệu (.MDF) và (.NDF) có thể làm tăng phân mảnh chỉ mục và khiến các truy vấn chạy chậm.
  • Sau khi bạn thu nhỏ tệp cơ sở dữ liệu, nếu cơ sở dữ liệu cần mở rộng để chứa dữ liệu mới, SQL Server sẽ khóa tệp trong quá trình tăng trưởng. Kết quả có thể là các vấn đề về hiệu suất, với ứng dụng sử dụng cơ sở dữ liệu trong khi dữ liệu mới được chèn vào.

Sử dụng các hướng dẫn sau nếu:

  • Cơ sở dữ liệu của bạn đã phát triển lớn bất thường vì một lý do mà bạn đã sửa chữa.
  • Bạn cần thực hiện thao tác thu nhỏ một lần, để cơ sở dữ liệu trở lại kích thước bình thường.
  1. Sử dụng SQL Server Management Studio, để mở cửa sổ truy vấn và chọn cơ sở dữ liệu bạn đang cố gắng thu nhỏ.

LƯU Ý: Hầu hết các bảng nằm trong cơ sở dữ liệu ePO chính. Nhưng trong ePO 5.10, bảng ePOEvents (chỉ) nằm trong cơ sở dữ liệu sự kiện.

  1. Dán câu lệnh SQL sau vào cửa sổ truy vấn:

CẢNH BÁO: Tệp nhật ký giao dịch SQL (.ldf) có thể lớn gấp năm lần kích thước của cơ sở dữ liệu trong khi chạy lệnh. Đảm bảo rằng bạn có đủ dung lượng đĩa trống trước khi sử dụng lệnh này.

dbcc codatabase (‘ePO_DatabaseName’)

go

  1. Nhấp vào Execute hoặc nhấn F5.

Trân trọng cám ơn quý độc giả.

Biên dịch Lê Toản – Help.pacisoft.com