ฉันจะสำรองฐานข้อมูล SQL Server ระยะไกลไปยังไดรฟ์ภายในได้อย่างไร


241

ฉันต้องการคัดลอกฐานข้อมูลจากเซิร์ฟเวอร์ระยะไกลไปยังเซิร์ฟเวอร์ท้องถิ่น ฉันพยายามใช้ SQL Server Management Studio แต่สำรองได้เฉพาะไดรฟ์บนเซิร์ฟเวอร์ระยะไกลเท่านั้น

บางจุด:

  • ฉันไม่มีสิทธิ์เข้าถึงรีโมตเซิร์ฟเวอร์ในวิธีที่ฉันสามารถคัดลอกไฟล์ได้
  • ฉันไม่สามารถเข้าถึงการตั้งค่าเส้นทาง UNC ไปยังเซิร์ฟเวอร์ของฉันได้

ความคิดใด ๆ ของฉันจะคัดลอกฐานข้อมูลนี้ได้อย่างไร ฉันจะต้องใช้เครื่องมือของบุคคลที่สามหรือไม่


1
ฉันคิดว่าถ้าคุณไม่มีสิทธิ์เข้าถึงโครงสร้างไดเรกทอรีเลยคุณจะต้องลองทำสิ่งนี้
JNK

3
คุณแค่พยายามคัดลอกฐานข้อมูลแทนที่จะสำรองไว้โดยเฉพาะหรือไม่ ถ้าเป็นเช่นนั้นคุณสามารถใช้ Copy Database Wizard หรือ (ใน SQL Server 2008) ใช้ตัวเลือก "Generate Scripts" เพื่อสคริปต์ Schema และ Data การเปรียบเทียบ Redgate SQL และการเปรียบเทียบข้อมูลยังมีประโยชน์ที่นี่
Martin Smith

1
@MartinSmith ตามคำแนะนำของคุณฉันสร้างสคริปต์โดยใช้Generate and Publish Scriptsตัวเลือก ฉันรับตารางและ schema ทั้งหมด แต่ฉันไม่ได้รับข้อมูลใด ๆ กับตาราง ฉันจะแก้ไขสิ่งนี้ได้อย่างไร
ur เพื่อนแท้

คำตอบ:


182

ใน Microsoft SQL Server Management Studio คุณสามารถคลิกขวาบนฐานข้อมูลที่คุณต้องการสำรองข้อมูลและคลิก Tasks -> สร้างสคริปต์

สิ่งนี้จะเปิดตัวช่วยสร้างที่คุณสามารถตั้งค่าต่อไปนี้เพื่อทำการสำรองข้อมูลที่เหมาะสมของฐานข้อมูลของคุณแม้บนเซิร์ฟเวอร์ระยะไกล :

  • เลือกฐานข้อมูลที่คุณต้องการสำรองข้อมูลและกดถัดไป
  • ในตัวเลือกที่นำเสนอให้คุณ:
    1. ในปี 2010: ภายใต้ตัวเลือกตาราง / มุมมองเปลี่ยน 'ข้อมูลสคริปต์' และ 'ดัชนีสคริปต์' เป็นจริงและกดถัดไป
    2. ในปี 2012: ภายใต้ 'ทั่วไป' เปลี่ยน 'ประเภทของข้อมูลเป็นสคริปต์' จาก 'สคีมาเท่านั้น' เป็น 'สคีมาและข้อมูล'
    3. ในปี 2014: ตัวเลือกสำหรับสคริปต์ข้อมูลตอนนี้ "ซ่อน" ในขั้นตอน "ตั้งค่าสคริปต์ตัวเลือก" คุณต้องคลิกที่ "ขั้นสูง" และตั้งค่า "ประเภทของข้อมูลสคริปต์" เป็น "สคีมาและข้อมูล"
  • ในสี่หน้าต่างถัดไปให้กด 'เลือกทั้งหมด' จากนั้นคลิกถัดไป
  • เลือกสคริปต์ไปยังหน้าต่างแบบสอบถามใหม่

