Tuyển dụng
Viettel IDC

Hướng dẫn chi tiết cách Attach Database trong SQL Server

28/10/2025

Trong quá trình làm việc với SQL Server, có những lúc bạn cần khôi phục, di chuyển hoặc chia sẻ cơ sở dữ liệu giữa các máy chủ khác nhau. Một trong những thao tác phổ biến nhất phục vụ mục đích này chính là Attach Database, phương pháp giúp gắn lại tệp dữ liệu (.mdf, .ldf) vào SQL Server nhanh chóng mà không cần thực hiện quá trình restore phức tạp. Bài viết này Viettel IDC sẽ hướng dẫn bạn chi tiết cách Attach Database trong SQL Server, kèm theo các lưu ý quan trọng giúp tránh lỗi và đảm bảo an toàn dữ liệu.

Attach Database là gì?

Attach Database là gì?

Attach Database là quá trình kết nối lại (re-attach) các tệp dữ liệu (.mdf - file chính, .ldf - file log) của một cơ sở dữ liệu đã được tách ra (detached) trước đó vào hệ thống SQL Server.

Nói một cách dễ hiểu, khi bạn detach (tách) một cơ sở dữ liệu ra khỏi SQL Server, hệ thống sẽ ngừng quản lý database đó nhưng vẫn giữ lại các file dữ liệu trên ổ cứng. Lúc này, để khôi phục lại cơ sở dữ liệu cho việc sử dụng, bạn cần thực hiện thao tác Attach.

 

Phương pháp này được áp dụng phổ biến trong các tình huống như:

- Di chuyển database giữa các máy chủ.

- Phục hồi dữ liệu nhanh mà không cần restore từ bản backup.

- Chia sẻ cơ sở dữ liệu cho môi trường thử nghiệm hoặc phát triển.

Chuẩn bị trước khi Attach Database

Trước khi thực hiện thao tác attach database trong SQL Server, bạn cần chuẩn bị kỹ một vài bước quan trọng để tránh lỗi trong quá trình thực hiện. Việc chuẩn bị đúng ngay từ đầu sẽ giúp quá trình khôi phục diễn ra nhanh chóng, an toàn và hạn chế rủi ro mất dữ liệu.

Kiểm tra phiên bản SQL Server đang sử dụng

Trước hết, bạn cần biết rõ phiên bản SQL Server hiện tại của mình. Nguyên nhân là vì database được tạo bằng phiên bản mới hơn thường sẽ không attach được trên phiên bản cũ hơn. Ví dụ, nếu file dữ liệu được tạo từ SQL Server 2019 thì khi bạn dùng SQL Server 2016 để attach có thể sẽ gặp lỗi không tương thích.


Cách kiểm tra rất đơn giản. Bạn mở công cụ SQL Server Management Studio (SSMS), kết nối đến server đang dùng, chọn mục New Query và gõ lệnh SELECT @@VERSION. Kết quả trả về sẽ hiển thị rõ phiên bản SQL Server cùng số hiệu, ví dụ như “Microsoft SQL Server 2019 (RTM) - 15.0.2000.5 (X64)”. Từ đó, bạn có thể xác định chính xác mình đang làm việc với phiên bản nào.

Xác định vị trí và trạng thái của file dữ liệu

Sau khi xác định phiên bản, bước tiếp theo là kiểm tra các file dữ liệu cần thiết. Một database SQL Server thường bao gồm ít nhất hai file: file .MDF (chứa dữ liệu chính) và file .LDF (file log, chứa nhật ký giao dịch).


Trước khi attach, hãy chắc chắn rằng hai file này còn nguyên vẹn, không bị lỗi hoặc mất dữ liệu. File thường được lưu trong thư mục mặc định của SQL Server, ví dụ:
C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\

 

Hãy đảm bảo rằng file .MDF không bị khóa bởi ứng dụng khác. Nếu file đang được sử dụng trên một máy chủ khác, bạn cần detach database đó trước khi mang đi attach ở môi trường mới.
Trong trường hợp bạn chỉ có file .MDF mà không có .LDF, SQL Server vẫn có thể tạo file log mới trong quá trình attach, miễn là file dữ liệu chính không bị hỏng.

Cấp quyền truy cập cho file dữ liệu

Một trong những lỗi thường gặp nhất khi attach database là thông báo “Access is denied” hoặc “Cannot open database because it is inaccessible”. Nguyên nhân chủ yếu là do SQL Server không có quyền đọc hoặc ghi dữ liệu vào thư mục chứa file .MDF và .LDF.


