Fitur apa dari Oracle yang menjadikannya pilihan yang menarik untuk proyek kecil?

13

Mengingat penanganan lisensi Oracle [a] (dan, pada tingkat lebih rendah, biaya) saya selalu bertanya-tanya apa faktor penentu akan memilih Oracle daripada PostgreSQL atau MySQL.

Perusahaan saya hampir selalu memilih Oracle (XE jika memungkinkan), bahkan untuk proyek-proyek kecil di mana hanya ada satu kotak server Windows sederhana yang menjalankan database tanpa administrasi DB khusus. (Perhatikan bahwa kecil tidak bukan berarti data akan selalu cocok kendala ukuran agak kecil dari Oracle XE.)

Saya selalu mempertanyakan pilihan ini, tetapi memiliki manfaat bahwa kita setidaknya hanya terpapar satu produk basis data.

Namun, mengingat proyek baru, di mana Anda memerlukan RDBMS, tetapi proyek dan ruang lingkup database cukup kecil, berdasarkan fitur unik Oracle yang berjalan pada kotak server Windows sederhana (tanpa terlalu banyak administrasi khusus) yang akan Anda pilih Oracle daripada RDBMS lain?

Konteks tambahan : Banyak penyebaran basis data kami berjalan di situs pelanggan dalam mode, sebut saja, "administrasi rendah". Yaitu, basis data diatur sekali. Ada beberapa pengujian awal pada perilaku dan kinerja yang benar di situs. Setelah ini, hanya menjalankan database pada-nya. Tidak ada administrasi rutin yang dilakukan. Hanya jika sesuatu rusak maka teknisi (bukan DBA khusus) memeriksa database, mencoba mencari tahu apa yang terjadi. Cadangan sebagian besar dilakukan sebagai cadangan offline. Dalam beberapa proyek, pelanggan bahkan tidak peduli ada RDBMS yang terlibat. Mereka hanya melihat aplikasi mereka sebagai kotak hitam yang berfungsi (atau tidak).

[a]: Di mana saya bekerja, butuh beberapa manajer proyek berulang kali berbulan - bulan untuk mendapatkan lisensi yang tepat untuk proyek-proyek kecil karena perwakilan Oracle lokal tidak terlalu tertarik untuk menjual produk mereka jika pendapatannya kecil.

Martin
sumber
Bagaimana mereka memilih XE untuk data yang tidak "selalu sesuai dengan batasan ukuran XE yang agak kecil"?
Jack bilang coba topanswers.xyz
@ Jack: jika cocok kita menggunakan XE, jika tidak ... yah kita tidak :-)
Martin
11.2 Express Edition dalam versi beta dan batas data pengguna telah diperluas dari 4 GB menjadi 11 GB. Lihat oracle.com/technetwork/database/express-edition/…
Leigh Riffel
Oracle memiliki PIVOT, MySQL dan Postgres tidak. Itu nilai tambah besar dalam beberapa situasi.
Phil Lello
1
@ Phil Lello: PostgreSQL memang memiliki PIVOT, periksa contrib: postgresql.org/docs/current/static/tablefunc.html
Frank Heikens

Jawaban:

12

Saya hanya dapat mencoba menjawab untuk Oracle dan postgres. Setelah menggunakan Oracle secara eksklusif selama bertahun-tahun, dan postgres hanya selama dua tahun terakhir, saya suka postgres. Ada begitu banyak cara kecil yang lebih nyaman digunakan daripada Oracle, dan berbagi banyak manfaat penting (seperti MVCC). Lebih mudah dikelola, dapat diandalkan, memiliki dokumentasi yang sangat baik, dan tentu saja, gratis.

Namun postgres tidak cocok untuk Oracle di beberapa bidang, seperti:

  • RAC - sejauh yang saya tahu ada teknologi yang lebih baik pengelompokan untuk setiap basis data
  • RMAN - jauh lebih unggul daripada fitur dasar pencadangan dan pemulihan postgres, terutama dengan pelacakan perubahan blok dan pencadangan tambahan (yang dapat Anda terapkan pada pencadangan lain untuk menjaga pencadangan penuh terkini)
  • Dukungan Oracle - ada. dukungan postgres? Tidak terlalu banyak
  • banyak fitur lain seperti IOT, 'File Aman' dan teknologi kompresi yang tidak memiliki analog di dunia postgres

Menariknya hampir semua fitur ini tidak ada atau lumpuh di XE. Saya pikir saya akan memilih postgres daripada XE, semuanya sederajat, tapi ...

... tidak satupun dari ini menjawab dua alasan terbesar untuk memilih Oracle:

  1. Anda sudah menggunakan Oracle dan Anda memiliki investasi besar di dalamnya (kemandirian basis data adalah mitos konyol)
  2. Pengembang dan DBA Anda mengenal Oracle dan menggunakan fitur-fiturnya secara penuh (mengapa mereka tidak menganggap kemerdekaan basis data adalah mitos konyol?)

EDIT:

Satu situasi di mana saya memilih postgres daripada XE setiap kali adalah jika keamanan menjadi perhatian. Jika database Anda atau salah satu aplikasi itu terpapar ke internet publik, saya tidak yakin apakah XE adalah ide yang bagus.

Jack berkata coba topanswers.xyz
sumber
rgd. RMAN - Jadi Anda akan mengatakan bahwa fitur cadangan Oracle "lebih baik" daripada yang dimiliki Postgre? Apakah ini berlaku di lingkungan administrasi rendah (lihat Q edit saya)?
Martin
@ Martin - RMAN sangat kuat dan sangat dewasa, saya percaya karena telah melihat saya melalui beberapa situasi pemulihan yang berbeda. Satu hal yang tidak 'sederhana'. Kedengarannya Anda membuat lakukan tanpa DBA mahal, apakah Anda menggunakan RMAN untuk cadangan offline Anda saat ini? Bagaimana cara Anda mengirim beberapa cadangan Gb (harian?) Dari situs klien?
Jack bilang coba topanswers.xyz
SQL server memiliki HA clustering yang setara dengan RAC Oracle.
StanleyJohns
@stan the dba Dari apa yang saya baca tentang opsi clustering untuk SQL Server, mereka tidak benar-benar sebanding dengan RAC sama sekali, kebanyakan dari mereka gagal dalam solusi, tidak benar-benar keluar solusi seperti ras.
Matthew Watson
Alasan ke-2 Anda untuk memilih Oracle hampir sama dengan yang pertama, IMO. Pada dasarnya Anda berkomitmen. - Adapun dukungan, yang pasti ada untuk Postgres juga. Jika Anda tidak puas dengan mailing list yang bagus, lihat daftar ini untuk perusahaan yang menawarkan dukungan berbayar di wilayah Anda.
eevar
9

Oracle Apex . Lingkungan aplikasi web yang praktis dan mudah digunakan yang dibangun langsung ke dalam basis data. Sederhananya membuatnya sangat mudah untuk menyebarkan aplikasi 'kotak tunggal' dengan ui web / logika aplikasi / database dalam satu paket terintegrasi.

PS. 11g XE (saat ini dalam versi beta) memperluas penyimpanan hingga lebih dari 10GB.

Gary
sumber
+1 untuk APEX. Meskipun memiliki masalah dan masalah, saya SUKA ini untuk mendapatkan aplikasi dari awal dengan cepat dan mudah. Sebagai RAD untuk Oracle, saya pikir.
Kerri Shotts
5

Meskipun opsi kilas balik Oracle lainnya tidak tersedia dalam Edisi Express, Flashback Query adalah. Menurut pertanyaan di atasnya , tidak ada database lain yang memiliki fitur ini yang memungkinkan pernyataan pilih untuk meminta data pada titik waktu di masa lalu. Data kilas balik dapat digabungkan dengan data saat ini dan dimasukkan ke dalam tabel saat ini sehingga berguna untuk membatalkan operasi jenis, perubahan sementara, dan membandingkan perubahan yang dibuat oleh suatu metode di satu tempat.

Beberapa hal lain yang tidak dimiliki oleh database lain yang dimiliki oleh Oracle Express Edition.

Leigh Riffel
sumber
5
postgres mencentang 'AuthID Current User vs. Definer', 'Periksa Constraints', 'Conferaints Conferaints', 'Penambahan dan pengurangan tanggal', 'Query Hierarchical', pemicu non-skema, sebagian besar 'Fungsi Analitik', sebagian 'Fungsi Koleksi' , 'Fungsi XML', clob hingga 1Gb, kotak 'Buat atau Ganti' dan 'Multi-Platform' (setidaknya)
Jack mengatakan coba topanswers.xyz
@JackPDouglas Sulit untuk membuat daftar pro ketika kompetisi adalah "segalanya". Terimakasih atas infonya.
Leigh Riffel
@ Lee - setuju, saya kira daftar Anda adalah referensi yang bermanfaat untuk Martin. Anda tidak menyebutkan RMAN, setidaknya di XE saat ini (v10) sudah termasuk meskipun tidak digunakan secara default. Hanya satu pilihan: jika XE terbatas pada 4 atau 11Gb maka Clob hingga 128Tb tidak benar-benar didukung :)
Jack mengatakan coba topanswers.xyz
@JackPDouglas Anda telah menyebutkan RMAN dan saya tidak bermaksud mengganti jawaban Anda (atau yang lain).
Leigh Riffel
@ JackPDouglas Tangkapan bagus di clob. Saya meninggalkannya di daftar karena gumpalan yang lebih kecil dapat berguna dalam XE dan jika basis data tumbuh maka berada pada platform yang mendukung gumpalan yang sangat besar mungkin berguna.
Leigh Riffel
4

Pertama-tama, saya pikir Anda tidak boleh meremehkan faktor yang sudah ada Oracle Know-How hadir tetapi tidak untuk RDBMS lainnya. Membangun pengetahuan untuk yang lain membutuhkan waktu & uang dan mungkin juga disertai dengan beberapa kesalahan di awal.