เมื่อเสร็จแล้วคุณจะมีสคริปต์สำรองพร้อมต่อหน้าคุณ สร้างฐานข้อมูลท้องถิ่น (หรือระยะไกล) ใหม่และเปลี่ยนคำสั่ง 'USE' ตัวแรกในสคริปต์เพื่อใช้ฐานข้อมูลใหม่ของคุณ บันทึกสคริปต์ในที่ปลอดภัยและดำเนินการต่อจากฐานข้อมูลใหม่ที่ว่างเปล่า สิ่งนี้ควรสร้างฐานข้อมูลภายในเครื่อง (เกือบ) ที่ซ้ำกันคุณสามารถสำรองข้อมูลได้ตามต้องการ

หากคุณสามารถเข้าถึงฐานข้อมูลระยะไกลได้อย่างสมบูรณ์คุณสามารถเลือก 'สคริปต์วัตถุทั้งหมด' ในหน้าต่างแรกของตัวช่วยสร้างจากนั้นเปลี่ยนตัวเลือก 'ฐานข้อมูลสคริปต์' เป็น True ในหน้าต่างถัดไป ระวังแม้ว่าคุณจะต้องทำการค้นหาแบบเต็ม & แทนที่ชื่อฐานข้อมูลในสคริปต์เป็นฐานข้อมูลใหม่ซึ่งในกรณีนี้คุณไม่จำเป็นต้องสร้างก่อนที่จะเรียกใช้สคริปต์ สิ่งนี้ควรสร้างสำเนาที่ถูกต้องมากขึ้น แต่บางครั้งไม่สามารถใช้งานได้เนื่องจากข้อ จำกัด สิทธิ์


9
ใน SQL Server Management Studio 2012 ไม่มีตัวเลือกดังกล่าวเป็น 'ข้อมูลสคริปต์' ดังนั้นในรุ่นที่ใหม่กว่าจะทำสิ่งต่อไปนี้สำหรับขั้นตอนที่ 2: ภายใต้ 'ทั่วไป' เปลี่ยน 'ประเภทของข้อมูลเป็นสคริปต์' จาก 'สคีมาเท่านั้น' เป็น 'สคีมา และข้อมูล '
berezovskyi

1
ฉันตรวจสอบมันใน SQL Server 2008 R2 และมันใช้งานได้อย่างมีเสน่ห์ ในการใช้งานสำหรับกลยุทธ์การสำรองข้อมูลจำเป็นต้องทำงานเพิ่มเติมด้วยตัวเอง แต่ฉันคิดว่าดีกว่าการใช้เครื่องมือของบุคคลที่สามเช่น RedGate เป็นต้นบางทีฉันอาจเป็นคนหวาดระแวง แต่ฉันคิดว่าเครื่องมือของบุคคลที่สามส่วนใหญ่มีรหัสพิเศษและจะได้รับ ควบคุมและลดความเรียบง่ายและชัดเจนของสคริปต์ ขอบคุณมาก.
QMaster

2
@ShaunLuttin หากคุณแน่ใจว่าได้เปลี่ยน 'ประเภทของข้อมูลเป็นสคริปต์' จาก 'Schema เท่านั้น' เป็น 'Schema และข้อมูลในขั้นตอนที่สอง (ในปี 2012) คำสั่ง INSERT จะปรากฏขึ้น
Daniel Gill

6
ใน SSMS 2014 ตัวเลือกในการเปลี่ยนจากสคีมาเป็นสคีมาและข้อมูลจะถูกซ่อนไว้ด้านหลัง "ขั้นสูง" เมื่อเลือกตำแหน่งที่จะบันทึกสคริปต์
MushinNoShin

2
เมื่อฉันพยายามเรียกใช้สคริปต์โดยใช้วิธีนี้ฉันได้รับข้อผิดพลาดจากสตูดิโอการจัดการเซิร์ฟเวอร์ SQL เกี่ยวกับ "หน่วยความจำไม่เพียงพอที่จะดำเนินการของโปรแกรม (mscorelib)"
Rob

51

ก่อนอื่นให้สิทธิ์การควบคุมแบบเต็มรูปแบบกับเส้นทางในเครื่องของคุณ (ดังที่แสดงด้านล่าง) กับทุกคน (หรือให้สิทธิ์เฉพาะกับบัญชีตัวแทนของเซิร์ฟเวอร์ SQL)

ประการที่สองดำเนินการต่อไปนี้:

BACKUP DATABASE [dev] TO  DISK = N'\\myMachine\c\dev.bak' WITH COPY_ONLY, INIT;

