Những tính năng nào của Oracle làm cho nó trở thành một lựa chọn hấp dẫn cho các dự án nhỏ?


13

Với việc xử lý cấp phép của Oracle [a] (và, ở mức độ thấp hơn, chi phí), tôi luôn tự hỏi những yếu tố quyết định sẽ là gì khi chọn Oracle thay vì PostgreQuery hoặc MySQL.

Công ty của tôi gần như luôn luôn chọn Oracle (XE nếu có thể), ngay cả đối với các dự án nhỏ, nơi chỉ có một hộp máy chủ Windows đơn giản chạy cơ sở dữ liệu mà không cần quản trị DB chuyên dụng. (Lưu ý rằng nhỏ không không có nghĩa là các dữ liệu sẽ luôn luôn phù hợp với những hạn chế về kích thước khá nhỏ của Oracle XE.)

Tôi đã luôn đặt câu hỏi về sự lựa chọn này, nhưng nó có lợi ích là ít nhất chúng ta chỉ được tiếp xúc với một sản phẩm cơ sở dữ liệu.

Tuy nhiên, được đưa ra một dự án mới, nơi bạn cần RDBMS, nhưng dự án và phạm vi của cơ sở dữ liệu khá nhỏ, dựa trên các tính năng độc đáo của Oracle chạy trên các hộp máy chủ Windows đơn giản (không có quá nhiều quản trị chuyên dụng), bạn sẽ chọn Oracle hơn RDBMS khác?

Bối cảnh bổ sung : Rất nhiều triển khai cơ sở dữ liệu của chúng tôi chạy tại các trang web của khách hàng trong một, hãy gọi nó là chế độ "quản trị thấp". Đó là, cơ sở dữ liệu được thiết lập một lần. Có một số thử nghiệm ban đầu về hành vi và hiệu suất chính xác của nó trên trang web. Sau này, cơ sở dữ liệu sẽ chạy trên đó. Không có quản trị thường xuyên được thực hiện. Chỉ khi đôi khi bị hỏng, một kỹ thuật viên (không phải là một DBA chuyên dụng) sẽ kiểm tra cơ sở dữ liệu, cố gắng tìm ra điều gì xảy ra. Sao lưu chủ yếu được thực hiện như sao lưu ngoại tuyến. Trong một số dự án, khách hàng thậm chí không quan tâm có RDBMS liên quan. Họ chỉ xem ứng dụng của họ là một hộp đen hoạt động (hoặc không).

[a]: Nơi tôi làm việc, nhiều người quản lý dự án phải mất nhiều tháng để có được giấy phép phù hợp cho các dự án nhỏ vì đại diện của Oracle tại địa phương chỉ đơn giản là không quan tâm đến việc bán sản phẩm của họ nếu doanh thu nhỏ.


Làm thế nào họ chọn XE cho dữ liệu không "luôn phù hợp với các ràng buộc kích thước khá nhỏ của XE"?
Jack nói hãy thử topanswers.xyz

@Jack: nếu nó phù hợp với chúng tôi sử dụng XE, nếu nó không ... tốt, chúng tôi không :-)
Martin

Phiên bản 11.2 Express đang ở giai đoạn thử nghiệm và giới hạn dữ liệu người dùng đã được mở rộng từ 4 GB lên 11 GB. Xem oracle.com/technetwork/database/express-edition/ từ
Leigh Riffel

Oracle có PIVOT, MySQL và Postgres thì không. Đó là một điểm cộng lớn trong một số tình huống.
Phil Lello

1
@ Phil Lello: PostgreSQL không có PIVOT, hãy kiểm tra contrib: postgresql.org/docs/civerse/static/tablefunc.html
Frank Heikens

Câu trả lời:


12

Tôi chỉ có thể cố gắng trả lời cho Oracle và postgres. Sau khi sử dụng Oracle độc ​​quyền trong nhiều năm và chỉ postgres trong hai năm gần đây, tôi thích postgres. Có rất nhiều cách nhỏ để sử dụng thuận tiện hơn so với Oracle và nó chia sẻ nhiều lợi ích quan trọng (như MVCC). Nó dễ dàng hơn để quản trị, đáng tin cậy, có tài liệu tuyệt vời, và tất nhiên, nó là miễn phí.

