Tuesday, June 5, 2007

การย้าย Database SQL Server 2000

เนื่องจากทางออฟฟิตผมต้องทำการย้ายเครื่อง Database Server ที่เป็น SQL Server 2000 ผมจึงต้องคิดแผนในการย้ายครั้งนี้ โดยผมได้สรุปแผนได้ดังนี้

1. ทำการย้ายโดยการ copy ไฟล์ *.mdf และ *.ldf

เป็นวิธีที่ง่ายที่สุด แต่ต้อง stop บริการของ SQL Server ในเครื่องเก่าก่อนจึงสามารถ copy ไฟล์ได้ โดยทำการ copy ไปยังเครื่องใหม่ โดยต้องกำหนดไดเรกทอรี่ทุกอย่างของไฟล์ให้เหมือนเดิม ซึ่งในการ copy ไฟล์จะต้อง copy ทุกไฟล์แม้กระทั่ง master, model, msdb ไฟล์ (system database) เพื่อให้ข้อกำหนดทุกอย่างของ Server เหมือนเดิม เช่น Login, DTS, Job เป็นต้น

2. ทำการย้ายโดยการ restore ฐานข้อมูล master

วิธีนี้ทำให้ไม่ต้อง stop บริการของ SQL Server ในเครื่องเก่าก่อน แต่มีวิธีการที่ยุ่งยากมากเนื่องจากต้อง restore ฐานข้อมูล master, msdb และ user database ทั้งหมดเอง

การ restore master database

เนื่องจาก master database เป็น system database จึงไม่สามารถ restore ได้ทันที ต้อง start ระบบแบบ single-user ก่อนจึงสามารถ restore ได้ โดยการ start ระบบ SQL Server ให้เป็น single-user ให้ทำดังนี้

1. ยังไม่ต้อง start SQL Server ให้เปิด command-line และไปที่ C:Program FilesMicrosoft SQL ServerMSSQLBinn

2. พิมพ์ Sqlservr -m -s <instance_name> เช่น Sqlservr -m -s SQL_instance_2 ถ้าไม่มี instance ก็ไม่ต้องกำหนด -s ครับ เช่น Sqlservr -m

3. บริการ SQL Server จะ start แบบ single-user โดยมีข้อความใน command prompt ดังนี้

ยังไม่ต้องปิด command prompt นี้

4. จากนั้นก็สามารถ restore master database ได้แล้วครับ จะ restore โดยใช้ Enterprise Manager หรือ เปิด Command prompt อีกอันก็ได้ครับ

5. เมื่อ restore master เรียบร้อยแล้ว ก็สามารถปิด command prompt ที่ start ไว้ได้แล้ว

6. ทำการ restore msdb

7. ทำการ restore user database ทั้งหมด

ส่วนใน DTS และ Job ที่มีการอ้างถึง SQL Server ตัวเดิม ให้ทำการเปลี่ยนเป็น SQL Server ตัวใหม่

ตรวจสอบรายละเอียดอื่นๆ ว่าสามารถทำงานได้ปกติหรือไม่ เช่น การกำหนด operation เพื่อส่ง e-mail การกำหนด Link-server

No comments: