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

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

1
การหยุดชะงักในการลบคำชี้แจง
ฉันได้รับการหยุดชะงักเมื่อ SQL Server Job ทำงาน การหยุดชะงักเกิดขึ้นกับคำสั่ง DELETE ง่าย ๆ ฉันคิดว่าจะต้องมีคิวรี SELECT / UPDATE ที่ทำงานอยู่เพื่อให้เกิดการหยุดชะงักหรือไม่ แต่ดูเหมือนว่าจะเป็นการหยุดชะงัก / DELETE ... สิ่งที่ฉันกำลังมองหาคือสาเหตุที่ฉันได้รับการหยุดชะงักของ DELETE / DELETE มันคือ (ความรู้ของฉัน) ผ่านในพารามิเตอร์ที่แตกต่างกัน ความคิดใด ๆ ขอบคุณ deadlock-list 2014-05-20 07:30:09.66 spid25s deadlock victim=process409048 2014-05-20 07:30:09.66 spid25s process-list 2014-05-20 07:30:09.66 spid25s process id=process409048 taskpriority=0 logused=0 waitresource=PAGE: 12:1:7127294 waittime=4352 ownerId=629860973 transactionname=DELETE …

1
จัดตารางกิจกรรมทุกวันตามเวลาที่กำหนด
ฉันต้องการให้กิจกรรมของฉันทำงานทุกวันเวลา 00:20 น. ฉันสับสนในการกำหนดเวลา ฉันควรจะใช้ตัวเลือกแรกหรือตัวที่สอง? ตัวเลือกที่ 1 CREATE EVENT my_event ON SCHEDULE EVERY 1 DAY STARTS '2014-04-30 00:20:00' ON COMPLETION PRESERVE ENABLE DO # My query ตัวเลือก 2 CREATE EVENT my_event ON SCHEDULE AT ('2014-04-30 00:20:00'+ INTERVAL 1 DAY) ON COMPLETION PRESERVE ENABLE DO # My query
11 mysql  event 

1
การกู้คืนการสำรองข้อมูลส่วนต่างจะสร้างไฟล์บันทึก DEFUNCT หรือไม่
นี่คือปัญหาของฉัน ฉันกำลังพยายามย้ายฐานข้อมูลไปยังเซิร์ฟเวอร์ใหม่ผ่านการกู้คืนแบบเต็มจากนั้นตัดด้วยการสำรองข้อมูล / คืนค่าด่วน ฉันสามารถทำการกู้คืนแบบเต็มโดยไม่มีปัญหา แต่เมื่อกู้คืนการสำรองข้อมูลส่วนต่างฉันจะได้รับคำเตือนต่อไปนี้: ข่าวสารเกี่ยวกับ 3127, ระดับ 16, สถานะ 1, บรรทัด 1 ไฟล์ 'Database_Log2' ของฐานข้อมูลที่ถูกกู้คืน 'DatabaseName' กำลังถูกปล่อยให้อยู่ในสถานะหมดอายุเนื่องจากฐานข้อมูลใช้รูปแบบการกู้คืนอย่างง่ายและไฟล์ถูกทำเครื่องหมายสำหรับการเข้าถึงเพื่ออ่าน - เขียน ดังนั้นสามารถกู้คืนไฟล์แบบอ่านอย่างเดียวเท่านั้นโดยการกู้คืนทีละน้อย ฐานข้อมูลกู้คืนและพิจารณาออนไลน์ แต่การดำเนินการสำรองข้อมูลล้มเหลวเนื่องจากไฟล์ DEFUNCT นี้มีข้อผิดพลาดดังต่อไปนี้: ข่าวสารเกี่ยวกับ 3636, ระดับ 16, สถานะ 2, บรรทัด 1 เกิดข้อผิดพลาดขณะประมวลผลข้อมูลเมตา 'BackupMetadata' สำหรับฐานข้อมูล id 10 ไฟล์ id 6. ข่าวสารเกี่ยวกับ 3046, ระดับ 16, สถานะ 2, บรรทัด 1 …

