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

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

2
Mongo สร้างผู้ใช้ในฐานะผู้ดูแลระบบสำหรับฐานข้อมูลใด ๆ ที่ทำให้เกิดข้อผิดพลาด
ฉันกำลังพยายามสร้างผู้ใช้แบบง่าย ๆ โดยได้รับอนุญาตให้เข้าถึงฐานข้อมูลและสามารถดำเนินการใด ๆ ได้ เมื่อฉันพยายามรันcreateUserคำสั่งฉันได้รับข้อผิดพลาดนี้: db.createUser({ user: "mongoadmin" , pwd: "mongoadmin", roles: ["userAdminAnyDatabase", "dbAdminAnyDatabase", "readWriteAnyDatabase"]}) 2015-08-20T17:09:42.300+0000 E QUERY Error: couldn't add user: No role named userAdminAnyDatabase@new_vehicles_catalog ปัญหาข้างต้นเกิดขึ้นเฉพาะเมื่อฉันเปิดใช้งานการกำหนดค่ารับรองความถูกต้องและฉันต้องการมัน ดังนั้นฉันจะสร้างผู้ใช้ที่มีสิทธิ์ผู้ดูแลระบบสำหรับฐานข้อมูลใด ๆ ได้อย่างไร ฉันต้องการเพราะฉันกำหนดค่าบริการ Mongo ของฉันเพื่อใช้การเชื่อมต่อการรับรองความถูกต้อง หากฉันต้องการดำเนินการถ่ายโอนข้อมูลของฉันฉันต้องใช้พารามิเตอร์การตรวจสอบนี้ กรุณาช่วยใด ๆ ใช้Mongo เวอร์ชัน 3.0.5 บริการอยู่ในAmazon Linux AMI 2015.03 (HVM), SSD Volume Type - ami-1ecae776

2
เหตุใดการเพิ่มผู้ใช้ SQL Server ใน“ ดำเนินการบำรุงรักษาโวลุ่ม” จะช่วยเพิ่มความเร็วในการปรับขนาดฐานข้อมูลได้มาก?
ถ้าฉันต้องการสร้างฐานข้อมูล 5GB ด้วย CREATE DATABASE [test] CONTAINMENT = NONE ON PRIMARY ( NAME = N'test', FILENAME = N'E:\2012\test.mdf' , SIZE = 5529600KB , FILEGROWTH = 1024KB ) LOG ON ( NAME = N'test_log', FILENAME = N'E:\2012\test_log.ldf' , SIZE = 1024KB , FILEGROWTH = 10%) ใช้เวลา1 นาทีบน SSD ของฉัน แต่เมื่อฉันเพิ่มผู้ใช้ SQL …

1
การแก้ไขการหยุดชะงักจาก 2 ตารางเกี่ยวข้องเฉพาะผ่านมุมมองที่จัดทำดัชนี
ฉันมีสถานการณ์ที่กำลังหยุดชะงักและฉันคิดว่าฉัน จำกัด ผู้กระทำผิด แต่ฉันไม่แน่ใจว่าฉันจะทำอะไรได้บ้างเพื่อแก้ไข นี่คือสภาพแวดล้อมการผลิตที่ใช้ SQL Server 2008 R2 เพื่อให้คุณเข้าใจสถานการณ์ได้ง่ายขึ้น: ฉันมี 3 ตารางตามที่กำหนดไว้ด้านล่าง: TABLE activity ( id, -- PK ... ) TABLE member_activity ( member_id, -- PK col 1 activity_id, -- PK col 2 ... ) TABLE follow ( id, -- PK follower_id, member_id, ... ) member_activityตารางมีสารประกอบหลักสำคัญกำหนดเป็นmember_id, activity_idเพราะฉันเท่านั้นที่เคยต้องดูข้อมูลในตารางที่ว่าวิธีการ ฉันยังมีดัชนี nonclustered …

