การย้ายฐานข้อมูล SQL Server 7.0 ไปยังเซิร์ฟเวอร์ใหม่ด้วยวิธีการสำรองข้อมูลและการคืนค่า

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 304692 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
ขยายทั้งหมด | ยุบทั้งหมด

เนื้อหาบนหน้านี้

สรุป

บทความนี้อธิบายถึงวิธีการคืนค่าการสำรองฐานข้อมูลสำหรับผู้ใช้และระบบบนการติดตั้ง SQL Server 7.0 อื่นซึ่งมีการกำหนดค่าอักษรไดรฟ์ที่ต่างจากเซิร์ฟเวอร์ที่คุณได้สำรองฐานข้อมูลไว้ในตอนแรก คุณสามารถใช้วิธีการนี้เมื่อคุณต้องการย้ายฐานข้อมูลโดยใช้วิธีการสำรองฐานข้อมูลและการคืนค่าฐานข้อมูล สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการใช้วิธีการอื่น โปรดคลิกที่หมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
224071 วิธีการย้ายฐานข้อมูล SQL Server ไปยังตำแหน่งใหม่โดยการใช้ฟังก์ชัน แยกออก และฟังก์ชัน แนบ ใน SQL Server (ลิงค์นี้อาจเชื่อมโยงไปยังเนื้อหาที่เป็นภาษาอังกฤษบางส่วน หรือทั้งหมด)
หมายเหตุ: คำแนะนำต่างๆ ในบทความนี้ไม่สามารถนำไปใช้กับ SQL Server 2000 ได้

คุณไม่สามารถคืนค่าฐานข้อมูลหลัก ฐานข้อมูลโมเดล ฐานข้อมูล msdb หรือฐานข้อมูลระบบแบบกระจายของ SQL Server 7.0 กลับไปสู่ SQL Server 2000 ได้ เนื่องจากฐานข้อมูลระบบ SQL Server 7.0 ไม่สามารถเข้ากันได้กับ SQL Server 2000

ข้อมูลเพิ่มเติม

ตัวอย่างต่างๆ ในบทความนี้ขึ้นอยู่กับสมมติฐานดังต่อไปนี้:
  • การติดตั้งปลายทางของ SQL Server 7.0 อยู่ในไดเรกทอรีบนไดรฟ์ D:\Mssql7 และแฟ้มฐานข้อมูลรวมทั้งแฟ้มบันทึกต่างๆ อยู่ในไดเรกทอรีเริ่มต้นบนไดรฟ์ D:\Mssql7\data
  • ส่วนการติดตั้งต้นทางของ SQL Server 7.0 อยู่ในไดเรกทอรีบนไดรฟ์ C:\Mssql7 และแฟ้มฐานข้อมูลรวมทั้งแฟ้มบันทึกต่างๆ อยู่ในไดเรกทอรีเริ่มต้นบนไดรฟ์ C:\Mssql7\data

ข้อกำหนดเบื้องต้น

  • ให้สำรองฐานข้อมูลทั้งหมดจากตำแหน่งปัจจุบัน โดยเฉพาะฐานข้อมูลหลัก ฐานข้อมูลโมเดล และฐานข้อมูล msdb
  • คุณจำเป็นต้องมีสิทธิ์ของผู้ดูแลระบบ
  • คุณจำเป็นต้องทราบชื่อโลจิคัลและชื่อทางกายภาพของข้อมูลและแฟ้มบันทึกทั้งหมดสำหรับฐานข้อมูลที่คุณต้องการคืนค่า

    หมายเหตุ: เมื่อต้องการตรวจสอบชื่อโลจิคัลและชื่อทางกายภาพของแฟ้มทั้งหมดที่คุณต้องการคืนค่าจากชุดการสำรอง ให้เรียกใช้คำสั่งต่อไปนี้ในการเชื่อมต่อ ตัววิเคราะห์คำถาม ซึ่ง mydbdata.bak คือชื่อของแฟ้มที่มีการสำรองฐานข้อมูลอยู่:
    RESTORE FILELISTONLY FROM DISK='d:\mssql7\backup\mydbdata.bak'
    go
    					
  • การติดตั้ง SQL Server 7.0 ต้นทางและปลายทางควรจะมี Service Pack แบบเดียวกันและใช้โปรแกรมแก้ไขชุดเดียวกัน
