ไฟล์. bak ไม่ปรากฏในไดเรกทอรีใด ๆ ใน SSMS


46

ฉันมีไฟล์. bak ที่สร้างขึ้นในวันนี้โดยบุคคลอื่นซึ่งสร้างด้วยตนเองผ่าน SSMS 2008 R2 ฉันพยายามกู้คืนฐานข้อมูลด้วยตนเอง แต่น่าเสียดายที่ไฟล์ไม่ปรากฏขึ้นเมื่อฉันไปเรียกดู

ฉันสามารถเขียนสคริปต์กระบวนการคืนค่าได้ แต่ฉันเคยเห็นปัญหานี้มาก่อนและฉันไม่แน่ใจว่าสิ่งใดที่อาจทำให้. bak ไม่ปรากฏ


ฉันจะเขียนสคริปต์สำหรับการคืนค่าฉันแค่อยากรู้ว่าอะไรเป็นสาเหตุของมัน มันเป็น. bak แน่นอนไม่ใช่. baktxt หรืออะไร
Sean Long

คุณสามารถเรียกดูโฟลเดอร์ที่คุณรู้ว่าไฟล์อยู่และมันไม่ปรากฏหรือไม่ หรือคุณไม่สามารถเรียกดูโฟลเดอร์ได้?
Aaron Bertrand

ฉันสามารถเรียกดูโฟลเดอร์โดยไม่เห็นไฟล์. bak ใด ๆ ฉันได้ตรวจสอบสิทธิ์ของผู้ใช้ที่ฉันใช้ SSMS ด้วยพวกเขาเป็นผู้ดูแลระบบในท้องถิ่นและไฟล์ไม่ได้ถูกทำเครื่องหมายว่า "ซ่อน" หรืออะไรก็ตาม
Sean Long

คุณสามารถโพสต์ภาพหน้าจอที่ใดที่หนึ่งซึ่งแสดงมุมมองของโฟลเดอร์ Windows และของ SSMS ได้หรือไม่ อธิบายคำถามที่กระบวนการที่คุณใช้เพื่อไปที่ขั้นตอนนี้
Aaron Bertrand

1
(โปรดทราบว่าบัญชีบริการ SQL Server นั้นต้องได้รับอนุญาตด้วยไม่ใช่แค่ผู้ใช้ SSMS แต่นั่นก็ไม่ควรป้องกันไฟล์. bak ไม่ให้แสดงในรายการก่อนที่คุณจะทำอะไรกับมัน)
Aaron Bertrand

คำตอบ:


39

เรามีปัญหาเดียวกันวันนี้ มันกลายเป็นปัญหาสิทธิ์ตามที่แสดงในคำตอบอื่น ๆ NT SERVICE\MSSQLSERVERความแตกต่างคือว่าบัญชีที่เราต้องการที่จะเพิ่มเป็น

ภาพหน้าจอ

ฉันระบุบัญชีด้วยการเปรียบเทียบสิทธิ์ของการอนุญาตการสำรองข้อมูลโฟลเดอร์เริ่มต้นของ SQL กับโฟลเดอร์ที่มีไฟล์สำรองข้อมูล

การเพิ่มบัญชีบริการไม่ง่ายอย่างที่คิด นี่คือสิ่งที่ใช้ได้ผลสำหรับฉัน (เซิร์ฟเวอร์ 2012 R2)

  1. เข้าสู่เซิร์ฟเวอร์ (ต้องทำการเปลี่ยนแปลงบนเซิร์ฟเวอร์จริงไม่ใช่ผ่านเครือข่ายที่ใช้ร่วมกัน)
  2. เปลี่ยนตำแหน่งเป็นชื่อเซิร์ฟเวอร์โลคัล
  3. พิมพ์ในNT SERVICE\MSSQLSERVERกล่องชื่อ (อย่าคลิกตรวจสอบชื่อ)
  4. คลิกตกลง จากนั้นคุณจะเห็นรายการบัญชีบริการที่ตรงกัน เลือก MSSQLSERVER และคลิกตกลงเพื่อยอมรับการเลือก

ป้อนคำอธิบายรูปภาพที่นี่

ป้อนคำอธิบายรูปภาพที่นี่

คุณควรเห็นบัญชีบริการอยู่ในการตั้งค่าความปลอดภัยและสามารถปรับเปลี่ยนการอนุญาตได้

