ผู้ดูแลฐานข้อมูล

ถามตอบสำหรับผู้เชี่ยวชาญด้านฐานข้อมูลที่ต้องการพัฒนาทักษะฐานข้อมูลและเรียนรู้จากผู้อื่นในชุมชน

3
SQL Server Leaked ธุรกรรม
ฉันมีฐานข้อมูลที่เข้าถึงได้โดยไคลเอนต์ประมาณ 50 คนผ่าน TDS ผ่าน TCP ซึ่งดูเหมือนจะไม่ปล่อยพื้นที่บันทึก จำนวนกระบวนการอยู่รอบ 50 ที่คาดไว้และบางกระบวนการค่อนข้างยาวนาน (> 120 วัน) ขณะนี้ฐานข้อมูลมีพื้นที่บันทึก 40 gb (มีเพียง 14 gb data), 39 gb ฟรี เนื่องจากข้อ จำกัด ด้านพื้นที่บนไดรฟ์ฉันต้องการลดขนาดให้เหมาะสมกว่า (10gb-ish) เมื่อฉันดำเนินการDBCC SHRINKFILE('db_log', 10000)มันจะส่งคืนข้อผิดพลาดที่การใช้งานสิ้นสุดของบันทึก เพื่อให้สามารถเข้าถึงจุดสิ้นสุดของบันทึกได้ฟรีฉันพยายามที่จะวางฐานข้อมูลในโหมดผู้ใช้คนเดียวโดยทำดังนี้ ALTER DATABASE db SET SINGLE_USER WITH ROLLBACK IMMEDIATE GO ALTER DATABASE db SET MULTI_USER GO แต่สคริปต์ส่งคืนข้อความต่อไปนี้ซ้ำหลายร้อยครั้ง: Nonqualified transactions are …

2
ล็อกไบนารีของ MySQL - ข้ามตาราง
มีวิธีข้ามตารางเฉพาะในบันทึกไบนารีหรือไม่ ฉันได้รับการกำหนดค่าไบนารีบันทึกเป็นกลยุทธ์การสำรองข้อมูลเพิ่มเติมของฉันระหว่างการสำรองข้อมูลทุกคืน แต่เรามีตารางอ้างอิงขนาดใหญ่หนึ่งตารางที่เราจะอัปเดตทุกคืนจากกระบวนการแบทช์ (ตาราง 70GB) mysqlimportตารางนี้เป็นแบบอ่านอย่างเดียวและก็มีการปรับปรุงใช้ยามค่ำคืน ในระหว่างกระบวนการอัปเดตสำหรับตารางการอ้างอิงนี้เท่านั้นไฟล์บันทึกแบบไบนารีจะทำให้เกิดความล่าช้าค่อนข้างร้ายแรง (โดยเฉพาะเมื่อฉันทำการอัปเดตแบบเต็ม 70GB) มันต้องทำ 70GB สองครั้งโดยทั่วไป yuck ตารางอ้างอิงกำลังใช้ MyISAM (ฉัน chocked InnoDB พยายามโหลดดังนั้นลอง MyISAM)
9 mysql  logs  binlog 

