คำถามติดแท็ก maintenance

ในบริบทของฐานข้อมูลการบำรุงรักษาจะอธิบายงานการปฏิบัติงานประจำรอบระบบฐานข้อมูลเช่นการตรวจสอบการปรับและขั้นตอนการสำรองข้อมูล

4
บังคับให้ปล่อย db ขณะที่ผู้อื่นอาจเชื่อมต่อ
ฉันต้องการลบฐานข้อมูลออกจากคลัสเตอร์ PostgreSQL DB ฉันจะทำอย่างไรแม้ว่าจะมีการเชื่อมต่อที่ใช้งานอยู่? ฉันต้องการเรียงลำดับของ-forceธงที่จะลดการเชื่อมต่อทั้งหมดแล้ว DB ฉันจะใช้มันได้อย่างไร ฉันกำลังใช้งานdropdbอยู่ แต่เครื่องมืออื่นเป็นไปได้

5
เมื่อใดที่ตกลงเพื่อลดขนาดฐานข้อมูล
ฉันรู้ว่าหดตัวเป็นปีศาจ: มันกลับคำสั่งหน้าและรับผิดชอบต่อโรคมะเร็งผิวหนัง, การกระจายตัวของข้อมูลและภาวะโลกร้อน รายการไปที่ ... ที่กล่าวว่าฉันมีฐานข้อมูล 100 GB และฉันลบข้อมูล 50 GB - ไม่ได้อยู่ในตารางเดียว แต่ pruning ทั่วไปของข้อมูลเก่าในระดับกว้างฐานข้อมูลครอบคลุม 90% ของ ตาราง - นี่เป็นกรณีการใช้งานที่เหมาะสมสำหรับลดขนาดฐานข้อมูลหรือไม่? หากไม่เป็นเช่นนั้นขั้นตอนที่เหมาะสมในการทำความสะอาดบ้านหลังจากลบข้อมูลที่มีเปอร์เซ็นต์สูงจากฐานข้อมูลคืออะไร ฉันสามารถนึกถึงสอง: สร้างดัชนีและอัปเดตสถิติใหม่ มีอะไรอีกบ้าง?

5
แผนการบำรุงรักษาเซิร์ฟเวอร์ SQL - วิธีปฏิบัติที่ดีที่สุดสำหรับงานและการกำหนดตารางเวลา
ฉันได้รับมอบหมายให้วางแผนการบำรุงรักษาสำหรับฐานข้อมูล SQL Server 2005 ของเรา ฉันรู้ว่าสำหรับการสำรองข้อมูลฉันต้องการสำรองข้อมูลฐานข้อมูลเต็มรูปแบบทุกวันและสำรองข้อมูลบันทึกธุรกรรมทุก 15 นาที ปัญหาของฉันมาเพื่อหางานอื่นที่ฉันต้องการทำและความถี่ที่ฉันควรทำ ดังนั้นฉันจึงมีสิ่งนี้อยู่ในใจ แก้ไขฉันหากมีข้อบกพร่องใด ๆ ในความคิดของฉันหรือวิธีที่ดีกว่าในการทำเช่นนี้ สำรองข้อมูล - ตารางทั้งหมดสำรองข้อมูลเต็มรูปแบบ (รายวัน) สำรองข้อมูล - ตารางที่เลือก, สำรองข้อมูลเต็มรูปแบบ (รายชั่วโมง) สำรองข้อมูล - บันทึกธุรกรรม (ทุก 15 นาที) ตรวจสอบความสมบูรณ์ของฐานข้อมูล (รายวัน) จัดระเบียบดัชนีใหม่ (ทุกวัน) อัปเดตสถิติ (ทุกวัน) ย่อขนาดฐานข้อมูล (รายสัปดาห์) สร้างดัชนีใหม่ (ทุกสัปดาห์) การบำรุงรักษาล้าง (ทุกวัน) ฉันจำได้ว่าเคยอ่านเมื่อไม่นานมานี้ (เมื่อฉันตั้งค่าแผนคล้ายกันที่งานอื่น) ว่างานเหล่านี้บางอย่างไม่จำเป็นต้องทำงานทุกวันหรือไม่ควรทำงานทุกวัน เป็นคนที่มันหนีฉัน ฉันสามารถใช้แนวทางเล็กน้อยในการสร้างแผนการบำรุงรักษาที่ดีขึ้นซึ่งจะลดการสูญเสียข้อมูลในภัยพิบัติ แต่จะไม่เก็บภาษีระบบเมื่อทำงานในช่วงเวลาเร่งด่วน (และเพิ่มประสิทธิภาพ)

2
เมื่อต้องการอัปเดตสถิติ
ฉันได้รับแผนการบำรุงรักษาที่ได้รับสิ่งต่อไปนี้: ล้างข้อมูลเก่า ตรวจสอบความสมบูรณ์ของฐานข้อมูล ดำเนินการสำรองฐานข้อมูลและบันทึกธุรกรรม จัดระเบียบดัชนีของเราใหม่ อัพเดทสถิติ ลบการสำรองข้อมูลเก่าและไฟล์ Maintenance Plan จากแผนการบำรุงรักษา 23 นาทีการอัปเดตสถิติใช้เวลา 13 นาที ในช่วงเวลา 13 นาทีนี้การเข้าถึงฐานข้อมูลถูกปิดกั้น (หรืออย่างน้อยการจำลองแบบจากฐานข้อมูลนี้ไปยังผู้อื่นของเราจะถูกหยุดชั่วคราว) คำถามของฉันคือ: เราควรอัปเดตสถิติเมื่อใดและเพราะเหตุใด ดูเหมือนว่าสิ่งที่เราควรทำน้อยกว่าทุกวัน ฉันพยายามที่จะพาเราออกจาก "เพียงเพราะ" ความตั้งใจของการบำรุงรักษาที่ไม่จำเป็น

1
การตั้งค่า BUFFERCOUNT, BLOCKSIZE และ MAXTRANSFERSIZE สำหรับคำสั่ง BACKUP
ฉันกำลังมองหาการปฏิบัติคำแนะนำสำหรับการตั้งค่าสำหรับBUFFERCOUNT, BLOCKSIZEและMAXTRANSFERSIZEของBACKUPคำสั่ง ฉันได้ทำการวิจัยนิดหน่อย (ดูด้านล่าง) ฉันได้ทำการทดสอบแล้วและฉันก็ตระหนักดีว่าคำตอบที่มีค่าอย่างแท้จริงจะเริ่มต้นด้วย "ดีขึ้นอยู่กับ ... " ความกังวลของฉันเกี่ยวกับการทดสอบที่ฉันได้ทำและการทดสอบที่แสดงในแหล่งข้อมูลใด ๆ ที่ฉันได้พบ (ดูวิธีด้านล่าง) คือการทดสอบจะทำในสุญญากาศซึ่งเป็นไปได้มากที่สุดในระบบที่ไม่มีโหลดอื่น ๆ ฉันอยากรู้เกี่ยวกับแนวทางที่ถูกต้อง / แนวปฏิบัติที่ดีที่สุดเกี่ยวกับสามตัวเลือกเหล่านี้ซึ่งยึดตามประสบการณ์ระยะยาว: มีจุดข้อมูลจำนวนมากในช่วงสัปดาห์หรือเป็นเดือน และฉันไม่ได้มองหาค่าที่เฉพาะเจาะจงเนื่องจากส่วนใหญ่เป็นฟังก์ชั่นของฮาร์ดแวร์ที่มีอยู่ แต่ฉันต้องการที่จะรู้ว่า: ปัจจัยฮาร์ดแวร์ / โหลดที่หลากหลายมีผลต่อสิ่งที่ควรทำ มีสถานการณ์ใดบ้างที่ไม่ควรแทนที่ค่าเหล่านี้? มีข้อผิดพลาดในการเอาชนะสิ่งเหล่านี้ที่ไม่ชัดเจนในทันทีหรือไม่? ใช้หน่วยความจำและ / หรือดิสก์ I / O มากเกินไปหรือไม่ มีความซับซ้อนในการกู้คืนการดำเนินการ? ถ้าฉันมีเซิร์ฟเวอร์ที่มีหลายอินสแตนซ์ของ SQL Server ทำงาน (เป็นค่าเริ่มต้นอินสแตนซ์และสองอินสแตนซ์ที่มีชื่อ) และหากฉันใช้การสำรองข้อมูลของทั้ง 3 อินสแตนซ์พร้อม ๆ กันไม่ว่าส่งผลกระทบต่อวิธีการที่ฉันตั้งค่าเหล่านี้เกินกว่าการทำให้แน่ใจว่าส่วนรวม ( BUFFERCOUNT* MAXTRANSFERSIZE) ไม่เกิน RAM ที่มีอยู่หรือไม่ การต่อสู้ …

3
การใช้ตัวเลือก“ ชุดการสำรองข้อมูลจะหมดอายุ:” ในขณะที่สร้างงานฐานข้อมูลสำรองในแผนการบำรุงรักษา
ในขณะที่สำรองฐานข้อมูลฉันต้องการใช้ตัวเลือก " ชุดการสำรองข้อมูลจะหมดอายุ: " เพื่อลบ / เขียนทับการสำรองฐานข้อมูลเก่า ฉันไม่สามารถใช้ตัวเลือกนี้ คำแนะนำใด ๆ เกี่ยวกับวิธีการใช้ตัวเลือก "ชุดการสำรองข้อมูลจะหมดอายุ:" ในขณะที่สร้างแผนการบำรุงรักษาจะได้รับการชื่นชม

5
การเริ่มต้นเซิร์ฟเวอร์ SQL ใหม่เร็วขึ้นหรือไม่
คำถามนี้ถูกโยกย้ายจาก Stack Overflow เพราะสามารถตอบได้ใน Exchange Administrators Stack Exchange อพยพ 8 ปีที่ผ่านมา ฉันสังเกตเห็นว่า DBA บางตัวเริ่มการทำงานของ SQL Server บ่อยครั้งมากบางครั้งก็เป็นเวลากลางคืน ฉันเชื่อว่าพวกเขาทำเพื่อเพิ่มหน่วยความจำบางส่วนหรืออาจเพิ่มความเร็วการสืบค้นด้วย ฉันรู้ว่าหลังจากการรีสตาร์ทเคียวรีแผนต้องถูกคอมไพล์ใหม่ แต่ถึงอย่างนั้นฉันก็ยังสงสัยว่ามีประโยชน์สุทธิต่อการฝึกนี้หรือไม่ เป็นความจริงหรือไม่ที่การเริ่ม SQL Server ใหม่ทุกวันจะทำให้ทำงานเร็วขึ้นหรือไม่

1
VACUUM ส่งคืนพื้นที่ดิสก์ไปยังระบบปฏิบัติการ
VACUUMมักจะไม่คืนพื้นที่ว่างในดิสก์ไปยังระบบปฏิบัติการยกเว้นในบางกรณีพิเศษ จากเอกสาร: รูปแบบมาตรฐานของการVACUUMลบเวอร์ชันของแถวที่ตายแล้วในตารางและดัชนีและทำเครื่องหมายพื้นที่ที่มีอยู่สำหรับการใช้ซ้ำในอนาคต อย่างไรก็ตามมันจะไม่คืนพื้นที่ไปยังระบบปฏิบัติการยกเว้นในกรณีพิเศษที่หนึ่งหรือหลายหน้าท้ายตารางกลายเป็นอิสระทั้งหมดและสามารถล็อคตารางแบบเอกสิทธิ์ได้อย่างง่ายดาย ในทางตรงกันข้ามVACUUM FULLบีบอัดตารางอย่างแข็งขันด้วยการเขียนไฟล์ตารางเวอร์ชันใหม่ที่สมบูรณ์โดยไม่มีพื้นที่ว่าง สิ่งนี้จะลดขนาดของตาราง แต่จะใช้เวลานาน นอกจากนี้ยังต้องการพื้นที่ดิสก์เพิ่มเติมสำหรับสำเนาใหม่ของตารางจนกว่าการดำเนินการจะเสร็จสมบูรณ์ คำถามคือจะทำอย่างไรเมื่อฐานข้อมูลนี้one or more pages at the end of a table become entirely freeสำเร็จ? สิ่งนี้สามารถทำได้ผ่านVACUUM FULLแต่ฉันมีพื้นที่ไม่เพียงพอที่จะใช้มัน มีความเป็นไปได้อื่นอีกไหม?

3
มีเหตุผลในการอัปเดตสถิติด้วยตนเองหรือไม่
ใน SQL Server สถิติจะถูกอัพเดตโดยอัตโนมัติเมื่อAuto Update Statisticsอยู่ในTrue(ซึ่งเป็นค่าเริ่มต้น) มีเหตุผลในการอัปเดตสถิติด้วยตนเองและในสถานการณ์ใดบ้าง

4
ตัวกำหนดเวลางานสำหรับ SQL Server Express
ฉันมีแอพ ASP.NET MVC ซึ่งทำงานกับฐานข้อมูลภายใต้รุ่น SQL Server 2008 R2 Express ไม่จำเป็นต้องดำเนินการตามปกติในการอัพเดตบางระเบียนในฐานข้อมูล น่าเสียดายที่ Express Edition ไม่มีเอเจนต์ SQL คุณจะแนะนำวิธีใด

2
เหตุใดจึงไม่ลบพื้นที่ว่าง (DB2) ของ DELETE + REORG
ใน DB2 ฉันมีตารางที่มีข้อมูลไบนารีขนาดใหญ่ ตอนนี้ฉันล้างตารางทั้งหมดและรัน runstats, reorg, runstats แต่ปริมาณของพื้นที่ดิสก์ที่ใช้ไม่เปลี่ยนแปลง มีอะไรผิดปกติที่นี่? ตารางอยู่ใน tablespace ของตัวเองซึ่งฉันสร้างดังต่อไปนี้: CREATE BUFFERPOOL "MY_BP" SIZE 250 AUTOMATIC PAGESIZE 4096; CREATE LARGE TABLESPACE MY_TBS IN DATABASE PARTITION GROUP IBMDEFAULTGROUP PAGESIZE 4096 MANAGED BY AUTOMATIC STORAGE EXTENTSIZE 64 PREFETCHSIZE 64 BUFFERPOOL MY_BP OVERHEAD 10.500000 TRANSFERRATE 0.140000 FILE SYSTEM CACHING; ฉันลบ / …

1
ทำไมไม่สร้างดัชนีใหม่ด้วยจำนวนหน้า <1,000
ฉันใช้สคริปต์ Ola Hallengrens สำหรับการบำรุงรักษาดัชนี ก่อนที่ฉันจะทำอย่างนั้นฉันใช้แบบสอบถามต่อไปนี้เพื่อดูว่าดัชนีใดที่มีการแยกส่วนมากที่สุด: SELECT dbschemas.[name] as 'Schema', dbtables.[name] as 'Table', dbindexes.[name] as 'Index', indexstats.avg_fragmentation_in_percent, indexstats.page_count FROM sys.dm_db_index_physical_stats (DB_ID(), NULL, NULL, NULL, NULL) AS indexstats INNER JOIN sys.tables dbtables on dbtables.[object_id] = indexstats.[object_id] INNER JOIN sys.schemas dbschemas on dbtables.[schema_id] = dbschemas.[schema_id] INNER JOIN sys.indexes AS dbindexes ON dbindexes.[object_id] = …

2
ขั้นตอนการจัดเก็บกลางเพื่อดำเนินการในบริบทฐานข้อมูลการโทร
ฉันกำลังทำงานกับโซลูชันการบำรุงรักษาที่กำหนดเองโดยใช้sys.dm_db_index_physical_statsมุมมอง ฉันมีมันถูกอ้างอิงจากขั้นตอนการจัดเก็บ ตอนนี้เมื่อโพรซีเดอร์ที่เก็บรันบนหนึ่งในฐานข้อมูลของฉันมันทำสิ่งที่ฉันต้องการให้ทำและดึงรายการของระเบียนทั้งหมดที่เกี่ยวข้องกับฐานข้อมูลใด ๆ ลง เมื่อฉันวางไว้ในฐานข้อมูลอื่นมันจะดึงรายการทั้งหมดที่เกี่ยวข้องกับฐานข้อมูลนั้นลง ตัวอย่างเช่น (รหัสที่ด้านล่าง): การค้นหาทำงานกับฐานข้อมูล 6 แสดงข้อมูล [ร้องขอ] สำหรับฐานข้อมูล 1-10 เคียวรีรันกับฐานข้อมูล 3 แสดงข้อมูล [ร้องขอ] สำหรับฐานข้อมูล 3 เท่านั้น เหตุผลที่ฉันต้องการขั้นตอนนี้โดยเฉพาะในฐานข้อมูลสามเป็นเพราะฉันต้องการเก็บวัตถุการบำรุงรักษาทั้งหมดในฐานข้อมูลเดียวกัน ฉันต้องการให้งานนี้อยู่ในฐานข้อมูลการบำรุงรักษาและทำงานราวกับว่าอยู่ในฐานข้อมูลแอปพลิเคชันนั้น รหัส: ALTER PROCEDURE [dbo].[GetFragStats] @databaseName NVARCHAR(64) = NULL ,@tableName NVARCHAR(64) = NULL ,@indexID INT = NULL ,@partNumber INT = NULL ,@Mode NVARCHAR(64) = 'DETAILED' AS BEGIN SET …

1
กระชับวัตถุขนาดใหญ่ในงานจัดระเบียบดัชนีใหม่
ฉันตั้งค่าแผนการบำรุงรักษาใน SQL Server 2008 R2 ในการจัดระเบียบดัชนีใหม่มีตัวเลือกสำหรับ "วัตถุขนาดใหญ่ที่มีขนาดกะทัดรัด" หมายความว่าอะไรและฉันต้องการเปิดใช้งานหรือไม่

4
วิธีการเปลี่ยนแปลงหรืออัปเดตการเชื่อมต่อเซิร์ฟเวอร์ท้องถิ่นในงานแผนการบำรุงรักษา
สองวันหลังลูกค้าของเราเปลี่ยนชื่อเซิร์ฟเวอร์ Dev ของเรา หลังจากเปลี่ยนชื่อเซิร์ฟเวอร์แล้วงานบำรุงรักษาของฉันและงานอื่นทั้งหมดจะล้มเหลวเนื่องจากชื่อเซิร์ฟเวอร์ไม่ตรงกัน เรากำลังใช้เวอร์ชันsql server 2012และเซิร์ฟเวอร์ 2008 OS ดังนั้นเช้าวันนี้ฉันจึงเปลี่ยนชื่อเซิร์ฟเวอร์ SQL ของฉันเป็นชื่อที่ได้รับการอัพเดตและสร้างตาราง ฉันพยายามอัปเดตการเชื่อมต่อเซิร์ฟเวอร์ภายในในงานบำรุงรักษา แต่ไม่สามารถแก้ไขได้ จากนั้นฉันเพิ่มการเชื่อมต่อเซิร์ฟเวอร์ใหม่ยังคงไม่มีประโยชน์ฉันได้รับข้อผิดพลาดด้านล่างขณะดำเนินงาน หลังจากที่ฉันลองกับหน้าเป้าหมายในตัวเลือกคุณสมบัติงานมีเฉพาะเซิร์ฟเวอร์เป้าหมายเท่านั้นที่ถูกเลือกและเซิร์ฟเวอร์เป้าหมายหลายตัวถูกปิดใช้งาน ข้อผิดพลาดด้านล่าง ดำเนินการในฐานะผู้ใช้: NT Service \ SQLSERVERAGENT Microsoft (R) SQL Server Execute Package Utility เวอร์ชัน 11.0.2100.60 สำหรับ 64- บิตลิขสิทธิ์ (C) Microsoft Corporation สงวนลิขสิทธิ์. เริ่มต้น: 12:01:28 AM ข้อผิดพลาด: 2013-12-16 00: 01: 43.98 รหัส: 0xC00291EC ที่มา: {410F7661-F71A-4B68-9584-BA422AB00F02} …

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