Di chuyển dữ liệu từ SQL Server 2005 đến 2016


9

Tôi chưa quen với việc quản trị SQL Server tuy nhiên tôi cảm thấy thoải mái với ngôn ngữ SQL và tạo các gói SSIS.

Tôi muốn di chuyển dữ liệu từ SQL Server 2005 đến 2016.

Câu hỏi của tôi là tôi có cần phải lo lắng về cơ sở dữ liệu hệ thống và các đối tượng khác như chỉ mục, thủ tục được lưu trữ, chế độ xem, bảo mật và quyền. đăng nhập hoặc tôi chỉ có thể di chuyển dữ liệu.

Đó sẽ là thủ tục được đề nghị trong trường hợp này.


Bạn đang cố gắng nâng cấp một ví dụ sản xuất ? tức là bạn có cần thông tin đăng nhập, chỉ mục, procs lưu trữ, vv không? Vì nó là, câu hỏi của bạn thực sự khá rộng. Vui lòng tham quan và đọc trung tâm trợ giúp về cách đặt câu hỏi hay. Cảm ơn!
Max Vernon

Câu trả lời:


7

Max đã đưa ra một câu trả lời đàng hoàng mà tôi sẽ nêu lên sau khi tôi gõ xong cái nhìn thay thế này lên.

Tôi không phải là người thích khôi phục cơ sở dữ liệu hệ thống khi thực hiện di chuyển nâng cấp và tôi thích thực hiện di chuyển hơn là nâng cấp tại chỗ như tôi đã thảo luận trong câu trả lời dài này cho một câu hỏi khác.

Về cơ bản, tôi thích bắt đầu "mới" khi tôi di chuyển. Tôi thấy rằng chơi với việc di chuyển và nâng cấp cơ sở dữ liệu hệ thống thông qua khôi phục để đôi khi gây ra sự thất vọng với các khôi phục và nó có thể mang theo những tội lỗi tiềm ẩn.

Bạn cũng đã hỏi về chỉ mục, thủ tục lưu trữ, lượt xem. Tất cả các mục ở cấp cơ sở dữ liệu phải nằm trong cơ sở dữ liệu người dùng. Vì vậy, khi bạn khôi phục cơ sở dữ liệu X sang máy chủ mới, tất cả các đối tượng cơ sở dữ liệu (Bảng, Người dùng, Chế độ xem, Procs, Hàm, v.v.) cũng sẽ ở đó.

Những gì tồn tại trong cơ sở dữ liệu hệ thống là công việc, đăng nhập, cảnh báo, máy chủ được liên kết, khóa mã hóa, v.v.

Tôi muốn xem lại những thứ đó và di chuyển qua những gì tôi cần bằng cách sử dụng các tập lệnh khác nhau - gần đây đó là tập lệnh DBATools.Io powershell. Tôi thích sử dụng tập lệnh của họ để sao chép thông tin đăng nhập sql đặc biệt, bởi vì nó xử lý người dùng được xác thực SQL giữ mật khẩu và số nhận dạng bảo mật của họ giống nhau để người dùng cơ sở dữ liệu từ những lần đăng nhập đó sẽ hoạt động. Họ cũng có toàn bộ lệnh di chuyển SQL Server chạy các lệnh phụ của họ để sao chép qua các mục mà tôi thường sao chép.

Tôi không tin Max sai với câu trả lời đó vì thế upvote. Tôi đã có nhiều thành công hơn và may mắn hơn và cảm thấy thoải mái hơn khi chuyển sang mới thay vì cố gắng khôi phục cơ sở dữ liệu hệ thống giữa các phiên bản. Tôi thực sự nói rằng tôi thực sự không thể nhớ lần cuối cùng tôi thực hiện nâng cấp phiên bản và không làm theo cách này thay vì khôi phục cơ sở dữ liệu hệ thống.


Cảm ơn câu trả lời của bạn. Tôi không muốn nâng cấp từ năm 2005 lên 2016. Tôi muốn di chuyển cơ sở dữ liệu từ một phiên bản không còn được sử dụng trên máy chủ sql 2005 sang phiên bản hiện có vào năm 2016. Việc di chuyển này chưa được phê duyệt, nhưng tôi muốn chuẩn bị khi nào nó làm Về cơ bản, tôi đã nhận được dự án này bởi vì tôi là người duy nhất có bất kỳ kinh nghiệm SQL nào về truy vấn và tạo các gói SSIS. Tôi cũng quan tâm đến các vấn đề tương thích. Một lần nữa cảm ơn.
Robert