1
MongoDB ไม่ได้ใช้ RAM ที่มีอยู่ทั้งหมด
ฉันมีข้อมูลประมาณ 200 GB ที่เก็บอยู่ในคลัสเตอร์ mongo หน่วยความจำกายภาพในหนึ่งในอินสแตนซ์ที่เรียกใช้ mongo คือ 8GB ไม่มีสิ่งอื่นใดที่จะตามมาในอินสแตนซ์นี้ ใกล้ที่สุดเท่าที่ฉันสามารถเข้าใจได้จากเอกสารของ Mongo (เช่นนี้: http://www.mongodb.org/display/DOCS/Checking+Server+Memory+Usage ) ซึ่งหมายความว่ากระบวนการ Mongo ควรใช้ประมาณ 100% ของ หน่วยความจำกายภาพที่มีอยู่ แต่ถ้าคุณดูผลลัพธ์ต่อไปนี้จากtopคำสั่งคุณจะเห็นว่าอินสแตนซ์ mongod นั้นใช้หน่วยความจำภายใน 2GB เท่านั้นและมีหน่วยความจำกายภาพฟรี 2GB เต็มรูปแบบที่มีอยู่ซึ่งไม่ได้ใช้งานเลย บางคนสามารถอธิบายพฤติกรรมนี้ให้ฉันฟังได้ไหม ทำไมถึงมีหน่วยความจำ 2GB ฟรี top เอาท์พุท: top - 23:19:43 up 89 days, 20:05, 2 users, load average: 0.41, 0.55, 0.59 Tasks: 101 …
9 mongodb  memory 

2
ใช้ฐานข้อมูล MySQL แต่ละออฟไลน์
MySQL ไม่มีคำสั่ง SQL หรือกลไกภายในสำหรับ ทำให้ฐานข้อมูลส่วนบุคคลไม่พร้อมใช้งาน / ออฟไลน์ ย้ายฐานข้อมูลส่วนบุคคล ในกรณีนี้คุณจะใช้ฐานข้อมูลแบบออฟไลน์ได้อย่างไร

2
กรณีเมื่อเทียบกับ isnull เมื่อเทียบกับการรวมกัน
ฉันเพิ่งอ่านเอกสารประกอบสำหรับการสอบ SQL Server 2012 และฉันเห็นประเด็นต่อไปนี้: กรณีเมื่อเทียบกับ isnull เมื่อเทียบกับการรวมกัน ตอนนี้ฉันรู้วิธีที่จะใช้แต่ละคน แต่ฉันไม่รู้ว่าเมื่อไหร่ที่จะใช้แต่ละคน ได้โปรดร่างกายบางคนชี้แจง ขอบคุณ ps ได้โปรดเรามีแท็กสำหรับคำถามการสอบได้ไหม

2
ฉันจะตั้งค่าและรับตัวแปรฐานข้อมูลที่กำหนดเองได้อย่างไร
ใช้PGAdmin IIIฉันสามารถคลิกขวาที่ฐานข้อมูลนำทางไปยังVariablesแท็บและวางคุณสมบัติชื่อค่าตัวแปรในฐานข้อมูลเอง มีวิธีปรับแต่งเหล่านี้หรือไม่ ฉันเห็นapplication_nameตัวแปร แต่ฉันต้องการมีapplication_versionตัวแปร

1
ฉันจะแก้ไขข้อผิดพลาดการเพิ่มประสิทธิภาพแอสเซมบลีของเซิร์ฟเวอร์ SQL และหน่วยความจำหมดลงอย่างไร
.NET Runtime Optimization Service ( mscorsvw) ยังคงใช้หน่วยความจำของเวิร์กสเตชันของฉันทั้งหมดตั้งแต่ฉันติดตั้ง SQL Server 2012 Service Pack 1 ใช้หน่วยความจำประมาณ 1.6 GB ก่อนที่จะหมดหน่วยความจำที่มีอยู่ทั้งหมด: ฉันสามารถฆ่ากระบวนการได้ แต่จะเกิดขึ้นอีกครั้งเมื่อฉันรีสตาร์ทคอมพิวเตอร์หรือรอนานพอ Techdowsแนะนำให้ใช้. NET Native Image Generator ( ngen) เพื่อแก้ไขปัญหา ฉันสั่งให้พรอมต์คำสั่งและใช้คำสั่งแบบนี้: cd C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319.1 ngen executeQueuedItems ปริมาณการใช้หน่วยความจำของmscorsvwลดลงไปประมาณ 20-30 MB และngenใช้หน่วยความจำที่เหลือทั้งหมด ngenสร้างข้อความแสดงข้อผิดพลาดเท่านั้นจนกว่าฉันจะฆ่ากระบวนการ เอาต์พุตสองสามบรรทัดแรกมีลักษณะดังนี้: Microsoft (R) CLR Native Image Generator - Version 4.0.30319.1 Copyright (c) Microsoft …

2
คุณสมบัติเอกสาร SQL Server Filetable
ฉันใช้ SQL Server 2012 FileTableในการจัดเก็บเอกสารและค้นหาพวกเขาด้วยความหมายของการค้นหา ฉันสงสัยว่ามีวิธีที่จะแสดงรายการคุณสมบัติของเอกสารทั้งหมด (ข้อมูลเมตา) หรือไม่ มีวิธีให้ดัชนีการค้นหาแบบข้อความและค้นหาคุณสมบัติเอกสาร ฉันสามารถสร้างรายการคุณสมบัติดัชนีเซิร์ฟเวอร์ SQL ด้วยคำสั่งต่อไปนี้: SELECT * FROM sys.registered_search_properties; ฉันยังสามารถขยายรายการนี้กับ SQL หรือใช้โปรแกรม สิ่งที่ฉันไม่พบเป็นวิธีการแสดงรายการข้อมูลจริง สิ่งที่ฉันกำลังมองหาคือรายการที่ชอบ: ผู้แต่ง : Ruud van de Beeten หัวข้อ : เอกสารทดสอบ คุณสมบัติที่กำหนดเอง : ค่าที่กำหนดเอง ใครช่วยชี้ฉันในทิศทางที่ถูกต้องได้ไหม แก้ไข : Bob Beauchemin สร้างตั๋วอธิบายปัญหาของฉัน เนื่องจาก DMV ไม่ได้แสดงรายการค่าคุณสมบัติฉันไม่สามารถใช้ในโครงการของฉันได้ ฉันลงเอยด้วยการใช้ C # เพื่อแสดงรายการคุณสมบัติที่กำหนดเองด้วยวัตถุOleDocumentProperties วัตถุนี้สามารถอ่านคุณสมบัติจากเอกสาร Office ฉันจะดูคำถามนี้ต่อไปโดยหวังว่าจะได้ทางออกที่ดีกว่า

1
MySQL INNODB เกิดความเสียหายหลังจากเซิร์ฟเวอร์ขัดข้องระหว่างคำสั่ง truncate
เซิร์ฟเวอร์ของฉันทำงานล้มเหลววันนี้ฉันคิดว่าเนื่องจากคำสั่งตัดทอนตารางพร้อมกันบนหนึ่งในตาราง INNODB ของเรา เซิร์ฟเวอร์สามารถเริ่มต้นใหม่ได้ แต่หลังจากเริ่มทำงานทุกครั้งที่ฉันพยายามออกคำสั่ง SQL ฉันได้รับข้อผิดพลาดต่อไปนี้: ERROR 2006 (HY000): MySQL server has gone away นี่คือสิ่งที่เกิดขึ้นในบันทึก: 121206 01:11:12 mysqld restarted 121206 1:11:13 InnoDB: Started; log sequence number 275 559321759 InnoDB: !!! innodb_force_recovery is set to 1 !!! 121206 1:11:13 [Note] /usr/libexec/mysqld: ready for connections. Version: '5.0.95-log' socket: '/var/lib/mysql/mysql.sock' port: 3306 …

1
กลุ่มความพร้อมใช้งานสามารถให้การเข้าแทนที่ที่ราบรื่น (โดยไม่มีความล้มเหลวในการค้นหา)?
ฉันได้ทำการทดสอบคุณสมบัติกลุ่มความพร้อมใช้งานใน SQL Server 2012 และกำลังค้นหาว่ามีเวลาหยุดทำงานประมาณ 15 วินาทีเมื่อเซิร์ฟเวอร์หลักล้มเหลวไปยังเซิร์ฟเวอร์รอง แบบสอบถาม SQL ทั้งหมดที่ดำเนินการในช่วงเวลานี้จะล้มเหลวจนกว่าการเปลี่ยนแปลงล้มเหลวจะเสร็จสมบูรณ์ มีวิธีใดที่จะทำให้สิ่งนี้ลดลงเป็น 0 วินาทีและป้องกันไม่ให้แบบสอบถามล้มเหลวในระหว่างการเปลี่ยนสถานะการเฟลโอเวอร์? กล่าวอีกนัยหนึ่งมีวิธีที่จะทำให้คิวรีใด ๆ ที่ทำงานในระหว่างที่ล้มเหลวในการเปลี่ยนเส้นทางไปยังเซิร์ฟเวอร์หลักแทนที่จะล้มเหลว ... และมีวิธีใดที่จะได้รับการเชื่อมต่อฐานข้อมูลใหม่เพื่อเชื่อมต่อกับเซิร์ฟเวอร์รองทันทีแทนที่จะล้มเหลว เชื่อมต่อระหว่างการเปลี่ยน Failover หรือไม่? ปัจจุบันฉันมีเซิร์ฟเวอร์ 2 ตัวที่ตั้งค่าไว้ในกลุ่มความพร้อมใช้งาน

3
กู้คืนการสำรองข้อมูลล้มเหลว - ไฟล์ 'Db' ไม่สามารถกู้คืนเป็น '{…} .mdf' ใช้ WITH MOVE เพื่อระบุตำแหน่งที่ถูกต้องสำหรับไฟล์
ฉันได้รับข้อผิดพลาดต่อไปนี้พยายามกู้คืนโดยใช้คำสั่งกู้คืนในไฟล์สำรองข้อมูลที่ฉันได้รับจากลูกค้า เรียกคืนฐานข้อมูล SFDB จาก DISK = N'C: \ Backup \ Backup.bak ' มีความคิดเกี่ยวกับสิ่งที่ฉันสามารถทำได้เพื่อแก้ไขสิ่งนี้หรือไม่? มันกำลังมองหา mdf ดังนั้นฉันจึงสามารถสรุปได้ว่าไฟล์สำรองที่ฉันมีคือการสำรองข้อมูลที่เพิ่มขึ้นไม่ใช่การสำรองข้อมูลทั้งหมดและนั่นคือสาเหตุที่ทำไมจึงมองหา mdf ฉันไม่แน่ใจว่า 1) พวกเขาให้ข้อมูลทั้งหมด (ทั้งฐานข้อมูล) หรือ 2) ฉันมีข้อมูลที่ถูกต้อง - และฉันสามารถกู้คืนได้ด้วยคำสั่ง T-SQL ที่ถูกต้อง - ฉันไม่รู้วิธีการ ความช่วยเหลือชื่นชม Msg 5133, Level 16, State 1, Line 2 Directory lookup for the file "D:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\Db.mdf" failed with …

3
ปิดใช้งานการบันทึกในบางตาราง
ฉันใช้ SQL Server 2005 ฉันมีสองตารางที่มีข้อมูลรวม ข้อมูลกำลังได้รับการปรับปรุงอย่างต่อเนื่องสร้างข้อมูลบันทึกเกือบ 5GB ต่อวัน (นั่นใหญ่กว่าฐานข้อมูลทั้งหมด!) ฉันต้องการปิดการใช้งานการบันทึกในตารางเหล่านี้เนื่องจากการย้อนกลับไม่จำเป็นจริงๆ อย่างไรก็ตามฉันต้องการที่จะเข้าสู่ระบบในตารางอื่น ๆ ในฐานข้อมูล เป็นไปได้หรือไม่ที่จะปิดการใช้งานการบันทึกในตารางบางอย่างภายในฐานข้อมูล? หากไม่มีฉันสามารถวางสองตารางในสคีมาเดียวกันจากนั้นปิดใช้งานการบันทึกในสคีมาหรือไม่ เป็นตัวเลือกเดียวที่จะย้ายสองตารางไปยังฐานข้อมูลแยกต่างหากและปิดการใช้งานการบันทึกที่นั่นหรือไม่ อัปเดต: ฉันเดาว่าฉันจะอธิบายว่าทำไมฉันจึงไม่จำเป็นต้องบันทึกกิจกรรมบนตารางเหล่านี้ ตารางทั้งสองนั้นเต็มไปด้วยข้อมูล GPS ดังนั้นจึงมีขนาดค่อนข้างใหญ่ ตารางแรกคือการจับตำแหน่งดิบจากหกตาราง Android ในเขตข้อมูล ข้อมูลใหม่จากแท็บเล็ตแต่ละเครื่องมาในทุก ๆ 5-10 วินาที ข้อมูลนั้นจะถูกรวมเป็น locationA, locationB, travelTime เป้าหมายคือเพื่อให้มีเวลาในการเดินทางสั้นที่สุดระหว่างสถานที่ทั้งหมดโดยอิงจากข้อมูลการขับขี่จริง ข้อมูลนี้ใช้สำหรับเมืองเล็ก ๆ เท่านั้นและแม่นยำถึงทศนิยมสี่ตำแหน่งเท่านั้นจึงสามารถจัดการได้ อย่างไรก็ตามเมื่อข้อมูลดิบใหม่เข้ามามีเวลาเดินทางช้าลงซึ่งจำเป็นต้องได้รับการอัปเดตและข้อมูลใหม่ที่ต้องถูกแทรก เมื่อรวบรวมข้อมูลดิบแล้วข้อมูลจะถูกลบทิ้ง เราจะไม่ย้อนกลับไปสู่เวลาเดินทางอีกต่อไปดังนั้นนี่คือเหตุผลที่การย้อนกลับไม่สำคัญมากในตารางเหล่านี้