หากคุณพบปัญหาระหว่างกระบวนการดังกล่าว และไม่สามารถเข้าถึงฐานข้อมูลที่คุณย้ายได้ หรือไม่สามารถเริ่ม SQL Server ได้ ให้ตรวจสอบแฟ้มบันทึกข้อผิดพลาด SQL Server และ SQL Server 7.0 Books Online สำหรับรายละเอียดเกี่ยวกับข้อผิดพลาดที่คุณพบ

การคืนค่าฐานข้อมูล

  1. คืนค่าฐานข้อมูลหลัก

    ในตัวอย่างต่อไปนี้ ฐานข้อมูลหลักมีแฟ้มข้อมูล Master.mdf อยู่หนึ่งแฟ้ม และแฟ้มบันทึก Mastlog.ldf อยู่อีกหนึ่งแฟ้ม จากแฟ้มเต็มของการสำรองฐานข้อมูลที่ชื่อ Master_db.bak
    1. เรียกใช้คำสั่งต่อไปนี้จากหน้าจอพร้อมรับคำสั่งเพื่อเริ่ม SQL Server:
      d:\mssql7\binn\sqlservr -c -m

      หมายเหตุ: สวิตช์ -m จะเริ่ม SQL Server ในโหมดผู้ใช้คนเดียว ในโหมดผู้ใช้คนเดียว คุณไม่สามารถสร้างการเชื่อมต่อได้มากกว่าหนึ่งจุด โปรดตระหนักถึงไคลเอ็นต์หรือบริการอื่นใดที่สามารถสร้างการเชื่อมต่อแบบจุดเดียวก่อนที่คุณจะเชื่อมต่อกับตัววิเคราะห์คำถาม SQL Server
    2. ในตัววิเคราะห์คำถาม SQL Server ให้ใช้ไวยากรณ์ต่อไปนี้ในการคืนค่าสำเนาสำรองของฐานข้อมูลหลัก:
      RESTORE DATABASE master FROM disk='d:\mssql7\backup\master_db.bak'
      WITH MOVE 'master' to 'd:\mssql7\data\master.mdf',
      MOVE 'mastlog' to 'd:\mssql7\data\mastlog.ldf',
      REPLACE
      go
      หมายเหตุ: SQL Server ปิดลงโดยอัตโนมัติหลังจากคุณคืนค่าฐานข้อมูลหลัก
    3. เรียกใช้คำสั่งต่อไปนี้จากหน้าจอพร้อมรับคำสั่งเพื่อเริ่ม SQL Server:
      d:\mssql7\binn\sqlservr -c -f -T3608 -T4022
      หมายเหตุ: โดยการใช้ไวยากรณ์นี้ คุณจะสามารถทำการปรับปรุงตารางระบบ
    4. ในตัววิเคราะห์คำถาม SQL Server ดำเนินการชุดของคำสั่งดังต่อไปนี้:

      คำเตือน: การปรับปรุงตารางระบบอย่างไม่ถูกต้องอาจทำให้เกิดปัญหาร้ายแรงซึ่งอาจทำให้คุณต้องติดตั้ง SQL Server ใหม่ Microsoft ไม่สามารถรับประกันว่าปัญหาที่เกิดจากการปรับปรุงตารางระบบอย่างไม่ถูกต้องจะสามารถแก้ไขได้ การปรับปรุงตารางระบบถือเป็นความรับผิดชอบของคุณเอง
      USE master
      go
      UPDATE sysdatabases SET filename='d:\mssql7\data\tempdb.mdf' WHERE name='tempdb'
      go
      ALTER DATABASE tempdb MODIFY FILE (name = tempdev, filename = 'd:\mssql7\data\tempdb.mdf')
      ALTER DATABASE tempdb MODIFY FILE (name = templog, filename = 'd:\mssql7\data\templog.ldf')
      go
      คุณควรได้รับข้อความต่อไปนี้เป็นการยืนยันการเปลี่ยนแปลง:
      ปรับเปลี่ยนแฟ้ม 'tempdev' ใน sysaltfiles แล้ว ลบแฟ้มเก่าหลังจากเริ่มการทำงานของ SQL Server ใหม่

      ปรับเปลี่ยนแฟ้ม 'templog' ใน sysaltfiles แล้ว ลบแฟ้มเก่าหลังจากเริ่มการทำงานของ SQL Server ใหม่
  2. คืนค่าฐานข้อมูลโมเดล

    ในตัวอย่างต่อไปนี้ ฐานข้อมูลโมเดล มีแฟ้มข้อมูล Model.mdf อยู่หนึ่งแฟ้ม และแฟ้มบันทึก Modellog.ldf อยู่อีกหนึ่งแฟ้ม จากแฟ้มเต็มของการสำรองฐานข้อมูลที่ชื่อ Model_db.bak ถ้าคุณไม่มีสำเนาสำรองของฐานข้อมูลโมเดล หรือถ้าคุณต้องการใช้ฐานข้อมูลที่ได้รับการติดตั้งโดยค่าเริ่มต้นระหว่างการติดตั้ง SQL Server คุณอาจแมปฐานข้อมูลโมเดลใหม่ได้ ขั้นตอนนี้จะคล้ายกับขั้นตอนที่ได้อธิบายไว้เกี่ยวกับฐานข้อมูล northwind และฐานข้อมูล pubs ในขั้นที่ 4
    1. ในตัววิเคราะห์คำถาม SQL Server ดำเนินการ Stored Procedure ต่อไปนี้เพื่อแยกฐานข้อมูลโมเดลปัจจุบันออกจาก SQL Server:
      exec sp_detach_db N'model'
      go
      หลังจากที่คุณดำเนินการ Stored Procedure ดังกล่าวแล้ว คุณจะได้รับข้อความต่อไปนี้:
      แยกฐานข้อมูล 'model' ออกสำเร็จแล้ว
      การดำเนินการ DBCC เสร็จสมบูรณ์ ถ้า DBCC พิมพ์ข้อความแสดงข้อผิดพลาด โปรดติดต่อผู้ดูแลระบบของคุณ
      หมายเหตุ: คุณจำเป็นต้องแยกฐานข้อมูลโมเดลออก เนื่องจากคุณไม่สามารถเขียนทับฐานข้อมูลนั้นโดยตรงโดยการใช้คำสั่ง คืนค่า คุณจะต้องเอาการอ้างอิงตารางระบบสำหรับฐานข้อมูลระบบนี้ออกก่อนที่จะมีการคืนค่าฐานข้อมูลดังกล่าว นอกจากนี้ คุณยังไม่สามารถลบฐานข้อมูลเพื่อจุดประสงค์ในการเอารายการระบบเหล่านั้นออกด้วย
    2. ในตัววิเคราะห์คำถาม SQL Server ให้ใช้ไวยากรณ์ต่อไปนี้ในการคืนค่าสำเนาสำรองของฐานข้อมูลโมเดล:
      RESTORE DATABASE model FROM disk='d:\mssql7\backup\model_db.bak'
      WITH MOVE 'modeldev' TO 'd:\mssql7\data\model.mdf',
           MOVE 'modellog' TO 'd:\mssql7\data\modellog.ldf',
           REPLACE
      go
      หมายเหตุ การเชื่อมต่อกับ SQL Server อาจใช้การไม่ได้หลังจากที่คุณคืนค่าฐานข้อมูลโมเดล
  3. คืนค่าฐานข้อมูล msdb

    ในตัวอย่างต่อไปนี้ ฐานข้อมูล msdb มีแฟ้มข้อมูล Msdbdata.mdf อยู่หนึ่งแฟ้ม และแฟ้มบันทึก Msdblog.ldf อยู่อีกหนึ่งแฟ้ม จากแฟ้มเต็มของการสำรองฐานข้อมูลที่ชื่อ Msdb_db.bak
    1. เรียกใช้คำสั่งต่อไปนี้จากหน้าจอพร้อมรับคำสั่งเพื่อเริ่ม SQL Server:
      d:\mssql7\binn\sqlservr -c -f -T3608 -T4022
    2. ในตัววิเคราะห์คำถาม SQL Server ดำเนินการ Stored Procedure ต่อไปนี้เพื่อแยกฐานข้อมูล msdb ออก:
      exec sp_detach_db N'msdb'
      go
    3. ในตัววิเคราะห์คำถาม SQL Server ให้ใช้ไวยากรณ์ต่อไปนี้ในการคืนค่าสำเนาสำรองของฐานข้อมูล msdb:
      RESTORE DATABASE msdb FROM disk='d:\mssql7\backup\msdb_db.bak'
      WITH MOVE 'msdbdata' TO 'd:\mssql7\data\msdbdata.mdf',
           MOVE 'msdblog' TO 'd:\mssql7\data\msdblog.ldf',
           REPLACE
      go
      หมายเหตุ การเชื่อมต่อกับ SQL Server อาจใช้การไม่ได้หลังจากที่คุณคืนค่าฐานข้อมูล msdb
  4. ฐานข้อมูล northwind และฐานข้อมูล pubs:

    หลังจากที่คุณคืนค่าฐานข้อมูลหลักแล้ว รายการตารางระบบสำหรับฐานข้อมูล northwind และฐานข้อมูล pubs จะเปลี่ยนแปลงไป และฐานข้อมูลทั้งสองจะอยู่ในโหมด Suspect เช่นเดียวกับฐานข้อมูลผู้ใช้อื่นๆ ทั้งหมด หากคุณต้องการนำแฟ้มฐานข้อมูลต้นฉบับมาใช้ใหม่และแนบแฟ้มดังกล่าวเข้ากับเซิร์ฟเวอร์อีกครั้ง คุณสามารถใช้ตัวอย่างดังต่อไปนี้ หรือ หากคุณต้องการคืนค่าสำเนาจากการสำรอง ให้ใช้ตัวอย่างของฐานข้อมูล mydb ที่อธิบายในขั้นที่ 6 และใช้ตัวอย่างต่อไปนี้ในการปรับปรุงการอ้างอิงตารางระบบสำหรับฐานข้อมูล northwind ฐานข้อมูล northwind มีแฟ้มข้อมูล Northwind.mdf อยู่หนึ่งแฟ้ม และแฟ้มบันทึก Northwind.ldf อยู่อีกหนึ่งแฟ้ม
    1. เรียกใช้คำสั่งต่อไปนี้จากหน้าจอพร้อมรับคำสั่งเพื่อเริ่ม SQL Server:
      d:\mssql7\binn\sqlservr -c -f -T3608 -T4022
    2. ในตัววิเคราะห์คำถาม SQL Server ดำเนินการ Stored Procedure ต่อไปนี้เพื่อแยกฐานข้อมูล northwind ออก:
      exec sp_detach_db N'northwind'
      go

      หมายเหตุ: คุณอาจได้รับข้อความต่อไปนี้ที่ระบุว่า ไม่สามารถเข้าใช้งานแฟ้มทางกายภาพได้:
      เซิร์ฟเวอร์: ข้อความ 947, ระดับ 16, สถานะ 1, บรรทัด 1 ข้อผิดพลาดในขณะปิดฐานข้อมูล 'Northwind'
      แยกฐานข้อมูล 'northwind' ออกสำเร็จแล้ว
      การดำเนินการ DBCC เสร็จสมบูรณ์ ถ้า DBCC พิมพ์ข้อความแสดงข้อผิดพลาด โปรดติดต่อผู้ดูแลระบบของคุณ
    3. ในตัววิเคราะห์คำถาม SQL Server ให้ใช้ไวยากรณ์ต่อไปนี้เพื่อแนบฐานข้อมูล northwind:
      exec sp_attach_db N'northwind', N'd:\mssql7\data\northwnd.mdf', N'd:\mssql7\data\northwnd.ldf'
      go
  5. แมปฐานข้อมูล pubs ใหม่

    ฐานข้อมูล pubs มีแฟ้มข้อมูล Pubs.mdf อยู่หนึ่งแฟ้ม และแฟ้มบันทึก Pubs_log.ldf อยู่อีกหนึ่งแฟ้ม คุณสามารถแมปฐานข้อมูล pubs ใหม่ด้วยวิธีเดียวกับที่คุณแมปฐานข้อมูล northwind
  6. คืนค่าฐานข้อมูล mydb

    ฐานข้อมูล mydb มีแฟ้มข้อมูล Mydbdata.mdf อยู่หนึ่งแฟ้ม และแฟ้มบันทึก Mydblog.ldf อยู่อีกหนึ่งแฟ้ม จากแฟ้มเต็มของการสำรองฐานข้อมูลที่ชื่อ Mydb_db.bak
    1. ในตัววิเคราะห์คำถาม SQL Server ดำเนินการ Stored Procedure ต่อไปนี้เพื่อแยกฐานข้อมูล mydb ออก:
      exec sp_detach_db N'mydb'
      go
    2. ในตัววิเคราะห์คำถาม SQL Server ให้ใช้ไวยากรณ์ต่อไปนี้ในการคืนค่าสำเนาสำรองของฐานข้อมูล mydb:
      RESTORE DATABASE mydb FROM disk='d:\mssql7\backup\mydb_db.bak'
      WITH MOVE 'mydbdata' TO 'd:\mssql7\data\mydbdata.mdf',
           MOVE 'mydblog' TO 'd:\mssql7\data\mydblog.ldf',
           REPLACE
      go
  7. เปลี่ยนชื่อ SQL Server

    ข้อมูลสำคัญ: ให้ทำตามขั้นตอนนี้เฉพาะเมื่อคุณจำเป็นต้องเปลี่ยนชื่อของการติดตั้ง SQL Server ไปเป็นฐานข้อมูลหลักที่คุณเพิ่งคืนค่า

    ตัวอย่างเช่น คุณจะเปลี่ยนชื่อ SQL Server ถ้า:

    • คุณได้คืนค่าการสำรองฐานข้อมูลจากคอมพิวเตอร์ที่ชื่อ SOURCESVR ไปยังคอมพิวเตอร์ที่ชื่อ TARGETSVR
    • คอมพิวเตอร์ที่ชื่อ TARGETSVR ก็จะมี SQL Server ที่ชื่อ SOURCESVR
    หากคุณจำเป็นต้องเปลี่ยนชื่อ SQL Server ให้ใช้ไวยากรณ์ต่อไปนี้เพื่อทำข้อมูลเกี่ยวกับชื่อของคอมพิวเตอร์ และชื่อของ SQL Server ให้ตรงกัน:
    exec sp_dropserver 'SOURCESVR'
    go
    exec sp_addserver 'TARGETSVR', 'LOCAL'
    go
  8. เริ่มบริการของ SQL Server ใหม่