2
ขั้นตอนงาน SQL ทำงานเป็นบัญชี sql ที่แตกต่างกัน
ฉันอยากรู้วิธีตั้งค่าขั้นตอนงาน SQL เพื่อดำเนินการเป็นบัญชีเข้าสู่ระบบ SQL อื่น ดูเหมือนว่าฉันจะต้องตั้งค่าบัญชีพร็อกซีใหม่ซึ่งต้องใช้ข้อมูลรับรองที่มีอยู่ เมื่อฉันสร้างข้อมูลรับรองตัวเลือกเดียวของฉันคือการใช้ข้อมูลรับรองเข้าสู่ระบบ Windows งานที่ฉันพยายามเรียกใช้อยู่ด้านล่าง มีคำสั่งเพิ่มเติมอื่น ๆ แต่เมื่อฉันตั้งค่าขั้นตอนงานให้ทำงานเป็นล็อกอิน SQL มันล้มเหลว insert into [dbo].[TableA] SELECT ss.[Ref_ID] ,mm.[studentID] ,mm.[studentPersonID] ,mm.[studentFirstname] FROM [dbo].[TableB] mm left outer join [dbo].[TableC] ss on ss.parentPersonID=mm.parentPersonID and mm.studentPersonID = ss.studentPersonID where ss.Ref_ID is not null; เมื่อสิ่งนี้ถูกเรียกใช้ผ่าน SQL Job Step มันจะล้มเหลว Executed as user: an_admin_account. …

1
ทำไมการเพิ่มอัตโนมัติถึงกระโดดเกินจำนวนแถวที่แทรกเข้าไป
ฉันรู้สึกยุ่งเหยิงมากจากพฤติกรรมแปลก ๆ นี้ที่ฉันเห็นในauto_incrementค่าที่บันทึกไว้ใน bidID ของตารางการเสนอราคาหลังจากทำการแทรกจำนวนมากโดยใช้ขั้นตอนที่เก็บไว้: INSERT INTO Bids (itemID, buyerID, bidPrice) SELECT itemID, rand_id(sellerID, user_last_id), FLOOR((1 + RAND())*askPrice) FROM Items WHERE closing BETWEEN NOW() AND NOW() + INTERVAL 1 WEEK ORDER BY RAND() LIMIT total_rows; ตัวอย่างเช่นหากauto_incrementค่า bidID คือ 101 เมื่อเริ่มต้นและฉันแทรก 100 แถวค่าสิ้นสุดจะกลายเป็น 213 แทนที่จะเป็น 201 อย่างไรก็ตาม BidIDs ของแถวที่แทรกเหล่านั้นจะทำงานตามลำดับสูงสุด 201 มีการตรวจสอบดังต่อไปนี้ …

1
การประมาณความต้องการ IO สำหรับการใช้งาน Bursty
เรามีแอพพลิเคชั่นที่สืบค้นฐานข้อมูล SQL เป็นระยะตลอดทั้งวัน มีกิจกรรมเป็นช่วงเวลาที่ศูนย์หรือกิจกรรมเบา ๆ สลับกับคำขอแต่ละรายการสำหรับข้อมูลจำนวนมาก เมื่อคำขอเหล่านั้นเข้ามามีวัตถุประสงค์หลักคือการส่งข้อมูลอย่างรวดเร็วและวัตถุประสงค์รองคือการดำเนินการที่คุ้มค่า เนื่องจากลักษณะของแอปพลิเคชันจึงไม่น่าเป็นไปได้ที่ข้อมูล / ดัชนีจะถูกแคชใน RAM จากการค้นหาก่อนหน้า (ผู้ใช้ที่ต่างกันซึ่งทำงานกับส่วนต่าง ๆ ของข้อมูล) สำหรับระบบที่มีประสบการณ์การใช้งานค่อนข้างคงที่ฉันเคยได้ยินกฏเกณฑ์ง่าย ๆ ในการสังเกตความยาวคิวของดิสก์และเก็บหมายเลขนั้นไว้ค่อนข้างน้อย สิ่งนี้จะทำงานเป็นพิเศษใน AWS โดยที่ฉันได้เห็นกฎของหัวแม่มือว่าความยาวคิวดิสก์ 1 ต่อ 100 IOPS นั้นสมเหตุสมผล ฉันจะประเมินข้อกำหนดของ IO สำหรับระบบดังกล่าวได้อย่างไร ความยาวคิวของดิสก์เป็นตัวบ่งชี้ที่เชื่อถือได้เมื่อต้องจัดการกับข้อความค้นหาแต่ละรายการหรือไม่ มีตัวชี้วัดอื่นที่ฉันควรพิจารณาหรือไม่