2
ฉันจะเขียน SQL แบบพกพาที่อ้างถึงเซิร์ฟเวอร์ที่เชื่อมโยงได้อย่างไร
ฉันมีขั้นตอนการจัดเก็บที่อ้างอิงถึงเซิร์ฟเวอร์ที่เชื่อมโยง ในหลาย ๆ ที่ตลอดกระบวนการฉันมีบางอย่างดังต่อไปนี้: INSERT INTO [TableName] (...Columns...) SELECT ...Columns... FROM [ServerName\InstanceName].[Catalogue].[dbo].[TableName] WHERE TableNameID = @TableNameID ขั้นตอนนี้มีอยู่ในสภาพแวดล้อมการพัฒนาของฉันสภาพแวดล้อมการทดสอบและสภาพแวดล้อมแบบสด ปัญหาคือแต่ละสำเนาของโพรซีเดอร์นั้นแตกต่างกันอย่างละเอียดเนื่องจากชื่อเซิร์ฟเวอร์แตกต่างกันสำหรับแต่ละสภาพแวดล้อม สิ่งนี้ทำให้การจัดการการปรับใช้การอัปเดตสคริปต์ลำบาก มีวิธีทำให้โพรซีเดอร์แบบพกพาเพื่อให้แต่ละสภาพแวดล้อมสามารถรันเวอร์ชันที่เหมือนกันได้หรือไม่? ถ้าไม่มีอะไรที่ฉันสามารถทำได้เพื่อให้การปรับใช้สคริปต์มีแนวโน้มที่จะเกิดข้อผิดพลาด / ข้อผิดพลาดน้อยลง