1
วิธีแปลงเวลา unix เป็น Timstamp ของ PostgreSQL โดยไม่มี timezome
ฉันมีฐานข้อมูล PostgreSQL ทำงานบนเซิร์ฟเวอร์ที่ตั้งค่าเขตเวลาเป็นโซนเวลาของอินเดีย (เช่น UTC +5: 30) ฉันมีข้อมูลบางอย่างในตารางที่สร้างเช่นนี้ CREATE TABLE "CLOUDDATA" ( "CD_Tm_Obs" timestamp without time zone, "CD_Avg_Cloud" double precision ) ฉันต้องการสืบค้นข้อมูลและรับค่าตามเวลาที่กำหนด อินพุตของฉันจะเป็น Unix Timestamp (เช่นวินาทีจาก 1 มกราคม 1970) select to_timestamp(TRUNC(CAST(1395036000 AS bigint)))วิธีเดียวของการแปลงเวลายูนิกซ์การประทับเวลาที่ฉันได้พบคือ: แต่สิ่งนี้สร้างการประทับเวลาด้วยเขตเวลา ข้อมูลของฉันอยู่ในtimestamp without time zoneดังนั้นฉันไม่ได้รับผลลัพธ์ใด ๆ วิธีการแปลงเวลา unix เป็น Timstamp ของ PostgreSQL โดยไม่มี timezome?

2
ใน SQL Server ล็อคการอ่านทำงานอย่างไร
สมมติว่าฉันมีคิวรีที่ใช้เวลานานต่อไปนี้ UPDATE [Table1] SET [Col1] = 'some value' WHERE [Col2] -- some clause which selects thousands of rows และสมมติว่ามีการดำเนินการค้นหาต่อไปนี้ขณะที่แบบสอบถามด้านบนทำงานอยู่ SELECT * FROM [Table1] แบบสอบถามแรกป้องกันไม่ให้แบบสอบถามที่สองทำงานจนกว่าแบบสอบถามแรกจะเสร็จสมบูรณ์หรือไม่ ถ้าใช่คิวรีแรกจะป้องกันไม่ให้คิวรีที่สองทำงานในแถวทั้งหมดหรือเฉพาะแถวที่เกี่ยวข้องในส่วนคำสั่ง WHERE หรือไม่ แก้ไข: สมมติว่าแบบสอบถามที่สองคือ SELECT [Col1], [Col2] FROM [Table1] WHERE [Col2] -- some clause whose matching elements overlap those from -- the clause in the …

2
ปิดใช้งานการตรวจสอบ Schema On Function / Stored Procedure
ฉันพยายามทำให้กระบวนการที่ดำเนินการเปลี่ยนแปลงกับฐานข้อมูล SQL Server 2008 R2 เป็นไปโดยอัตโนมัติ กระบวนการที่ฉันวางไว้และสร้างโพรซีเดอร์และฟังก์ชันที่เก็บไว้ของฉันใหม่รวมถึงเรียกใช้สคริปต์เพื่อเปลี่ยนตาราง / คอลัมน์ / ข้อมูล น่าเสียดายที่สคริปต์ตัวใดตัวหนึ่งต้องใช้ฟังก์ชันใดฟังก์ชันหนึ่งก่อน แต่ฉันไม่สามารถเรียกใช้การเปลี่ยนแปลง proc / ฟังก์ชั่นที่เก็บไว้ได้ทั้งหมดเพราะมันอาศัยคอลัมน์ที่เพิ่มเข้ามาจากสคริปต์การเปลี่ยนแปลงตาราง / คอลัมน์ / ข้อมูลก่อน ฉันสงสัยว่าเป็นไปได้หรือไม่ที่จะเรียกใช้โพรซีเดอร์และฟังก์ชันที่เก็บไว้โดยไม่มี SQL Server ตรวจสอบคอลัมน์ที่ใช้ในการกำหนดฟังก์ชัน / SP? ฉันพยายามค้นหา แต่ไม่พบเงื่อนไขหรือคำสั่งเพื่อเปิดใช้งานสิ่งนี้

3
ทำไม Postgres UPDATE ใช้เวลา 39 ชั่วโมง
ฉันมีตาราง Postgres ที่มีแถวประมาณ 2.1 ล้านแถว ฉันวิ่งไปตามการอัพเดทด้านล่าง: WITH stops AS ( SELECT id, rank() OVER (ORDER BY offense_timestamp, defendant_dl, offense_street_number, offense_street_name) AS stop FROM consistent.master WHERE citing_jurisdiction=1 ) UPDATE consistent.master SET arrest_id=stops.stop FROM stops WHERE master.id = stops.id; แบบสอบถามนี้ใช้เวลา 39 ชั่วโมงในการทำงาน ฉันใช้สิ่งนี้กับโปรเซสเซอร์แล็ปท็อป Core i7 Q720 4 ตัว (จริง) RAM จำนวนมากไม่มีอะไรที่ใช้เวลาส่วนใหญ่อีกต่อไป ไม่มีข้อ …
17 postgresql 

1
เกิดอะไรขึ้นกับ MySQL 6 และ 7
ด้วยการเปิดตัว MySQL 8 ครั้งล่าสุดฉันไม่สามารถหาข้อมูลใด ๆ เกี่ยวกับสาเหตุที่หมายเลขรุ่น 6 และ 7 ถูกข้ามไปได้ ใครรู้บ้าง
17 mysql  mysql-8.0 

3
เป็นไปได้ไหมที่จะ จำกัด การหมดเวลาบนเซิร์ฟเวอร์ Postgres?
ฉันตั้งค่าการเชื่อมต่อและหมดเวลาคำสั่งเป็น 10 นาทีในแอปพลิเคชันของฉัน (ฝั่งไคลเอ็นต์) กว่าใบสมัครของฉันเรียกใช้แบบสอบถามง่าย ๆ : SELECT pg_sleep(65) ในบางเซิร์ฟเวอร์มันใช้งานได้ดี แต่เซิร์ฟเวอร์อื่นปิดการเชื่อมต่อหลังจาก 60 วินาที นี่อาจเป็นประเภทของการกำหนดค่าเซิร์ฟเวอร์ PostgreSQL ซึ่ง จำกัด การหมดเวลาและละเว้นการตั้งค่าไคลเอ็นต์ของฉันหรือไม่

3
การตั้งค่า MySQL InnoDB page_cleaner อาจไม่เหมาะสม
เห็นหมายเหตุนี้ใน mysqld.log: [Note] InnoDB: page_cleaner: 1000ms intended loop took 15888ms. The settings might not be optimal. (flushed=200 and evicted=0, during the time.) ดูเหมือนว่าจะมีการพูดถึงบางสิ่งเช่นนี้: MySQL อินสแตนซ์ถ่วง "ทำดัชนี SYNC" คำถามของฉันคือ:ควรมีการดำเนินการใดบ้างหากมีเมื่อเห็นบันทึกนี้ในบันทึก รุ่น MySQL และ OS: mysql-community-server- 5.7.9 -1.el7.x86_64 centos-release-7-1.1503.el7.centos.2.8.x86_64 กำลังแสดงตัวแปรต่างๆเช่น 'innodb%'; ตามที่แนะนำแสดงให้เห็น: innodb_page_cleaners | 1

