Thứ Hai, 20 tháng 3, 2023

Quản trị cơ sở dữ liệu Database Administrator (DBA) là gì? Lương ra sao?

Database Administrator (DBA) là gì? DBA là người chịu trách nhiệm quản trị và vận hành các hoạt động liên quan đến cơ sở dữ liệu như lên kế hoạch, cài đặt, cấu hình, tối ưu, backup, security, v.v. nhằm đảm bảo hệ thống luôn sẵn sàng cho người dùng truy cập.

Đọc bài phỏng vấn của ITviec với anh Mai Thanh Hải, Database Administrator Team Leader của VietBank, người có 9 năm kinh nghiệm làm Quản trị cơ sở dữ liệu Database Administrator, để biết:

  • Quản trị cơ sở dữ liệu Database Administrator (DBA) là gì? Lương ra sao?
  • Sai lầm lớn nhất trong công việc DBA của anh Hải và bài học rút ra
  • Lời khuyên dành cho các bạn trẻ muốn trở thành DBA

Xem thêm việc làm Database Administrator trên ITviec

P/S: Bài viết này tôi có thêm 1 số phần bôi xanh.

Chào anh Hải! Anh có thể kể về nền tảng giáo dục và con đường nghề nghiệp của mình?

Anh tốt nghiệp Ngành Xử lý Thông tin của Đại học Kinh tế năm 2003. Lúc đó, anh chưa hình dung mình sẽ làm công việc gì, chỉ biết là mình sẽ làm những thứ liên quan đến phần mềm, tin học.

Công việc đầu tiên của anh sau khi ra trường là làm Nhân viên Triển khai cho Công ty Phần mềm Kế toán Effect. Nhiệm vụ của anh là cài đặt phần mềm cho khách hàng (các doanh nghiệp) và hướng dẫn họ sử dụng các chức năng của phần mềm này.

Công việc này giúp anh có nhiều kiến thức về nghiệp vụ kế toán và kỹ năng giao tiếp được cải thiện đáng kể. Tuy nhiên, sau 8 tháng thì anh nghỉ, vì là dân kỹ thuật và mới ra trường nên anh cần bổ sung kiến thức chuyên ngành nhiều hơn nữa.

Đầu năm 2004, anh chuyển qua DigiNet với vị trí Database Developer.

Đến giữa năm 2007, anh đầu quân cho VON – công ty quản lý trang kiemviec.com, mạng xã hội yume.vn, và một số website khác.

Anh bắt đầu tại VON với vị trí Database Developer. Đây là công việc đầu tiên cho anh cơ hội tiếp cận Oracle, một hệ quản trị cơ sở dữ liệu nổi tiếng.

Anh thích Oracle vì nó cung cấp nhiều giải pháp tốt. Ví dụ, chức năng Active Data Guard của Oracle cho phép mình thiết lập server dự phòng đồng bộ theo thời gian thực và cho phép mở database lên để truy xuất dữ liệu.

Khi làm Database Developer ở VON, công việc chính của anh là đọc tài liệu phân tích từ bộ phận Business Analyst rồi tạo table trong database để chứa dữ liệu phục vụ cho các chức năng mà bộ phận này mô tả.

Anh cũng chịu trách nhiệm tạo procedure/function để xử lý dữ liệu.

Công việc Database Developer giúp anh biết cách design database cho một ứng dụng.

Anh làm công việc này được 2 năm thì sếp trực tiếp của anh (Database Manager) rời công ty. Vì vậy, anh đề xuất với sếp ở cấp cao hơn (IT Manager) cho anh được đảm nhiệm công việc thay anh ấy.

Thấy anh làm việc tốt và có Chứng chỉ Oracle Database 10g Administrator Certified Associate, IT Manager “thăng chức” cho anh thành Database Team Leader (cười).

Anh học ở đâu đế lấy Chứng chỉ Oracle?

Anh mượn tài liệu Oracle 10g Admin Workshop 1 (tài liệu pdf, để chuẩn bị cho kỳ thi lấy chứng chỉ) từ sếp trực tiếp của anh. Anh ấy cũng là giảng viên tại Trung tâm Tin học của Đại học Khoa học Tự nhiên TP.HCM nên có tài liệu này.

