คุณลักษณะใดของออราเคิลทำให้เป็นตัวเลือกที่น่าสนใจสำหรับโครงการขนาดเล็ก


13

เนื่องจากการจัดการสิทธิ์ใช้งานของออราเคิล[a] (และมีค่าใช้จ่ายน้อยกว่านี้) ฉันสงสัยอยู่เสมอว่าปัจจัยในการตัดสินใจเลือกใช้ Oracle บน PostgreSQL หรือ MySQL เป็นอย่างไร

บริษัท ของฉันมักจะเลือกใช้ Oracle (XE มากที่สุด) แม้จะเป็นโครงการขนาดเล็กที่มี Windows Server เพียงกล่องเดียวที่รันฐานข้อมูลโดยไม่มีการจัดการฐานข้อมูลโดยเฉพาะ (โปรดทราบว่าขนาดเล็กไม่ได้หมายความว่าข้อมูลจะพอดีกับข้อ จำกัด ขนาดเล็กของ Oracle XE เสมอ)

ฉันตั้งคำถามกับตัวเลือกนี้อยู่เสมอ แต่อย่างน้อยก็มีข้อดีที่เราได้สัมผัสกับผลิตภัณฑ์ฐานข้อมูลเดียว

ยังได้รับโครงการใหม่ที่คุณต้องการ RDBMS แต่โครงการและขอบเขตของฐานข้อมูลนั้นค่อนข้างเล็กโดยขึ้นอยู่กับคุณลักษณะเฉพาะของ Oracle ที่ทำงานบนกล่องเซิร์ฟเวอร์ Windows แบบง่าย ๆ (โดยไม่ต้องมีการจัดการที่เฉพาะเจาะจงมากเกินไป) อีก RDBMS?

บริบทเพิ่มเติม : การปรับใช้ฐานข้อมูลจำนวนมากของเราทำงานที่ไซต์ของลูกค้าใน a ให้เรียกมันว่า "โหมดการดูแลต่ำ" นั่นคือฐานข้อมูลถูกตั้งค่าครั้งเดียว มีการทดสอบเบื้องต้นเกี่ยวกับพฤติกรรมและประสิทธิภาพที่ถูกต้องในไซต์ หลังจากนี้ฐานข้อมูลก็จะเปิดอยู่ ไม่มีการบริหารปกติทำ เฉพาะในกรณีที่มีสิ่งผิดปกติช่างเทคนิค (ไม่ใช่ DBA เฉพาะ) จะตรวจสอบฐานข้อมูลพยายามหาว่าเกิดอะไรขึ้น การสำรองข้อมูลส่วนใหญ่จะเป็นการสำรองข้อมูลแบบออฟไลน์ ในบางโครงการลูกค้าไม่สนใจว่ามี RDBMS ที่เกี่ยวข้อง พวกเขาเห็นแอปเป็นกล่องดำที่ใช้งานได้ (หรือไม่)

[a]: ที่ทำงานฉันต้องใช้ผู้จัดการโครงการหลายเดือนหลายครั้งเพื่อรับสิทธิ์การใช้งานที่เหมาะสมสำหรับโครงการขนาดเล็กเนื่องจากตัวแทนของ Oracle ในท้องถิ่นไม่สนใจขายผลิตภัณฑ์ของตนหากรายได้ค่อนข้างเล็ก


พวกเขาเลือก XE อย่างไรสำหรับข้อมูลที่ "ไม่เหมาะกับข้อ จำกัด ขนาดเล็กของ XE เสมอ"?
แจ็คบอกว่าลอง topanswers.xyz

@ แจ็ค: ถ้ามันเหมาะกับที่เราใช้ XE ถ้ามันไม่ ... เราก็ไม่ได้ :-)
มาร์ติน

11.2 Express Edition เป็นรุ่นเบต้าและมีการขยายขีด จำกัด ข้อมูลผู้ใช้จาก 4 GB เป็น 11 GB ดูoracle.com/technetwork/database/express-edition/…
Leigh Riffel

Oracle ไม่มี PIVOT, MySQL และ Postgres นั่นเป็นข้อดีอย่างมากในบางสถานการณ์
Phil Lello

1
@ Phil Lello: PostgreSQL ไม่มี PIVOT ให้ตรวจสอบ contrib: postgresql.org/docs/current/static/tablefunc.html
Frank Heikens

คำตอบ:


12

ฉันสามารถตอบได้เฉพาะ Oracle และ Postgres เท่านั้น หลังจากใช้ Oracle มาเป็นเวลาหลายปีและหลังจากนั้นเพียงสองปีที่ผ่านมาฉันรัก postgres มีวิธีเล็ก ๆ น้อย ๆ มากมายที่จะสะดวกกว่าการใช้ Oracle และแบ่งปันประโยชน์ที่สำคัญมากมาย (เช่น MVCC) ง่ายต่อการจัดการเชื่อถือได้มีเอกสารที่ยอดเยี่ยมและแน่นอนมันฟรี

อย่างไรก็ตาม postgres ไม่ตรงกับ Oracle ในบางพื้นที่เช่น:

  • RAC - เท่าที่ฉันรู้ว่าไม่มีเทคโนโลยีการจัดกลุ่มที่ดีกว่าสำหรับฐานข้อมูลใด ๆ
  • RMAN - เหนือกว่าฟีเจอร์การสำรองข้อมูลและการกู้คืนพื้นฐานของ postgres โดยเฉพาะอย่างยิ่งกับการติดตามการเปลี่ยนแปลงบล็อกและการสำรองข้อมูลเพิ่มเติม (ซึ่งคุณสามารถนำไปใช้กับการสำรองข้อมูลอื่น ๆ
  • รองรับ Oracle - มีอยู่ สนับสนุน postgres ไหม ไม่มากนัก
  • คุณสมบัติอื่น ๆ อีกมากมายเช่น IOTs, 'Secure Files' และเทคโนโลยีการบีบอัดข้อมูลที่ไม่มีอนาล็อกในโลกหลังสงคราม

สิ่งที่น่าสนใจเกือบทั้งหมดในฟีเจอร์เหล่านี้จะหายไปหรือหมดสภาพใน XE ฉันคิดว่าฉันเลือก postgres มากกว่า XE ทุกคนเท่าเทียมกัน แต่ ...

... ไม่มีสิ่งใดที่กล่าวถึงเหตุผลสำคัญสองข้อในการเลือก Oracle:

  1. คุณใช้ Oracle อยู่แล้วและคุณลงทุนอย่างมหาศาล (ความเป็นอิสระของฐานข้อมูลเป็นเรื่องที่โง่เขลา)
  2. นักพัฒนาและ DBA ของคุณรู้จัก Oracle และใช้คุณลักษณะต่างๆอย่างเต็มที่ (ทำไมพวกเขาถึงไม่เป็นอิสระจากฐานข้อมูลจึงเป็นเรื่องที่โง่เขลาอยู่ดี)

แก้ไข:

สถานการณ์เดียวที่ฉันเลือก postgres มากกว่า XE ทุกครั้งคือถ้าความปลอดภัยเป็นเรื่องที่น่ากังวล หากฐานข้อมูลของคุณหรือแอปพลิเคชันใด ๆ ของมันถูกเชื่อมต่อกับอินเทอร์เน็ตสาธารณะฉันไม่แน่ใจว่า XE เป็นความคิดที่ดีหรือไม่


RGD RMAN - ดังนั้นคุณจะบอกว่าคุณสมบัติการสำรองข้อมูลของ Oracle นั้น "ดีกว่า" ของ Postgre หรือไม่ สิ่งนี้จะอยู่ในสภาพแวดล้อมที่มีการจัดการต่ำหรือไม่ (ดูการแก้ไข Q ของฉัน)
Martin

@ มาร์ติน - RMAN มีพลังและเป็นผู้ใหญ่มากฉันเชื่อว่ามันได้เห็นฉันผ่านสถานการณ์การกู้คืนที่แตกต่างกัน สิ่งหนึ่งที่ไม่ใช่คือ 'เรียบง่าย' ดูเหมือนว่าคุณกำลังทำอยู่โดยไม่มี DBA ที่มีราคาแพงคุณใช้ RMAN สำหรับการสำรองข้อมูลออฟไลน์ในตอนนี้หรือไม่? คุณจัดส่งการสำรองข้อมูล Gb หลายรายการของคุณเป็นรายวันหรือไม่?
แจ็คบอกว่าลอง topanswers.xyz

เซิร์ฟเวอร์ SQL มีการทำคลัสเตอร์ HA ซึ่งจะเทียบเท่ากับ RAC ของ Oracle
StanleyJohns

@stan the dba จากสิ่งที่ฉันได้อ่านตัวเลือกการจัดกลุ่มสำหรับ SQL Server พวกเขาไม่ได้เทียบได้กับ RAC เลยส่วนใหญ่พวกเขาล้มเหลวในการแก้ปัญหาไม่ใช่ทางออกที่แท้จริงเช่น rac
Matthew Watson

เหตุผลที่สองของคุณในการเลือก Oracle นั้นค่อนข้างเหมือนกับ IMO อันดับที่ 1 โดยพื้นฐานแล้วคุณมุ่งมั่น - สำหรับการสนับสนุนนั่นมีอยู่สำหรับ Postgres เช่นกัน หากคุณไม่พอใจกับรายชื่อผู้รับจดหมายที่ยอดเยี่ยมลองดูรายชื่อบริษัท ที่ให้การสนับสนุนที่มีค่าใช้จ่ายในภูมิภาคของคุณ
eevar

9

ออราเคิลเอเพ็กซ์ สภาพแวดล้อมของเว็บแอปพลิเคชั่นที่ใช้งานง่ายและมีประโยชน์ซึ่งสร้างอยู่ในฐานข้อมูล ค่อนข้างง่ายทำให้การปรับใช้แอปพลิเคชั่น 'กล่องเดียว' กับ web ui / application logic / ฐานข้อมูลในแพ็คเกจเดียว

PS 11g XE (ขณะนี้อยู่ในรุ่นเบต้า) ขยายพื้นที่เก็บข้อมูลเป็นมากกว่า 10GB


+1 สำหรับ APEX ในขณะที่มันมีปัญหาและ gremlins ของมันฉันรักสิ่งนี้สำหรับการใช้งานออกจากพื้นดินอย่างรวดเร็วและง่ายดาย ในฐานะที่เป็น RAD สำหรับ Oracle ฉันสามารถคิดได้
Kerri Shotts

5

แม้ว่าตัวเลือกย้อนหลังอื่น ๆ ของออราเคิลจะไม่สามารถใช้งานได้ใน Express Edition แต่Flashback Queryนั้นก็คือ ตามคำถามนั้นไม่มีฐานข้อมูลอื่นที่มีคุณสมบัตินี้ที่อนุญาตให้คำสั่ง select เพื่อสืบค้นข้อมูล ณ เวลาใดเวลาหนึ่งในอดีต ข้อมูลรำลึกความหลังสามารถเข้าร่วมกับข้อมูลปัจจุบันและแทรกลงในตารางปัจจุบันทำให้มีประโยชน์สำหรับการเลิกทำการพิมพ์การเปลี่ยนแปลงชั่วคราวและการเปรียบเทียบการเปลี่ยนแปลงที่ทำโดยวิธีการในที่เดียว

บางสิ่งอื่น ๆ ที่ฐานข้อมูลอื่นไม่มี Oracle Express Edition ทำ


5
postgres ทำเครื่องหมาย 'AuthID ผู้ใช้ปัจจุบันเทียบกับ Definer', 'ตรวจสอบข้อ จำกัด ', 'Deferrable Constraints', 'การเพิ่มวันที่และการลบ', 'Quierarchical Queries', ทริกเกอร์ที่ไม่ใช่สคีมา 'ส่วนฟังก์ชั่นการวิเคราะห์' บางส่วน , 'ฟังก์ชั่น XML', ครอบคลุมได้ถึง 1Gb, 'สร้างหรือแทนที่' และ 'Multi-Platform' กล่องด้วย (อย่างน้อย)
Jack บอกว่าลอง topanswers.xyz

@ JackPDouglas มันเป็นเรื่องยากที่จะสร้างรายชื่อผู้เชี่ยวชาญเมื่อการแข่งขันคือ "ทุกอย่างอื่น" ขอบคุณสำหรับข้อมูล.
Leigh Riffel

@Leigh - ตกลงฉันเดาว่ารายการของคุณเป็นข้อมูลอ้างอิงที่มีประโยชน์สำหรับ Martin คุณไม่ได้พูดถึง RMAN อย่างน้อยในปัจจุบัน (v10) XE ที่รวมอยู่แม้ว่าจะไม่ได้ใช้งานโดยค่าเริ่มต้น เพียงหนึ่ง nit-pick: ถ้า XE ถูก จำกัด ที่ 4 หรือ 11Gb ดังนั้นไม่รองรับ Clobs มากถึง 128Tb :)
แจ็คบอกว่าลอง topanswers.xyz

