Bagaimana cara melakukan transisi dari SQL Server DBA ke Oracle?

30

Sebagai minat, jika saya ingin beralih dari SQL Server DBA ke Oracle, apa yang akan menjadi pembelajaran utama atau tidak yang harus saya lakukan?

Saya akan menganggap konsepnya sama dan perbedaannya hanyalah bahasa pemrograman tetapi saya belum melihat sisi lain dari pintu.

darwindeeds
sumber
1
sedikit humor (maaf jika PL), pernahkah Anda bertemu? dba.stackexchange.com/questions/16884/…
booyaa

Jawaban:

40

Oracle dan SQL Server memiliki sejumlah perbedaan arsitektural dan idiomatik, dan beberapa bit kunci terminologi digunakan secara berbeda dalam dokumentasi. Sudah beberapa tahun sejak saya melakukan ini, tetapi beberapa perbedaan idiomatik utama adalah:

  • Oracle tidak memiliki padanan langsung dengan tempdb. Tabel temp global adalah entitas persisten dan Anda tidak membuatnya dengan cepat seperti yang Anda lakukan dengan tabel temp di SQL Server.

  • Idiomatic PL / SQL jauh lebih prosedural daripada T-SQL idiomatik. Di sisi lain, PL / SQL memiliki fitur untuk mendukung operasi kursor cepat termasuk konstruksi loop paralel. Seringkali, hasil kursor menengah digunakan dengan cara yang mirip dengan hal-hal yang akan digunakan tabel temporer dalam SQL Server. Cari cara menggunakan '%' untuk mendapatkan polimorfisme dalam tipe variabel kursor.

  • SQL * Plus adalah alat baris perintah yang mirip dengan SQLCMD. Pada instalasi vanilla mungkin hanya itu yang Anda miliki. Jika Anda menginginkan alat GUI seperti SSMS, Anda bisa mendapatkan SQL Developer atau alat pihak ketiga seperti TOAD. Kodok cukup mahal.

  • Pelajari peran segmen rollback (digunakan dalam MVCC Oracle) dan kegembiraan dari kesalahan 'snapshot too old'.

  • Dapatkan akun metalink jika memungkinkan.

  • Baca panduan konsep. Ini memiliki banyak informasi pemula yang bermanfaat.

  • Tablespaces kira-kira setara dengan filegroup.

  • SQL dan dialek SQL yang tertanam dalam PL / SQL tidak sama dengan Oracle.

  • Oracle tidak mendukung CTE rekursif sampai baru-baru ini. Anda dapat melakukan kueri rekursif dengan CONNECT BY.

  • Baca dokumen untuk RMAN untuk melihat bagaimana melakukan backup. Anda dapat melakukan beberapa trik rapi seperti menggabungkan cadangan diferensial menjadi satu cadangan yang dapat disimpan.

  • Kamus data sistem memiliki versi tabel 'SEMUA', 'PENGGUNA' dan 'DBA'. 'USER_ ' menunjukkan objek yang dimiliki oleh login. 'ALL_ ' menunjukkan semua objek yang dapat dibaca oleh login. 'DBA_ *' adalah tampilan global, tetapi Anda harus memiliki izin yang sesuai untuk melihatnya. Anda mungkin akan menggunakan kamus data lebih banyak dengan Oracle daripada dengan SQL Server, jadi kenalilah.

  • Clustered tables disebut 'index ordered tables' di Oracle. 'Clustereed tables' di Oracle merujuk ke fitur yang sangat berbeda. Dalam Oracle, tabel berkerumun adalah fasilitas yang memungkinkan penyimpanan fisik tabel master / detail dikerjakan berdasarkan kunci umum. Fitur ini tidak banyak digunakan.

  • Tampilan terindeks disebut 'tampilan terwujud' di Oracle. Mereka bekerja agak berbeda, dengan nuansa yang cukup untuk pantas pertanyaan mereka sendiri.

  • Oracle tidak memiliki konsep yang setara dengan 'database' di SQL Server. Di Oracle, skema hanyalah pemilik beberapa objek basis data.

  • PL / SQL memiliki struktur modul eksplisit yang disebut 'paket'.

  • Lihat menggunakan urutan alih-alih kolom identitas.

  • Mendapatkan paket permintaan sedikit lebih baik di Oracle versi lama (sebelum 10g). Anda harus membuat tabel (dengan format yang tepat) untuk membuang paket, lalu 'MENJELASKAN' permintaan ke dalam tabel untuk mendapatkan paket permintaan. Anda kemudian bisa mendapatkan rencana kueri kembali dari tabel. Semua orang dan anjing mereka memiliki pertanyaan rencana kueri favorit. Lakukan pencarian google dan temukan, kemudian rasakan sesuai selera. 10g menambahkan paket yang disebut dbms_xplan , yang menyederhanakan bekerja dengan rencana kueri.

  • Jika Anda menjalankan Oracle pada host unix atau linux, memiliki pengetahuan tentang scripting shell tidak akan merugikan.

  • Oracle memiliki dukungan untuk transaksi otonom - Anda dapat melakukan transaksi otonom dalam dan berharap untuk tetap berkomitmen jika orang tua mundur. SQL Server transaksi bersarang bukan transaksi bersarang benar dan memiliki semantik yang berbeda. Anda bisa meniru perilaku ini dengan prosedur tersimpan CLR di SQL Server dengan membuka koneksi independen dan melakukan operasi otonom melalui itu.

