Bab ini menjelaskan konsep dasar dan terminologi Oracle Database arsitektur basis data
terdistribusi. Ini berisi topik berikut:
Sebuah sistem basis data terdistribusi memungkinkan aplikasi untuk mengakses data dari database
lokal dan remote. Dalam sistem database terdistribusi homogen, setiap database merupakan Oracle
Database. Dalam sistem database terdistribusi heterogen, setidaknya salah satu database bukan
merupakan Oracle Database. database terdistribusi menggunakan arsitektur client / server untuk
memproses permintaan informasi.
Sebuah homogen terdistribusi sistem database adalah jaringan dari dua atau lebih Database Oracle
yang berada pada satu atau lebih mesin. Gambar 29-1 menggambarkan suatu sistem terdistribusi
yang menghubungkan tiga database: hq. mfg, dan penjualan.
Untuk aplikasi client, lokasi dan platform database yang transparan.Dengan cara ini, sistem
terdistribusi memberikan penampilan akses data asli. pengguna dimfg tidak harus tahu bahwa data
yang mereka mengakses berada pada remote database.
Oracle database didistribusikan sistem database dapat menggabungkan Oracle Database versi yang
berbeda. Aplikasi yang bekerja dengan database terdistribusi harus memahami fungsi yang
tersedia di setiap node dalam sistem.
Istilah didistribusikan database dan didistribusikan pengolahan berhubungan erat, namun memiliki
makna yang berbeda. definisi ada adalah sebagai berikut:
database terdistribusi
Satu set database dalam sistem terdistribusi yang dapat muncul untuk aplikasi sebagai
sumber data tunggal.
pemrosesan terdistribusi
Dalam murni (yaitu, tidak direplikasi) database terdistribusi, sistem mengelola satu salinan dari
semua data dan mendukung objek database. Biasanya, aplikasi database terdistribusi
menggunakan didistribusikan transaksi untuk mengakses baik data lokal dan remote dan
memodifikasi database global secara real-time.
Replikasi merujuk pada operasi menyalin dan memelihara objek database dalam beberapa database
milik sistem terdistribusi. Sementara replikasi bergantung pada teknologi database terdistribusi.
Replikasi digunakan untuk meningkatkan kinerja database lokal dan melindungi ketersediaan
aplikasi karena pilihan akses data alternatif yang ada. Selanjutnya, aplikasi dapat terus berfungsi
jika server lokal mengalami kegagalan, namun server lain dengan data direplikasi tetap dapat
diakses.
Dalam sistem database terdistribusi heterogen, setidaknya salah satu database adalah sistem
database non-Oracle. Untuk aplikasi, heterogen didistribusikan sistem database muncul sebagai
single, lokal, Oracle Database. Oracle Database Server mengakses sistem database non-Oracle
menggunakan Oracle heterogen Layanan dalam hubungannya dengan agen.
Layanan heterogen
Layanan heterogen (HS) merupakan komponen yang terintegrasi dalam Oracle Database server
dan teknologi yang memungkinkan untuk suite saat ini Oracle produk Gateway Transparan. HS
menyediakan arsitektur dan administrasi mekanisme umum untuk Oracle produk database gerbang
dan fasilitas akses heterogen lainnya.
Untuk setiap-Oracle non sistem database yang Anda akses, Layanan heterogen dapat
menggunakan agen gateway transparan untuk antarmuka dengan non-Oracle Database sistem
ditentukan. Agen khusus untuk sistem database non-Oracle, sehingga setiap jenis sistem
membutuhkan agen yang berbeda.
Konektivitas generik
konektivitas generik memungkinkan Anda untuk terhubung ke toko database data non-Oracle
dengan menggunakan salah satu agen heterogen Layanan ODBC atau agen heterogen Layanan
OLE DB.Keuntungan untuk konektivitas generik adalah bahwa hal itu mungkin tidak diperlukan
bagi Anda untuk membeli dan mengkonfigurasi agen sistem yang terpisah. Anda menggunakan
driver ODBC atau OLE DB yang dapat antarmuka dengan agen.
Sambungan langsung terjadi ketika klien terhubung ke server dan mengakses informasi dari
database yang terdapat pada server. Misalnya, jika Anda terhubung kehq database dan akses dept
tabel pada database ini seperti dalam Gambar 29-2, Anda dapat mengeluarkan berikut:
Query ini adalah langsung karena Anda tidak mengakses objek pada basis data jauh.
Sebaliknya, koneksi tidak langsung terjadi ketika klien terhubung ke server dan kemudian
mengakses informasi yang terkandung dalam database pada server yang berbeda. Misalnya, jika
Anda terhubung kehq Database tetapi akses emp tabel pada remote penjualan database sebagai di
Gambar 29-2, Anda dapat mengeluarkan berikut:
Query ini adalah tidak langsung karena objek Anda mengakses tidak pada database yang Anda
terhubung secara langsung.
Database Links
Sebuah link database adalah koneksi antara dua server database fisik yang memungkinkan klien
untuk mengaksesnya sebagai salah satu database logis.
Koneksi database link adalah satu arah dalam arti bahwa klien terhubung ke database A lokal dapat
menggunakan link disimpan dalam database A untuk mengakses informasi di daerah terpencil
basis data B, namun pengguna terhubung ke database B tidak dapat menggunakan link yang sama
untuk mengakses data di Database A. Jika pengguna lokal pada database B ingin mengakses data
pada database A, maka mereka harus menentukan link yang disimpan dalam kamus data database
B.
Koneksi database link memungkinkan pengguna lokal untuk mengakses data pada remote
database. Gambar 29-3 menunjukkan contoh pengguna scott mengakses emp tabel pada database
jauh dengan nama global hq.acme.com:
Gambar 29-3 Link Database
Salah satu perbedaan utama antara database link adalah cara yang koneksi ke basis data jauh
terjadi. Pengguna mengakses remote database melalui jenis berikut link:
Sebuah link database bersama adalah hubungan antara proses server lokal dan remote database.
link dibagi karena beberapa proses client dapat menggunakan link yang sama secara bersamaan.
Sebuah link database bersama bisa eksis dalam salah satu dari empat konfigurasi ini. link bersama
berbeda dari database link standar dengan cara berikut:
pengguna yang berbeda mengakses skema objek yang sama melalui link database dapat
berbagi koneksi jaringan.
Ketika pengguna perlu untuk membuat sambungan ke server jauh dari proses server
tertentu, proses dapat menggunakan kembali koneksi sudah ditetapkan ke server remote.
Penggunaan kembali koneksi dapat terjadi jika koneksi didirikan pada proses server yang
sama dengan link database yang sama, mungkin dalam sesi yang berbeda. Dalam link
database nonshared, sambungan tidak dibagi di beberapa sesi.
Bila Anda menggunakan link database bersama dalam konfigurasi server bersama, koneksi
jaringan didirikan langsung keluar dari proses server bersama di server lokal. Untuk link
database nonshared di server bersama lokal, hubungan ini akan didirikan melalui operator
lokal, membutuhkan konteks switch untuk operator lokal, dan membutuhkan data untuk
pergi melalui operator tersebut.
Keuntungan besar dari database link adalah bahwa mereka memungkinkan pengguna untuk
mengakses objek pengguna lain di database jauh sehingga mereka dibatasi oleh hak mengatur
pemilik objek. Dengan kata lain, pengguna lokal dapat mengakses link ke database jauh tanpa
harus menjadi pengguna pada basis data jauh.
Database link memungkinkan Anda untuk memberikan akses terbatas pada database remote untuk
pengguna lokal. Dengan menggunakan link pengguna saat ini, Anda dapat membuat pengguna
global dikelola secara terpusat yang informasi password tersembunyi dari kedua administrator dan
pengguna nonadministrative. Sebagai contoh, pengguna A / P dapat mengakseshq database sebagai
scott, Tapi tidak seperti link pengguna tetap, scott'S kredensial tidak disimpan di mana
pengguna database dapat melihat mereka.
Dengan menggunakan link pengguna tetap, Anda dapat membuat pengguna nonglobal yang
informasinya password disimpan dalam bentuk terenkripsi di LINK $kamus data tabel.
Setiap database dalam database terdistribusi secara unik diidentifikasi oleh nama database global.
database membentuk nama database global dengan awalan domain jaringan database yang
ditentukan olehDB_DOMAIN parameter inisialisasi pada pembuatan database, dengan nama database
individu, ditentukan oleh DB_NAME parameter inisialisasi.
Sebagai contoh, Gambar 29-4 menggambarkan susunan hirarki perwakilan dari database seluruh
jaringan.
Nama database dibentuk dengan memulai pada daun pohon dan mengikuti jalan ke akar. Sebagai
contoh,mfg database di division3 dari acme_tools cabang dari comdomain. Nama database
global untukmfg dibuat dengan menggabungkan node di pohon sebagai berikut:
mfg.division3.acme_tools.com
Sementara beberapa database dapat berbagi nama individu, setiap database harus memiliki nama
database global yang unik. Sebagai contoh, domain jaringanus.americas.acme_auto.com dan
uk.europe.acme_auto.com masing-masing berisi penjualanDatabase. Sistem database
penamaan global yang membedakanpenjualan database dalam americas divisi dari penjualan
database dalam Eropah divisi sebagai berikut:
sales.us.americas.acme_auto.com
sales.uk.europe.acme_auto.com
Ketika Anda mengatur parameter inisialisasi global_names untuk BENAR, Database memastikan
bahwa nama database link adalah sama dengan nama database global basis data jauh. Perhatikan
bahwa database memeriksa domain bagian dari nama database global yang disimpan dalam kamus
data, bukanDB_DOMAIN pengaturan dalam file parameter inisialisasi
Jika Anda mengatur parameter inisialisasi global_names untuk SALAH, Maka Anda tidak
diharuskan untuk menggunakan penamaan global. Anda kemudian dapat nama database link
apapun yang Anda inginkan. Misalnya, Anda dapat nama link database untukhq.acme.com
sebagai foo.
catatan:
Setelah Anda telah mengaktifkan penamaan global, database link pada dasarnya transparan kepada
pengguna dari database terdistribusi karena nama database link adalah sama dengan nama global
database yang link poin.
Oracle Database memungkinkan Anda membuat link database pribadi, publik, dan global. jenis
link dasar ini berbeda sesuai dengan pengguna yang diizinkan akses ke basis data jauh:
Publik Pengguna disebut PUBLIK. Lihat Membuat link database-lebar. Semua pengguna
data kepemilikan melalui dan subprogram PL / SQL dalam database dapat
pandangan ditampilkan untuk menggunakan link untuk mengakses objek
link database pribadi. database dalam basis data jauh yang sesuai.
Global Pengguna disebut PUBLIK. Lihat Membuat link jaringan-lebar. Ketika jaringan
data kepemilikan melalui Oracle menggunakan server direktori, server
pandangan ditampilkan untuk direktori secara otomatis membuat dan
link database pribadi. mengelola database link global (sebagai nama
layanan bersih) untuk setiap database Oracle
dalam jaringan. Pengguna dan subprogram PL /
SQL dalam database apapun dapat menggunakan
link global untuk mengakses objek dalam basis
data jauh yang sesuai.
Menentukan jenis link database untuk mempekerjakan dalam database terdistribusi tergantung
pada persyaratan tertentu dari aplikasi yang menggunakan sistem. Pertimbangkan fitur ini ketika
membuat pilihan Anda:
Link pengguna terhubung memiliki beberapa kelemahan. Karena link ini mengharuskan pengguna
untuk memiliki account dan hak istimewa pada remote database yang mereka mencoba untuk
menyambung, mereka memerlukan lebih banyak administrasi hak istimewa untuk administrator.
Juga, memberikan pengguna lebih banyak hak istimewa dari yang mereka butuhkan melanggar
konsep keamanan dasar paling istimewa: pengguna hanya harus diberikan hak istimewa yang
mereka butuhkan untuk melakukan pekerjaan mereka. Jika pengguna eksternal dikonfirmasi, maka
kemampuan untuk menggunakan link pengguna terhubung juga tergantung pada apakah basis data
jauh menerima otentikasi remote dari pengguna, yang diatur olehREMOTE_OS_AUTHENT parameter
inisialisasi.
REMOTE_OS_AUTHENT
Nilai Konsekuensi
BENAR untuk basis data jauh Pengguna eksternal-dikonfirmasi dapat terhubung ke basis data
jauh menggunakan link database pengguna terhubung.
SALAH untuk basis data jauh Pengguna eksternal-dikonfirmasi tidak dapat terhubung ke
database remote menggunakan link database pengguna
terhubung kecuali protokol aman atau layanan otentikasi jaringan
yang didukung oleh pilihan Oracle Advanced Security
digunakan.
Manfaat dari link pengguna tetap adalah bahwa hal itu menghubungkan pengguna dalam database
utama untuk basis data jauh dengan konteks keamanan pengguna ditentukan dalam connect string.
Link pengguna tetap memiliki username dan password yang berhubungan dengan connect string.
Username dan password disimpan dalam bentuk terenkripsi di kamus data dalamLINK $ table.
Peringatan:
Untuk contoh masalah keamanan ini, menganggap bahwa jane tidak memiliki hak untuk
menggunakan link pribadi yang terhubung ke hq database sebagai scott / tiger, Namun
memiliki SELECT TABLE APAPUN hak istimewa pada database di mana
O7_DICTIONARY_ACCESSIBILITY parameter inisialisasi diatur untuk BENAR. Dia dapat memilih
dariLINK $ dan membaca bahwa connect string ke hq aku s scott / tiger. Jikajane memiliki
akun pada host yang hq berada, maka dia dapat terhubung ke host dan kemudian menghubungkan
ke hq sebagai scott menggunakan password harimau. Dia akan memiliki semuascott'S hak
istimewa jika dia menghubungkan secara lokal dan setiap catatan audit akan disimpan seolah-olah
diascott.
link database pengguna saat menggunakan pengguna global. Seorang pengguna global harus
disahkan oleh sertifikat X.509 atau password, dan menjadi pengguna pada kedua database yang
terlibat dalam link.Pengguna menyerukan CURRENT_USERlink tidak harus menjadi pengguna
global. Perhatikan bahwa pengguna saat basis data link memiliki konsekuensi ini:
Jika link database pengguna saat tidak diakses dari dalam objek yang tersimpan, maka
pengguna saat ini adalah sama dengan pengguna terhubung mengakses link. Sebagai
contoh, jikascott masalah yang MEMILIH Pernyataan melalui pengguna link saat, maka
pengguna saat ini scott.
Ketika mengeksekusi objek yang tersimpan seperti prosedur, pandangan, atau pemicu yang
mengakses database link, pengguna saat ini adalah pengguna yang memiliki objek yang
tersimpan, dan bukan pengguna yang memanggil objek. Sebagai contoh, jikajane
panggilan prosedur scott.p (dibuat oleh scott), Dan link pengguna saat muncul dalam
disebut prosedur, maka scott adalah pengguna saat link.
Jika objek yang disimpan adalah fungsi Invoker-hak, prosedur, atau paket, maka Invoker
ini ID otorisasi digunakan untuk menghubungkan sebagai remote user. Misalnya, jika
penggunajane panggilan prosedur scott.p (Prosedur Invoker-hak yang diciptakan oleh
scott), Dan link muncul di dalam prosedur scott.p, kemudian jane adalah pengguna
saat ini.
Anda tidak dapat terhubung ke database sebagai pengguna perusahaan dan kemudian
menggunakan link pengguna saat dalam prosedur yang tersimpan yang ada dalam bersama,
skema global. Misalnya, jika penggunajane mengakses prosedur yang tersimpan dalam
skema bersama tamu pada database hq, Dia tidak bisa menggunakan link pengguna saat
dalam skema ini untuk login ke basis data jauh.
Membuat link database menggunakan CREATE DATABASE LINKpernyataan. Tabel memberi contoh
pernyataan SQL yang membuat link database dalam database lokal untuk
remotesales.us.americas.acme_auto.com Database:
Lihat juga:
Setelah Anda telah membuat link database, Anda dapat mengeksekusi pernyataan SQL yang
mengakses objek pada basis data jauh. Misalnya, untuk mengakses objek remoteemp menggunakan
link database foo, Anda bisa mengeluarkan:
Anda juga harus disahkan dalam basis data jauh untuk mengakses objek remote tertentu.
Oracle Database menggunakan nama database global untuk nama obyek skema global
menggunakan skema berikut:
schema.schema_object@global_database_name
dimana:
skemaadalah kumpulan dari struktur data logis, atau obyek skema. Skema dimiliki oleh
pengguna database dan memiliki nama yang sama dengan pengguna tersebut. Setiap
pengguna memiliki skema tunggal.
schema_object adalah struktur data logis seperti tabel, indeks, pandangan, sinonim,
prosedur, paket, atau link database.
global_database_nameadalah nama yang unik mengidentifikasi basis data jauh. Nama
ini harus sama dengan gabungan dari parameter inisialisasi basis data jauhDB_NAME dan
DB_DOMAIN, Kecuali parameter global_names diatur untuk SALAH, Dalam hal nama
apapun dapat diterima.
Jika global_names diatur untuk SALAH, Maka Anda dapat menggunakan nama untuk link ke
sales.division3.acme.com. Misalnya, Anda dapat menghubungi linkfoo. Kemudian, Anda
dapat mengakses basis data jauh sebagai berikut:
SELECT nama FROM scott.emp@foo; # Link nama yang berbeda dari nama global yang
Untuk mengakses objek skema jauh, Anda harus diberikan akses ke objek remote di basis data
jauh. Selanjutnya, untuk melakukan pembaruan, sisipan, atau menghapus pada objek jauh, Anda
harus diberikanMEMILIH hak istimewa pada objek, bersama dengan MEMPERBARUI. MEMASUKKAN,
atau MENGHAPUShak istimewa.,MEMILIHhak istimewa yang diperlukan untuk mengakses remote
object karena database telah ada remote menggambarkan kemampuan. database harus
melakukanSELECT * pada objek jarak jauh untuk menentukan strukturnya.
Sebuah sinonim memungkinkan akses ke table di database remote menggunakan sintaks yang
sama yang akan Anda gunakan untuk mengakses tabel pada database lokal. Asumsikan Anda
mengeluarkan query berikut terhadap tabel dalam database remote:
Anda dapat membuat sinonim emp untuk emp@hq.acme.com sehingga Anda dapat mengeluarkan
query berikut bukan untuk mengakses data yang sama:
Dalam sebuah database terdistribusi, benda skema seperti table dapat diakses oleh semua aplikasi
di sistem. database meluas Model penamaan hirarkis dengan nama database global untuk secara
efektif membuat nama obyek global dan menyelesaikan referensi ke objek skema dalam sistem
basis data terdistribusi.
Sebagai contoh, asumsikan bahwa Anda terhubung ke database lokal sebagai pengguna SISTEM:
Otonomi situs
Keamanan Database Terdistribusi
Audit database Links
administrasi Alat
Otonomi situs
Setiap server yang berpartisipasi dalam database terdistribusi dikelola secara independen dari
semua database lainnya. Beberapa manfaat otonomi situs di database Oracle Database
didistribusikan meliputi:
Node sistem dapat mencerminkan organisasi logis dari perusahaan atau kelompok yang
perlu untuk mempertahankan kemerdekaan.
administrator lokal pengendalian sesuai data lokal. Oleh karena itu, domain masing-masing
administrator database tanggung jawab lebih kecil dan lebih mudah dikelola.
kegagalan independen cenderung untuk mengganggu node lain dari database terdistribusi.
Tidak ada kegagalan database tunggal perlu menghentikan semua operasi didistribusikan
atau menjadi hambatan kinerja.
Administrator dapat pulih dari kegagalan sistem yang terisolasi secara independen dari
node lain dalam sistem.
Sebuah kamus data ada untuk setiap database lokal. Sebuah katalog global tidak diperlukan
untuk mengakses data lokal.
Node dapat meng-upgrade perangkat lunak independen.
Meskipun Oracle Database memungkinkan Anda untuk mengelola setiap database dalam sebuah
sistem basis data terdistribusi secara mandiri, Anda tidak harus mengabaikan persyaratan global
sistem. Sebagai contoh, Anda mungkin perlu untuk:
Membuat account pengguna tambahan dalam setiap database untuk mendukung link yang
Anda buat untuk memudahkan koneksi server-ke-server.
Mengatur parameter inisialisasi tambahan seperti COMMIT_POINT_STRENGTH, dan
open_links.
database mendukung semua fitur keamanan yang tersedia dengan lingkungan database
nondistributed untuk sistem database terdistribusi, termasuk:
link database baik swasta atau publik, diverifikasi atau nonauthenticated. Anda membuat link
publik dengan menentukanPUBLIKkata kunci dalam laporan link pembuatan. Misalnya, Anda
dapat mengeluarkan:
Anda membuat dikonfirmasi link dengan menentukan TERHUBUNG KE ayat, disahkan olehklausa,
atau kedua klausa bersama-sama dalam laporan basis data link pembuatan. Misalnya, Anda dapat
mengeluarkan:
Tabel ini menggambarkan bagaimana pengguna mengakses database jauh melalui link:
Link
Type dikonfirmasi keamanan Access
Pribadi Tidak Ketika melakukan koneksi ke basis data jauh, database menggunakan
informasi keamanan (userid / password) yang diambil dari sesi lokal.
Oleh karena itu, link adalah link database pengguna terhubung.
Password harus disinkronkan antara dua database.
Pribadi iya nih Userid / password diambil dari definisi hubungan dan bukan dari
konteks sesi lokal. Oleh karena itu, link adalah link database pengguna
tetap.
Bila menggunakan pengguna yang terhubung atau link database pengguna saat ini, Anda dapat
menggunakan sumber otentikasi eksternal seperti Kerberos untuk mendapatkan keamanan end-to-
end. Dalam otentikasi end-to-end, kredensial berlalu dari server ke server dan dapat dikonfirmasi
oleh server database milik domain yang sama.
Ketika Anda membuat link database untuk node dalam sebuah sistem basis data terdistribusi,
menentukan account pengguna dan peran setiap situs harus mendukung koneksi server-ke-server
yang menggunakan link.
database menyediakan cara yang berbeda bagi Anda untuk mengelola pengguna dan hak istimewa
yang terlibat dalam sistem terdistribusi. Misalnya, Anda memiliki pilihan ini:
Misalnya, Anda dapat membuat pengguna global yang disebut fred dengan pernyataan SQL
berikut:
Solusi ini memungkinkan pengguna global yang tunggal untuk disahkan oleh direktori terpusat.
Solusi pengguna global yang skema-dependent memiliki konsekuensi bahwa Anda harus membuat
user bernama fredpada setiap database yang pengguna ini harus mengakses.
database mendukung fungsi yang memungkinkan pengguna global untuk dikelola secara terpusat
oleh layanan direktori perusahaan. Pengguna yang dikelola dalam direktori disebut pengguna
perusahaan. Direktori ini berisi informasi tentang:
Administrator dari setiap database tidak diperlukan untuk membuat akun pengguna global untuk
setiap pengguna perusahaan pada setiap database yang perlu pengguna perusahaan untuk
menghubungkan. Sebaliknya, beberapa pengguna enterprise dapat terhubung ke skema database
yang sama, yang disebut skema bersama.
Misalnya, jane. tagihan, dan scottsemua menggunakan aplikasi sumber daya manusia. Ituhq
objek aplikasi semua terkandung dalam tamu skema pada hqDatabase. Username ini global, yaitu,
bersama nama skema, adalahtamu. jane. tagihan, dan scottsemua diciptakan sebagai pengguna
perusahaan di layanan direktori. Mereka juga dipetakan ketamu skema dalam direktori, dan dapat
diberikan otorisasi yang berbeda di hq aplikasi.
Gambar 29-5 menggambarkan contoh keamanan pengguna global yang menggunakan layanan
direktori perusahaan:
scott
penjualan clerk2 tamu jane
scott
Juga, menganggap bahwa administrator lokal untuk hq dan penjualan telah mengeluarkan
pernyataan sebagai berikut:
Asumsikan bahwa pengguna enterprise scott meminta koneksi ke database lokal hq dalam rangka
melaksanakan transaksi terdistribusi yang melibatkan penjualan. Langkah-langkah berikut
terjadi (tidak harus dalam urutan ini tepat):
Enkripsi data
Pilihan Oracle Advanced Security juga memungkinkan Oracle Net dan produk-produk terkait
untuk menggunakan enkripsi data jaringan dan checksumming sehingga data tidak dapat dibaca
atau diubah. Ini melindungi data dari melihat tidak sah dengan menggunakan RC4 RSA Data
Security atau algoritma enkripsi Data Encryption Standard (DES).
Anda harus selalu melakukan operasi audit secara lokal. Artinya, jika pengguna bertindak dalam
database lokal dan mengakses database jauh melalui link database, tindakan lokal diaudit dalam
database lokal, dan tindakan terpencil diaudit dalam basis data jauh, disediakan pilihan audit yang
tepat ditetapkan dalam database masing-masing.
Link pengguna tetap hq.acme.com menghubungkan pengguna lokal jane untuk remote hq
database sebagai remote user scott.
pemakai scott diaudit pada basis data jauh.
Tindakan yang dilakukan selama sesi basis data jauh diaudit seakan scott yang terhubung secara
lokal untuk hqdan lakukan tindakan yang sama di sana. Anda harus menyetel opsi audit dalam
basis data jauh untuk menangkap tindakan username - dalam hal ini,scott pada hq Database -
tertanam dalam link jika efek yang diinginkan adalah untuk mengaudit apa jane lakukan di basis
data jauh.
catatan:
Anda tidak dapat mengatur opsi audit lokal pada objek remote. Oleh karena itu, Anda tidak dapat
mengaudit penggunaan link database, meskipun akses ke objek remote dapat diaudit pada basis
data jauh.
administrasi Alat
Administrator database memiliki beberapa pilihan alat bantu yang digunakan ketika mengelola
sebuah sistem database Oracle Database terdistribusi:
enterprise Manager
Administrasi-Pihak Ketiga
Dukungan SNMP
enterprise Manager
Enterprise Manager adalah alat administrasi database Oracle yang menyediakan antarmuka
pengguna grafis (GUI). Anda dapat menggunakan Enterprise Manager untuk:
Dengan demikian, Anda dapat laksanakan ulang pernyataan tanpa mengetik ulang mereka,
fitur yang sangat berguna jika Anda perlu untuk mengeksekusi pernyataan panjang
berulang-ulang dalam sistem basis data terdistribusi.
Mengelola fitur keamanan seperti pengguna global, peran global, dan layanan direktori
perusahaan.
Administrasi-Pihak Ketiga
Saat ini lebih dari 60 perusahaan menghasilkan lebih dari 150 produk yang membantu mengelola
Oracle Database dan jaringan, menyediakan lingkungan yang benar-benar terbuka.
Dukungan SNMP
HP OpenView
Digital POLYCENTER Manager pada NetView
IBM NetView / 6000
Sistem Manajemen NetWare Novell
SunSoft Sunnet Manajer
Bagian berikut mendefinisikan konsep-konsep penting dalam proses transaksi dan menjelaskan
bagaimana transaksi mengakses data dalam database terdistribusi:
Sebuah pernyataan query remote query yang memilih informasi dari satu atau lebih tabel terpencil,
yang semuanya berada di remote node yang sama. Sebagai contoh, query berikut mengakses data
daridept table di scott skema remote penjualan Database:
Sebuah pernyataan update remote update yang mengubah data dalam satu atau lebih tabel, yang
semuanya terletak di remote node yang sama. Misalnya, update query berikut ini dept table di
scott skema remote penjualan Database:
UPDATE scott.dept@mktng.us.americas.acme_auto.com
catatan:
Mekanisme pernyataan terpencil atau didistribusikan menggunakan shared SQL pada dasarnya
sama dengan yang dari pernyataan lokal. SQL teks harus sesuai, dan objek direferensikan harus
sesuai. Jika tersedia, area SQL bersama dapat digunakan untuk penanganan lokal dan remote dari
setiap pernyataan atau permintaan membusuk.
Sebuah transaksi jarak jauh mengandung satu atau lebih pernyataan terpencil, yang semuanya
referensi remote node tunggal. Misalnya, transaksi berikut berisi dua pernyataan, yang masing-
masing mengakses remotepenjualan Database:
UPDATE scott.dept@sales.us.americas.acme_auto.com
SET loc = 'NEW YORK'
MANA deptno = 10;
UPDATE scott.emp@sales.us.americas.acme_auto.com
SET deptno = 11
MANA deptno = 10;
MELAKUKAN;
Transaksi terdistribusi
Sebuah transaksi terdistribusi adalah transaksi yang mencakup satu atau lebih pernyataan itu,
secara individu atau sebagai kelompok, update data pada dua atau lebih yang berbeda node dari
database terdistribusi. Misalnya, transaksi ini update database lokal dan remotepenjualan
Database:
UPDATE scott.dept@sales.us.americas.acme_auto.com
SET loc = 'NEW YORK'
MANA deptno = 10;
UPDATE SCOTT.EMP
SET deptno = 11
MANA deptno = 10;
MELAKUKAN;
catatan:
Jika semua pernyataan dari referensi transaksi hanya remote node tunggal,
transaksi jarak jauh, tidak didistribusikan.
Sebuah database harus menjamin bahwa semua pernyataan dalam transaksi, didistribusikan atau
nondistributed, baik melakukan atau memutar kembali sebagai satu unit. Efek dari transaksi yang
sedang berlangsung harus terlihat untuk semua transaksi lain di semua node; transparansi ini harus
berlaku untuk transaksi yang mencakup jenis operasi, termasuk query, update, atau panggilan
prosedur remote.
Database dua fase komit jaminan mekanisme bahwa semua server database yang berpartisipasi
dalam transaksi terdistribusi baik semua melakukan atau semua gulungan kembali pernyataan
dalam transaksi. Sebuah dua-tahap melakukan mekanisme juga melindungi operasi DML implisit
yang dilakukan oleh batasan integritas, panggilan prosedur remote, dan pemicu.
Sebuah nama obyek global adalah obyek tertentu dengan menggunakan link database. Komponen
penting dari nama obyek global adalah:
nama objek
nama database
Domain
Tabel berikut menunjukkan komponen-komponen database global yang nama objek secara
eksplisit ditentukan:
Setiap kali sebuah pernyataan SQL termasuk referensi untuk nama obyek global, database mencari
link database dengan nama yang sesuai dengan nama database yang ditentukan dalam nama objek
global. Misalnya, jika Anda mengeluarkan pernyataan berikut:
SELECT * FROM scott.emp@orders.us.acme.com;
Pencarian database untuk link database yang disebut orders.us.acme.com. database melakukan
operasi ini untuk menentukan path ke basis data jauh ditentukan.Database selalu mencari untuk
pencocokan database link dalam urutan sebagai berikut:
1. Database link swasta dalam skema dari pengguna yang mengeluarkan pernyataan SQL.
2. link database publik dalam database lokal.
3. database link global (hanya jika server direktori tersedia).
Asumsikan bahwa Anda mengeluarkan pernyataan SQL berikut, yang menentukan lengkap nama
database global:
Dalam hal ini, baik nama database (prod1) Dan komponen domain (us.oracle.com) Yang
ditentukan, sehingga pencarian database untuk database link swasta, publik, dan global. database
hanya menelusuri link yang sesuai ditentukan nama database global.
Jika pernyataan SQL menentukan parsial global yang nama database (yaitu, hanya komponen
database ditentukan), database menambahkan nilai dalamDB_DOMAIN inisialisasi parameter dengan
nilai di DB_NAMEparameter inisialisasi untuk membangun nama lengkap. Sebagai contoh,
asumsikan Anda mengeluarkan pernyataan berikut:
Jika domain jaringan untuk locdb aku s us.acme.com, Maka database menambahkan domain ini
untuk pesanan untuk membangun lengkap nama database global orders.us.acme.com.
Pencarian database untuk database yang link yang cocok hanya nama global dibangun. Jika link
yang cocok tidak ditemukan, database kembali kesalahan dan pernyataan SQL tidak bisa
mengeksekusi.
Jika nama obyek global referensi objek dalam database lokal dan nama link database tidak
ditentukan menggunakan simbol @, maka database secara otomatis mendeteksi bahwa objek lokal
dan tidak mencari atau menggunakan link database untuk menyelesaikan referensi obyek. Sebagai
contoh, asumsikan bahwa Anda mengeluarkan pernyataan berikut:
Pertandingan pertama menentukan skema terpencil seperti yang diilustrasikan pada tabel berikut:
Setelah database menentukan jalur lengkap, itu menciptakan sesi remote, dengan asumsi bahwa
koneksi identik belum terbuka atas nama sesi lokal yang sama
Setelah Oracle Database lokal menghubungkan ke database remote ditentukan atas nama pengguna
lokal yang mengeluarkan pernyataan SQL, resolusi objek terus seolah-olah pengguna remote telah
mengeluarkan pernyataan SQL yang terkait. Pertandingan pertama menentukan skema terpencil
sesuai dengan aturan berikut:
Jika database tidak dapat menemukan objek, maka cek benda publik dari basis data jauh. Jika tidak
dapat menyelesaikan objek, maka sesi remote didirikan tetap tetapi pernyataan SQL tidak dapat
mengeksekusi dan mengembalikan kesalahan.
Berikut ini adalah contoh resolusi nama obyek global dalam sistem basis data terdistribusi. Untuk
semua contoh berikut, menganggap bahwa:
Contoh ini menggambarkan bagaimana database menyelesaikan lengkap nama obyek global dan
menentukan jalur yang sesuai dengan basis data jauh menggunakan kedua link database pribadi
dan publik. Untuk contoh ini, asumsikan sebagai berikut:
UPDATE tsmith.emp@sales.division3.acme.com
SET deptno = 40
MANA deptno = 10;
Contoh ini menggambarkan bagaimana database menyelesaikan sebuah parsial nama obyek global
dan menentukan jalur yang sesuai dengan basis data jauh menggunakan kedua link database
pribadi dan publik.
Sebuah unit tampilan, sinonim, atau PL / SQL program (misalnya, prosedur, fungsi, atau memicu)
dapat referensi objek skema remote dengan nama objek global. Tabel berikut menjelaskan ketika
database melengkapi ekspansi nama obyek global parsial untuk dilihat, sinonim, dan unit program:
Operasi
pengguna database Response
Membuat tampilan Tidak memperluas nama global parsial. Kamus data menyimpan teks
yang tepat dari query mendefinisikan. Sebaliknya, database memperluas
parsial nama obyek global setiap kali sebuah pernyataan yang
menggunakan pandangan parsing.
Buat sinonim Perluas nama global parsial. Definisi sinonim disimpan dalam kamus
data meliputi diperluas nama obyek global.
Mengkompilasi Perluas nama global parsial.
sebuah program unit
Perubahan nama global yang dapat mempengaruhi pandangan, sinonim, dan prosedur yang
referensi data remote menggunakan nama obyek global parsial. Di sisi lain, sinonim tidak
memperluas nama link database saat runtime, sehingga mereka tidak berubah.
Pertama, mempertimbangkan situasi di mana kedua Penjualan dan departemen Sumber Daya
Manusia yang pindah ke Amerika Serikat. Akibatnya, nama database global yang sesuai keduanya
berubah sebagai berikut:
Tabel berikut menjelaskan ekspansi permintaan sebelum dan setelah perubahan nama global:
query pada
penjualan Ekspansi Sebelum Ganti Ekspansi Setelah Perubahan
SELECT * FROM SELECT * FROM SELECT * FROM
employee_names scott.emp@hr.uk.acme.com scott.emp@hr.us.acme.com
SELECT * FROM SELECT * FROM SELECT * FROM
karyawan scott.emp@hr.uk.acme.com scott.emp@hr.uk.acme.com
Tabel berikut menjelaskan ekspansi permintaan sebelum dan setelah perubahan nama global:
query pada
penjualan Ekspansi Sebelum Ganti Ekspansi Setelah Perubahan
SELECT * FROM SELECT * FROM SELECT * FROM
employee_names scott.emp@hr.uk.acme.com scott.emp@hr.us.acme.com
SELECT * FROM SELECT * FROM SELECT * FROM
karyawan scott.emp@hr.uk.acme.com scott.emp@hr.uk.acme.com
Dengan sedikit usaha, Anda dapat mengembangkan aplikasi yang membuat Oracle Database
didistribusikan sistem database transparan kepada pengguna yang bekerja dengan sistem. Bagian
berikut menjelaskan lebih lanjut tentang transparansi dalam sistem basis data terdistribusi.
lokasi Transparansi
Oracle database sistem basis data terdistribusi memiliki fitur yang memungkinkan pengembang
aplikasi dan administrator untuk menyembunyikan lokasi fisik dari objek database dari aplikasi
dan pengguna. Lokasi transparansi memiliki beberapa keuntungan, termasuk:
Akses ke data remote sederhana, karena pengguna basis data tidak perlu mengetahui lokasi
fisik dari objek database.
Administrator dapat memindahkan objek database dengan tidak berdampak pada pengguna
akhir atau aplikasi database yang ada.
Sebuah aplikasi dapat mengeluarkan permintaan yang lebih sederhana yang tidak harus
menjelaskan lokasi tabel jarak jauh.
Oracle Database terdistribusi arsitektur database juga menyediakan query, update, dan transparansi
transaksi. Sebagai contoh, standar SQL sepertiMEMILIH. MEMASUKKAN. MEMPERBARUI, dan
MENGHAPUSbekerja seperti yang mereka lakukan dalam lingkungan database nondistributed. Selain
itu, aplikasi mengontrol transaksi menggunakan laporan SQL standarMELAKUKAN. SAVEPOINT, dan
ROLLBACK. Tidak ada persyaratan untuk pemrograman kompleks atau operasi khusus lainnya untuk
memberikan kontrol transaksi terdistribusi.
Laporan dalam satu transaksi dapat referensi sejumlah tabel lokal atau remote.
database menjamin bahwa semua node yang terlibat dalam transaksi terdistribusi
mengambil tindakan yang sama: mereka baik semua melakukan atau semua gulungan
kembali transaksi.
Jika jaringan atau sistem kegagalan terjadi selama melakukan transaksi terdistribusi,
transaksi secara otomatis dan transparan diselesaikan secara global. Secara khusus, ketika
jaringan atau sistem dipulihkan, node baik semua melakukan atau semua gulungan kembali
transaksi.
Internal untuk database, setiap transaksi yang dijanjikan memiliki jumlah perubahan sistem yang
terkait (SCN) untuk secara unik mengidentifikasi perubahan yang dibuat oleh pernyataan dalam
transaksi itu. Dalam sebuah database terdistribusi, SCNs berkomunikasi node dikoordinasikan
bila:
Sambungan didirikan menggunakan jalur dijelaskan oleh satu atau lebih database link.
Sebuah pernyataan SQL didistribusikan dijalankan.
Sebuah transaksi terdistribusi berkomitmen.
replikasi Transparansi
database juga menyediakan banyak fitur untuk transparan replikasi data antara node sistem. Untuk
informasi lebih lanjut tentang Oracle fitur database replikasi, lihatOracle Database Lanjutan
Replikasi.
Aplikasi dapat membuat prosedur lokal panggilan untuk melakukan pekerjaan di database dan
prosedur remote panggilan lokal (RPC) untuk melakukan pekerjaan di sebuah basis data jauh.
Ketika program panggilan prosedur remote, server lokal melewati semua parameter prosedur ke
server jauh dalam panggilan. Sebagai contoh, PL Unit Program / SQL berikut panggilan prosedur
dikemasdel_emp yang terletak di remote penjualan database dan dibagikan parameter 1257:
MULAI
emp_mgmt.del_emp@sales.us.americas.acme_auto.com (1257);
AKHIR;
Agar RPC untuk berhasil, yang disebut prosedur harus ada di lokasi terpencil, dan pengguna yang
terhubung ke harus memiliki hak yang tepat untuk mengeksekusi prosedur.
Ketika mengembangkan paket dan prosedur untuk sistem database terdistribusi, pengembang
harus kode dengan pemahaman tentang apa unit program harus lakukan di lokasi terpencil, dan
bagaimana mengembalikan hasil ke aplikasi panggilan.
optimasi query didistribusikan adalah fitur database Oracle yang mengurangi jumlah transfer
data yang dibutuhkan antara situs ketika transaksi mengambil data dari tabel jarak jauh
direferensikan dalam sebuah pernyataan SQL didistribusikan.
Menggunakan berbagai petunjuk optimizer berbasis biaya seperti DRIVING_SITE. NO_MERGE, dan
INDEKS, Anda dapat mengontrol mana Oracle Database memproses data dan bagaimana
mengakses data.
gateway transparan
NLS_NCHAR (Variabel lingkungan) heterogen Terdistribusi Oracle Database Server
Dalam lingkungan client / server, mengatur karakter klien diatur menjadi sama atau subset dari
Oracle Database Server set karakter, seperti digambarkan dalam Gambar 29-6:
Dalam lingkungan nonheterogeneous, klien dan server set karakter harus baik sama atau himpunan
bagian dari set karakter server utama, seperti digambarkan dalam Gambar 29-7:
Dalam lingkungan yang heterogen, pengaturan NLS dari klien, gateway transparan, dan non-
Oracle Database sumber data harus sama atau subset dari karakter database server diatur seperti
yang diilustrasikan pada Gambar 29-8. gateway transparan memiliki dukungan globalisasi penuh.
Dalam lingkungan yang heterogen, gateway hanya transparan dibangun dengan dukungan
teknologi HS lengkap NCHARkemampuan. Apakah mendukung gerbang tertentu
transparanNCHARtergantung pada Oracle non-sumber database data yang menargetkan. Untuk
informasi tentang bagaimana menangani gateway transparan tertentuNCHAR dukungan,
berkonsultasi dengan sistem yang dokumentasi gateway transparan.