@JackPDouglas คุณพูดถึง RMAN แล้วและฉันไม่ได้ตั้งใจจะแทนที่คำตอบของคุณ (หรืออื่น ๆ )
Leigh Riffel

@ JackPDouglas จับภาพได้ดี ฉันทิ้งไว้ในรายการเนื่องจากการอุดตันขนาดเล็กอาจมีประโยชน์ใน XE และหากฐานข้อมูลเติบโตขึ้นการอยู่บนแพลตฟอร์มที่รองรับการอุดตันขนาดใหญ่มากอาจเป็นประโยชน์
Leigh Riffel

4

ก่อนอื่นฉันคิดว่าคุณไม่ควรประมาทปัจจัยที่มี Oracle Know-How อยู่แล้ว แต่ไม่ใช่สำหรับ RDBMS อื่น ๆ การสร้างความรู้ให้กับผู้อื่นนั้นต้องใช้เวลาและเงินและอาจมาพร้อมกับข้อผิดพลาดบางอย่างเมื่อเริ่มต้น

นอกจากนี้คุณไม่เคยรู้ว่าโครงการขนาดเล็กจะไม่เติบโตขึ้นหรือไม่ จากนั้นคุณสามารถอัปเกรดได้อย่างราบรื่นและรวดเร็วจาก XE เป็น Standard Edition One เป็น Standard Edition เป็น Enterprise Edition การย้ายจาก RDBMS อื่นจะใช้เวลาและเงินมากขึ้นอีกครั้ง บรรทัดล่าง: ฉันคิดว่า บริษัท ของคุณทำถูกต้อง - ตกลงฉันอาจจะลำเอียงเล็กน้อย :-)