Bạn có thể mua tài liệu này trên trang web chính thức của Oracle. Hoặc nếu bạn luyện thi lấy Chứng chỉ Oracle Database 10g Administrator Certified Associate tại các đối tác của Oracle (như Trung tâm Tin học anh vừa nhắc tới), bạn sẽ có được tài liệu này.

Công việc cụ thể của anh ở vị trí mới, Database Team Leader, là gì?

Với vị trí Database Team Leader ở VON, trách nhiệm của anh là định hướng công việc cho team, ví dụ như quyết định là yêu cầu này sẽ được xây trên server nào, và giao cho người nào trong team làm thì hợp lý.

Ngoài ra, anh cũng hỗ trợ các bạn trong team về mặt kỹ thuật.

Anh có thể kể về hành trình nghề nghiệp tiếp theo?

Cuối 2011, anh gia nhập VNG và làm công việc Senior DBA. Ở VNG, anh được học thêm về network, firewall, security, và nhiều thứ khác nữa.

Những kiến thức này giúp anh hợp tác với các team như network và infrastructure tốt hơn.

Đến cuối 2014, anh chuyển sang Bảo hiểm AAA và tiếp tục công việc Senior DBA.

Tháng 5/2017, anh đầu quân cho VietBank, làm vị trí DBA Team Leader cho đến nay.

Thực sự thì làm việc cho ngân hàng là mơ ước của tất cả các DBA, vì database của ngân hàng lớn hơn database của các công ty rất nhiều.

Khi làm việc cho ngân hàng, mình được tiếp cận với lượng user lớn, hệ thống lớn, nên khối lượng lệnh cũng sẽ nhiều. Điều này sẽ giúp mình nâng cao tay nghề DBA vì mình buộc phải viết lại câu lệnh, cấu hình lại hệ thống, rebuild index, và làm nhiều thứ khác nữa để đảm bảo hệ thống vận hành tốt.

Quản trị cơ sở dữ liệu Database Administrator là làm gì vậy anh?

Quản trị cơ sở dữ liệu Database Administrator (DBA) là người chịu trách nhiệm quản trị và vận hành các hoạt động liên quan đến cơ sở dữ liệu như lên kế hoạch, cài đặt, cấu hình, tối ưu, backup, security, v.v. nhằm đảm bảo hệ thống luôn sẵn sàng cho người dùng truy cập.

Cần phải trải qua những vị trí nào để trở thành DBA?

Thường thì career path của DBA sẽ như thế này: Database Developer/Dev/System Admin-> Quản trị cơ sở dữ liệu Database Administrator-> Database Administrator Team Leader.

Database Administrator Team Leader là vị trí cao nhất mà DBA có thể thăng tiến.

Theo anh, các kỹ năng và tố chất quan trọng nhất để trở thành DBA là gì?

Thật ra làm DBA thì quan trọng nhất là kinh nghiệm. Vì khi gặp sự cố, DBA được mong đợi là sẽ xử lý tình huống càng nhanh càng tốt. Lúc đó không có thời gian để mình nghiên cứu. Nếu mình không xử lý được, mình phải nhờ hỗ trợ từ chính hãng cung cấp phần mềm database, nhưng đối lúc nhiều tình huống cần luôn và ngay thì thời gian xử lý khi hãng Oracle vào làm việc cũng mất 1 vài tiếng, ảnh hưởng đến hệ thống, khách hàng nên phần lớn các tình huống khẩn cấp DBA phải nắm rất chắc giống như bác sĩ cấp cứu, sẵn sàng hô hấp, truyền máu, truyền nước,... để sơ cứu nhằm "giảm tải" cho DB trước khi có các chuyên gia Oracle hãng vào làm việc sâu hơn:

1. Còn kỹ năng thì anh nghĩ ngoài kiến thức về quản trị database mình còn phải biết SQL, PL/SQL hệ điều hành (Linux, AIX, …). Tốt hơn nữa là biết về hardware và network.