Tuy nhiên, postgres không phù hợp với Oracle trong một số lĩnh vực, chẳng hạn như:

  • RAC - theo như tôi biết thì không có công nghệ phân cụm nào tốt hơn cho bất kỳ cơ sở dữ liệu nào
  • RMAN - vượt trội hơn nhiều so với các tính năng sao lưu và phục hồi cơ bản của postgres, đặc biệt là theo dõi thay đổi khối và sao lưu gia tăng (bạn có thể áp dụng cho các bản sao lưu khác để cập nhật đầy đủ bản sao lưu)
  • Hỗ trợ Oracle - tồn tại. hỗ trợ postgres? Không nhiều lắm
  • nhiều tính năng khác như IOT, 'Tệp bảo mật' và công nghệ nén không có tương tự trong thế giới hậu kỳ

Điều thú vị là hầu hết tất cả các tính năng này đều vắng mặt hoặc bị tê liệt trong XE. Tôi nghĩ rằng tôi sẽ chọn postgres trên XE, tất cả những thứ khác đều bằng nhau, nhưng ...

... không ai trong số này giải quyết hai lý do lớn nhất để chọn Oracle:

  1. Bạn đã sử dụng Oracle và bạn có một khoản đầu tư lớn vào nó (độc lập cơ sở dữ liệu là một huyền thoại ngớ ngẩn)
  2. Các nhà phát triển và DBA của bạn biết Oracle và sử dụng đầy đủ các tính năng của nó (tại sao họ không độc lập cơ sở dữ liệu là một huyền thoại ngớ ngẩn?)

BIÊN TẬP:

Một tình huống mà tôi chọn postgres trên XE mỗi lần là nếu vấn đề bảo mật là vấn đề. Nếu cơ sở dữ liệu của bạn hoặc bất kỳ ứng dụng nào của nó được hiển thị trên internet công cộng, tôi không chắc XE có phải là một ý tưởng hay không.


rgd. RMAN - Vì vậy, bạn sẽ nói rằng các tính năng sao lưu của Oracle "tốt hơn" so với Postgre? Điều này sẽ giữ trong một môi trường quản trị thấp (xem chỉnh sửa Q của tôi)?
Martin

@Martin - RMAN mạnh mẽ và rất trưởng thành, tôi tin tưởng điều đó vì nó đã thấy tôi qua nhiều tình huống phục hồi khác nhau. Một điều không phải là "đơn giản". Có vẻ như bạn đang thực hiện mà không cần các DBA đắt tiền, bạn có đang sử dụng RMAN cho các bản sao lưu ngoại tuyến của mình không? Làm thế nào bạn vận chuyển nhiều bản sao lưu Gb (hàng ngày?) Của bạn khỏi các trang web của khách hàng?
Jack nói hãy thử topanswers.xyz

Máy chủ SQL có phân cụm HA tương đương với RAC của Oracle.
StanleyJohns

@ tb dba Từ những gì tôi đã đọc về các tùy chọn phân cụm cho SQL Server, chúng hoàn toàn không thể so sánh với RAC, hầu hết chúng đều thất bại về các giải pháp, không phải là các giải pháp thực sự quy mô như rac.
Matthew Watson

Lý do thứ 2 của bạn khi chọn Oracle khá giống với lý do thứ 1, IMO. Về cơ bản là bạn đã cam kết. - Về phần hỗ trợ, điều đó chắc chắn cũng tồn tại đối với Postgres. Nếu bạn không hài lòng với danh sách gửi thư tuyệt vời, hãy xem danh sách này để biết các công ty cung cấp hỗ trợ có trả tiền trong khu vực của bạn.
eevar

9

Apex của Oracle . Một môi trường ứng dụng web tiện dụng, dễ sử dụng được tích hợp ngay trong cơ sở dữ liệu. Rất đơn giản, nó rất đơn giản để triển khai các ứng dụng 'hộp đơn' với cơ sở dữ liệu / logic ứng dụng / web trong một gói tích hợp duy nhất.

Tái bút 11g XE (hiện đang trong giai đoạn thử nghiệm) mở rộng dung lượng lưu trữ lên hơn 10GB.