Weeell ฉันจะบอกว่า Oracle รู้ว่านี่เป็นเรื่องเกี่ยวกับ ... อืม ... ฉันอาจต้องใช้เวลา 3 ชั่วโมงกับ Postgre บวกกับ googleing เล็กน้อยเพื่อไปยังจุดที่ฉันสามารถทำได้มากเท่ากับที่ฉัน สามารถกับ Oracle (ยกเว้น PL / SQL) และฉันชอบคิดว่าฉันเป็นหนึ่งในผู้ใช้พลังงานของ Oracle ที่นี่ :-) - แต่ข้อโต้แย้งของคุณเกี่ยวกับเส้นทางการอัปเกรดนั้นใช้ได้อย่างแน่นอน
Martin

@ มาร์ติน: นั่นไม่ใช่สัญญาณที่ดี ... ฉันใช้ postgres สำหรับหนึ่งในโครงการของเรา (เป็นส่วนหนึ่งของแอพพลิเคชั่นแบบแพคเกจ) เป็นเวลา ~ 2 ปีและฉันก็ยังไม่สามารถทำงานได้ดี (ส่วนหนึ่งเป็นเพราะ ส่วนของโปรแกรมที่ผมใช้อาศัยอย่างหนักในcount()ซึ่งดูเหมือนว่าจะเป็นร้อยหวาย postgres ของส้นเท้า) ฉันต้องถาม stackoverflow ว่าจะมีอิทธิพลต่อผู้วางแผนอย่างไร
Joe

2