Ví dụ, nếu mình biết SQL thì mình mới có thể hỗ trợ team Software Developer trong việc phát triển ứng dụng hoặc tinh chỉnh câu lệnh cho hệ thống chạy nhanh hơn.

2. Tính cẩn thận. Trước khi làm bất kỳ thay đổi nào cũng phải có kịch bản backup cho trường hợp fail.

Chẳng hạn như trước khi xóa dữ liệu, mình phải lưu dữ liệu cũ lại. Nếu chẳng may có sai sót gì thì còn dữ liệu cũ để phục hồi.

Và 1 nguyên tắc là không thử độ sâu của dòng sông bằng 2 chân, luôn có phương án rollback lại ban đầu trong trường hợp cập nhật không thành công.

3. Chịu khó đọc tài liệu về database để biết thêm những công nghệ/tính năng của Hệ quản trị cơ sở dữ liệu mình đang dùng. Kiến thức này sẽ giúp mình xử lý các yêu cầu phát sinh trong công việc tốt hơn.

Ví dụ, nếu công ty bạn sử dụng Oracle, bạn nên đọc các bài viết và tài liệu trên 2 website chính thức của hãng này (oracle-base.com và docs.oracle.com/database/121/index.html và tranvanbinh.vn).

Và chẳng hạn nhờ đọc 2 trang này, bạn biết được Oracle có một tính năng hay ho là Virtual Private Data. Khi biết tính năng này, bạn có thể áp dụng để phân quyền truy cập dễ hơn. Chẳng hạn như user1 được đọc dữ liệu của phòng ban A, user2 được đọc dữ liệu của phòng ban B.

Anh có thể kể về một ngày làm việc của mình?

Anh bắt đầu một ngày bằng việc kiểm tra hệ thống xem nó có bị lỗi hay bị chậm không.

Nếu hệ thống bị lỗi, anh sẽ tìm bản vá để sửa lỗi. Nếu hệ thống bị chậm, bị giảm hiệu năng, anh sẽ đề xuất team Software Developer tinh chỉnh câu lệnh.

Sau đó anh sẽ thực hiện những yêu cầu từ các phòng ban khác gửi lên. Chẳng hạn như set up database server mới để phục vụ việc phát triển ứng dụng mới. Hoặc đưa code mới lên database để go live một tính năng mới hay sửa lỗi cho một ứng dụng.

Ngoài ra, anh làm những việc định kỳ. Chẳng hạn như hàng tháng sẽ xem báo cáo lịch sử truy cập hệ thống và kiểm thử các bản sao lưu dự phòng.

Công việc của một nhân viên quản trị cơ sở dữ liệu

Anh Hải (đứng thứ 2, từ trái sang) chụp ảnh cùng đồng nghiệp phòng IT tại VietBank 

Sai lầm “nhớ đời” anh từng mắc phải trong công việc DBA là gì?

Sai lầm lớn nhất trong nghề Quản trị cơ sở dữ liệu Database Administrator của anh xảy ra ở công ty cũ, khi anh mới làm DBA được 3 tháng.

Lúc đó anh rất háo hức vì được bước vào “thế giới” DBA, được đào sâu nghiên cứu về quản trị database, về server, v.v.

Một buổi sáng sớm nọ, lúc 5 giờ, anh đang ngủ thì nhận được cuộc gọi từ data center báo là hệ thống lạnh ngay chỗ công ty anh thuê đặt server bị hư, nên có thể server cũng bị hư luôn.

Anh lật đật xách xe chạy vào data center, đĩa (local disk) còn nhưng đèn đỏ lét rồi. Anh bấm nút nguồn để khởi động lại server mà không có tín hiệu gì.

Anh nghĩ: “Thôi chết rồi, server hư phần cứng luôn rồi.”

Anh vừa gọi điện cho sếp anh (Technical Architect) mà vừa run.

Sếp anh thì rất bình tĩnh. Sau một hồi hỏi han nắm được tình hình, ảnh nói: “Giờ em phải gọi điện cho chuyên viên quản lý hạ tầng (của công ty), nhờ bạn đó tìm server khác dùng tạm, lấy dữ liệu mình đã lưu dự phòng đêm qua bỏ vô để dựng server lên lại.”