Để khắc phục vấn đề này, bạn cần cấp quyền truy cập cho tài khoản mà SQL Server đang sử dụng. Vào SQL Server Configuration Manager, mở mục SQL Server Services để kiểm tra tài khoản đang chạy dịch vụ (thường là “NT Service\MSSQLSERVER” hoặc “Network Service”). Sau đó, vào thư mục chứa file dữ liệu, nhấn chuột phải chọn Properties → Security → Edit, thêm tài khoản nói trên và cấp quyền “Full Control” để SQL Server có thể thao tác với file.


Ngoài ra, hãy kiểm tra thuộc tính file xem có bị đánh dấu “Read-only” hay không. Nếu có, bạn cần bỏ chọn để SQL Server có thể ghi dữ liệu khi attach. Với các file được sao chép từ máy khác, đôi khi Windows sẽ tự động khóa vì lý do bảo mật. Trong trường hợp này, bạn chỉ cần nhấn chuột phải vào file, chọn Properties rồi nhấn Unblock để mở quyền truy cập.

Cách Attach Database trong SQL Server bằng SSMS (SQL Server Management Studio)

Mở SSMS và đăng nhập vào SQL Server

Bước đầu tiên, bạn cần mở SQL Server Management Studio (SSMS) - đây là công cụ trực quan giúp quản trị cơ sở dữ liệu SQL Server một cách dễ dàng. Khi mở SSMS, hộp thoại Connect to Server sẽ xuất hiện. Bạn chọn loại máy chủ là Database Engine, nhập tên máy chủ (Server Name) và thông tin đăng nhập.

Nếu bạn sử dụng tài khoản cục bộ, hãy chọn Windows Authentication. Còn trong trường hợp quản trị từ xa hoặc dùng tài khoản hệ thống SQL riêng, chọn SQL Server Authentication và điền tên người dùng cùng mật khẩu tương ứng. Sau khi đăng nhập thành công, bạn sẽ thấy danh sách các database hiện có trong khung Object Explorer ở phía bên trái màn hình.

Thao tác Attach Database từng bước

Khi đã vào được giao diện SSMS, bạn tiến hành attach database theo các bước sau:

Bước 1: Trong khung Object Explorer, nhấn chuột phải vào thư mục Databases, chọn Attach. Lúc này, hộp thoại “Attach Databases” sẽ xuất hiện để bạn chọn file dữ liệu muốn khôi phục.

 

Bước 2: Nhấn nút Add trong hộp thoại, sau đó duyệt đến thư mục nơi lưu trữ file dữ liệu .MDF của database cần attach.
Ví dụ, file có thể nằm ở đường dẫn: C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\YourDatabase.mdf

 

Bước 3: Sau khi chọn file .MDF, hệ thống sẽ tự động tìm và điền file log tương ứng (.LDF) nếu có trong cùng thư mục. Nếu file log không tồn tại (ví dụ bạn chỉ có file .MDF), SQL Server vẫn có thể tạo mới file log trong quá trình attach.

 

Bước 4: Kiểm tra lại thông tin hiển thị trong hộp thoại. Ở đây, bạn sẽ thấy danh sách file dữ liệu, vị trí lưu trữ, kích thước file và trạng thái của từng thành phần. Nếu mọi thứ hợp lệ, nhấn OK để bắt đầu quá trình attach.

 

SQL Server sẽ tự động đọc cấu trúc của file, đăng ký database này vào hệ thống và hiển thị thông báo thành công khi hoàn tất.

Kiểm tra kết quả sau khi Attach thành công

Sau khi bạn attach xong, hãy kiểm tra lại xem cơ sở dữ liệu đã hoạt động bình thường chưa.
Cách dễ nhất là mở Object Explorer trong SQL Server Management Studio (SSMS). Nếu bạn thấy tên database của mình xuất hiện trong danh sách, điều đó có nghĩa là việc attach đã thành công.

Cách Attach Database trong SQL Server bằng SSMS (SQL Server Management Studio)

Cách Attach Database bằng lệnh T-SQL

Ngoài việc sử dụng giao diện đồ họa trong SQL Server Management Studio (SSMS), bạn còn có thể thực hiện thao tác Attach Database bằng lệnh T-SQL. Cách này đặc biệt hữu ích khi bạn làm việc từ xa hoặc cần tự động hóa thao tác trong các script quản trị hệ thống.

Cú pháp cơ bản của lệnh Attach Database

Giả sử bạn có hai tệp dữ liệu:

- Tệp chính có đuôi .mdf (chứa toàn bộ dữ liệu)

- Tệp log có đuôi .ldf (ghi lại lịch sử giao dịch)

 

