Công việc hằng ngày của quản trị viên cơ sở dữ liệu (SQL SERVER DBA)
Công việc hằng ngày của một Quản trị viên Cơ sở dữ liệu (DBA) là gì?
Nếu bạn đang thắc mắc công việc hằng ngày của một Quản trị viên Cơ sở dữ liệu (Database Administrator – DBA) bao gồm những gì, hoặc sắp tới bạn được giao nhiệm vụ quản trị một (hoặc nhiều) máy chủ SQL Server và muốn tìm hiểu cách để hoàn thành tốt trách nhiệm được giao, thì hy vọng bài viết này sẽ giúp bạn hình dung rõ ràng hơn về những công việc đang chờ đón.
Ở bất cứ vị trí nào, công việc và trách nhiệm đều không có giới hạn tuyệt đối. Với vai trò DBA, tính chất công việc cũng rất đa dạng và khác biệt giữa các công ty, tổ chức. Điều này phụ thuộc vào quy mô dữ liệu, lượng người dùng, đặc thù kinh doanh của doanh nghiệp và đặc biệt là mức độ chủ động của chính người quản trị.
Dưới đây là những công việc cốt lõi hằng ngày của một Quản trị viên Cơ sở dữ liệu:
- Cài đặt, cấu hình SQL Server và cập nhật các bản build (Setup and Configuration)Đây là công việc nền tảng không thể thiếu. Cài đặt SQL Server là bước đầu tiên để xây dựng các ứng dụng cơ sở dữ liệu. Tiếp theo đó là việc cấu hình instance với những thông số phù hợp để hệ thống đạt hiệu năng cao nhất. Đây không phải là vấn đề đơn giản, vì thông thường việc giữ nguyên các giá trị mặc định từ Microsoft sẽ không đáp ứng tốt cho từng bài toán thực tế. Quá trình cấp phát CPU, RAM, thiết lập xử lý truy vấn song song (parallelism) hay cấu hình tempdb đều đòi hỏi sự tinh chỉnh kỹ lưỡng. Bên cạnh đó, DBA cũng cần chủ động theo dõi và áp dụng các bản cập nhật (Cumulative Update hoặc Service Pack) khi cần thiết cho hệ thống.
- Thực hiện sao lưu dự phòng và khôi phục dữ liệu (Backup & Recovery)Sao lưu dự phòng là việc tạo ra các bản sao nhằm đảm bảo sự an toàn cho dữ liệu của doanh nghiệp. Các sự cố như hỏng ổ cứng hoặc vô tình xóa nhầm dữ liệu có thể xảy ra bất cứ lúc nào. Yêu cầu tối thượng đặt ra cho DBA là phải khôi phục lại dữ liệu nguyên vẹn nhất có thể. Do đó, việc thường xuyên kiểm tra (test) các bản sao lưu để chắc chắn chúng luôn sẵn sàng hoạt động là cực kỳ quan trọng.
- Thiết kế và cài đặt tính sẵn sàng cho hệ thống (High Availability)Bên cạnh việc bảo vệ dữ liệu, doanh nghiệp còn đòi hỏi hệ thống phải phục hồi nhanh chóng để duy trì hoạt động kinh doanh. Nếu một máy chủ cơ sở dữ liệu gặp sự cố khiến mọi hoạt động đình trệ, việc đưa hệ thống trở lại bình thường trong một hoặc hai giờ đồng hồ chính là thước đo cho tính sẵn sàng (High Availability). Thời gian khôi phục càng ngắn, tính sẵn sàng càng cao. Hai thông số kinh điển để đánh giá tiêu chí này là RTO (cần bao lâu để khôi phục) và RPO (khôi phục dữ liệu về thời điểm nào).
- Theo dõi và kiểm tra trạng thái hoạt động hệ thống (System Health Check)Là người quản trị, bạn cần thấu hiểu "tâm sinh lý" của hệ thống hơn ai hết. Để nhận biết sớm các biến động bất thường, bạn cần thiết lập những thông số tiêu chuẩn (baseline counters) cho các tiêu chí giám sát. Việc theo dõi sát sao các error logs (SQL Server logs & Windows logs) cũng góp phần chẩn đoán chính xác tình trạng sức khỏe của hệ thống nhằm đưa ra hành động can thiệp kịp thời.
- Thực hiện các công việc bảo trì (Maintenance Tasks)Để đảm bảo cơ sở dữ liệu luôn ở trạng thái vận hành trơn tru nhất, DBA cần thực hiện các tác vụ bảo trì định kỳ như: chống phân mảnh chỉ mục (index defragmentation), kiểm tra tính toàn vẹn của dữ liệu (database integrity checks), cập nhật statistics,... Những công việc này giúp SQL Server duy trì tốc độ xử lý truy vấn tối ưu.
- Cải thiện hiệu năng hệ thống (Performance Tuning)Đây có lẽ là mảng công việc đầy thách thức nhưng cũng thú vị nhất của một DBA. Tùy vào tình huống thực tế, bạn phải "bắt mạch" và can thiệp đúng vào điểm nghẽn của hệ thống. Quá trình tối ưu hóa có thể bao gồm việc hiệu chỉnh các câu truy vấn (queries), tinh chỉnh hoặc tạo mới index, thay đổi cấu hình SQL Server instance, hay thậm chí là đề xuất nâng cấp phần cứng. Công việc này đòi hỏi kiến thức chuyên sâu vững vàng để xác định đúng nguyên nhân cốt lõi, đảm bảo khi khắc phục điểm nghẽn này sẽ không vô tình tạo ra điểm nghẽn khác.
- Quản trị SQL Users, Logins và phân quyền (Security Management)Nguyên tắc bảo mật tối thượng ở đây là: Chỉ cấp phát đặc quyền vừa đủ (least privilege) cho bất kỳ user nào để họ thực hiện đúng chức năng của mình.
- Khắc phục các sự cố phát sinh (Troubleshooting)Sự cố là điều xảy ra thường xuyên và không báo trước. Có hàng tá rủi ro có thể ập đến ngay cả khi hệ thống đã ổn định trong một thời gian dài: dữ liệu mất tính toàn vẹn, SQL Server Replication truyền tải chậm, xuất hiện các lỗi (errors) lạ, hoặc dung lượng dữ liệu tăng đột biến. Tùy thuộc vào quy mô cơ sở dữ liệu và công nghệ đang sử dụng, độ phức tạp của sự cố sẽ khác nhau. Trách nhiệm của DBA là tìm ra nguyên nhân gốc rễ (root cause) và khắc phục trong thời gian ngắn nhất, đồng thời đưa ra giải pháp phòng ngừa triệt để.
- Triển khai thay đổi, thêm mới database objects trên Production (Deployment)Công việc này đòi hỏi sự tập trung và độ chính xác cao độ, bởi bất cứ một thiếu sót nhỏ nào cũng có thể dẫn đến hậu quả nghiêm trọng. Cùng một lệnh thay đổi, nhưng thực thi trên hai đối tượng khác nhau sẽ cho ra kết quả hoàn toàn khác. Ví dụ: Việc mở rộng kiểu dữ liệu của một cột từ
varchar(20)lênvarchar(50)trên một bảng chứa hàng tỷ dòng sẽ mất nhiều thời gian và lock hệ thống lâu hơn rất nhiều so với một bảng nhỏ. Do vậy, mọi script sửa đổi đều bắt buộc phải được chạy thử kỹ lưỡng ở môi trường phát triển (Development/Staging) trước khi áp dụng lên Production. - Luôn sẵn sàng 24/7Như đã đề cập, sự cố không hẹn mà đến và có thể xảy ra bất cứ lúc nào. Là một DBA, bạn cần chuẩn bị tâm lý luôn sẵn sàng phản hồi các cảnh báo từ hệ thống giám sát tự động hoặc những cuộc gọi khẩn cấp từ các thành viên trong đội ngũ.
- Trau dồi kiến thức chuyên môn (Self-improvement)Dù làm việc ở lĩnh vực nào, việc liên tục mài giũa kỹ năng và cập nhật công nghệ là điều bắt buộc. Hầu hết các vấn đề bạn gặp phải đều có thể tìm thấy lời giải trên Google; tuy nhiên, bạn cần có nền tảng kiến thức và kinh nghiệm thực chiến để tự tin áp dụng những giải pháp đó mà không gây ra tác dụng phụ cho hệ thống. Khi làm việc với cơ sở dữ liệu, việc bổ sung thêm kiến thức về hệ điều hành Windows/Linux, phần cứng, công nghệ lưu trữ (storage) hay mạng máy tính sẽ giúp bạn có cái nhìn tổng thể để xử lý dứt điểm mọi bài toán khó.
Trên đây là những công việc cốt lõi thường nhật của một Quản trị viên Cơ sở dữ liệu. Tùy thuộc vào từng công ty, danh sách này có thể dài hơn hoặc thay đổi tính chất, đặc biệt là khi bạn phải gánh vác việc quản trị nhiều hệ cơ sở dữ liệu khác nhau cùng lúc như MySQL, Oracle hay PostgreSQL.