2
สองเซสชันสร้าง #temp tables ด้วยชื่อเดียวกันได้หรือไม่
ฉันกำลังสร้างตารางชั่วคราว ( #myTable) และใช้เคอร์เซอร์ สิ่งนี้สร้างปัญหาหรือไม่เมื่อผู้ใช้พร้อมกันเข้าถึงเคอร์เซอร์ผ่านแอปพลิเคชันของฉัน ฉันอนุญาตให้สร้างตารางชั่วคราวแยกด้วยชื่อเดียวกันได้หรือไม่ ต่อไปนี้เป็นตัวอย่างรหัส: Open cursor; Fetch Next from cursor into @Variable_Temp_Table_Name; Create table #myTable(pk int) While @@Fetch_Status = 0 Begin Fetch Next from cursor into @Variable_Temp_Table_Name; End

2
ปฏิเสธสิทธิ์ในการพยายามนำเข้า
เมื่อฉันพยายามที่จะใช้\iในไฟล์ที่ไม่อยู่ใน psql.exe C:: permission deniedที่โฟลเดอร์ที่มันพูดว่า เช่นฉันมีไฟล์ที่มีคำสั่ง SQL ที่C:\Users\Work\Desktop\School Work\load_database.sqlและเมื่อฉันพิมพ์มันบอกว่า\i "C:\Users\Work\Desktop\School Work\load_database.sql" C:: permission deniedฉันจะแก้ไขสิ่งนี้ได้อย่างไร ฉันพบการทำงานที่นี่ที่คุณคัดลอกไฟล์. sql ไปยังโฟลเดอร์เดียวกันกับ psql.exe โดยวิธีการที่\ ฉันยืนสำหรับการนำเข้า?

1
ผู้ประกอบการใช้ tempdb ในการรั่วไหลของข้อมูลระหว่างการดำเนินการกับระดับที่หก
ฉันกำลังดิ้นรนเพื่อลดต้นทุนของการดำเนินการเรียงลำดับในแผนแบบสอบถามด้วยOperator usedtempdb คำเตือนto spill data during execution with spill level 2 ฉันพบโพสต์หลายรายการที่เกี่ยวข้องกับข้อมูลการรั่วไหลในระหว่างการดำเนินการกับการรั่วไหลระดับ 1แต่ไม่ใช่ระดับ 2 ดูเหมือนว่าระดับ 1 จะทำให้สถิติล้าสมัยแล้วระดับ 2 เป็นอย่างไร level 2ฉันไม่สามารถหาอะไรที่เกี่ยวข้องกับ ฉันพบบทความนี้น่าสนใจมากที่เกี่ยวข้องกับคำเตือนการเรียง: อย่าเพิกเฉยต่อคำเตือนการเรียงลำดับใน SQL Server เซิร์ฟเวอร์ SQL ของฉัน Microsoft SQL Server 2014 (SP2) (KB3171021) - 12.0.5000.0 (X64) 17 มิถุนายน 2016 19:14:09 ลิขสิทธิ์ (c) Microsoft Corporation รุ่นองค์กรองค์กร (64 บิต) บน Windows …

2
วิธีการทำซ้ำฐานข้อมูลใน postgresql
ฉันต้องการทำซ้ำฐานข้อมูลที่มีอยู่รวมถึงสคีมาและโครงสร้างไปยังฐานข้อมูลใหม่อื่น ฉันต้องการสิ่งนี้ในสภาพแวดล้อมคำสั่งเชลล์และไม่อยู่ใน pgadmin ได้โปรดช่วยฉันด้วย nohup pg_dump exampledb > example-01.sql createdb -O postgres exampledbclone_01 ผู้ใช้ของฉันคือ "postgres" nohup psql exampledbclone_01 < example-01.sql $ pg_dump mydb > db.sql $ psql -d newdb -f db.sql
17 postgresql 

1
ข้อผิดพลาด Postgres [คอลัมน์จะต้องปรากฏในกลุ่มตามข้อหรือใช้ในฟังก์ชั่นรวม] เมื่อใช้แบบสอบถามย่อย
ฉันมีสองตารางและemployee phonesพนักงานสามารถมีหมายเลขโทรศัพท์ 0 ถึง n ฉันต้องการแสดงชื่อพนักงานพร้อมหมายเลขโทรศัพท์ ฉันใช้แบบสอบถามด้านล่างซึ่งทำงานได้ดี SELECT empname,array_agg(phonenumber) AS phonenumbers FROM employee LEFT OUTER JOIN phones ON employee.empid = phones.empid GROUP BY employee.empid ตารางพนักงานอาจมีแถวจำนวนมาก ฉันต้องการเรียกพนักงานเพียงบางคนในเวลาเดียวกัน ตัวอย่างเช่นฉันต้องการเรียกพนักงาน 3 คนด้วยหมายเลขโทรศัพท์ของพวกเขา ฉันพยายามเรียกใช้แบบสอบถามนี้ SELECT empname,array_agg(phonenumber) AS phonenumbers FROM (SELECT * FROM employee ORDER BY empname LIMIT 3 OFFSET 0) AS employee LEFT OUTER …

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