2
การเพิ่มดัชนีในคอลัมน์บิตช้าลงอย่างมีนัยสำคัญหรือไม่?
ฉันมีตารางที่มีประมาณ 1 ล้านถึง 5 ล้านบันทึก ส่วนเล็ก ๆ ของระเบียนนั้นมีหนึ่งในคอลัมน์บิตตั้งค่าเป็น 'TRUE' จำเป็นต้องค้นหาระเบียนนั้นอย่างรวดเร็ว ฉันคิดว่าดัชนีสามารถเพิ่มความเร็วในการค้นหาในคอลัมน์นี้ แต่ฉันกลัว INSERT ดังนั้นคำถามของฉัน ฐานข้อมูลทำงานเหมือนคลังข้อมูลดังนั้นจึงมี SELECT จำนวนมากและขนาดเล็ก (สูงสุด 10-20 ต่อวัน) แต่มี INSERT ที่ค่อนข้างใหญ่ (มากถึง 200,000 ระเบียนในคราวเดียว) ฉันกลัวว่าจะนำเข้าฐานข้อมูลนานขึ้น

2
เป็นวิธีที่ดีในการคัดลอกข้อมูลจาก Cassandra ColumnFamily ไปยังอีกใน Keyspace เดียวกัน (เช่น INSERT INTO ของ SQL) อะไร
พยายามหาวิธีถ่ายโอนแถวทั้งหมดจาก Cassandra ColumnFamily / Table ไปยังแถวอื่นได้อย่างง่ายดาย COPYคำสั่งที่ผมเข้าใจคือตัวเลือกที่ดี อย่างไรก็ตามเมื่อมันทิ้งข้อมูลทั้งหมดลง.csvในดิสก์แล้วโหลดกลับฉันไม่สามารถช่วยได้ แต่สงสัยว่ามีวิธีที่ดีกว่าที่จะทำในเครื่องยนต์ ตัวอย่างเฉพาะของสิ่งที่ฉันหมายถึงจะมีINSERT * FROM my_table INTO my_other_tableอยู่ในSQLฐานข้อมูลจำนวนมาก แน่นอนฉันรู้ว่า Cassandra เป็น NoSQL ดังนั้นจึงไม่สามารถทำงานได้เหมือนกัน - แต่ดูเหมือนว่ามีบางอย่างที่พร้อมใช้งาน อะไรคือวิธีที่ดีในการทำสิ่งนี้ให้สำเร็จ ขอบคุณมาก ๆ!

3
วิธีการส่งออกข้อมูลที่เกี่ยวข้องกับความปลอดภัยทั้งหมดจากฐานข้อมูล SQL Server
อย่างที่คุณทราบกันดีว่า SQL Server ไม่ได้นำเสนอโซลูชันแบบทันทีเพื่อส่งออกข้อความเกี่ยวกับความปลอดภัยทั้งหมดที่ประกาศไว้สำหรับแต่ละองค์ประกอบในฐานข้อมูล (ทั้งที่ระดับฐานข้อมูลและระดับวัตถุ) ฉันกำลังพูดถึงความสามารถในการหาข้อมูลนี้ ผู้ใช้ทั้งหมด บทบาททั้งหมดที่ผู้ใช้กำหนด สิทธิ์ทั้งหมดในระดับฐานข้อมูล (เช่นฟังก์ชันสร้าง GRANT) สิทธิ์ทั้งหมดในระดับวัตถุ (เช่น GRANT SELECT ON OBJECT :: xxx) คุณอาจคิดว่า SQL Server ต้องมีสิ่งนี้ แต่ตัวช่วยสร้างการส่งออกเซิร์ฟเวอร์ SQL หรือสคริปต์ต่าง ๆ ที่สร้างขึ้นจากการคลิกขวาที่วัตถุจะจับข้อมูลนี้ ฉันได้เห็น“ วิธีแก้ปัญหาที่เป็นไปได้” ทางออนไลน์มากมายโดยใช้สคริปต์ที่ไม่ได้รับการดูแลซึ่งผู้คนโพสต์ไว้อย่างสง่างาม แต่เนื่องจากฉันต้องมั่นใจ 100% ว่าข้อมูลความปลอดภัยทั้งหมดถูกบันทึกไว้ ฉันมีตัวเลือกในการใช้สิ่งเหล่านี้เป็นจุดเริ่มต้นในการเขียนบางสิ่งบางอย่างด้วยตัวเอง แต่ฉันเกลียดที่จะต้องคิดค้นวงล้อใหม่สำหรับความต้องการที่คุณคิดว่าหลายคนอาจมี มีใครบางคนที่ให้บริการเครื่องมือ (ไม่ว่าจะเป็นส่วนหนึ่งของผลิตภัณฑ์ SQL Server หรือเครื่องมือของบุคคลที่สาม) ที่สามารถให้ข้อมูลนี้กับคุณได้อย่างน่าเชื่อถือใช่ไหม หรืออย่างน้อยจะมีสคริปต์สนับสนุนชุมชนที่คนส่วนใหญ่เห็นด้วย "จะทำงาน" หรือไม่? ขอบคุณ!