Selain itu, Anda tidak pernah tahu apakah proyek kecil tidak akan tumbuh di suatu tempat. Kemudian, Anda dapat dengan sangat lancar & cepat memutakhirkan dari XE ke Edisi Standar Satu ke Edisi Standar ke Edisi Perusahaan. Migrasi dari RDBMS lain lagi akan membutuhkan lebih banyak waktu & uang. Intinya: Saya pikir perusahaan Anda melakukannya dengan benar - ok, saya mungkin sedikit bias :-)

Uwe Hesse
sumber
Weeell. Saya akan mengatakan Oracle tahu bagaimana di sini adalah tentang ... hmm ... Saya mungkin perlu 3 jam bermain-main dengan Postgre plus sedikit google untuk sampai ke titik di mana saya bisa melakukan sebanyak yang saya bisa dengan itu seperti saya bisa dengan Oracle. (Kecuali untuk PL / SQL) Dan saya suka berpikir saya adalah salah satu pengguna daya Oracle di sini :-) - Tetapi argumen Anda tentang jalur peningkatan tentu saja valid.
Martin
@ Martin: itu bukan pertanda baik ... Saya telah menggunakan postgres untuk salah satu proyek kami (sebagai bagian dari aplikasi paket) selama ~ 2 tahun, dan saya masih tidak bisa membuatnya bekerja dengan baik (sebagian karena bagian-bagian dari aplikasi yang saya gunakan sangat bergantung pada count(), yang tampaknya menjadi tumit achilles postgres). Saya harus bertanya pada stackoverflow bagaimana memengaruhi perencana
Joe
2

Salah satu fitur bagus dari Oracle adalah mereka seperti Oracle Resource Manager yang membuat konsolidasi aplikasi dalam satu basis data jauh lebih mudah daripada memiliki basis data terpisah untuk setiap aplikasi. Sepertinya ini tidak digunakan di organisasi Anda. Saya telah merancang basis data konsolidasi di masa lalu untuk proyek-proyek seperti yang Anda sebutkan.

  • Setiap proyek memiliki perangkat kerasnya sendiri
  • Setiap proyek memiliki lisensi sendiri
  • Setiap proyek memiliki penyimpanan sendiri

Hal ini menyebabkan bahwa bahkan yang paling sederhana dari semua proyek membutuhkan waktu berbulan-bulan bahkan untuk memulai dan dalam waktu di mana waktu untuk pasar sangat penting, ini mematikan. Untuk beberapa alasan ini dilewatkan oleh banyak orang, bahkan sering diabaikan karena alasan politik.

Solusi untuk ini cukup sederhana. Buat satu database serius, berikan setiap proyek / aplikasi skema mereka sendiri dan akses pengguna dan jalankan dalam hitungan jam, bukan bulan. Jika Anda akan melakukan sesuatu seperti ini, itu bisa bermanfaat untuk menggabungkan aplikasi yang memiliki persyaratan up-time yang sama. Oracle mendapatkan lebih banyak dan lebih banyak opsi pemeliharaan on-line tetapi untuk kadang-kadang, mendapatkan beberapa jam downtime jauh lebih mudah. Memiliki jendela waktu untuk hal ini didefinisikan sebelumnya dapat mencegah banyak masalah. Anda akan membutuhkan waktu henti.

Jangan izinkan aplikasi terhubung ke database, buat mereka terhubung ke layanan yang didedikasikan untuk aplikasi menggunakan tns-aliass mereka sendiri. Melakukannya memungkinkan Anda untuk memindahkan aplikasi ke database lain, tanpa harus mengkonfigurasi ulang aplikasi.

BTW: perusahaan yang menggunakan cara konsolidasi ini menghemat banyak uang tunai setiap tahun, lebih dari izin yang diperlukan untuk mulai bergulir.

ik_zelf
sumber
Terima kasih atas masukan ini. Perhatikan bahwa banyak proyek memiliki database yang berjalan di lokasi pelanggan sehingga tidak masuk akal untuk menggabungkannya. (Jika saya mengerti Anda benar benar konsolidasi.)
Martin
Mungkin masih disarankan untuk mengkonsolidasikannya dengan pelanggan tempat paket tersebut berakhir. Jika seharusnya merupakan database yang disematkan itu mungkin sedikit berbeda.
ik_zelf
Untuk menjadi jelas, Oracle XE tidak memiliki fitur Resource Manager, jadi ini hanya akan berguna untuk dikonsolidasikan ke dalam server berlisensi. @ik_zelf Saya tahu itu bukan maksud Anda untuk menunjukkan sebaliknya.
Leigh Riffel
@Leigh Riffel ya, saya berasumsi ada instalasi Oracle yang tersedia, dalam skenario konsolidasi seperti itu saya lebih suka EE. Tampaknya pertanyaannya lebih ke arah solusi tertanam.
ik_zelf