Attach cơ sở dữ liệu trong Microsoft SQL Server 2008
Quản Trị Mạng - Bài viết này sẽ minh họa các phương pháp s
ử dụng khác nhau
của mệnh đề “For Attach” nhằm vượt qua những điểm hạn chế gặp phải khi sử
dụng sp_attach_db và sp_attach_single_file_db.
Trong SQL Server 7.0, Microsoft đã giới thiệu hai thủ tục lưu trữ hệ thống là
sp_attach_db và sp_attach_single_file_db, giúp các nhà quản trị cơ sở dữ liệu
thuận tiện hơn khi thực hiện các tác vụ sau:
Attach trực tiếp các file .MDF và .LDF vào máy chủ bằng cách sử dụng
thủ tục lưu trữ hệ thống sp_attach_db.
Chỉ Attach các file .MDF bằng cách sử dụng thủ tục lưu trữ hệ thống
sp_attach_single_file_db.
Detach cơ sở dữ liệu khỏi máy chủ bằng cách sử dụng sp_detach_db.
Copy các file .MDF tới máy chủ khác rồi sau đó attach lại vào cả hai
máy chủ bằng cách sử dụng thủ tục lưu trữ hệ thống sp_attach_db.
Mặc dù cả hai thủ tục này đều hữu ích với các chuyên viên quản trị cơ sở dữ
liệu, thế nhưng vẫn có những hạn chế nhất định, đó là:
Bạn không thể attach nhiều file log
Bạn không thể attach nhiều hơn 16 file
Trong phiên bản SQL Server 2008, Microsoft công bố rằng các thủ tục lưu trữ
hệ thống trên sẽ bị “bỏ xó”. Thay vào đó, Microsoft bổ sung mệnh đề “For
GO
Bây giờ hãy thử detach cơ sở dữ liệu này và attach lại bằng cách sử dụng
sp_detach_db và sp_attach_db. Chạy đoạn mã T-SQL sau đây:
use master
go
sp_detach_db 'MyDB1'
go
sp_attach_db 'MyDb1',
'C:Program FilesMicrosoft SQL
ServerMSSQL10.SQL2008MSSQLDATASummary Database Data
Data File for Monthly ArchiveMicrosoft SQL Server 2008 Data
FileMyDB1.mdf',
'C:Program FilesMicrosoft SQL
ServerMSSQL10.SQL2008MSSQLDATASummary Database Data
Data File for Monthly ArchiveMicrosoft SQL Server 2008 Data
FileMyDB1.ldf'
GO
Bạn có thể attach cơ sở dữ liệu trên bằng cách sử dụng lệnh “Create database”
với mệnh đề “For Attach” như sau:
use master
go
sp_detach_db 'MyDB1'
go
CREATE DATABASE MyDB1
ON
(
FILENAME = 'C:Program FilesMicrosoft SQL
ServerMSSQL10.SQL2008MSSQLDATASummary Database Data
'xp_cmdshell' by using sp_configure. For more information about enabling
'xp_cmdshell', see "Surface Area Configuration" in SQL Server Books Online.
Bạn có thể kích hoạt xp_cmdshell bằng cách dùng đoạn mã T-SQL sau:
use master
go
sp_configure 'show advanced options',1
go
reconfigure with override
go
sp_configure 'xp_cmdshell',1
go
reconfigure with override
go
Ngoài ra, b
ạn có thể xóa file .LDF bằng cách dùng l
ệnh “Del” từ dấu nhắc lệnh
MS-DOS.
Bây giờ hãy attach riêng file .MDF bằng cách sử dụng
sp_attach_single_file_db. Chạy câu lệnh sau đây:
use master
go
sp_attach_single_file_db 'MyDB1',
'C:Program FilesMicrosoft SQL
ServerMSSQL10.SQL2008MSSQLDATASummary Database Data
Data File for Monthly ArchiveMicrosoft SQL Server 2008 Data
FileMyDB1.mdf'
go
Kết quả
FileMyDB1.mdf'
) for ATTACH_REBUILD_LOG
Kết quả:
File activation failure. The physical file name "C:Program FilesMicrosoft SQL
Server
MSSQL10.SQL2008MSSQLDATASummary Database DataData File
for
Monthly ArchiveMicrosoft SQL Server 2008 Data
FileMyDB1_log.LDF" may be incorrect.
New log file 'C:Program FilesMicrosoft SQL
ServerMSSQL10.SQL2008MSSQLDATASummary Database
DataData File for Monthly ArchiveMicrosoft SQL Server 2008 Data
FileMyDB1_log.LDF' was created.
Kết luận
Bài viết trên đã minh họa cách sử dụng câu lệnh “Create Database” với mệnh
đề “For Attach” và “for ATTACH_REBUILD_LOG” đối với một file .MDF
đơn và một file .LDF đơn. Trong bài viết tiếp theo, các bạn sẽ được giới thiệu
cách làm việc với nhiều file .MDF và .LDF.
Linh V. (Theo Database Journal)