Database Administrator là nghề gì?

Trước tiên, chúng ta cần tìm hiểu tại sao lại sinh ra 1 ông Database Administrator trong bộ máy IT của công ty, cũng như công việc hàng ngày của ông ý là gì vậy?
Như các bạn đã biết, dữ liệu ngày nay được coi là tài sản rất quan trọng đối với công ty.
Nó giúp ban lãnh đạo công ty hiểu về tình hình công ty hiện tại, hiểu về khách hàng, hiểu về thị trường và đối thủ. Để từ đó, đưa ra các quyết định kinh doanh.
Dữ liệu sinh ra từ rất nhiều nguồn:
- Hệ thống phần mềm bán hàng
- Hệ thống chăm sóc khách hàng
- Hệ thống quản trị quy trình nội bộ..
- Mạng xã hội
- Tin tức báo chí, phương tiện truyền thông.
- ...
Các công ty ngày càng nhận thức được mức độ quan trọng của dữ liệu, trong việc giành lợi thế cạnh tranh trên thị trường. Do đó, ngày càng nhiều công ty chú ý chăm chút đến số dữ liệu mà mình thu thập được.
Dữ liệu cũng như các viên ngọc thô, cần phải được chăm sóc, theo dõi cẩn thận, tỷ mỷ.
Và đó là lúc cần đến 1 người có chuyên môn chăm sóc dữ liệu như vậy - Database Administrator.

Nhiệm vụ của Database Administrator

1. Bảo vệ dữ liệu an toàn

Theo quan điểm cá nhân của tôi, Database Administrator có trách nhiệm cao nhất là "bảo vệ dữ liệu an toàn". Các công việc cụ thể để bảo vệ dữ liệu an toàn bao gồm:
- Backup dữ liệu đầy đủ, đủ điều kiện để khôi phục lại dữ liệu khi có sự cố xảy ra.
- Xây dựng, bảo trì hệ thống dự phỏng
- Bảo vệ dữ liệu khỏi những rủi ro khi khai thác như: xoá, update nhầm dữ liệu, đầy phân vùng do dữ liệu tăng trưởng.
- Dọn dẹp dữ liệu không sử dụng, hay dữ liệu tạm thời, xoá các file log, trace, audit (Các công việc này gọi chung là House Keeping)
- Ngăn chặn trước hoặc khắc phục các sự cố xảy ra trên Database. Corrupt datafile, corrupt redo/wal log, activate Standby database, restore database.
Tóm lại, DBA cần đảm bảo làm sao cho Database luôn sẵn sàng và ổn định, để các dịch vụ khác có thể kết nối vào và khai thác dữ liệu.

2. Giám sát hoạt động của Database

Người Database Administrator cần quan sát tải hoạt động của Database hàng ngày, bằng các công cụ giám sát database như: Enterprise Manager, Cloud Control, Grafana, Application Manager,...
Thông qua việc quan sát tải hàng ngày, DBA có thể hiểu được Database thế nào là bình thường, thế nào là bất thường. Để từ đó, người DBA có thể đưa ra những can thiệp phù hợp.
Ví dụ: Thủ tục khoá sổ (EOD) hàng ngày chỉ chạy mất 2 giờ, hôm nay chạy mất 3 giờ. Một người DBA có kinh nghiệm sẽ biết được hôm nay có thay đổi gì đó bên trong hệ thống, gây ra chậm thủ tục EOD. Từ đó khuyến nghị lại các phòng ban liên quan, đề xuất giải pháp khắc phục.
Ngoài ra, việc giám sát tải hoạt động còn giúp DBA phát hiện ra hệ thống có đang bị "wait" hay "lock" không. Đây là những sự kiện gây tốn tài nguyên của hệ thống, hoặc ảnh hưởng trực tiếp đến trải nghiệm của người dùng cuối.

3. Tối ưu Database