อ้างอิง

สำหรับข้อมูลเพิ่มเติม ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
224071 วิธีการย้ายฐานข้อมูล SQL Server ไปยังตำแหน่งใหม่โดยการใช้ฟังก์ชัน แยกออก และฟังก์ชัน แนบ ใน SQL Server (ลิงค์นี้อาจเชื่อมโยงไปยังเนื้อหาที่เป็นภาษาอังกฤษบางส่วน หรือทั้งหมด)
314546 วิธีการย้ายฐานข้อมูลระหว่างคอมพิวเตอร์ที่ใช้ SQL Server (ลิงค์นี้อาจเชื่อมโยงไปยังเนื้อหาที่เป็นภาษาอังกฤษบางส่วน หรือทั้งหมด)
หมายเหตุ: สำหรับข้อมูลเพิ่มเติมเกี่ยวกับตัวเลือกการเริ่มต้นใช้งานอื่นๆ เช่น -c, -m และ -f โปรดอ้างถึง SQL Server Books Online

คุณสมบัติ

หมายเลขบทความ (Article ID): 304692 - รีวิวครั้งสุดท้าย: 15 พฤษภาคม 2554 - Revision: 4.0
ใช้กับ
  • Microsoft SQL Server 7.0 Standard Edition
Keywords: 
kbsqlmanagementtools kbinfo KB304692

ให้ข้อเสนอแนะ

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com