วิธีการสำรองข้อมูลระดับตาราง (ดัมพ์) ใน MS SQL Server 2005/2008
วิธีการสำรองข้อมูลระดับตาราง (ดัมพ์) ใน MS SQL Server 2005/2008
คำตอบ:
คุณไม่สามารถใช้คำสั่งในการสำรองข้อมูลตารางเดียวเว้นแต่ของหลักสูตรตารางในคำถามที่จะจัดสรรให้เป็นของตัวเองBACKUP DATABASE
FILEGROUP
สิ่งที่คุณทำได้ตามที่คุณแนะนำคือส่งออกข้อมูลตารางเป็นไฟล์ CSV ตอนนี้เพื่อให้ได้คำจำกัดความของตารางของคุณคุณสามารถ 'สคริปต์ออก' CREATE TABLE
สคริปต์ได้
คุณสามารถทำได้ภายใน SQL Server Management Studio โดย:
คลิกขวาที่ฐานข้อมูล> งาน> สร้างสคริปต์
จากนั้นคุณสามารถเลือกตารางที่คุณต้องการเขียนสคริปต์และเลือกรวมวัตถุที่เกี่ยวข้องเช่นข้อ จำกัด และดัชนี
ในการสั่งซื้อที่จะได้รับDATA
พร้อมกับเพียงแค่schema
คุณได้มีให้เลือกAdvanced
ในแท็บการตั้งค่าตัวเลือกการเขียนสคริปต์และในGENERAL
ส่วนของการตั้งค่าTypes of data to script
เลือกSchema and Data
หวังว่านี่จะช่วยได้ แต่อย่าลังเลที่จะติดต่อเราโดยตรงหากคุณต้องการความช่วยเหลือเพิ่มเติม
Advanced
ในแท็บการตั้งค่าตัวเลือกการเขียนสคริปต์และในส่วนทั่วไปตั้งค่าเลือกTypes of data to script
Schema and Data
นั่นไม่ชัดเจนในครั้งแรกที่ฉันทำ
ฉันใช้ยูทิลิตี้สำเนาจำนวนมากเพื่อสำรองข้อมูลระดับตาราง
เพื่อส่งออก:
bcp.exe "select * from [MyDatabase].dbo.Customer " queryout "Customer.bcp" -N -S localhost -T -E
นำเข้า:
bcp.exe [MyDatabase].dbo.Customer in "Customer.bcp" -N -S localhost -T -E -b 10000
อย่างที่คุณเห็นคุณสามารถส่งออกตามข้อความค้นหาใด ๆ ดังนั้นคุณสามารถสำรองข้อมูลเพิ่มเติมได้ด้วย นอกจากนี้ยังสามารถเขียนสคริปต์ได้เมื่อเทียบกับวิธีการอื่น ๆ ที่กล่าวถึงที่นี่ซึ่งใช้ SSMS
นี่คือขั้นตอนที่คุณต้องการ Step5 มีความสำคัญหากคุณต้องการข้อมูล ขั้นตอนที่ 2 คือที่ที่คุณสามารถเลือกแต่ละตารางได้
เวอร์ชั่นของEDIT stack นั้นอ่านไม่ออกเลย ... นี่คือภาพขนาดเต็มhttp://i.imgur.com/y6ZCL.jpg
คุณสามารถเรียกใช้แบบสอบถามด้านล่างเพื่อสำรองข้อมูลของตารางที่มีอยู่ซึ่งจะสร้างตารางใหม่ที่มีโครงสร้างเดิมของตารางเก่าพร้อมกับข้อมูล
select * into newtablename from oldtablename
หากต้องการคัดลอกเฉพาะโครงสร้างตารางให้ใช้แบบสอบถามด้านล่าง
select * into newtablename from oldtablename where 1 = 2
สิ่งนี้คล้ายกับโซลูชันของ qntmfredแต่ใช้การถ่ายโอนข้อมูลตารางโดยตรง ตัวเลือกนี้เร็วกว่าเล็กน้อย (ดูเอกสาร BCP ):
เพื่อส่งออก:
bcp "[MyDatabase].dbo.Customer " out "Customer.bcp" -N -S localhost -T -E
นำเข้า:
bcp [MyDatabase].dbo.Customer in "Customer.bcp" -N -S localhost -T -E -b 10000
หากคุณกำลังมองหาบางอย่างเช่น MySQL DUMP
ข่าวดี: SQL Server 2008 Management Studio ได้เพิ่มความสามารถดังกล่าว
ใน SSMS เพียงแค่คลิกขวาบนฐานข้อมูลในคำถามและเลือกงาน> สร้างสคริป จากนั้นในหน้าที่ 2 ของตัวช่วยสร้างตัวเลือกตรวจสอบให้แน่ใจว่าได้เลือกว่าคุณต้องการให้สคริปต์ข้อมูลด้วยและจะสร้างจำนวนเท่าใดให้กับDUMP
ไฟล์สำหรับคุณ
คุณสามารถใช้ตัวช่วยสร้างการเผยแพร่ฐานข้อมูลฟรีจาก Microsoft เพื่อสร้างไฟล์ข้อความด้วยสคริปต์ SQL (CREATE TABLE และ INSERT INTO)
คุณสามารถสร้างไฟล์ดังกล่าวสำหรับตารางเดียวและคุณสามารถ "กู้คืน" ตารางทั้งหมดรวมทั้งข้อมูลได้โดยเพียงแค่เรียกใช้สคริปต์ SQL
ฉันไม่รู้ว่ามันจะตรงกับปัญหาที่อธิบายไว้ที่นี่หรือไม่ ฉันต้องสำรองข้อมูลส่วนเพิ่มของตาราง! (ควรคัดลอกเฉพาะข้อมูลที่แทรกใหม่เท่านั้น) ฉันเคยออกแบบแพ็คเกจ DTS ที่ไหน
ฉันเรียกข้อมูลใหม่ (ตามคอลัมน์ 'สถานะ') และถ่ายโอนข้อมูลไปยังปลายทาง (ผ่าน 'งานแปลงข้อมูล')
จากนั้นฉันเพิ่งอัปเดตคอลัมน์ 'สถานะ' (ผ่าน 'Execute SQL Task')
ฉันต้องแก้ไข 'เวิร์กโฟลว์' อย่างถูกต้อง
ใช้ตัวช่วยสร้างการนำเข้าและส่งออกเซิร์ฟเวอร์ SQL
ทุกรูปแบบการกู้คืนช่วยให้คุณสำรองฐานข้อมูล SQL Server ทั้งหมดหรือบางส่วนหรือแต่ละไฟล์หรือกลุ่มไฟล์ของฐานข้อมูล การสำรองข้อมูลตารางระดับไม่สามารถสร้าง
คุณอาจมีสองทางเลือกเนื่องจาก SQL Server ไม่รองรับการสำรองข้อมูลตาราง ทั้งสองอย่างจะเริ่มต้นด้วยการเขียนสคริปต์การสร้างตาราง จากนั้นคุณสามารถใช้ตัวเลือก Script Table - INSERT ซึ่งจะสร้างคำสั่งแทรกจำนวนมากหรือคุณสามารถใช้ Integration services (DTS with 2000) หรือคล้ายกันเพื่อส่งออกข้อมูลเป็น CSV หรือคล้ายกัน
BMC Recovery Manager (เดิมเรียกว่า SQLBacktrack) ช่วยให้สามารถกู้คืนอ็อบเจ็กต์แต่ละรายการในฐานข้อมูลได้ในเวลาเดียวกัน (หรือที่เรียกว่าตาราง) ไม่ถูก แต่ทำได้ดีมาก: http://www.bmc.com/products/proddocview/0,2832,19052_19429_70025639_147752,00.html
http://www.bmc.com/products/proddocview/0,2832,19052_19429_67883151_147636,00.html
หากคุณต้องการกู้คืนตารางหลังจากมีคนลบแถวออกจากตารางโดยไม่ได้ตั้งใจคุณอาจดูสแนปชอตฐานข้อมูล คุณสามารถกู้คืนตารางได้อย่างง่ายดาย (หรือส่วนย่อยของแถว) จากสแนปชอต โปรดดูhttp://msdn.microsoft.com/en-us/library/ms175158.aspx
แอปฟรีชื่อ SqlTableZip จะทำงานให้ลุล่วง โดยทั่วไปคุณจะเขียนข้อความค้นหาใด ๆ (ซึ่งแน่นอนว่าสามารถ [เลือก * จากตาราง]) และแอปจะสร้างไฟล์บีบอัดพร้อมข้อมูลทั้งหมดซึ่งสามารถเรียกคืนได้ในภายหลัง
Handy Backup สร้างไฟล์ดัมพ์จาก MS SQL Server โดยอัตโนมัติรวมถึง MSSQL 2005/2008 การถ่ายโอนข้อมูลเหล่านี้เป็นไฟล์ไบนารีระดับตารางซึ่งมีสำเนาที่แน่นอนของเนื้อหาฐานข้อมูลเฉพาะ
หากต้องการถ่ายโอนข้อมูลอย่างง่ายด้วย Handy Backup โปรดทำตามคำแนะนำถัดไป:
ตอนนี้เรียกใช้งานใหม่ของคุณโดยคลิกที่ไอคอนก่อนชื่อหรือรอเวลาที่กำหนด Handy Backup จะสร้างดัมพ์สำหรับฐานข้อมูลของคุณโดยอัตโนมัติ จากนั้นเปิดปลายทางสำรองของคุณ คุณจะพบโฟลเดอร์ (หรือสองโฟลเดอร์) ที่มีข้อมูลสำรอง MS SQL ของคุณ โฟลเดอร์ดังกล่าวจะมีไฟล์ดัมพ์ระดับตารางซึ่งประกอบด้วยตารางไบนารีและการตั้งค่าบางส่วนที่บีบอัดเป็น ZIP เดียว
Handy Backup สามารถบันทึกดั๊มพ์สำหรับ MySQL, MariaDB, PostgreSQL, Oracle, IBM DB2, Lotus Notes และฐานข้อมูล SQL ทั่วไปที่มีไดรเวอร์ ODBC ฐานข้อมูลเหล่านี้บางส่วนต้องการขั้นตอนเพิ่มเติมเพื่อสร้างการเชื่อมต่อระหว่าง DBMS และ Handy Backup
เครื่องมือที่อธิบายไว้ข้างต้นมักจะดัมพ์ฐานข้อมูล SQL เป็นลำดับคำสั่ง SQL ระดับตารางทำให้ไฟล์เหล่านี้พร้อมสำหรับการแก้ไขด้วยตนเองที่คุณต้องการ