14
นี่คือคำตอบของคำถาม สิ่งนี้จะ "สำรองฐานข้อมูล SQL Server ระยะไกลไปยังไดรฟ์ในเครื่อง" และไม่ใช่ "ตารางสคริปต์และข้อมูล" บางคน: โปรดทำเครื่องหมายคำตอบนี้ว่ายอมรับและลบคำตอบที่ผิดโดย Daniel Gill
Henrik Holmgaard Høyer

ในขณะที่ฉันคิดว่านี่เป็นคำตอบที่ดีกว่าคำถามถามสำหรับ "ความคิดใด ๆ ของฉันสามารถคัดลอกฐานข้อมูลนี้ได้อย่างไร" ไม่สำรองข้อมูลโดยเฉพาะ
Oliver Townshend

11
สิ่งนี้จะถือว่าเครื่องระยะไกลสามารถเข้าถึงไฟล์ในเครื่องของคุณซึ่งไม่ใช่กรณีทั่วไป
Anders Lindén

หวังว่าฉันจะสามารถโหวตคุณมากกว่าหนึ่งครั้ง นี่คือคำตอบที่สมบูรณ์แบบและสิ่งที่ฉันอยากทำมานานหลายปี ง่ายมาก ... สมบูรณ์แบบมาก ๆ มันจะไม่แก้ปัญหาทุกกรณีในโลก แต่มันทำงานได้อย่างสมบูรณ์แบบสำหรับฉันที่ฉัน remoting เข้าไปในเครื่อง แต่ไม่ใช่เครื่องที่มี SQL Server
ลุย Hatler

นี่ก็มีคนทำงานให้ด้วยเช่นกัน เพียงแชร์โฟลเดอร์ในเครื่องกับทุกคนชั่วคราวทำการสำรองข้อมูลแล้วปิดการแชร์ ฉันคิดว่านี่ควรเป็นคำตอบที่ถูกต้อง
Fred Rogers

51

เมื่อต้องการคัดลอกข้อมูลและสคีมาเท่านั้น (จะไม่คัดลอกกระบวนงานที่เก็บไว้ฟังก์ชัน ฯลฯ ) ใช้ตัวช่วยสร้างการนำเข้าและส่งออกเซิร์ฟเวอร์ SQL และเลือกใหม่ ...เมื่อเลือกฐานข้อมูลปลายทาง

คลิกขวาที่ฐานข้อมูล> ภารกิจ> นำเข้าข้อมูล

เลือกแหล่งข้อมูล

  • แหล่งข้อมูล : SQL Server Native Client
  • ชื่อเซิร์ฟเวอร์ : เซิร์ฟเวอร์ระยะไกล
  • การรับรองความถูกต้อง :
  • ฐานข้อมูล : ชื่อ db

เลือกปลายทาง

  • แหล่งข้อมูล : SQL Server Native Client
  • ชื่อเซิร์ฟเวอร์ : เซิร์ฟเวอร์ภายใน
  • การรับรองความถูกต้อง :
  • ฐานข้อมูล :New...

ที่เหลือก็ตรงไปตรงมา


2
มันทำงานได้ดีกว่าสำหรับฉันมากกว่าคำตอบที่ยอมรับ จัดการความสัมพันธ์ระหว่างตารางได้อย่างหมดจดยิ่งขึ้น
MushinNoShin

7
Welp ไม่ได้ตั้งค่าตัวตนและข้อ จำกัด เริ่มต้นอย่างน่าเสียดาย :(
MushinNoShin

1
นี่เป็นวิธีที่ดีกว่าการสร้างสคริปต์ บางครั้งสคริปต์อาจมีขนาดค่อนข้างใหญ่ ความชอบส่วนบุคคล. ไม่มีการกระทำผิดกฎหมาย :)
Vikas

นี่เป็นวิธีที่ง่ายกว่าและจะเป็นของฉัน แต่ถ้าด้วยเหตุผลบางอย่างที่คุณต้องการคอลัมน์เช่น object_id, create_data, ปรับเปลี่ยนวันที่ตามที่เป็นใน sys.tables เพียงจำไว้ว่าพวกเขาจะได้รับการแก้ไขตามการสร้าง
Crismogram