2
วิธีดำเนินการค้นหาจาก psql โดยไม่รอผลลัพธ์
ข้อความค้นหาของฉัน (เพื่อสร้างตารางใหม่จากตารางที่มีอยู่) ใช้เวลานานมาก ดังนั้นฉันจึงตั้งค่าฐานข้อมูลระยะไกลในสำนักงานของฉัน - มี RAM เพิ่มเติม ฉันสามารถเชื่อมต่อกับฐานข้อมูลจากที่บ้านได้ตามปกติด้วย psql ฉันจะบอกเซิร์ฟเวอร์ระยะไกลให้ดำเนินการค้นหาจากเทอร์มินัลโดยไม่ต้องรอการตอบกลับได้อย่างไร (postgresql-9.2, สิ่งแวดล้อม linux) แก้ไข: ฉันเปิดให้โซลูชั่นอื่น ๆ ไม่จำเป็นต้องใช้ psql

1
ทำงานกับฐานข้อมูลหลาย ๆ
การใช้ sqlite3 บน Linux จะทำงานกับฐานข้อมูลหลายฐานได้อย่างไร ฉันต้องการทำสิ่งต่อไปนี้ในฐานข้อมูล 1 sqlite3 database1.db insert into database1.mytable values (select * from database2.mytable) ฉันจะเขียนSELECTแบบสอบถามสำหรับฐานข้อมูล 2 ด้านบนได้อย่างไร
9 sqlite 

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