หนึ่งในคุณสมบัติที่ดีของ Oracle คือคุณสมบัติเช่น Oracle Resource Manager ที่ทำให้การรวมแอปพลิเคชันในฐานข้อมูลเดียวง่ายกว่าการมีฐานข้อมูลแยกต่างหากสำหรับทุกแอปพลิเคชัน ดูเหมือนว่านี่ไม่ได้ใช้ในองค์กรของคุณ ฉันได้ออกแบบฐานข้อมูลรวมในอดีตสำหรับโครงการเช่นเดียวกับที่คุณพูดถึง

  • ทุกโครงการมีฮาร์ดแวร์เป็นของตัวเอง
  • ทุกโครงการมีใบอนุญาตเป็นของตัวเอง
  • ทุกโครงการมีที่เก็บของเป็นของตัวเอง

นี่เป็นสาเหตุที่แม้แต่โครงการที่ง่ายที่สุดทั้งหมดก็ใช้เวลาหลายเดือนในการเริ่มต้นและในช่วงเวลาที่ตลาดมีความสำคัญอย่างยิ่งนี่คือการฆ่า ด้วยเหตุผลบางอย่างสิ่งนี้พลาดโดยหลายคนมักถูกละเลยด้วยเหตุผลทางการเมือง

วิธีแก้ปัญหานี้ค่อนข้างง่าย สร้างฐานข้อมูลที่ร้ายแรงหนึ่งโครงการให้ทุกโครงการ / แอปพลิเคชันของตนเองและเข้าถึงผู้ใช้ [s] และทำงานเป็นชั่วโมงแทนที่จะเป็นเดือน หากคุณกำลังจะทำอะไรเช่นนี้มันสามารถพิสูจน์ได้ว่าเป็นประโยชน์ในการรวมแอปพลิเคชันที่มีข้อกำหนดด้านเวลาที่คล้ายคลึงกัน Oracle มีตัวเลือกการบำรุงรักษาออนไลน์เพิ่มมากขึ้น แต่บางครั้งการหยุดทำงานไม่กี่ชั่วโมงก็ง่ายขึ้นมาก การมีช่วงเวลาสำหรับกำหนดไว้ล่วงหน้านี้สามารถป้องกันปัญหาได้มากมาย คุณจะต้องหยุดทำงาน

ไม่อนุญาตให้แอปพลิเคชันเชื่อมต่อกับฐานข้อมูลทำให้เชื่อมต่อกับบริการเฉพาะแอปพลิเคชันโดยใช้ tns-aliasses ของตนเอง การทำเช่นนั้นช่วยให้คุณสามารถย้ายแอปพลิเคชันไปยังฐานข้อมูลอื่นโดยไม่จำเป็นต้องกำหนดค่าแอปพลิเคชันอีกครั้ง

BTW: บริษัท ที่ใช้วิธีการรวมแบบนี้ช่วยประหยัดเงินสดเป็นจำนวนมากทุกปีมากกว่าใบอนุญาตที่จำเป็นสำหรับการเริ่มต้น


ขอบคุณสำหรับข้อมูลนี้ โปรดทราบว่าโครงการจำนวนมากมีฐานข้อมูลที่ทำงานอยู่ที่ไซต์ของลูกค้าดังนั้นจึงไม่มีเหตุผลที่จะรวมเข้าด้วยกัน (ถ้าผมเข้าใจคุณ wrt อย่างถูกต้องเพื่อการรวม..)
มาร์ติน

มันอาจจะยังแนะนำให้มันรวมโดยลูกค้าที่แพคเกจจะสิ้นสุดลง ถ้ามันควรจะเป็นฐานข้อมูลที่ฝังตัวมันอาจจะแตกต่างกันเล็กน้อย
ik_zelf

เพื่อความชัดเจน Oracle XE ไม่มีคุณสมบัติตัวจัดการทรัพยากรดังนั้นสิ่งนี้จะเป็นประโยชน์ในการรวมเข้ากับเซิร์ฟเวอร์ที่ได้รับสิทธิการใช้งานเท่านั้น @ik_zelf ฉันรู้ว่าไม่ใช่ความตั้งใจของคุณที่จะระบุเป็นอย่างอื่น
Leigh Riffel

@Leigh Riffel ใช่ฉันคิดว่ามีการติดตั้ง Oracle ในสถานการณ์แบบรวมที่ฉันต้องการ EE คำถามดูเหมือนจะดูเพิ่มเติมเกี่ยวกับโซลูชันแบบฝังตัว
ik_zelf
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.