หลังจากเพิ่มสิทธิ์ (ฉันเพิ่มการควบคุมทั้งหมดเพื่อให้ตรงกับโฟลเดอร์ SQL Backup เริ่มต้น) และเริ่มคอนโซลการจัดการเซิร์ฟเวอร์ SQL ใหม่ฉันสามารถเลือกและกู้คืนไฟล์สำรองของฉันได้


superuser.com/questions/248315/…บอกให้เราทราบถึงวิธีแสดงรายการบัญชีผู้ใช้บนคอมพิวเตอร์ สำหรับบริการใด ๆ ที่ระบุชื่อsจะมีชื่อบัญชีเสมือนNT Service\sแม้ว่าบริการจะไม่ทำงานภายใต้บัญชีนั้น
Tahir Hassan

2
บัญชีที่ฉันต้องเพิ่มNT Service\MSSQL$SQLSERVER2014อาจเป็นเพราะฉันตั้งชื่ออินสแตนซ์ของฉันSQLSERVER2014
thinkOfaNumber

16

ฉันได้รับสิ่งนี้วันนี้

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

ไปที่ Windows Explorer คัดลอกข้อมูลสำรองไปยังโฟลเดอร์อื่นและเรียกดูไปยังที่หนึ่งผ่าน Management Studio และฉันเห็นมันที่นั่น

ลบโฟลเดอร์ต้นฉบับและสร้างใหม่คัดลอกเนื้อหากลับมาอีกครั้งและเรียกดูไปยัง.bakไฟล์และกลับมาเป็นปกติ

หวังว่านี่จะช่วยใครซักคน


1
มันช่วยได้! :)
Peter PitLock

5

ฉันพบปัญหานี้สองสามครั้ง ปัญหาไม่ได้อยู่กับ SQL Server แต่ด้วยการอนุญาตของ Windows ของโฟลเดอร์ คุณต้องเพิ่มสิทธิ์ที่เหมาะสมไปยังโฟลเดอร์ที่คุณคัดลอกไฟล์. bak (ฉันคิดว่าSystem Networkบทบาท)

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

D:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Backup

นี่เป็นทางออกที่ยอดเยี่ยมเพราะไม่มีการเปิดช่องโหว่ความปลอดภัยในคอมพิวเตอร์ของพวกเขาเพียงเพื่อคืนค่าหนึ่งไฟล์
Michael Potter

ใช้งานได้ดีไม่ต้องใช้นโยบายและสิ่งต่าง ๆ
Marin

3

ฉันเจอปัญหาเดียวกันวันนี้ ฉันได้รับไฟล์สำรองเพื่อคืนค่า แต่ไม่ปรากฏให้ฉันเห็นขณะเรียกดู แต่ผมก็สามารถที่จะ acess ในระบบแฟ้ม SQL Server management Studioแต่ในคืนค่าตัวช่วยสร้างการใช้

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

สำหรับรายละเอียดโปรดตรวจสอบโดยบล็อก


2

หากคุณสามารถค้นหาได้ใน Windows Explorer คุณควรเขียนRESTORE DATABASEคำสั่งแทนการใช้ GUI clunky เพื่อค้นหาให้คุณ ใครจะรู้ว่ามีรหัสอะไรบ้างที่อยู่ในนั้นและทำไมมันจึงไม่สามารถค้นหาไฟล์ได้ - ขออภัยฉันมีวิธีแก้ไขเฉพาะและไม่ใช่วิธีแก้ปัญหา

ตรวจสอบให้แน่ใจด้วยว่าไฟล์ดังกล่าวเป็นไฟล์. bak และไม่ใช่ something.bak.txt (Windows อาจ "เป็นประโยชน์" ซ่อนส่วนขยายจากคุณฉันเกลียดพฤติกรรมเริ่มต้น)


1

เรื่องนี้เกิดขึ้นกับฉันวันนี้ในกล่อง dev ของฉัน ในกรณีของฉันบัญชีบริการมีสิทธิ์ในโฟลเดอร์ แต่บัญชีผู้ใช้ของฉันไม่ได้ เมื่อฉันได้รับอนุญาตบัญชีของฉันไปยังโฟลเดอร์ฉันก็สามารถดูไฟล์. BAK

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