@MushinNoShin คุณสามารถสร้างสคริปต์ก่อนแล้วจึงนำเข้า / ส่งออกข้อมูลโดยเปิดใช้งานการแทรกข้อมูลประจำตัวในขั้นตอนการทำแผนที่
HasanG

29

คุณไม่สามารถสร้างการสำรองข้อมูลจากเซิร์ฟเวอร์ระยะไกลไปยังดิสก์ภายในเครื่อง - ไม่มีวิธีการทำเช่นนี้ และไม่มีเครื่องมือของบุคคลที่สามที่จะทำเช่นนี้เท่าที่ฉันรู้

สิ่งที่คุณสามารถทำได้คือสร้างการสำรองข้อมูลบนเครื่องเซิร์ฟเวอร์ระยะไกลและให้มีคนซิปขึ้นและส่งให้คุณ


5
ฉันไม่เห็นด้วย. คุณสามารถใช้คำสั่ง 'สร้างสคริปต์' ของ MS SQL Server Management Studio เพื่อสร้างสคริปต์ที่สามารถเรียกใช้เพื่อสร้างฐานข้อมูลท้องถิ่นซึ่งคุณสามารถทำได้ตามที่คุณต้องการ ดูคำตอบของฉันด้านล่างหรือความเห็นของ Martin Smith ในคำถาม
Daniel Gill

19
@Rafid: ใช่ - แต่นั่นไม่ใช่การสำรองข้อมูลจริง- เป็นการส่งออกสคริปต์ / ข้อมูล .....
marc_s

2
@marc_s มีอะไรเกี่ยวกับ "การสำรองข้อมูลจริง" ที่แตกต่างจากสำเนาที่ส่งออกหรือไม่ บันทึก? มีอะไรอีกไหม
Dronz

31
@Dronz: ใช่! การส่งออกสคริปต์จะสร้างโครงสร้างและอาจเป็นข้อมูลในตาราง - แต่ไม่สามารถรวมสิ่งต่าง ๆ เช่นบันทึกธุรกรรมและสถิติและส่วนสำคัญอื่น ๆ ของฐานข้อมูล SQL Server
marc_s

1
@ShaunLuttin คุณสามารถรวมข้อมูลได้
Erwin Rooijakkers เมื่อ

17

ฉันรู้ว่านี่เป็นคำตอบที่ล่าช้า แต่ฉันต้องแสดงความคิดเห็นเกี่ยวกับคำตอบที่โหวตส่วนใหญ่ซึ่งระบุว่าจะใช้ตัวเลือกสร้างสคริปต์ใน SSMS

ปัญหาที่เกิดขึ้นคือตัวเลือกนี้ไม่จำเป็นต้องสร้างสคริปต์ในลำดับการดำเนินการที่ถูกต้องเพราะไม่คำนึงถึงการพึ่งพา

สำหรับฐานข้อมูลขนาดเล็กนี่ไม่ใช่ปัญหา แต่สำหรับฐานที่มีขนาดใหญ่กว่านั้นเป็นเพราะต้องการสั่งซื้อสคริปต์ด้วยตนเองอีกครั้ง ลองใช้กับฐานข้อมูลวัตถุ 500;)

น่าเสียดายในกรณีนี้ทางออกเดียวคือเครื่องมือของบุคคลที่สาม

ฉันประสบความสำเร็จในการใช้เครื่องมือเปรียบเทียบจากApexSQL (Diff และ Data Diff) สำหรับงานที่คล้ายกัน แต่คุณไม่สามารถผิดพลาดกับเครื่องมืออื่น ๆ ที่กล่าวถึงที่นี่โดยเฉพาะ Red Gate


1
ฉันไม่เห็นด้วยสำหรับฉัน sql มักจะสั่งการพึ่งพาอย่างถูกต้องคุณมีตัวอย่างเฉพาะของวิธีการทำซ้ำพฤติกรรมที่คุณได้กล่าวถึง?
เลื่อย

นอกจากนี้ยังมีตัวเลือกในการพิจารณาเรื่องนี้
Gaspa79

13

คุณสามารถลองSQLBackupAndFTP มันจะสร้างสคริปต์เพื่อสร้างวัตถุทั้งหมดในฐานข้อมูลของคุณและคำสั่ง INSERT สำหรับแถวทั้งหมดในตารางของคุณ ในฐานข้อมูลใด ๆ ที่คุณสามารถเรียกใช้ไฟล์สคริปต์นี้และฐานข้อมูลทั้งหมดจะถูกสร้างขึ้นใหม่