Chắc chắn - nhưng khi chuyển từ năm 2005 đến 2016 - bạn đang thực hiện nâng cấp. Bạn đang thực hiện nâng cấp và di chuyển. Bởi vì bạn đang lấy cơ sở dữ liệu từ một phiên bản SQL này sang phiên bản khác - điều đó ngụ ý nâng cấp chắc chắn. Bạn nên chạy trình cố vấn nâng cấp trên cơ sở dữ liệu của bạn.
Mike Walsh

Điều gì sẽ xảy ra nếu SQL Server 2005 được lưu trữ bởi Windows Server 2003 R2 x86 và SQL Server 2016 trên hệ điều hành mới hơn.
Robert

@MikeWalsh Tôi đồng ý với hầu hết tất cả những gì bạn mô tả trong phản hồi của bạn. Tôi cũng tuân theo hầu hết tất cả khi thực hiện Nâng cấp / Di chuyển SQL
nam

4

Bạn muốn xem xét việc di chuyển cơ sở dữ liệu hệ thống (chính, msdb và có lẽ là mô hình), nếu bạn cần quyền truy cập vào siêu dữ liệu được lưu trữ trong các cơ sở dữ liệu đó.

Master lưu trữ các mục như đăng nhập, chứng chỉ bảo mật, v.v.

msdb chứa chi tiết về các bản sao lưu và lưu trữ các cấu hình công việc của SQL Server Agent, cùng với các chi tiết khác.

Mô hình có thể đã được bạn hoặc nhóm của bạn tùy chỉnh để cho phép các cơ sở dữ liệu trống mới được tạo có chứa một tập hợp các đối tượng được xác định trước mà bạn sử dụng trong mọi cơ sở dữ liệu.

Di chuyển cơ sở dữ liệu hệ thống có thể được thực hiện khá dễ dàng; hướng dẫn chi tiết có sẵn từ MSDN khi sao lưu và khôi phục cơ sở dữ liệu hệ thống (SQL Server) .

Tùy thuộc vào yêu cầu của bạn, bạn có thể thực hiện BACKUP DATABASEthao tác đối với cơ sở dữ liệu người dùng trong phiên bản 2005 và sau đó RESTORE DATABASEvào phiên bản 2016 để mang toàn bộ cơ sở dữ liệu, bao gồm tất cả dữ liệu, chỉ mục và các đối tượng khác.

Điều này, ít nhất là ban đầu, sẽ yêu cầu cùng một lượng không gian được sử dụng bởi cơ sở dữ liệu trong ví dụ 2005. Tuy nhiên, khi bạn đã khôi phục cơ sở dữ liệu, bạn có thể tận dụng việc nén dữ liệu để giảm đáng kể dấu chân cần thiết.

Xem Giới thiệu về Làm việc với Sao lưu Máy chủ SQL để biết chi tiết về thực hiện sao lưu và Giới thiệu về Kịch bản Khôi phục để biết chi tiết về khôi phục.


2

Đến năm 2012 hay 2016? Nó tạo ra sự khác biệt ở chỗ, IIRC 2012 là một đường di chuyển được thử nghiệm trong khi năm 2016 thì không. Như vậy, các sự cố đã biết được ghi lại và / hoặc sẽ được bắt gặp bởi Trình cố vấn nâng cấp cho năm 2012. Một đường dẫn không được kiểm tra vẫn có thể hoạt động mà không có bất kỳ vấn đề nào, điều đó chỉ là chưa biết. Điều đó nói rằng, rất khuyến khích bạn đi đến năm 2016. Tôi nghi ngờ nỗ lực sẽ gần như giống nhau.

Xem Bạn có đang nâng cấp từ SQL Server 2005 không? trong tài liệu cho các tùy chọn nâng cấp năm 2005 và liên kết đến quá trình nâng cấp rất chi tiết. Quá trình nâng cấp đã được viết cho năm 2014 nhưng vẫn được áp dụng cho năm 2016.


1
Đó là năm 2016. Xin lỗi về điều đó
Robert
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.