Anh lập tức gọi người quản lý hạ tầng. Bạn đó bảo anh có thể lấy server dùng để kiểm thử (đây là server dùng để kiểm tra các chức năng trước khi release cho người dùng) dùng tạm.

Anh lao vào dựng lại server để phục hồi hệ thống. Anh không nghĩ tới chuyện ăn sáng hay ăn trưa gì hết. Sau đó hình như có ai mua cái gì để lên bàn anh rồi anh ăn thôi chứ anh cũng không nhớ là anh đã ăn gì.

Phải mất gần 8 tiếng anh mới xử lý xong. Thực sự thì với một hệ thống nhiều người dùng mà mất nhiều thời gian như vậy là không thể chấp nhận được.

Xong việc đó, anh em IT họp với sếp tổng. Sếp của anh cũng đỡ cho anh rất nhiều.

Ảnh giải thích với sếp tổng là hệ thống lạnh của data center bị hư nên mới xảy ra sự cố lớn như vậy, vì server khó chết lắm. Thường nếu hư một đĩa sẽ còn đĩa kia, đằng này hệ thống lạnh bị hư nên nhiệt độ tăng cao làm hỏng cả server.

Sau đó, bên data center đền bù cho công ty anh bằng tiền như trong hợp đồng.

Nhưng vấn đề của anh là anh đã mất quá nhiều thời gian để khắc phục hệ thống. Lý do là anh đã không xây dựng backup server. Đây là một sai lầm rất lớn!

Lần đó, anh mới nhận nhiệm vụ được 3 tháng nên sếp chấp nhận lỗi. Người làm DBA trước anh đã không xây dựng backup server. Nhưng anh lẽ ra nên nhận thức được chuyện đó ngay khi nhận việc và dựng backup server ngay lập tức. Vì chuyện người DBA trước đã làm hay chưa làm không quan trọng, đó là trách nhiệm của anh.

Anh cũng hiểu nếu anh là một DBA lâu năm vào thời điểm đó, chắc anh đã bị đuổi việc.

Sau sự cố đó, anh dựng một backup server ngay lập tức. Anh đặt nó ở vị trí khác với server chính.

Anh học được gì từ sự cố đó?

Anh rút ra bài học là người làm DBA phải luôn nghĩ là trong trường hợp hệ thống hiện tại ở data center chết hết thì mình sẽ làm gì để khôi phục hệ thống nhanh nhất có thể. Phải trả lời được câu này thì mới an tâm được. Bạn không thể đổ lỗi tại vì DBA trước không làm cái này hay cái kia. Khi bạn làm DBA, bạn phải chịu trách nhiệm về hệ thống.

Hiện tại hầu hết các hệ quản trị cơ sở dữ liệu đều có giải pháp để trả lời câu hỏi này. Với Oracle, hãng có giải pháp rất tốt cho vấn đề đảm bảo tính sẵn sàng cao cho hệ thống như Cluster và Standby.

Cluster cho phép cấu hình nhiều server cùng chạy đồng thời. Nên khi một server không hoạt động thì hệ thống vẫn hoạt động trên các server còn lại.

Với Standby, chúng ta có thể xây dựng thêm một hệ thống backup ở một nơi khác cách xa (thường là ở tỉnh/thành phố khác) data center (trung tâm dữ liệu chính). Standby rất thích hợp để phòng ngừa các rủi ro dạng thảm họa như hỏa hoạn, động đất, hay bão lũ, v.v.

Anh có lời khuyên gì muốn gửi tới các bạn muốn trở thành DBA?

Quản trị cơ sở dữ liệu Database Administrator là một nghề khá hẹp, áp lực cao (khi hệ thống cao tải thì rất dễ bị đổ do database nên phải rất cứng về kiến thức, kinh nghiệm), dễ nhàm chán do khi hệ thống ổn định rồi thì rất nhàn. Vì vậy, các bạn nên nghĩ thật kỹ là mình có thực sự yêu thích quản trị database không trước khi bước vào nghề này.