+1 cho APEX. Mặc dù nó có vấn đề và gremlins, tôi YÊU điều này vì đã đưa các ứng dụng lên mặt đất nhanh chóng và dễ dàng. Như RAD cho Oracle như người ta có thể nhận được, tôi nghĩ vậy.
Kerri Shotts

5

Mặc dù các tùy chọn hồi tưởng khác của Oracle không có sẵn trong Express Edition, Flashback Query là. Theo câu hỏi trên đó , không có cơ sở dữ liệu nào khác có tính năng này cho phép một câu lệnh chọn truy vấn dữ liệu theo thời điểm trong quá khứ. Dữ liệu hồi tưởng có thể được nối với dữ liệu hiện tại và được chèn vào các bảng hiện tại làm cho nó hữu ích cho việc hoàn tác các hoạt động loại, thay đổi tạm thời và so sánh các thay đổi được thực hiện bởi một phương thức ở một nơi.

Một số thứ khác mà một số cơ sở dữ liệu khác không có mà Oracle Express Edition thực hiện.


5
postgres đánh dấu vào 'AuthID Người dùng hiện tại so với Definer', 'Kiểm tra các ràng buộc', 'Các ràng buộc có thể bảo vệ', 'Thêm và trừ ngày', 'Truy vấn phân cấp', kích hoạt phi lược đồ, hầu hết 'Hàm phân tích', một số 'Hàm phân tích' , 'Các hàm XML', đóng hộp tối đa 1Gb, 'Tạo hoặc thay thế' và 'Đa nền tảng' (ít nhất)
Jack nói hãy thử topanswers.xyz

@JackPDoureb Thật khó để tạo một danh sách ưu điểm khi cuộc thi là "mọi thứ khác". Cảm ơn bạn về thông tin.
Leigh Riffel

@Leigh - đồng ý, tôi đoán danh sách của bạn là tài liệu tham khảo hữu ích cho Martin. Bạn không đề cập đến RMAN, ít nhất là trong XE (v10) hiện tại, nó được bao gồm mặc dù không được sử dụng theo mặc định. Chỉ cần một lần chọn nit: nếu XE bị giới hạn ở mức 4 hoặc 11Gb thì Clobs lên tới 128Tb không thực sự được hỗ trợ :)
Jack nói hãy thử topanswers.xyz

@JackPDoureb Bạn đã đề cập đến RMAN và tôi không có ý định thay thế câu trả lời của bạn (hoặc bất kỳ câu hỏi nào khác).
Leigh Riffel

@JackPDoureb Bắt tốt trên áo choàng. Tôi đã để nó trong danh sách vì các clobs nhỏ hơn có thể hữu ích trong XE và nếu cơ sở dữ liệu phát triển thì trên một nền tảng hỗ trợ các clobs cực lớn có thể hữu ích.
Leigh Riffel

4

Trước hết, tôi nghĩ bạn không nên đánh giá thấp yếu tố đã có Oracle know-How nhưng không dành cho các RDBMS khác. Xây dựng kiến ​​thức cho những người khác cần có thời gian và tiền bạc và cũng có thể đi kèm với một số sai lầm khi bắt đầu.

Hơn nữa, bạn không bao giờ biết liệu một dự án nhỏ sẽ không phát triển. Sau đó, bạn có thể nâng cấp rất mượt mà và nhanh chóng từ XE lên Standard Edition One lên Standard Edition thành Enterprise Edition. Việc di chuyển từ một RDBMS khác sẽ lại mất nhiều thời gian và tiền bạc hơn. Điểm mấu chốt: Tôi nghĩ rằng công ty của bạn làm đúng - ok, tôi có thể hơi thiên vị :-)


Cuối tuần. Tôi muốn nói rằng Oracle biết xung quanh đây là về ... hmm ... Tôi có lẽ cần 3 giờ chơi với Postgre cộng với một chút google để đi đến điểm mà tôi có thể làm nhiều như tôi có thể với Oracle. (Ngoại trừ PL / SQL) Và tôi muốn nghĩ rằng tôi là một trong những người dùng sức mạnh của Oracle ở đây :-) - Nhưng lập luận của bạn về đường dẫn nâng cấp chắc chắn là hợp lệ.
Martin