4
หนุน ต้องติดตั้งสตูดิโอการจัดการเซิร์ฟเวอร์ sql เวอร์ชันใหม่และสคริปต์ไม่สามารถเหมือนที่ฉันเคย เครื่องมือนี้ดูแลอย่างรวดเร็วและไม่มีปัญหาแม้จะไม่สามารถเข้าถึงเซิร์ฟเวอร์ระยะไกลได้อย่างสมบูรณ์ (โปรแกรมเสริม addharbor sqlserver)
Daniel Gill

1
โปรดทราบว่าซอฟต์แวร์นี้ใช้ทรัพยากรอย่างหนัก
Dementic

ด้านบนของการเป็นรถและไม่แน่ใจว่าทั้งหมดนี้ทำงานได้อย่างถูกต้อง สามารถเชื่อมต่อกับเซิร์ฟเวอร์ระยะไกลผ่าน PHP ไม่ได้ แต่ไม่สามารถทำได้? เมื่อฉันมีการตั้งค่าที่เหมาะสมบนเซิร์ฟเวอร์ของตัวเอง ดังนั้น ... กำลังดำเนินการอยู่
Shawn Rebelo

7

ดูบล็อกนี้สำหรับคำอธิบายวิธีคัดลอกฐานข้อมูลระยะไกล:

สำรองฐานข้อมูล SQL Server 2008 จากสภาพแวดล้อมการโฮสต์ที่ใช้ร่วมกัน


1
วิธีการนี้จะอธิบายวิธีสคริปต์โครงสร้างของฐานข้อมูลสร้างภายในและใช้เครื่องมือการจัดการ SQL เพื่อคัดลอกข้อมูลระหว่างฐานข้อมูลท้องถิ่นและระยะไกล
Drew Noakes

1
คุณสามารถเปลี่ยนตัวเลือก 'ข้อมูลสคริปต์' เป็น True เพื่อสคริปต์ข้อมูลได้ในครั้งเดียว
Daniel Gill

การคัดลอกและสำรองข้อมูลเป็นสองสิ่งที่แตกต่างกัน
Anders Lindén

มันสมบูรณ์แบบเพราะฉันต้องทำงานกับฐานข้อมูลปี 2559 โดยใช้ sql server 2012 และไม่สามารถใช้การสำรองข้อมูลปี 2559 ในปี 2012
majjam

6

มีวิธีแก้ปัญหา 99% ในการรับไฟล์ bak จาก remote sql server ไปยังเครื่องคอมพิวเตอร์ของคุณ ฉันอธิบายไว้ที่นั่นในโพสต์ของฉันhttp://www.ok.unsode.com/post/2015/06/27/remote-sql-backup-to-local-pc

โดยทั่วไปจะมีลักษณะเช่นนี้:

  • รันสคริปต์ sql เพื่อสร้างไฟล์ bak

  • รันสคริปต์ sql เพื่อแทรกไฟล์ bak แต่ละไฟล์ลงในตาราง temp ที่มีประเภทฟิลด์ varbinary และเลือกแถวนี้และดาวน์โหลดข้อมูล

  • ทำซ้ำก่อนหน้า ขั้นตอนมากเท่าที่คุณมีไฟล์ bak

  • รันสคริปต์ sql เพื่อลบทรัพยากรชั่วคราวทั้งหมด

แค่นั้นแหละคุณมีไฟล์ bak ในเครื่องคอมพิวเตอร์ของคุณ


5

คุณสามารถใช้คัดลอกฐานข้อมูล ... คลิกขวาที่ฐานข้อมูลระยะไกล ... เลือกงานและใช้ฐานข้อมูลคัดลอก ... มันจะถามคุณเกี่ยวกับเซิร์ฟเวอร์ต้นทางและเซิร์ฟเวอร์ปลายทาง แหล่งที่มาของคุณคือรีโมตและปลายทางเป็นอินสแตนซ์โลคัลของคุณของเซิร์ฟเวอร์ sql

มันง่ายมาก