3
db_owner ไม่สามารถปล่อยฐานข้อมูล - ข้อผิดพลาด 615, SQL Server
ฉันมีฐานข้อมูล SQL Server 2012 ที่ทำงานบน amazon EC2 ฉันได้สร้างผู้ใช้เพื่อให้สามารถสร้างแก้ไขและวางฐานข้อมูลได้ ฉันให้ผู้ใช้ใหม่ด้วยdbcreatorบทบาทเซิร์ฟเวอร์ ผู้ใช้ของฉันสามารถเชื่อมต่อจากระยะไกลและรันcreate database foo;คำสั่งได้สำเร็จ แต่เมื่อผู้ใช้พยายามวางฐานข้อมูลอีกครั้งด้วยdrop database foo;คำสั่งล้มเหลวด้วยข้อผิดพลาดดังต่อไปนี้: Warning: Fatal error 615 occurred at Feb 1 2014 5:15PM. Note the error and time, and contact your system administrator. ErrorCode: 21 แม้ว่าฐานข้อมูลที่เลือกคือmaster(ดังนั้นฉันไม่คิดว่ามันเป็นเพราะมีการใช้งาน) และคำสั่งสำเร็จเมื่อฉันเรียกใช้อีกครั้งในฐานะผู้ใช้ที่เป็นผู้ดูแลระบบ ฉันตรวจสอบฐานข้อมูลที่สร้างขึ้นใหม่และผู้ใช้ของฉันได้รับมอบหมายdb_ownerบทบาทในฐานข้อมูลตามที่ฉันคาดไว้ดังนั้นความเข้าใจของฉันคือสิ่งนี้ควรเป็นสิทธิ์ที่เพียงพอสำหรับผู้ใช้นั้นเพื่อให้สามารถวางฐานข้อมูลที่เพิ่งสร้างขึ้นได้ ตามที่http://technet.microsoft.com/en-us/library/ms178613.aspxบทบาท db_owner ควรมีสิทธิ์เพียงพอ "ต้องการสิทธิ์การควบคุมบนฐานข้อมูลหรือแก้ไขสิทธิ์ฐานข้อมูลใด ๆ หรือการเป็นสมาชิกในบทบาทฐานข้อมูลคงที่ db_owner" ฉันค้นหาข้อผิดพลาด 615 และพบว่า …

1
การทำธุรกรรม PostgreSQL กระทำเป็นเวลาหลายชั่วโมง
ฉันพบปัญหาโดยที่ฉันมีการเชื่อมต่อสองรายการจากผู้ใช้ไปยังเซิร์ฟเวอร์ PostgreSQL ของฉันซึ่งทำงานมาแล้วประมาณ 4 ชั่วโมงและอยู่ในสถานะที่ยอมรับได้ค่อนข้างนาน (อย่างน้อย 1 ชั่วโมงที่ฉันดูอยู่) . การเชื่อมต่อเหล่านี้ปิดกั้นข้อความค้นหาอื่น ๆ ไม่ให้ทำงาน แต่ตัวเองไม่ได้ถูกบล็อก นี่คือการเชื่อมต่อทั้งสองที่เป็นปัญหา postgres=# select * from pg_stat_activity where usename = 'xxxxx'; datid | datname | procpid | usesysid | usename | current_query | waiting | xact_start | query_start | backend_start | client_addr | client_port -------+---------+---------+----------+---------+---------------+---------+-------------------------------+-------------------------------+-------------------------------+---------------+------------- 20394 | xxxxxx …