@Martin: đó không phải là một dấu hiệu tốt ... Tôi đã sử dụng postgres cho một trong các dự án của chúng tôi (như một phần của ứng dụng đóng gói) trong ~ 2 năm và tôi vẫn không thể làm cho nó hoạt động tốt (một phần vì các phần của ứng dụng mà tôi đang sử dụng phụ thuộc rất nhiều vào count(), dường như đó là gót chân achilles của postgres). Tôi đã phải hỏi về stackoverflow cách ảnh hưởng đến người lập kế hoạch
Joe

2

Một trong những tính năng hay của Oracle là những tính năng như Trình quản lý tài nguyên Oracle giúp việc hợp nhất các ứng dụng trong một cơ sở dữ liệu dễ dàng hơn nhiều so với việc có một cơ sở dữ liệu riêng cho mọi ứng dụng. Có vẻ như điều này không được sử dụng trong tổ chức của bạn. Tôi đã thiết kế cơ sở dữ liệu hợp nhất trong quá khứ cho các dự án giống như bạn đề cập.

  • Mỗi dự án đều có phần cứng riêng.
  • Mỗi dự án đều có giấy phép riêng
  • Mỗi dự án đều có kho lưu trữ riêng

Điều này gây ra rằng ngay cả những dự án đơn giản nhất cũng phải mất hàng tháng để bắt đầu và trong thời điểm thị trường là vô cùng quan trọng, điều này đang giết chết. Vì một số lý do, điều này bị nhiều người bỏ qua, thậm chí thường bị bỏ quên vì lý do chính trị.

Giải pháp cho việc này khá đơn giản. Tạo một cơ sở dữ liệu nghiêm túc, cung cấp cho mỗi dự án / ứng dụng của riêng họ [s] và truy cập người dùng [s] và chạy trong vài giờ, thay vì hàng tháng. Nếu bạn định làm một cái gì đó như thế này, nó có thể chứng minh có lợi khi kết hợp các ứng dụng có yêu cầu thời gian tương tự. Oracle ngày càng có nhiều lựa chọn bảo trì trực tuyến hơn nhưng đôi khi, việc ngừng hoạt động vài giờ lại dễ dàng hơn rất nhiều. Có cửa sổ thời gian cho việc này được xác định trước có thể ngăn ngừa rất nhiều vấn đề. Bạn sẽ cần một số thời gian chết.

Không cho phép các ứng dụng kết nối với cơ sở dữ liệu, làm cho chúng kết nối với các dịch vụ dành riêng cho ứng dụng bằng cách sử dụng tns-aliasses của riêng chúng. Làm như vậy cho phép bạn di chuyển ứng dụng sang cơ sở dữ liệu khác mà không phải cấu hình lại ứng dụng.

BTW: các công ty sử dụng cách hợp nhất này đã tiết kiệm rất nhiều tiền mặt hàng năm, nhiều hơn các giấy phép cần thiết để bắt đầu lăn bánh.


Cảm ơn cho đầu vào này. Lưu ý rằng rất nhiều dự án có cơ sở dữ liệu đang chạy tại (các) trang web của khách hàng, vì vậy nó không thực sự có ý nghĩa gì để hợp nhất chúng. (Nếu tôi hiểu bạn viết chính xác để hợp nhất.)
Martin

Nó vẫn có thể được khuyên nên hợp nhất bởi khách hàng nơi gói hàng kết thúc. Nếu nó được coi là một cơ sở dữ liệu nhúng thì nó có thể hơi khác một chút.
ik_zelf

Để rõ ràng, Oracle XE không có tính năng Trình quản lý tài nguyên, vì vậy điều này chỉ hữu ích khi hợp nhất thành một máy chủ được cấp phép. @ik_zelf Tôi biết đó không phải là ý định của bạn để chỉ ra khác.
Leigh Riffel

@Leigh Riffel có, tôi đã giả sử có sẵn một bản cài đặt Oracle, trong một kịch bản hợp nhất như vậy tôi sẽ thích EE. Câu hỏi dường như đang hướng đến một giải pháp nhúng.
ik_zelf
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.