Với nghề Database Administrator, mình có thể bị đuổi việc trong trường hợp gặp sự cố nặng, có thể sẽ phải đền bù thiệt hại do sự thiếu cẩn trọng của mình.

Đối với những bạn chọn nghề Database Administrator, anh khuyên các bạn luôn sao lưu backup định kỳ, copy bản sao lưu ra máy khác, và kiểm thử việc phục hồi từ bản sao lưu định kỳ. Việc này giúp các bạn có thể khôi phục hệ thống trong trường hợp hệ thống gặp sự cố.

Theo quan sát của anh, nhu cầu tuyển DBA ngoài thị trường có cao không? Lương vị trí này có tốt không?

Nhu cầu tuyển DBA không cao. Chỉ những công ty có hệ thống cơ sở dữ liệu tương đối lớn, chẳng hạn như công ty tài chính, công ty chứng khoán, hay ngân hàng, các doanh nghiệp lớn, các cơ quan nhà nước lớn mới tuyển vị trí này.

Ở những công ty nhỏ hơn, thường thì System Admin sẽ kiêm nhiệm luôn công việc database, có khi kiêm luôn mạng, firewall, IT Support

Mặt bằng chung về lương ngành công nghệ thông tin thì những bạn mới ra trường, chưa có kinh nghiệm thường được trả khoảng từ 7 đến 25 triệu đồng cho vị trí DBA.

Lương của những DBA có nhiều kinh nghiệm thường dao động ở mức trên 25 triệu đến 40 triệu.

Các DBA giỏi có thể nhận được mức lương trên 50 triệu - 100 triệu.

Những resource nào anh thấy có ích cho nghề DBA?

1. https://docs.oracle.com/database/121/index.html hoặc 19c (https://docs.oracle.com/en/database/oracle/oracle-database/19/index.html): Đây là trang tài liệu chính thức của Oracle, nơi bạn có thể nghiên cứu, tham khảo mọi thứ về Oracle database, từ cài đặt và quản trị đến các chức năng mở rộng.

2. oracle-base.com: Website này có nhiều bài viết cơ bản về Hệ quản trị cơ sở dữ liệu Oracle, bao gồm việc cài đặt, rất bổ ích cho những bạn mới bắt đầu làm DBA.

Bạn có thể hiểu được các tài liệu này sau khi đã nắm kiến thức cơ bản về Oracle qua trang oracle-base.com.

3. http://www.tranvanbinh.vn: Đây là forum về Oracle database bằng tiếng việt khá hay mà các bạn có thể trao đổi và học hỏi.

4. Linux Recipes for Oracle DBAs của Darl Kuhn, Charles Kim, và Bernard Lopuz: Một cuốn sách hay và rất dễ hiểu về các lệnh Linux và những task dành cho DBA như backup, restore, v.v.

Cảm ơn anh Hải đã chia sẻ những trải nghiệm về nghề Quản trị cơ sở dữ liệu Database Administrator của mình. Chúc anh thành công hơn nữa trong sự nghiệp!

Nguồn: ITViec

=============================
* KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE trực tiếp từ tôi giúp bạn bước đầu trở thành những chuyên gia DBA, đủ kinh nghiệm đi thi chứng chỉ OA/OCP, đặc biệt là rất nhiều kinh nghiệm, bí kíp thực chiến trên các hệ thống Core tại VN chỉ sau 1 khoá học.
* CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
* Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile/Zalo: 0902912888
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: http://bit.ly/ytb_binhoraclemaster
👨 Tiktok: https://www.tiktok.com/@binhoraclemaster?lang=vi
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhoracle
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội

=============================
oracle tutorial, học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,sql tutorial, khóa học pl/sql tutorial, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail,oracle RAC, ASM, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, postgresql tutorial, mysql tutorial, mariadb tutorial, sql server tutorial, nosql, mongodb tutorial, oci, cloud, middleware tutorial, hoc solaris tutorial, hoc linux tutorial, hoc aix tutorial, unix tutorial, securecrt, xshell, mobaxterm, putty

ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master