Oracle hadir dengan tooling BI yang lebih sedikit, meskipun Oracle menjual server OLAP, tool pelaporan, dan tooling ETL.

  • Oracle membundel alat beban massal yang disebut SQL * Loader yang fungsinya mirip dengan bcp.

  • Setara terdekat dengan SSIS adalah Oracle Warehouse Builder (OWB), tetapi ini adalah item yang terpisah dan tidak dibundel dengan sistem basis.

  • Oracle membuat alat pelaporan yang disebut Laporan Oracle , tetapi ini juga tidak dibundel dengan sistem dasar. Ini setara dengan Layanan Pelaporan.

  • Oracle juga membuat alat ROLAP disebut Penemu . Ini adalah produk terdekat dengan Report Builder yang diproduksi Oracle. Versi yang lebih baru ('Drake') memiliki dukungan untuk mesin OLAP Oracle.

  • Oracle dulu memiliki produk OLAP yang disebut Express. Pada satu titik mereka membangunnya ke dalam mesin Oracle DBMS inti, menyimpan struktur data asli dalam gumpalan buram. Ini tidak sepenuhnya kompatibel dengan Express, dan memiliki antarmuka pendahuluan dengan sangat sedikit dukungan dari alat front-end OLAP pihak ketiga.

  • Oracle BI Enterprise Edition adalah yang dulunya Siebel Analytics. Ini memiliki beberapa fungsi OLAP tetapi saya tidak terbiasa dengannya. Mungkin seseorang yang telah menggunakannya mungkin ingin berkomentar. Tanpa secara langsung mengakui bahwa Siebel adalah produk yang sepenuhnya terpisah dari perkakas BI-nya sendiri, Oracle menyatakan bahwa tidak ada 'jalur peningkatan' dari Oracle BI Edisi Standar ke Edisi Perusahaan. Perhatikan bahwa suite Standard dan Enterprise BI adalah produk terpisah dan tidak digabungkan dengan sistem basis.

  • Dalam prakteknya, hal yang paling dekat dengan SSAS yang dijual oleh Oracle adalah Essbase (sebelumnya Hyperion). Ini adalah produk terpisah dan tidak dibundel dengan sistem basis.

Tidak mengherankan, strategi BI Oracle dipandang oleh para pakar industri sebagai sarapan anjing.

Mungkin ada hal-hal lain yang tidak dapat saya pikirkan tentang OTOH; Saya akan menambahkan mereka karena saya memikirkan mereka.

ConcernedOfTunbridgeWells
sumber
1
Wow ini sangat dekat dengan apa yang saya cari. Informasi hebat! Saya membaca bahwa Oracle memiliki jenis pekerjaan server SQL yang dapat dijalankan secara otomatis. Adakah yang setara dengan SSIS di Oracle?
darwindeeds
1
Hal yang paling dekat dengan SSIS di Oracle adalah Oracle Warehouse Builder (OWB) tetapi tidak dibundel dengan sistem basis. Anda harus membelinya secara terpisah. Ada alat beban massal mirip dengan bcp yang disebut SQL * Loader.
ConcernedOfTunbridgeWells
6
Hal-hal yang akan saya tambahkan ke daftar ini: di Oracle pembaca tidak pernah memblokir penulis dan penulis tidak pernah memblokir pembaca. Pemahaman saya adalah bahwa ini masih berbeda dalam instalasi default di SQL Server. Oracle tidak pernah mengizinkan untuk membaca data yang tidak dikomit. Anda hampir tidak menggunakan tabel temp di Oracle - melakukan segalanya dalam satu pernyataan besar seringkali jauh lebih cepat. Komitmen yang sering akan memperlambat pemuatan massal. Idealnya seseorang harus mengeluarkan komit tunggal setelah semuanya selesai.
a_horse_with_no_name
1
@a_horse_with_no_name pengertian Anda benar
Jack Douglas
10

Kami bekerja dengan Oracle dan SQL Server, dan pemimpin DBA kami, Michelle Malcher, sering membantu rekan kerja dengan transisi ini. Berdasarkan pengalaman ini, ia menulis sebuah buku berjudul "Administrasi Database Oracle untuk Microsoft SQL Server DBA (Oracle Press)". Saya menyukai buku ini.

Saya tidak yakin apakah merekomendasikan buku oleh rekan kerja sesuai untuk situs ini. Saya tidak melapor ke Michelle, saya memimpin tim pengembang.

AK
sumber
2
Saya ingat terlibat dalam percakapan tentang promosi diri di meta.stackoverflow.com dan menjawab bahwa area abu-abu di sekitar promosi diri baik-baik saja jika relevan dengan pertanyaan. Jeff Atwood setuju.
ConcernedOfTunbridgeWells
2
Saya tidak bekerja dengan Michelle, tetapi saya sangat menyukai buku ini. Saya benar-benar menemukan cara menjelaskan - membandingkan arsitektur SQL Server dengan Oracle lebih menarik daripada mengatakan, membaca buku Oracle DBA standar.
RK Kuppala