คัดลอกฐานข้อมูลต้องการสิทธิ์ SysAdmin นี่ไม่ใช่วิธีแก้ปัญหาสำหรับผู้ใช้ปกติของฐานข้อมูล
Buggieboy

ในประเด็นของฉันวันนี้ทีมนักพัฒนาของเรามีสิทธิ์ดูแลระบบ ดังนั้นฉันจะใช้แนวทางของ Pouyan
รหัสกับ Hammer

แต่ฉันต้องทำทุกวันและฉันต้องการสคริปต์เพื่อให้บรรลุนี้
clarifier

3

แก๊ง AppHarbor ประสบกับปัญหานี้และได้พัฒนาโซลูชันชั่วคราวโดยใช้วัตถุการจัดการเซิร์ฟเวอร์ SQL และ SqlBulkCopy

ตรวจสอบการโพสต์บล็อกของพวกเขาเกี่ยวกับเรื่องนี้หรือไปตรงไปยังรหัส

พวกเขาทดสอบกับ AppHarbor เท่านั้น แต่มันอาจคุ้มค่าที่จะเช็คเอาท์


3

คำตอบข้างต้นไม่ถูกต้อง สคริปต์ SQL แม้มีข้อมูลไม่ใช่การสำรองข้อมูล การสำรองข้อมูลเป็นไฟล์ BAK ที่มีฐานข้อมูลแบบเต็มในโครงสร้างปัจจุบันรวมถึงการระบุ

แน่นอนว่าไฟล์ BAK ที่มีการสำรองข้อมูลเต็มรูปแบบพร้อมข้อมูลทั้งหมดและระบุจากฐานข้อมูล SQL Server ระยะไกลสามารถเรียกคืนได้ในระบบโลคัล

ซึ่งสามารถทำได้ด้วยซอฟต์แวร์เชิงพาณิชย์เพื่อบันทึกไฟล์สำรอง BAK ลงในเครื่องของคุณโดยตรงตัวอย่างเช่นไฟล์นี้จะสร้างข้อมูลสำรองโดยตรงจาก SQL db แบบรีโมตบนเครื่องโลคัลของคุณ


คุณต้องใช้สิทธิ์ดูแลระบบเพื่อทำสิ่งนี้
LarryBud

ขวา. บัญชี (เซิร์ฟเวอร์ windows หรือ sql) ที่ใช้ในการเชื่อมต่อกับอินสแตนซ์ของเซิร์ฟเวอร์ sql จากระยะไกลจำเป็นต้องมีสิทธิ์ดูแลระบบเพื่อดึงข้อมูลกลุ่มสำรองและเก็บไว้ในเครื่องของคุณ เครื่องมือดังกล่าวจาก FIDA Software ทำการเข้ารหัสและบีบอัดทราฟฟิกเครือข่ายจากและไปยังเซิร์ฟเวอร์ sql ในขณะที่ดึงข้อมูลสำรอง เมื่อคุณมีไฟล์ bak ในเครื่องของคุณคุณสามารถเรียกคืนได้ตามที่คุณต้องการ
Matthias

1

Martin Smith กล่าวว่าหากคุณไม่สามารถเข้าถึงเครื่องหรือระบบไฟล์คุณจะต้องใช้เครื่องมือของบุคคลที่สามเช่น Red Gate หรือ Adept เพื่อทำการเปรียบเทียบกับระบบต้นทางและปลายทาง เครื่องมือของ Red Gate จะช่วยให้คุณสามารถคัดลอกวัตถุและสกีมาและข้อมูล


1

เมื่อก่อนคุณสามารถสำรองข้อมูลจากอินสแตนซ์ SQL Server ระยะไกลไปยังไดรฟ์ในเครื่องของคุณได้โดยมีเงื่อนไขดังต่อไปนี้:

  1. คุณมีโฟลเดอร์ที่แชร์ในไดรฟ์ในเครื่องของคุณ
  2. โฟลเดอร์ที่แชร์นั้นสามารถเข้าถึงได้จากกล่อง SQL Server

ตอนนี้เมื่อระบุคำสั่ง backup ให้ใช้พา ธ โฟลเดอร์แชร์เมื่อระบุตัวเลือกดิสก์


และคำตอบของคุณต่างจาก @Vivek อย่างไร?
Martin Schröder

1

แค่ลองอันนี้:

1) แชร์โฟลเดอร์โดยได้รับอนุญาตอย่างสมบูรณ์ในคอมพิวเตอร์ของคุณ

2) ในเซิร์ฟเวอร์ SQL ของคุณ: แผงควบคุม -> เครื่องมือการดูแลระบบ -> บริการ -> คลิกขวาที่บริการ SQL ทั้งหมด

แท็บเข้าสู่ระบบควรเริ่มต้นด้วยผู้ดูแลโดเมนของคุณ

3) ในตัวช่วยบำรุงรักษาของเซิร์ฟเวอร์ sql วางตำแหน่งสำรองและโฟลเดอร์ (\ yourcomputername \ sharedfoldernam)

ฉันทำการสำรองข้อมูลระยะไกลบนเซิร์ฟเวอร์ 8 แห่งของ sql server 2008 ใน บริษัท ของเรา


1

ฉันประหลาดใจที่ไม่มีใครพูดถึงโซลูชันสำรองข้อมูลสคริปต์ที่นำเสนอโดยOla Hallengrenซึ่งทำเช่นนี้ได้ช่วยให้คุณสามารถสำรองฐานข้อมูลจากเซิร์ฟเวอร์ระยะไกลไปยังเส้นทาง UNC บนเครือข่ายของคุณได้ฟรี (ฉันจริงใช้มันเป็นฉันประเภท เพื่อสำรองฐานข้อมูลจากเซิร์ฟเวอร์ dev ที่ฉันไม่มีการเข้าถึงระยะไกลนอกเหนือจากผ่าน SSMS ไปยังส่วนแบ่งบนพีซี dev ของฉัน) สิ่งนี้มีให้บริการตั้งแต่ปี 2008 และทำงานบน SQL Server 2005 ถึง 2014

คุณต้องตรวจสอบให้แน่ใจว่าการแชร์ที่คุณตั้งไว้นั้นมีการเข้าถึงที่เพียงพอ: ฉันมักจะอนุญาตให้อ่าน / เขียนแบบเต็มไปยังกลุ่มโฆษณา "ทุกคน" ในช่วงระยะเวลาของกระบวนการสำรองข้อมูลเพราะฉันขี้เกียจเกินกว่าที่จะ จำกัด อะไรมากขึ้น ทางเลือกส่วนบุคคล

มันใช้งานได้ดีมีเอกสารครบถ้วนและมีความยืดหยุ่นสูง ฉันมักจะวาง procs และตารางการบันทึกลงในฐานข้อมูลยูทิลิตี้เล็ก ๆ ของพวกเขาเองแล้วเริ่มทำงาน ให้ทุกอย่างอยู่ในโดเมนโฆษณาของคุณและไม่ใช่ระยะไกลในแง่ที่ว่ามันอยู่บนเซิร์ฟเวอร์ที่อยู่ร่วมหรือบางสิ่งบางอย่างมันทำงานได้ดีมาก

ขอโทษที่เพิ่มหัวข้อเก่า ๆ แต่ฉันเจอสิ่งนี้เมื่อมองหาสิ่งอื่นและคิดว่ามันเป็นสิ่งที่คุ้มค่าสำหรับทุกคนที่มองหาหัวข้อนี้


1

สำหรับปี 2019 ฉันขอแนะนำให้ใช้mssql-scripterหากคุณต้องการสำรองข้อมูลท้องถิ่นที่แท้จริง ใช่มันเป็นสคริปต์ แต่คุณสามารถปรับให้รวมสิ่งที่คุณต้องการซึ่งสามารถรวมข้อมูลทั้งหมดได้ ฉันเขียนสคริปต์ทุบตีเพื่อทำการสำรองข้อมูลรายวันอัตโนมัติโดยใช้สิ่งนี้ในเครื่อง linux ชำระเงินส่วนสำคัญของฉัน:

https://gist.github.com/tjmoses/45ee6b3046be280c9daa23b0f610f407

0

ฉันสามารถทำได้เมื่อ ... การทำเช่นนี้คุณจะต้องมีการเปิดใช้งานร่วมกันบนเซิร์ฟเวอร์ระยะไกล จากนั้นคุณสามารถวางการสำรองข้อมูลโดยตรงบนส่วนแบ่งของตัวเองกว่าตำแหน่งเริ่มต้น ...