Trong quá trình làm DBA, bạn sẽ gặp 1 hiện tượng thế này: Database lúc đầu thì chạy nhanh, nhưng càng về sau lại chạy càng chậm.
Nguyên nhân thì có nhiều, nhưng thường thì do các nguyên nhân sau:
- Dữ liệu tăng trưởng lên. Việc tìm kiếm 1 dữ liệu cụ thể sẽ mất thời gian hơn.
- Người dùng xoá sửa dữ liệu liên tục, gây ra phân mảnh dữ liệu.
- Tổ chức dữ liệu chưa hợp lý, những dữ liệu hay sử dụng để lẫn cùng dữ liệu ít sử dụng, khiến việc tìm kiếm bị khó khăn.
- Một câu lệnh chưa tối ưu có thể chưa gây ảnh hưởng rõ rệt, nhưng dần dần, theo thời gian, sẽ xuất hiện thêm nhiều câu như vậy, gây ảnh hưởng nặng nề đến hiệu năng của Database
Người DBA có trách nhiệm định kỳ thu thập, phân tích các thông tin về hiệu năng của Database, tìm hiểu nguyên nhân hệ thống bị chậm và xử lý chúng.
Việc tối ưu database cần DBA có kiến thức rất chắc về kiến trúc Database, cũng như hiểu rõ về Database mà mình quản trị. Đây cũng có thể coi là 1 tiêu chí thường để xác định trình độ của một DBA.

4. Nâng cấp, vá lỗi cho Database

Hệ quản trị Cơ sở dữ liệu cũng là 1 sản phẩm do con người tạo ra, luôn tồn tại những khiếm khuyết (bug) không mong đợi. Sau khi phát hành phần mềm quản trị CSDL, các nhà phát triển vẫn tiếp tục tung ra các bản vá lỗi để khắc phục những bug có thể xuất hiện.
Công việc của DBA cũng bao gồm việc theo dõi các thông tin về các bug và các bản vá lỗi (patch). Từ đó, đưa ra cân nhắc và quyết định có nên áp dụng bản vá lỗi đó trên hệ thống của mình hay không?
Ngoài ra, DBA cũng cần xem xét các tính năng của Database ở phiên bản mới, để cân nhắc có nên nâng cấp lên phiên bản Database cao hơn hay không?
Bài toán nâng cấp Database cũng là 1 bài toán phức tạp đối với người DBA. Không phải lúc nào nâng cấp lên phiên bản mới cũng là điều hay, có những lúc nâng cấp lên phiên bản mới còn trở thành thảm họa! Do đó, cần xây dựng môi trường kiểm thử và thực hiện các kịch bản kiểm thử trước khi thực sự nâng cấp Database.

5. Bảo mật dữ liệu

Việc bảo mật dữ liệu cũng quan trọng như việc giữ cho dữ liệu an toàn vậy. Tuy nhiên, thực trạng ở Việt Nam hiện nay, việc bảo mật dữ liệu còn chưa được quan tâm đúng mức.
Trong môi trường yêu cầu tính bảo mật cao, DBA có nhiệm vụ kiểm soát các hoạt động sử dụng dữ liệu hiện đang diễn ra bên trong Database. Nếu có những hoạt động bất thường, có khả năng gây thất thoát hoặc làm hỏng dữ liệu, DBA sẽ can thiệp kịp thời.
Ngoài ra, DBA còn cần phải xây dựng chính sách truy cập phân cấp dựa trên nhóm người dùng (1 số đơn vị gọi đây là Ma trận phân quyền). Nói 1 cách đơn giản, đây là 1 bảng thông tin các user, group được phân những quyền gì, trên những đối tượng nào.
Và đương nhiên, DBA phải thực hiện việc đảm bảo chính sách truy cập được thực thi và tuân thủ.

6. Tư vấn chiến lược, lộ trình phát triển dữ liệu

Khi là 1 người DBA gọi có kinh nghiệm, bạn sẽ được hỏi rất nhiều câu kiểu như: Giờ xây dựng hệ thống mới, có những ứng dụng này kia, vậy Database cần đầu tư những gì?
Để cài đặt lên 1 database cho chạy được ứng dụng thì dễ quá, người mới cũng có thể làm được. Vai trò của Senior DBA ở đây là phải tư vấn làm sao cho ĐÚNG và PHÙ HỢP với nhu cầu và ngân sách của người hỏi.
Cái gọi là ĐÚNG và PHÙ HỢP đó, đôi khi bạn sẽ không thể tìm được công thức cụ thể ở trên mạng, mà dựa trên kinh nghiệm của bản thân khi đã làm với các dự án tương tự.
Trên đây là các công việc hàng ngày của 1 Database Administrator, dựa trên các kinh nghiệm làm việc của tôi. Anh em nếu còn nghĩ ra những công việc nào khác, hãy comment cho tôi biết nhé.
Nếu các bạn hứng thú với các bài viết về đề tài Database, mời các bạn ghé qua blog của tôi tại địa chỉ https://dangxuanduy.com nhé. Đây là tập hợp những bài viết chia sẻ kiến thức thực tế sau 1 thời gian đi làm của tôi. Rất mong các bạn ủng hộ và đóng góp ý kiến để tôi cải thiện thêm.