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

1015
28-12-2024
Hướng dẫn cách Attach Database trong SQL Server chi tiết

Để khôi phục và di chuyển một cơ sở dữ liệu nhanh chóng, đơn giản, attach database là phương pháp hiệu quả giúp bạn có thể gắn kết các tệp dữ liệu với tệp nhật ký vào trong cùng một phiển bản SQL Server để sử dụng. Bizfly Cloud sẽ chia sẻ cách attach database ngay trong bài viết sau đây.

Attach Database là gì?

Attach Database có nghĩa là đính kèm cơ sở dữ liệu. Khi một cơ sở dữ liệu đã được tạo và lưu trữ, bạn có thể sử dụng lệnh attach để gắn nó vào hệ thống quản trị cơ sở dữ liệu khác. Attach Database giúp cho việc chuyển dữ liệu giữa các hệ thống hoặc khôi phục dữ liệu từ các bản sao lưu dễ dàng hơn.

Cách Attach Database trong SQL Server theo từng bước chi tiết

Nếu bạn muốn đính kèm cơ sở dữ liệu sau khi tách cơ sở dữ liệu để sao chép vào vị trí mới, bạn có thể làm theo một trong những cách dưới đây. Tuy nhiên, bạn cần xác định xem cơ sở dữ liệu của bạn có log file không.

Cách attach database trong SQL server có log file

Sử dụng SSMS

Bước 1: Nhấp chuột phải vào Cơ sở dữ liệu và chọn Đính kèm... trên phiên bản SQL Server mà bạn muốn đính kèm cơ sở dữ liệu.

Cách attach database trong SQL server có log file

Cách attach database trong SQL server có log file

Bước 2: Màn hình sau sẽ mở ra.

Cách attach database trong SQL server có log file

Cách attach database trong SQL server có log file

Bước 3: Nhấp vào nút Thêm để tìm tệp mdf mà bạn muốn đính kèm, chọn tệp và nhấp vào OK .

Cách attach database trong SQL server có log file

Cách attach database trong SQL server có log file

Bước 4: SSMS điền sau đó hiển thị các tệp liên quan cho cơ sở dữ liệu như hiển thị bên dưới. Nếu không đúng, bạn có thể sử dụng dấu ba chấm bên cạnh mỗi tên tệp để chọn một tệp khác.

Cách attach database trong SQL server có log file

Cách attach database trong SQL server có log file

Bước 5: Khi bạn đã có các tập tin chính xác, hãy nhấp vào OK và bạn sẽ thấy màn hình hiển thị dấu tích màu xanh lá cây rồi màn hình sẽ đóng lại.

Cách attach database trong SQL server có log file

Cách attach database trong SQL server có log file

Sử dụng T-SQL

Đây là tập lệnh T-SQL để đính kèm cơ sở dữ liệu với dữ liệu và tệp nhật ký. Khi sử dụng tập lệnh này, một tệp nhật ký mới và trống sẽ được tạo. Bạn sử dụng câu lệnh như sau:

USE [master]

GO

CREATE DATABASE [AdventureWorks2017] ON

( FILENAME = N'D:\AdventureWorks2017.mdf' )

FOR ATTACH

GO

Attach Database trong SQL Server không có log file

Sử dụng SSMS

Cách attach database trong SQL server bằng SSMS giữa có hay không có log file như nhau nhưng bạn sẽ thấy thông báo "Không tìm thấy tệp nhật ký giao dịch. Một tệp nhật ký trống mới sẽ được tạo". Sau đó, bạn có thể nhấp vào OK và cơ sở dữ liệu sẽ được đính kèm và một tệp nhật ký mới sẽ được tạo.

Attach Database trong SQL Server không có log file

Attach Database trong SQL Server không có log file

Sử dụng T-SQL

Bạn có thể sử dụng tập lệnh này để đính kèm cơ sở dữ liệu mà không cần tệp nhật ký. Khi sử dụng tập lệnh này, một tệp nhật ký mới và trống sẽ được tạo.

USE [master]

GO

CREATE DATABASE [AdventureWorks2017] ON

( FILENAME = N'D:\AdventureWorks2017.mdf' )

FOR ATTACH

GO

Khi chạy lệnh này, bạn sẽ nhận được thông báo này:

File activation failure. The physical file name "D:\AdventureWorks2017_log.ldf" may be incorrect.

New log file 'D:\AdventureWorks2017_log.ldf' was created.

Một số lỗi có thể gặp khi Attach Database

Khi thực hiện thao tác Attach Database trong SQL Server, người dùng có thể gặp phải một số lỗi phổ biến. Dưới đây là các lỗi thường gặp cùng với cách khắc phục:

Lỗi "An Error Occurred When Attaching The Database"

Nguyên nhân: Thư mục chứa file database không đúng vị trí hoặc tên database không hợp lệ (có dấu tiếng Việt).

Cách khắc phục: Kiểm tra và đảm bảo rằng thư mục chứa database đã được đặt đúng vị trí theo mặc định của phần mềm (ví dụ: ổ D). Đảm bảo tên database chỉ sử dụng ký tự tiếng Anh không có dấu.

Thiếu file log (.LDF)

Nguyên nhân: Chỉ có file .MDF mà không có file .LDF.

Cách khắc phục: Tạo một database mới với tên giống như file .MDF. Dừng SQL Server, thay thế file .MDF cũ bằng file cần attach, sau đó khởi động lại SQL Server và chạy các lệnh SQL để khôi phục trạng thái database .

Lỗi "Access is denied"

Nguyên nhân: Thiếu quyền truy cập vào thư mục chứa file database.

Cách khắc phục: Kiểm tra và cấp quyền truy cập cho người dùng hiện tại vào thư mục chứa các file .MDF và .LDF 3.

Phiên bản SQL Server không tương thích

Nguyên nhân: Phiên bản của SQL Server cài đặt không tương thích với phiên bản của database.

Giải pháp: Cài đặt lại SQL Server với phiên bản tương thích với database .

Database ở trạng thái "Suspect"

Nguyên nhân: File log không đúng hoặc bị thiếu.

Giải pháp:Sử dụng các lệnh SQL để đưa database về trạng thái hoạt động bằng cách chạy các lệnh ALTER DATABASE để thiết lập chế độ khẩn cấp, đơn người dùng và sửa chữa.

Nếu sau khi thử tất cả các cách trên mà vẫn không khắc phục được lỗi, người dùng nên tìm kiếm sự hỗ trợ từ chuyên gia có kinh nghiệm về SQL Server để được tư vấn thêm.

Kết luận

Hy vọng qua bài viết trên của Bizfly Cloud, bạn đọc đã biết cách attach database đối với từng trường hợp. Attach Database trong SQL Server không chỉ đơn giản là một thao tác kỹ thuật, mà còn là một kỹ năng cần thiết cho bất kỳ ai làm việc với hệ thống quản lý cơ sở dữ liệu.

SHARE