Trang chủĐăng kýĐăng nhập Cộng đồng tin học
Thứ 6, 2024-05-03, 11:12 AM
Khung đăng nhập

Khung tán gẫu
Xóm 'bà Tám'

http://congdongtinhoc.net
CHUYÊN TRANG GAME ONLINE GIẢI TRÍ//lehung-system.ucoz.net/stuff/

Thống kê diễn đàn
Bài viết mới nhất Trang chủ cập nhật Top 10 thành viên tích cực 10 Thành viên mới nhất
  • Quạt Hướng Trục
  • vào ucoz.com thiết kế web không hiểu sao...
  • Sothink DHTMLMenu 9.2 Build 90326
  • cho em quảng cáo cái
  • BIDV triển khai gói 10.000 tỷ đồng cho v...
  • Phượng Đã Nở Ngoài Hiên
  • Ngựa Ô Thương Nhớ
  • Những mẩu chuyện vui
  • 1001 cách biến "sim rác" thành...
  • Windows XP Media Center Edition 2008 - S...
  • Hướng dẫn chỉnh sửa dữ liệu trong form m...
  • 15 điều người dùng máy tính nên biết
  • Choáng vì "sâu" mới phát tán qua email
  • Giấu bớt những thành phần Control Panel ...
  • Thảo luận về IFrame Injection Attacks
  • Miễn phí bản quyền Ashampoo Anti-Malware...
  • Trải nghiệm với Camtasia Studio 7
  • 10 kỹ năng IT ‘hot’ của năm 2011
  • Intel công bố bộ vi xử lý Hệ thống trên ...
  • Kho phần mềm dành cho Android
  • Hung@info
  • thangbom
  • Hung@webmater
  • hebeo
  • giodaingan
  • david15
  • whitecat
  • luutruthongtin
  • systemfan_12
  • sha66b5cates0428
  • amir2x4
  • taiwindows075
  • kholuutru
  • shahmeerolivedigital9
  • ysg06363100
  • hetoxe6474
  • rootanalysisusa
  • memory_gift
  • systemfan_12
  • quatcongnghiep_saigon


  • [ Tổng hợp bài mới · Tổng số thành viên · Nội qui chung · Tìm kiếm bài viết · RSS ]
    • Page 1 of 1
    • 1
    Diễn đàn » Lập Trình » DATABASE » Attach cơ sở dữ liệu trong Microsoft SQL Server 2008
    Attach cơ sở dữ liệu trong Microsoft SQL Server 2008
    Hung@infoDate: Thứ 5, 2009-09-03, 8:03 PM | Bài viết # 1
    Trung úy
    Nhóm: Quản trị viên
    Bài viết: 994
    Uy tín: 10
    Hiện tại: Offline
    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 Attach” trong câu lệnh “Create Database” của SQL.

    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.

    Giả dụ chúng ta có cơ sở dữ liệu “MyDB1” với một file .MDF và một file .LDF tại vị trí 'C:Program FilesMicrosoft SQL ServerMSSQL10.SQL2008MSSQLDATASummary Database DataData File for Monthly ArchiveMicrosoft SQL Server 2008 Data File'. Khởi tạo cơ sở dữ liệu bằng cách sử dụng đoạn mã Transact SQL sau đây.

    Code
    Use Master  
    go  
    CREATE DATABASE MyDB1  
    ON  
    ( NAME = MyDB1_dat,  
         FILENAME = 'C:Program Files  
                  Microsoft SQL ServerMSSQL10.SQL2008MSSQLDATA  
                  Summary Database DataData File for Monthly Archive  
                  Microsoft SQL Server 2008 Data FileMyDB1.mdf',  
         SIZE = 10,  
         MAXSIZE = 50,  
         FILEGROWTH = 5 )  
    LOG ON  
    ( NAME = MyDB1_log,  
         FILENAME = 'C:Program Files  
                  Microsoft SQL ServerMSSQL10.SQL2008MSSQLDATA  
                  Summary Database DataData File for Monthly Archive  
                  Microsoft SQL Server 2008 Data FileMyDB1.ldf',  
         SIZE = 5MB,  
         MAXSIZE = 25MB,  
         FILEGROWTH = 5MB )  
    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:

    Code
    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:

    Code
    use master  
    go  
    sp_detach_db 'MyDB1'  
    go  

    CREATE DATABASE MyDB1  
    ON  
    (  
    FILENAME = 'C:Program FilesMicrosoft SQL ServerMSSQL10.SQL2008MSSQLDATASummary Database Data  
                 Data File for Monthly ArchiveMicrosoft SQL Server 2008 Data FileMyDB1.mdf'  
    ),  
    (  
    FILENAME = 'C:Program FilesMicrosoft SQL ServerMSSQL10.SQL2008MSSQLDATASummary Database Data  
                 Data File for Monthly ArchiveMicrosoft SQL Server 2008 Data FileMyDB1.ldf'  
    ) for Attach  

    go

    Bây giờ hãy detach cơ sở dữ liệu MyDB1 sau đó xóa file .LDF, tiếp theo attach lại sử dụng thủ tục lưu trữ hệ thống sp_attach_single_file_db bằng cách thực thi đoạn mã T-SQL sau:

    Code
    use master  
    go  
    sp_detach_db 'MyDB1'  
    go  
    exec master..xp_cmdshell 'del "C:Program FilesMicrosoft SQL ServerMSSQL10.SQL2008MSSQLDATASummary Database Data  
                  Data File for Monthly ArchiveMicrosoft SQL Server 2008 Data FileMyDB1.ldf"'  
    go

    Lưu ý: Trong đoạn mã trên tôi sử dụng xp_cmdshell để xóa file .LDF. Bạn sẽ nhận thông báo lỗi sau đây nếu xp_cmdshell chưa được kích hoạt:

    Code
    Msg 15281, Level 16, State 1, Procedure xp_cmdshell, Line 1  
    SQL Server blocked access to procedure 'sys.xp_cmdshell' of component 'xp_cmdshell' because this component is turned off as part of the security configuration for this server. A system administrator can enable the use of '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:

    Code
    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:

    Code
    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ả

    Code
    File activation failure. The physical file name  
                "C:Program FilesMicrosoft SQL ServerMSSQL10.SQL2008MSSQLDATASummary Database Data  
                   Data File for Monthly ArchiveMicrosoft SQL Server 2008 Data FileMyDB1.ldf" may be incorrect.  
    New log file 'C:Program FilesMicrosoft SQL ServerMSSQL10.SQL2008MSSQLDATASummary Database Data  
                   Data File for Monthly ArchiveMicrosoft SQL Server 2008 Data FileMyDB1_log.LDF' was created.  

    Bạn có thể attach riêng file .MDF của cơ sở dữ liệu trên bằng cách sử dụng lệnh “Create database” với mệnh đề “For ATTACH_REBUILD_LOG” như sau:

    Code
    use master  
    go  
    sp_detach_db 'MyDB1'  
    go  
    exec master..xp_cmdshell 'del  
                 "C:Program FilesMicrosoft SQL ServerMSSQL10.SQL2008MSSQLDATASummary Database Data  
                  Data File for Monthly ArchiveMicrosoft SQL Server 2008 Data FileMyDB1_log.ldf"'  
    go

    Lưu ý: Khi file log được tạo lại, SQL Server tự động thêm hậu tố “_log” vào tên file.

    Code
    CREATE DATABASE MyDB1  
    ON  
    (  
    FILENAME = 'C:Program FilesMicrosoft SQL ServerMSSQL10.SQL2008MSSQLDATASummary Database Data  
                 Data File for Monthly ArchiveMicrosoft SQL Server 2008 Data FileMyDB1.mdf'  
    ) for ATTACH_REBUILD_LOG

    Kết quả:

    Code
    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.

    (Theo Database Journal)


    --== Cộng đồng tin học ==--
     
    Diễn đàn » Lập Trình » DATABASE » Attach cơ sở dữ liệu trong Microsoft SQL Server 2008
    • Page 1 of 1
    • 1
    Search:


      Copyright Cộng đồng tin học © 2024