โดยปกติผู้ดูแลระบบจะทำการสำรองข้อมูลและแบ่งปันกับเราในบางโฟลเดอร์ที่แชร์ ฉันพยายามถ้ามันจะทำงานถ้าฉันวางสำรองที่นั่น มันได้ผล


0

หากคุณใช้สคริปต์สร้างภายใต้ SSMS ให้คลิกปุ่มขั้นสูง ภายใต้ตัวเลือก 'สร้างสคริปต์สำหรับวัตถุที่ต้องพึ่งพา' ให้คลิก True โดยการคลิกที่การพึ่งพาใด ๆ ของแต่ละวัตถุจะถูกสคริปต์ออกมาตามลำดับที่เหมาะสม


True เป็นค่าเริ่มต้นใน SSMS v17.8.1
Chris Catignani

0

โปรแกรมสำรองข้อมูลของบุคคลที่สามบางโปรแกรมอนุญาตให้ตั้งค่าการถ่ายโอนไฟล์ด้วยสิทธิ์เครือข่ายเฉพาะ มันมีประโยชน์มากเมื่อบริการ SQL Server ทำงานภายใต้บัญชีที่ถูก จำกัด และไม่มีสิทธิ์เครือข่ายเพียงพอ ลองใช้EMS SQL Backupซึ่งแก้ปัญหานี้


0

ฉันใช้เครื่องมือสำรองข้อมูล Redgate 7สำหรับจุดประสงค์นี้ คุณสามารถสร้างมิเรอร์จากไฟล์สำรองในการสร้างไทล์บนตำแหน่งอื่น และสามารถคัดลอกไฟล์สำรองข้อมูลหลังจากสร้างในเครือข่ายและในที่เก็บข้อมูลโฮสต์โดยอัตโนมัติ


0

สร้างโฟลเดอร์แชร์ในเครื่องพร้อมสิทธิ์ "ทุกคน" สำหรับการอ่าน / เขียน

เชื่อมต่อกับฐานข้อมูลเป้าหมายเริ่มการสำรองข้อมูลและชี้ไปที่การแชร์ดังนี้

\ mymachine \ shared_folder \ mybackup.bak

(พยายามบนสภาพแวดล้อมโดเมน Windows)


0

ฉันรู้ว่านี่เป็นโพสต์เก่า แต่สำหรับสิ่งที่คุ้มค่าฉันพบว่าโซลูชัน "ง่ายที่สุด" คือคลิกขวาที่ฐานข้อมูลและเลือก "งาน" -> "ส่งออกแอปพลิเคชันระดับข้อมูล" เป็นไปได้ว่าตัวเลือกนี้จะใช้ได้เฉพาะเนื่องจากเซิร์ฟเวอร์โฮสต์บน Azure (จากสิ่งที่ฉันจำได้ว่าทำงานกับ Azure ในอดีตรูปแบบ. bacpac ค่อนข้างธรรมดาอยู่ที่นั่น)

เมื่อเสร็จสิ้นคุณสามารถคลิกขวาที่รายการเซิร์ฟเวอร์ "ฐานข้อมูล" ในพื้นที่ของคุณและใช้ "นำเข้าแอปพลิเคชันระดับข้อมูล" เพื่อรับข้อมูลไปยังเครื่องท้องถิ่นของคุณโดยใช้ไฟล์. bacpac

หมีเพียงในใจของการส่งออกอาจจะใช้เวลานานเวลา ใช้เวลาประมาณสองชั่วโมงเพื่อให้การส่งออกเสร็จสิ้น ส่วนการนำเข้านั้นเร็วกว่ามาก


-1

หากคุณอยู่ในเครือข่ายท้องถิ่นคุณสามารถแชร์โฟลเดอร์ในเครื่องท้องถิ่นของคุณและใช้เป็นโฟลเดอร์ปลายทางสำหรับการสำรองข้อมูล

ตัวอย่าง:

  • โฟลเดอร์ท้องถิ่น:

    C:\MySharedFolder -> URL: \\MyMachine\MySharedFolder

  • รีโมตเซิร์ฟเวอร์ SQL:

    Select your database -> Tasks -> Back Up -> Destination -> Add -> Apply '\\MyMachine\MySharedFolder'

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.