Khi muốn gắn lại cơ sở dữ liệu, bạn cần tạo một database mới dựa trên hai tệp này. Lệnh T-SQL sẽ có dạng như: “Tạo một cơ sở dữ liệu mới có tên là TenDatabase, sử dụng file dữ liệu ở đường dẫn C:\Data\To Database.mdf và file log ở đường dẫn C:\Data\Ten Database_log.ldf, sau đó gắn cơ sở dữ liệu này vào SQL Server để sử dụng.”

 

Hiểu đơn giản, câu lệnh này bảo SQL Server: “Hãy dùng hai tệp .mdf và .ldf này để khôi phục lại cơ sở dữ liệu cũ.” Sau khi thực thi, nếu hai tệp hợp lệ và không bị hỏng, SQL Server sẽ tự động đưa database trở lại trạng thái hoạt động.

Cách Attach khi không có file log (.ldf)

Nếu bạn làm mất tệp log (.ldf), vẫn có thể Attach được database bằng cách yêu cầu SQL Server tự tạo lại file log mới. Câu lệnh trong trường hợp này có thể hiểu như sau:

“Tạo cơ sở dữ liệu mới dựa trên file dữ liệu chính (.mdf) và tự động tạo một file log mới để thay thế.”

 

Tuy nhiên, cần lưu ý là cách này chỉ nên áp dụng khi không còn file log cũ, vì trong quá trình tạo lại log mới, một số dữ liệu chưa được ghi nhận đầy đủ có thể bị mất. Do đó, trước khi sử dụng phương pháp này, hãy chắc chắn rằng bạn đã sao lưu dữ liệu quan trọng hoặc kiểm tra tính toàn vẹn của tệp .mdf.

Một số lưu ý quan trọng khi Attach Database

Không attach database đang được sử dụng ở máy khác

Nếu file dữ liệu vẫn đang được SQL Server khác quản lý, hệ thống sẽ báo lỗi “Database is in use”. Hãy chắc chắn rằng database đã được detach hoàn toàn hoặc máy chủ cũ đã ngắt kết nối.

Nên backup dữ liệu trước khi Attach

Trước khi attach database, đặc biệt là khi di chuyển dữ liệu giữa môi trường thật và thử nghiệm, bạn nên sao lưu toàn bộ file .mdf và .ldf. Điều này giúp tránh mất dữ liệu nếu quá trình attach thất bại hoặc file bị hỏng.

Giữ nguyên đường dẫn gốc của file dữ liệu để tránh lỗi

Một số phiên bản SQL Server cũ có thể gặp lỗi nếu bạn thay đổi đường dẫn file dữ liệu. Vì vậy, nên đặt lại file về đúng vị trí ban đầu hoặc cập nhật đường dẫn chính xác trong câu lệnh attach để đảm bảo an toàn.

Kết luận

Thao tác Attach Database trong SQL Server là kỹ năng quan trọng giúp quản trị viên và lập trình viên phục hồi, chia sẻ và di chuyển dữ liệu nhanh chóng giữa các hệ thống. Khi thực hiện đúng quy trình, bạn có thể đảm bảo an toàn và toàn vẹn dữ liệu. Việc thành thạo thao tác này không chỉ tiết kiệm thời gian mà còn duy trì sự ổn định và hiệu suất cho toàn bộ hệ thống cơ sở dữ liệu doanh nghiệp.


Nếu bạn đang tìm kiếm giải pháp quản lý, bảo vệ và tối ưu hóa cơ sở dữ liệu chuyên nghiệp, hãy tham khảo dịch vụ Viettel Database Service được phát triển bởi Viettel IDC, cung cấp khả năng lưu trữ an toàn, hiệu năng cao và khả năng mở rộng linh hoạt, phù hợp cho cả doanh nghiệp vừa và lớn trong kỷ nguyên số:
https://viettelidc.com.vn/viettel-database-service


Để tìm hiểu thêm về các sản phẩm, dịch vụ tại Viettel IDC, vui lòng liên hệ đến Viettel IDC:

- Hotline: 1800.8088 (miễn phí cước gọi)
- Fanpage: https://www.facebook.com/viettelidc
- Website: https://viettelidc.com.vn

Bình luận ()

Đăng nhập | Đăng ký
để gửi bình luận
Ý kiến của bạn sẽ được xét duyệt trước khi đăng.
Ý kiến của bạn sẽ được xét duyệt trước khi đăng.
Ý kiến của bạn sẽ được xét duyệt trước khi đăng.
Xem thêm bình luận

Tin liên quan

29/09/2026

