Thứ Năm, 21 tháng 3, 2013

Chuyển Website dotnetnuke với CSDL SQL sang máy khác

Mở bài là nguyên nhân lý do tại sao mình viết bài này :)
Thành quả của nhóm đã được leader Tân dồn hết vào máy y ! dữ liệu nhập vào để làm demo thuyết trình cho ban giám đốc cũng ở máy y ! để có thể thuyết phục thì tất cả đống đó cần được chuyển sang máy chủ server để chạy ! từ đó mà vấn đề được phát sinh khi mà chuyển Website từ máy y sang máy chủ server .
Ví dụ cụ thể:
Máy 1: Đang có Website portal và đầy đủ CSDL
Máy 2: Cần chuyển hết Portal và CSDL từ máy 1 sang máy 2.
Khi chuyển sang :
 Ta cần chuyển thư mục Portal và CSDL .
- Ta copy thư mục Portal ở đường dẫn C:\inetpub\wwwroot ở máy 1 sáng máy 2 .
- Chuyển CSDL ở SQL 2008 từ các máy khác nhau.
Gạch đầu dòng thứ nhất thì quá đơn giản rồi. Gạch đầu dòng thứ 2 có nhiều cách nhưng ở đây mình sử dụng attach CSDL, cụ thể như sau.
  Ta muốn chuyển CSDL có tên NCKH ở máy 1 với đầy đủ CSDL đã nhập.
   - Tìm đến 2 file có tên NCKH.mdf  và NCKH_log.mdf ở đường dẫn C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA . Rồi copy chúng sang máy 2, đặt ở đâu cũng được nhưng khuyên là đặt ở đường dẫn này C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA
Việc tiếp theo là bật SQL server 2008 lên và :

Chuột phải vào Database chọn Attach

Tiếp theo click Add -> tìm đường dẫn tới file NCKH.mdf và open - > ok

Kết quả sẽ xuất hiện CSDL NCKH trong Database của bạn ! vào thử xem các cột các giá trị có không nhé 

Đến đầy nhiều người nghĩ đã ok và mở Web Brower và thử thành quả  ! đảm bảo các bạn là thành quả sau khi làm mấy thao tác trên là :

nếu tưởng ấn next là ok thì đây :)

Error :)

Vấn đề ở đây là portal không liên kết với CSDL mà lúc nãy ta attach ! Cũng có trường hợp thành công nhưng điều đó là 1% và sau khi đọc xong thì các bạn sẽ hiểu tại sao.

 Sau vài tiếng lên Bác Google tìm kiếm hết link việt đến tiếng anh thì cứ thấy nhắc đến cái gì đó Webconfig...
mình nhảy vào thư mục portal và tìm đến file webconfig. 

Open with với notepad để xem nhé :)
 và mấu chốt vấn đề là ở đây: (Ảnh cố tình để to cho các bạn dễ nhìn :))

 Chạy vào SQL server 2008 kiểm tra cái CSDL NCKH thì đúng là nó không Owner với User : dotnetnuke

mà thực tế thì SQL server 2008 ở máy 2 chưa có User này.

Vấn đề đã được tìm ra , giải quyết thôi :
Tạo 1 User mới với tên dotnetnuke.

tên và Pass ý hệt cái user và pass trong file webconfig nha !

Đến CSDL NCKH chuột phải chọn Properties.

chọn tab File ->Owner->Browse..->tick dotnetnuke->ok

Trở lại Security->login->chuột phải dotnetnuke chọn properties ! ở tab user mapping sẽ có tick ở mục NCKH và ở Genaral , default database chọn NCKH:
ok ! thế là ok rồi đó !

Thử ngắt kết nối SQL và vào lại với user dotnetnuke xem sao ! nếu được thì đã xong ! 

Một điều lưu ý nữa là quay lại file Webconfig chú ý mục mình đánh dấu : 
Đánh dấu và chú ý .\SQLExpress
Khi đăng nhập SQL thì nhớ chọn server name : [TênPC]\SQLExpress.
Bây giờ mở Web browser và vào thử Portal của mình và hưởng thành quả :)

Chúc các bạn thành công ! có gì thắc mắc thì comment mình biết sẽ giải đáp nhé :)


















Không có nhận xét nào:

Đăng nhận xét