1
การแม็พการล็อกอินเซิร์ฟเวอร์หลายครั้งกับผู้ใช้ฐานข้อมูลเดียว
นี่ดูเหมือนจะเป็นคำถามที่โง่ แต่ก็มีงานวิจัยบางอย่างที่ฉันไม่สามารถหาข้อมูลเกี่ยวกับเรื่องนี้ได้เท่านั้น (อาจเป็นเพราะการใช้คำศัพท์ที่ผิด) เป็นไปได้หรือไม่ที่จะเข้าสู่ระบบเซิร์ฟเวอร์หลายเครื่อง (การตรวจสอบเซิร์ฟเวอร์ sql) ไปยังผู้ใช้ฐานข้อมูลเดียว (ซึ่งมีสิทธิ์ที่กำหนดโดยการเป็นสมาชิกของบทบาทฐานข้อมูล)? ฉันมีการลงชื่อเข้าใช้ sql หลายสิบครั้ง (การรับรองความถูกต้องของเซิร์ฟเวอร์ sql) ซึ่งจำเป็นต้องอ่านการตั้งค่าเดียวจากฐานข้อมูลกลางและฉันควรแมปการเข้าสู่ระบบเหล่านี้ทั้งหมดกับผู้ใช้ฐานข้อมูลเดียวในฐานข้อมูลเป้าหมาย ถ้าใช่จะมีไวยากรณ์ T-SQL ที่ถูกต้องอะไรบ้าง

2
จะเริ่มต้นกับ Oracle ได้อย่างไร
คำตอบของคำถามนี้เป็นความพยายามของชุมชน แก้ไขคำตอบที่มีอยู่เพื่อปรับปรุงโพสต์นี้ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ คำถามนี้ต้องการคำตอบเดียว: รายการแหล่งข้อมูลที่ยอดเยี่ยมสำหรับการเริ่มต้นกับ Oracle รวมถึงการบริหารฐานข้อมูล, PL / SQL และ SQL คุณอาจพบว่าคำถามของคุณถูกปิดซ้ำซ้อนกับคำถามนี้ถ้าเป็นเช่นนั้นโปรดอย่าโกรธเคือง: เราพยายามที่จะเป็นประโยชน์มากที่สุดเท่าที่จะทำได้โดยที่เราไม่ลดทอนจุดเน้นของผู้เชี่ยวชาญของไซต์นี้ การปิดคำถามที่ซ้ำกันของคำถามนี้คือเรากำลังพูดว่า "สิ่งที่คุณต้องการจริงๆคือการใช้เวลาอ่านแหล่งข้อมูลที่ดีที่สุดบางแห่งแทนที่จะตอบคำถามเฉพาะตอนนี้ถ้าคุณผ่านแหล่งข้อมูลเหล่านี้คุณจะได้ เร็ว ๆ นี้จะกลับมาพร้อมคำถามขั้นสูง !
11 oracle  plsql 

1
จะปรับปรุงอัตราส่วน Hit Cache ได้อย่างไร?
จากสิ่งที่ฉันสามารถบอกได้ถึงอัตราส่วนของ Hit Cache ที่ต่ำกว่า 95% เป็นปัญหา ในกล่องของฉันค่าโฮเวอร์จาก 85 ถึง 95% ฉันจะแก้ไขปัญหานี้ได้อย่างไร เซิร์ฟเวอร์ดูเหมือนจะมี RAM มากมายจึงไม่น่าจะมีปัญหา มีอะไรอีกบ้างที่เป็นไปได้?

3
มีวิธีหาใครเปลี่ยนรหัสผ่านสำหรับการเข้าสู่ระบบหรือไม่?
ฉันพยายามค้นหาว่าใครเปลี่ยนรหัสผ่านสำหรับการเข้าสู่ระบบใน SQL Server 2008 R2 ฉันได้ตรวจสอบการติดตามเริ่มต้นแล้วและไม่ได้บันทึกเหตุการณ์นั้น การติดตามเริ่มต้นจะรวมถึงเหตุการณ์ที่เกี่ยวข้องกับความปลอดภัย: /* Audit Add DB user event Audit Add login to server role event Audit Add Member to DB role event Audit Add Role event Audit Add login event Audit Backup/Restore event Audit Change Database owner Audit DBCC event Audit Database Scope GDR event …

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