"SOVEREIGN CLOUD" VÀ NGHỊCH LÝ CHUYỂN ĐỔI SỐ: GIẢI MÃ BÀI TOÁN TUÂN THỦ CHO NGÀNH TÀI CHÍNH & CHÍNH PHỦ

Các tổ chức thuộc nhóm ngành trọng yếu như tài chính, ngân hàng (BFSI) và cơ quan nhà nước đang khao khát hiện đại hóa hệ thống IT (chuyển đổi sang kiến trúc Microservices, sử dụng Container/Kubernetes) để tăng tốc độ triển khai dịch vụ và nâng cao trải nghiệm người dùng. Tuy nhiên, họ lại đang vấp phải một "nghịch lý" lớn: Càng muốn áp dụng công nghệ Cloud hiện đại, rào cản về tuân thủ pháp lý và an toàn thông tin càng trở nên khắt khe.

29/09/2026

BÀI TOÁN "NOISY NEIGHBOR" TRÊN CLOUD VÀ CHIẾN LƯỢC TỐI ƯU HIỆU NĂNG CHO HỆ THỐNG CỐT LÕI

Trong kỷ nguyên mà dữ liệu là "dầu mỏ mới", việc vận hành các hệ thống xương sống (Core ERP, Core Banking) hay các workload tính toán chuyên sâu (AI, Machine Learning, Datalake) đòi hỏi năng lực phần cứng vô cùng mạnh mẽ.

27/09/2026

"BÃO GIÁ" HẠ TẦNG CNTT VÀ BÀI TOÁN SỐNG CÒN CỦA DOANH NGHIỆP: VÌ SAO PRIVATE CLOUD DẠNG DỊCH VỤ LÊN NGÔI?

Làn sóng bùng nổ hạ tầng AI toàn cầu đang tạo ra một "cơn địa chấn" về giá phần cứng máy chủ, chip nhớ DRAM, ổ cứng doanh nghiệp và chi phí năng lượng. Đứng trước áp lực phải chuyển đổi số nhưng lại vấp phải bài toán chi phí đầu tư (CapEx) đắt đỏ cùng thời gian giao hàng kéo dài hàng tháng, các nhà quản trị công nghệ (CIO) và tài chính (CFO) đang tìm kiếm một hướng đi mới: Không cần bỏ hàng tỷ đồng mua sắm hạ tầng mà vẫn sở hữu riêng một hệ thống Private Cloud hoàn chỉnh, an toàn và sẵn sàng vận hành ngay lập tức.

29/09/2026

Digital Workplace là gì? Xu hướng môi trường làm việc số cho doanh nghiệp

Digital Workplace là gì? Khám phá mô hình vận hành, thành phần, lợi ích, ứng dụng, thách thức và xu hướng môi trường làm việc số cho doanh nghiệp.

29/09/2026

Lỗ hổng Shellshock là gì? Cơ chế, tác động và cách khắc phục

Lỗ hổng Shellshock (CVE-2014-6271) trong Bash là gì, vì sao nghiêm trọng? Tìm hiểu nguyên nhân, hệ thống bị ảnh hưởng và cách kiểm tra, vá lỗi.

29/09/2026

Scratch là gì? Cách hoạt động, ứng dụng và đối tượng phù hợp

Scratch là gì? Tìm hiểu cách lập trình bằng khối lệnh, các khái niệm có thể học, ứng dụng thực tế và sự khác nhau giữa Scratch với ScratchJr.

29/09/2026

Phân biệt các loại Web Hosting: Đâu là lựa chọn phù hợp cho website?

Phân biệt các loại Web Hosting và tìm hiểu cách mỗi mô hình hoạt động, từ đó lựa chọn giải pháp phù hợp với nhu cầu, quy mô và định hướng phát triển website.

29/09/2026

Website có cần hosting không? Giải đáp chi tiết từ A-Z

Website có cần hosting không? Tìm hiểu vai trò của hosting, domain và các trường hợp cần và không cần mua hosting riêng cho website.

29/09/2026

Top nhà cung cấp dịch vụ Cloud Camera uy tín tại Việt Nam

Top nhà cung cấp dịch vụ Cloud Camera uy tín tại Việt Nam, cùng tiêu chí lựa chọn và những lưu ý quan trọng trước khi đăng ký dịch vụ.

28/09/2026

Trigger là gì trong DBMS? Cách hoạt động, các loại phổ biến và ứng dụng

Trigger là gì trong DBMS? Tìm hiểu cách trigger hoạt động, các loại phổ biến, ví dụ minh họa, ưu nhược điểm và khi nào nên sử dụng.