Anda di halaman 1dari 37

29 Konsep database terdistribusi

Bab ini menjelaskan konsep dasar dan terminologi Oracle Database arsitektur basis data
terdistribusi. Ini berisi topik berikut:

 Arsitektur Basis Data Terdistribusi


 database Links
 Administrasi Database Terdistribusi
 Pengolahan Transaksi dalam Sistem Terdistribusi
 Distributed Application Development database
 Character Set Dukungan untuk Lingkungan Terdistribusi

Arsitektur Basis Data Terdistribusi

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.

Bagian ini berisi topik berikut:

 Homogen Sistem Basis Data Terdistribusi


 Heterogen Sistem Basis Data Terdistribusi
 Client / Server Database Arsitektur

Homogen Sistem Basis Data Terdistribusi

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.

Gambar 29-1 Homogen Distributed database


Deskripsi admin046.gif ilustrasi

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.

Database Terdistribusi Versus Pengolahan Terdistribusi

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

Operasi yang terjadi ketika sebuah aplikasi mendistribusikan tugas-tugas di antara


komputer yang berbeda dalam jaringan.
Database Terdistribusi Versus direplikasi Database

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.

Heterogen Sistem Basis Data Terdistribusi

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.

Gateway Agen transparan

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.

Client / Server Database Arsitektur


Sebuah database server adalah perangkat lunak Oracle mengelola database, dan klien adalah
sebuah aplikasi yang meminta informasi dari server. Di Gambar 29-2, Tuan rumah untuk hq
database yang bertindak sebagai server database ketika sebuah pernyataan dikeluarkan terhadap
data lokal (misalnya, pernyataan kedua dalam setiap transaksi mengeluarkan pernyataan terhadap
lokal dept tabel), tetapi bertindak sebagai klien ketika mengeluarkan pernyataan terhadap data
remote (misalnya, pernyataan pertama dalam setiap transaksi dikeluarkan terhadap tabel jarak jauh
emp dalam penjualan database).

Gambar 29-2 Sebuah Oracle Database Terdistribusi Sistem Database

Deskripsi admin040.gif ilustrasi

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:

SELECT * FROM dept;

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:

SELECT * FROM penjualan emp @;

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.

Bagian ini berisi topik berikut:

 Apakah database Links?


 Mengapa Gunakan database Links?
 Nama database global dalam database Links
 Nama untuk Database Links
 Jenis database Links
 Pengguna Database Links
 Penciptaan database Links: Contoh
 Skema Objects dan Database Links
 Link Database Pembatasan

Apakah database Links?

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

Deskripsi admin045.gif ilustrasi

Salah satu perbedaan utama antara database link adalah cara yang koneksi ke basis data jauh
terjadi. Pengguna mengakses remote database melalui jenis berikut link:

Jenis Link Deskripsi


Link Pengguna terhubung sebagai diri mereka sendiri, yang berarti bahwa mereka
pengguna harus memiliki account di basis data jauh dengan username yang sama seperti
terhubung account mereka pada database lokal.
Link Pengguna terhubung menggunakan username dan password direferensikan di
pengguna link. Misalnya, jika Jane menggunakan link pengguna tetap yang
tetap menghubungkan kehq database dengan username dan password
scott/harimau, Kemudian dia menghubungkan sebagai scott, Jane memiliki
semua hak istimewa di hq diberikan kepada scott langsung, dan semua peran
default yang scott telah diberikan dalam hq Database.
Link Seorang pengguna terhubung sebagai pengguna global. Seorang pengguna lokal
pengguna dapat terhubung sebagai pengguna global dalam konteks prosedur yang
saat tersimpan, tanpa menyimpan password pengguna global di definisi hubungan.
Sebagai contoh, Jane dapat mengakses sebuah prosedur yang Scott menulis,
mengakses akun Scott dan skema Scott padahqDatabase. link pengguna saat ini
merupakan aspek dari Oracle Advanced Security.
Membuat link database menggunakan CREATE DATABASE LINKpernyataan. Setelah link dibuat,
Anda dapat menggunakannya untuk menentukan skema objek dalam pernyataan SQL.

Apa Apakah Bersama database Links?

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.

Tabel berikut menggambarkan kemungkinan:

Modus database lokal Remote Database Modus


Dedicated Dedicated
Dedicated server bersama
server bersama Dedicated
server bersama server bersama

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.

Mengapa Gunakan database Links?

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.

Nama database global dalam database Links

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.

Gambar 29-4 Pengaturan hirarkis dari Networked Database

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

Nama untuk Database Links

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:

Oracle menganjurkan agar Anda menggunakan penamaan global karena


banyak fitur yang berguna, termasuk Replikasi, membutuhkan penamaan
global.

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.

Jenis database Links

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:

Mengetik Pemilik Deskripsi


Pribadi Pengguna yang menciptakan link. Membuat link dalam skema tertentu dari database
Lihat data kepemilikan melalui: lokal. Hanya pemilik link database pribadi atau
subprogram PL / SQL dalam skema dapat
 DBA_DB_LINKS menggunakan link ini untuk mengakses objek
 ALL_DB_LINKS database dalam basis data jauh yang sesuai.
Mengetik Pemilik Deskripsi
 USER_DB_LINKS

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.

Catatan: Dalam rilis sebelumnya dari Oracle


Database, database link global yang disebut link
database yang telah terdaftar dengan server nama
Oracle. Penggunaan server Nama Oracle telah
usang. Dalam dokumen ini, database link global
yang mengacu pada penggunaan nama layanan
bersih dari server direktori.

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:

Jenis Link fitur


database link link ini lebih aman dari link umum atau global, karena hanya pemilik link pribadi,
Swasta atau subprogram dalam skema yang sama, dapat menggunakan link untuk
mengakses basis data jauh.
link database Ketika banyak pengguna memerlukan jalur akses ke Oracle Database jauh, Anda
publik dapat membuat link database publik tunggal untuk semua pengguna dalam
database.
link database Ketika jaringan Oracle menggunakan server direktori, administrator dapat
global yang mengatur database link global untuk semua database dalam sistem. manajemen
database link adalah terpusat dan sederhana.

Pengguna Database Links


Ketika membuat link, Anda menentukan mana pengguna harus terhubung ke basis data jauh untuk
mengakses data. Tabel berikut menjelaskan perbedaan antara kategori pengguna yang terlibat
dalam database link:

Tipe Contoh link


Pengguna Deskripsi Penciptaan Sintaks
pengguna Seorang pengguna lokal mengakses link database di CREATE DATABASE
terhubung mana tidak ada username dan password tetap telah PUBLIK LINK hq
MENGGUNAKAN 'hq';
ditetapkan. JikaSISTEM mengakses link publik dalam
query, maka pengguna yang terhubung SISTEM, Dan
database menghubungkan ke SISTEM skema dalam
basis data jauh.

catatan: Seorang pengguna terhubung tidak harus


menjadi pengguna yang menciptakan link, tetapi
setiap pengguna yang mengakses link.
pengguna Seorang pengguna global dalam MENCIPTAKAN PUBLIC
saat DATABASE LINK hq
CURRENT_USERDatabase Link. Pengguna global harus
CONNECT TO
disahkan oleh sertifikat X.509 (perusahaan pengguna current_user
SSL-dikonfirmasi) atau password (perusahaan menggunakan 'hq';
pengguna sandi-dikonfirmasi), dan menjadi pengguna
pada kedua database yang terlibat dalam link. link
pengguna saat ini adalah suatu aspek dari pilihan
Oracle Advanced Security.

Lihat Panduan Oracle Advanced Security


Administrator untuk informasi tentang keamanan
global
pengguna Seorang pengguna yang username / password adalah Membuat database
tetap bagian dari definisi hubungan. Jika link termasuk PUBLIK LINK hq CONNECT
TO jane
pengguna tetap, maka username dan password diidentifikasi oleh
pengguna tetap ini digunakan untuk menghubungkan doe MENGGUNAKAN 'hq';
ke basis data jauh.

Koneksi Pengguna database Links

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.

Itu REMOTE_OS_AUTHENT parameter beroperasi sebagai berikut:

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.

Tetap Pengguna database Links

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:

Fakta bahwa username dan password disimpan dalam bentuk terenkripsi di


kamus data menciptakan kelemahan keamanan potensial link database
pengguna tetap.

Jika 07_DICTIONARY_ACCESSIBILITY parameter inisialisasi diatur untuk


BENAR, Pengguna dengan SELECT TABLE APAPUN sistem hak istimewa
memiliki akses ke kamus data, dan dengan demikian otentikasi dikaitkan
dengan pengguna tetap dikompromikan.

Default untuk O7_DICTIONARY_ACCESSIBILITY parameter inisialisasi


SALAH.

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.

Saat Pengguna database Links

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.

Penciptaan database Links: Contoh

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:

Menghubungkan menghubungkan Link


SQL Statement Untuk Database Sebagai Type
CREATE DATABASE LINK penjualan pengguna terhubung pengguna
sales.us.americas.acme_auto.com menggunakan nama terhubung
MENGGUNAKAN 'sales_us'; layanan bersih swasta
sales_us
CREATE DATABASE LINK foo CONNECT penjualan pengguna global saat Swasta
TO current_user MENGGUNAKAN menggunakan nama ini pengguna
'am_sls';
layanan am_sls saat
Menghubungkan menghubungkan Link
SQL Statement Untuk Database Sebagai Type
CREATE DATABASE LINK penjualan scott menggunakan pengguna
sales.us.americas.acme_auto.com menggunakan nama password harimau tetap
CONNECT TO scott diidentifikasi layanan bersih
oleh harimau MENGGUNAKAN swasta
sales_us
'sales_us';
Membuat database PUBLIC penjualan penjualan scott menggunakan pengguna
LINK CONNECT TO scott menggunakan nama tetap
diidentifikasi oleh harimau layanan
password harimau
bersih Umum
MENGGUNAKAN 'rev';
putaran
MENCIPTAKAN SHARED PUBLIC penjualan scott menggunakan Bersama
DATABASE LINK menggunakan nama pengguna
sales.us.americas.acme_auto.com
password harimau,
layanan bersih Dikonfirmasi tetap
CONNECT TO scott diidentifikasi penjualan
dengan harimau disahkan oleh sebagai anupam umum
anupam diidentifikasi oleh Bhide menggunakan
MENGGUNAKAN 'penjualan';
password Bhide

Lihat juga:

 "Membuat Database Links" untuk belajar bagaimana untuk


membuat link
 Oracle Database SQL Referensi untuk informasi tentang CREATE
DATABASE LINK sintaks pernyataan

Skema Objects dan Database Links

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:

SELECT * FROM emp @ foo;

Anda juga harus disahkan dalam basis data jauh untuk mengakses objek remote tertentu.

Penamaan Skema Objects Menggunakan database Links

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.

Misalnya, menggunakan database link ke database sales.division3.acme.com, Pengguna atau


aplikasi dapat referensi data remote sebagai berikut:

SELECT * FROM scott.emp@sales.division3.acme.com; # Tabel emp dalam skema scott


ini
SELECT loc FROM scott.dept@sales.division3.acme.com;

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

Otorisasi untuk Mengakses Jarak Jauh Skema Objects

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.

Sinonim untuk Skema Objects

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:

SELECT * FROM emp@hq.acme.com;

Anda dapat membuat sinonim emp untuk emp@hq.acme.com sehingga Anda dapat mengeluarkan
query berikut bukan untuk mengakses data yang sama:

SELECT * FROM emp;

Skema Resolusi Object Nama


Untuk mengatasi referensi aplikasi untuk obyek skema (suatu proses yang disebut resolusi nama),
bentuk-bentuk database yang keberatan nama hierarkis.

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:

CONNECT SYSTEM / password @ penjualan1

Anda kemudian mengeluarkan pernyataan berikut menggunakan database link hq.acme.com


untuk mengakses objek dalam scott dan jane skema pada remote database hq:

SELECT * FROM scott.emp@hq.acme.com;


INSERT INTO jane.accounts@hq.acme.com (acc_no, acc_name, keseimbangan)
NILAI (5001, 'BOWER', 2000);
UPDATE jane.accounts@hq.acme.com
SET keseimbangan = saldo + 500;
DELETE FROM jane.accounts@hq.acme.com
MANA acc_name = 'BOWER';

Link Database Pembatasan

Anda tidak dapat melakukan operasi berikut menggunakan database link:

 hak hibah pada objek jarak jauh


 Menjalankan MENGGAMBARKANoperasi pada beberapa objek remote. Benda-benda jarak jauh
berikut, bagaimanapun, melakukan dukunganMENGGAMBARKAN operasi:
o tabel
o views
o Prosedur
o fungsi
 Menganalisis objek remote
 Mendefinisikan atau menegakkan integritas referensial
 Memberikan peran kepada pengguna di database jauh
 Mendapatkan peran nondefault pada basis data jauh. Sebagai contoh, jikajane
menghubungkan ke database lokal dan mengeksekusi prosedur yang tersimpan yang
menggunakan link pengguna tetap terhubung sebagai scott. jane menerima scott'S
peran default pada basis data jauh. Jane tidak bisa mengeluarkanPERAN SET untuk
mendapatkan peran nondefault.
 Mengeksekusi query hash bergabung bahwa penggunaan bersama koneksi server
 Gunakan link pengguna saat tanpa otentikasi melalui SSL, password, atau otentikasi asli
NT

Administrasi Database Terdistribusi


Bagian berikut menjelaskan beberapa topik yang berkaitan dengan manajemen database dalam
sebuah sistem database Oracle Database terdistribusi:

 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.

Keamanan Database Terdistribusi

database mendukung semua fitur keamanan yang tersedia dengan lingkungan database
nondistributed untuk sistem database terdistribusi, termasuk:

 Sandi otentikasi pengguna dan peran


 Beberapa jenis otentikasi eksternal untuk pengguna dan peran termasuk:
o Kerberos versi 5 untuk link pengguna terhubung
o DCE untuk link pengguna terhubung
 enkripsi paket Login untuk koneksi client-server dan server-ke-server
Bagian berikut menjelaskan beberapa topik tambahan untuk dipertimbangkan ketika
mengkonfigurasi sistem database Oracle Database terdistribusi:

 Otentikasi Melalui database Links


 Otentikasi Tanpa Password
 Mendukung User Account dan Peran
 Pengguna terpusat dan Manajemen Privilege
 Enkripsi data

Otentikasi Melalui database Links

link database baik swasta atau publik, diverifikasi atau nonauthenticated. Anda membuat link
publik dengan menentukanPUBLIKkata kunci dalam laporan link pembuatan. Misalnya, Anda
dapat mengeluarkan:

MENCIPTAKAN PUBLIC foo DATABASE LINK MENGGUNAKAN 'penjualan';

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:

Menciptakan penjualan DATABASE LINK CONNECT TO scott diidentifikasi oleh harimau


MENGGUNAKAN 'penjualan';
CREATE SHARED DATABASE PUBLIK penjualan LINK CONNECT ke Mick jagger
diidentifikasi dengan
Disahkan oleh david diidentifikasi oleh bowie MENGGUNAKAN 'penjualan';

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.

Konfigurasi ini memungkinkan password untuk menjadi berbeda pada


dua database, tetapi password database link lokal harus sesuai dengan
password database jauh. Sandi akan disimpan dalam bentuk teks pada
sistem katalog lokal, menambahkan risiko keamanan.
Publik Tidak Bekerja sama dengan link nonauthenticated pribadi, kecuali bahwa
semua pengguna dapat referensi pointer ini ke basis data jauh.
Link
Type dikonfirmasi keamanan Access
Publik iya nih Semua pengguna di database lokal dapat mengakses basis data jauh dan
semua menggunakan userid yang sama / password untuk membuat
sambungan. Juga, password disimpan dalam bentuk teks dalam katalog
lokal, sehingga Anda dapat melihat password jika Anda memiliki
cukup hak dalam database lokal.

Otentikasi Tanpa Password

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.

Mendukung User Account dan Peran

Dalam sistem database terdistribusi, perhatikan bahwa:

 Pengguna account yang diperlukan untuk membangun server-ke-server koneksi harus


tersedia di semua database dari sistem database terdistribusi.
 Peran yang diperlukan untuk membuat hak aplikasi tersedia untuk pengguna aplikasi
database terdistribusi harus hadir di semua database dari sistem database terdistribusi.

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.

Pengguna terpusat dan Manajemen Privilege

database menyediakan cara yang berbeda bagi Anda untuk mengelola pengguna dan hak istimewa
yang terlibat dalam sistem terdistribusi. Misalnya, Anda memiliki pilihan ini:

 Manajemen perusahaan pengguna. Anda dapat membuat pengguna global yang


dikonfirmasi melalui SSL atau dengan menggunakan password, kemudian mengelola
pengguna ini dan hak-hak mereka dalam sebuah direktori melalui layanan direktori
perusahaan independen.
 layanan otentikasi jaringan. teknik umum ini menyederhanakan manajemen keamanan
untuk lingkungan terdistribusi. Anda dapat menggunakan opsi Oracle Advanced Security
untuk meningkatkan Oracle Net dan keamanan sistem database Oracle database
terdistribusi. otentikasi asli Windows NT adalah contoh dari solusi otentikasi non-Oracle.

Skema-Dependent Pengguna global


Salah satu pilihan untuk memusatkan pengguna dan manajemen hak adalah untuk menciptakan
berikut:

 Seorang pengguna global dalam direktori terpusat


 Seorang pengguna di setiap database yang pengguna global harus terhubung ke

Misalnya, Anda dapat membuat pengguna global yang disebut fred dengan pernyataan SQL
berikut:

Membuat pengguna fred diidentifikasi GLOBAL AS 'CN = fred adams, O = Oracle, C


= Inggris';

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.

Skema-Independen Pengguna global

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:

 Yang database dalam sistem terdistribusi pengguna perusahaan dapat mengakses


 Yang berperan pada setiap database pengguna perusahaan dapat menggunakan
 Yang skema pada setiap database pengguna perusahaan dapat terhubung ke

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:

Gambar 29-5 Keamanan Global Pengguna


Asumsikan bahwa layanan direktori perusahaan berisi informasi berikut di pengguna perusahaan
untuk hq dan penjualan:

database Peran Skema Pengguna perusahaan


tb clerk1 tamu tagihan

scott
penjualan clerk2 tamu jane

scott

Juga, menganggap bahwa administrator lokal untuk hq dan penjualan telah mengeluarkan
pernyataan sebagai berikut:

database MENCIPTAKAN Laporan


hq CREATE USER tamu diidentifikasi GLOBAL AS '';
MENCIPTAKAN PERAN clerk1 GRANT pilih ON emp;
MENCIPTAKAN PUBLIC DATABASE LINK SALES_LINK CONNECT AS
CURRENT_USER MENGGUNAKAN 'penjualan';
penjualan CREATE USER tamu diidentifikasi GLOBAL AS '';
MENCIPTAKAN PERAN clerk2 GRANT pilih ON dept;

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):

1. perusahaan pengguna scott adalah otentik menggunakan SSL atau password.


2. pemakai scott mengeluarkan pernyataan berikut:
3. SELECT e.ename, d.loc
4. DARI emp e, dept @ SALES_LINK d
5. MANA e.deptno = d.deptno;
6.
7. database hq dan penjualan saling mengotentikasi satu sama lain menggunakan SSL.
8. database hq query layanan direktori perusahaan untuk menentukan apakah perusahaan
pengguna scott memiliki akses ke hq, Dan menemukan scott dapat mengakses skema
lokal tamu menggunakan peran clerk1.
9. database penjualan query layanan direktori perusahaan untuk menentukan apakah
perusahaan pengguna scott memiliki akses ke penjualan, Dan menemukan scott dapat
mengakses skema lokal tamu menggunakan peran clerk2.
10. perusahaan pengguna scott log ke penjualan untuk skema tamu dengan peran clerk2
dan isu-isu yang MEMILIH untuk memperoleh informasi yang diperlukan dan transfer ke
hq.
11. database hq menerima data yang diminta dari penjualan dan kembali ke klien scott.

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).

Audit database Links

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.

Sebagai contoh, asumsikan sebagai berikut:

 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 dapat mengaudit username global untuk pengguna global.

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:

 Mengelola beberapa database. Anda dapat menggunakan Enterprise Manager untuk


mengelola database tunggal atau untuk secara bersamaan mengelola beberapa database.
 Memusatkan tugas administrasi database. Anda dapat mengelola database baik lokal dan
remote berjalan pada setiap Oracle Database platform dalam setiap lokasi di seluruh dunia.
Selain itu, platform database Oracle ini dapat dihubungkan dengan protokol jaringan yang
didukung oleh Oracle Net.
 Dinamis mengeksekusi SQL, PL / SQL, dan perintah Enterprise Manager. Anda dapat
menggunakan Enterprise Manager untuk masuk, mengedit, dan mengeksekusi pernyataan.
Enterprise Manager juga mempertahankan sejarah pernyataan dieksekusi.

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

Selain kemampuan administrasi jaringan, Oracle Simple dukungan Network Management


Protocol (SNMP) memungkinkan database Oracle server yang berlokasi dan ditanyakan oleh
setiap sistem manajemen jaringan berbasis SNMP. SNMP adalah standar yang diterima mendasari
banyak sistem manajemen jaringan populer seperti:

 HP OpenView
 Digital POLYCENTER Manager pada NetView
 IBM NetView / 6000
 Sistem Manajemen NetWare Novell
 SunSoft Sunnet Manajer

Pengolahan Transaksi dalam Sistem Terdistribusi


Sebuah transaksi adalah unit logis dari kerja didasari oleh satu atau lebih pernyataan SQL
dieksekusi oleh satu pengguna. Sebuah transaksi dimulai dengan pertama dieksekusi pernyataan
SQL pengguna dan berakhir ketika berkomitmen atau digulung kembali oleh pengguna tersebut.

Bagian berikut mendefinisikan konsep-konsep penting dalam proses transaksi dan menjelaskan
bagaimana transaksi mengakses data dalam database terdistribusi:

 Laporan SQL terpencil


 Laporan SQL didistribusikan
 Bersama SQL untuk Laporan Remote dan Terdistribusi
 Transaksi jarak jauh
 Transaksi terdistribusi
 Dua-Phase Commit Mekanisme
 Database Resolusi Tautan Nama
 Skema Resolusi Object Nama

Laporan SQL terpencil

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:

SELECT * FROM scott.dept@sales.us.americas.acme_auto.com;

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

SET loc = 'NEW YORK'

MANA deptno = 10;

catatan:

Pembaruan remote dapat menyertakan subquery yang mengambil data dari


satu atau lebih node jauh, tetapi karena update terjadi di hanya remote node
tunggal, pernyataan itu diklasifikasikan sebagai update terpencil.

Laporan SQL didistribusikan


Sebuah pernyataan query didistribusikan mengambil informasi dari dua atau lebih node. Sebagai
contoh, query berikut mengakses data dari database lokal serta remotepenjualan Database:

SELECT ename, dname


DARI SCOTT.EMP e, scott.dept@sales.us.americas.acme_auto.com d
MANA e.deptno = d.deptno;

Pembaruan didistribusikan adalah mungkin menggunakan PL / SQL Unit subprogram seperti


prosedur atau pemicu yang mencakup dua atau lebih update terpencil yang mengakses data pada
node yang berbeda. Sebagai contoh, PL / unit Program SQL berikut update tabel pada database
lokal dan remotepenjualan Database:
MULAI
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;
AKHIR;
MELAKUKAN;

Bersama SQL untuk Laporan Remote dan Terdistribusi

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.

Transaksi jarak jauh

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.

Dua-Phase Commit Mekanisme

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.

Database Resolusi Tautan Nama

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:

Pernyataan Obyek database Domain


SELECT * FROM joan.dept@sales.acme.com dept penjualan acme.com
SELECT * FROM emp@mktg.us.acme.com emp Mktg us.acme.com

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).

Nama Resolusi Ketika Database Name global Apakah Lengkap

Asumsikan bahwa Anda mengeluarkan pernyataan SQL berikut, yang menentukan lengkap nama
database global:

SELECT * FROM emp@prod1.us.oracle.com;

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.

Nama Resolusi Ketika Database Name global Apakah Partial

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:

CONNECT scott / tiger @ locdb


SELECT * FROM scott.emp@orders;

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.

Nama Resolusi Ketika ada Database Name global Apakah Ditentukan

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:

CONNECT scott / tiger @ locdb


SELECT * dari SCOTT.EMP;
Mengakhiri Search for Nama Resolusi

Pertandingan pertama menentukan skema terpencil seperti yang diilustrasikan pada tabel berikut:

Operasi pengguna database Response Contoh


Tidak menentukan Menggunakan link database pengguna CREATE DATABASE k1 LINK
terhubung MENGGUNAKAN 'prod'
MENGHUBUNGKAN ayat
Melakukan tentukan Menggunakan link database pengguna CREATE DATABASE LINK k2
CONNECT TO ... tetap CONNECT TO scott
diidentifikasi diidentifikasi oleh
harimau MENGGUNAKAN
dengan ayat
'prod'

Tentukan CONNECT TO Menggunakan link database pengguna CREATE DATABASE LINK k3


saat CONNECT TO current_user
current_user ayat
MENGGUNAKAN 'prod'
Tidak menentukan Mencari sampai menemukan link CREATE DATABASE LINK k4
menentukan string basis data. Jika CONNECT TO current_user
MENGGUNAKAN ayat
cocok database link yang ditemukan
dan string tidak pernah diidentifikasi,
database mengembalikan kesalahan.

Setelah database menentukan jalur lengkap, itu menciptakan sesi remote, dengan asumsi bahwa
koneksi identik belum terbuka atas nama sesi lokal yang sama

Skema Resolusi Object Nama

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:

Jenis Link Ditentukan Lokasi Resolusi Obyek


Sebuah link database pengguna tetap Skema yang ditentukan dalam pernyataan link
pembuatan
Sebuah link database pengguna Skema yang terhubung pengguna
terhubung
Sebuah link database pengguna saat skema pengguna saat ini

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 Global Resolusi Obyek Nama: Object Lengkap Nama

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:

 Basis data jauh bernama sales.division3.acme.com.


 Database lokal bernama hq.division3.acme.com.
 Sebuah server direktori (dan oleh karena itu, database link global) tidak tersedia.
 Sebuah table terpencil emp terkandung dalam skema tsmith.

Pertimbangkan pernyataan berikut yang dikeluarkan oleh scott di database lokal:

CONNECT scott / tiger @ hq

MENCIPTAKAN PUBLIC DATABASE LINK sales.division3.acme.com


CONNECT TO tamu diidentifikasi dengan jaringan
MENGGUNAKAN 'dbstring';

Kemudian, JWARD menghubungkan dan mengeluarkan pernyataan berikut:

CONNECT jward / kuda liar @ hq

CREATE DATABASE LINK sales.division3.acme.com


CONNECT TO tsmith diidentifikasi dengan radio;

UPDATE tsmith.emp@sales.division3.acme.com
SET deptno = 40
MANA deptno = 10;

database memproses pernyataan akhir sebagai berikut:

1. database menentukan bahwa lengkap nama obyek global dirujuk dalam


jward'sMEMPERBARUIpernyataan. Oleh karena itu, sistem mulai mencari di database lokal
untuk link database dengan nama yang cocok.
2. database menemukan yang cocok link database swasta dalam skema jward. Namun
demikian, link database pribadijward.sales.division3.acme.com tidak menunjukkan
jalan yang lengkap untuk remote penjualanDatabase, hanya akun terpencil. Oleh karena
itu, database sekarang mencari link database publik yang cocok.
3. database menemukan link database publik di scott'S skema. Dari link database publik ini,
database mengambil nama layanandbstring.
4. Dikombinasikan dengan akun jauh diambil dari link database pengguna tetap pribadi yang
cocok, database menentukan jalur lengkap dan hasil untuk membuat sambungan ke remote
penjualan database sebagai pengguna tsmith / radio.
5. Basis data jauh sekarang dapat menyelesaikan referensi obyek ke emptable. Pencarian
database dalamtsmith skema dan menemukan tempat yang dirujuk emp table.
6. Basis data jauh melengkapi pelaksanaan pernyataan dan mengembalikan hasilnya ke
database lokal.

Contoh Global Resolusi Obyek Nama: Object Partial Nama

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.

Untuk contoh ini, asumsikan bahwa:

 Basis data jauh bernama sales.division3.acme.com.


 Database lokal bernama hq.division3.acme.com.
 Sebuah server direktori (dan oleh karena itu, database link global) tidak tersedia.
 Sebuah table emp pada basis data jauh penjualan terkandung dalam skema tsmith, Tetapi
tidak dalam skema scott.
 Sebuah sinonim publik bernama emp berada di basis data jauh penjualan dan poin untuk
tsmith.emp dalam basis data jauh penjualan.
 Database publik link dalam "Contoh Global Resolusi Obyek Nama: Obyek Lengkap
Nama" sudah dibuat pada database lokal hq:
 MENCIPTAKAN PUBLIC DATABASE LINK sales.division3.acme.com
 CONNECT TO tamu diidentifikasi dengan jaringan
 MENGGUNAKAN 'dbstring';

Pertimbangkan pernyataan berikut diterbitkan di database lokal hq:

CONNECT scott / tiger @ hq

CREATE DATABASE LINK sales.division3.acme.com;

DELETE FROM emp sales @


MANA empno = 4299;

database proses final MENGHAPUS Pernyataan sebagai berikut:

1. database pemberitahuan bahwa parsial nama obyek global dirujuk dalam


scott'sMENGHAPUSpernyataan. Ini memperluas ke lengkap nama obyek global
menggunakan domain dari database lokal sebagai berikut:
2. DELETE FROM emp@sales.division3.acme.com
3. MANA empno = 4299;
4.
5. database pencarian database lokal untuk link database dengan nama yang cocok.
6. database menemukan yang cocok link yang pengguna pribadi yang terhubung dalam skema
scott, Tetapi link database pribadi menunjukkan ada jalan sama sekali. database
menggunakan terhubung username / password sebagai bagian akun terpencil jalan dan
kemudian mencari dan menemukan link database publik yang cocok:
7. MENCIPTAKAN PUBLIC DATABASE LINK sales.division3.acme.com
8. CONNECT TO tamu diidentifikasi dengan jaringan
9. MENGGUNAKAN 'dbstring';
10.
11. database mengambil database nama layanan bersih dbstringdari link database publik.
Pada titik ini, database telah ditentukan jalur lengkap.
12. database menghubungkan ke basis data jauh sebagai scott / tiger dan mencari dan
tidak menemukan sebuah benda yang bernama emp dalam skema scott.
13. Pencarian basis data jauh untuk sinonim publik bernama emp dan menemukannya.
14. Basis data jauh mengeksekusi pernyataan dan mengembalikan hasilnya ke database lokal.

Resolusi Nama global dalam Views, Sinonim, dan Prosedur

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

Apa Yang Terjadi Ketika Nama Perubahan Global

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.

Skenario untuk Nama global Perubahan

Sebagai contoh, perhatikan dua database bernama sales.uk.acme.com dan hq.uk.acme.com.


Juga, menganggap bahwapenjualan database berisi pandangan dan sinonim berikut:

MENCIPTAKAN employee_names VIEW AS


ename SELECT FROM scott.emp@hr;

MENCIPTAKAN karyawan SYNONYM UNTUK scott.emp@hr;

database memperluas karyawan definisi sinonim dan menyimpannya sebagai:


scott.emp@hr.uk.acme.com

Skenario 1: Kedua Database Ganti Nama

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:

 sales.uk.acme.com menjadi sales.us.acme.com


 hq.uk.acme.com menjadi hq.us.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

Skenario 2: Satu database Nama Perubahan

Sekarang mempertimbangkan bahwa hanya departemen Penjualan dipindahkan ke Amerika


Serikat; Sumber Daya Manusia tetap di Inggris. Akibatnya, nama database global yang sesuai
keduanya berubah sebagai berikut:

 sales.uk.acme.com menjadi sales.us.acme.com


 hq.uk.acme.com tidak berubah

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

Dalam hal ini, mendefinisikan permintaan dari employee_namespandangan memperluas ke tidak


ada nama database global. Di sisi lain,karyawan sinonim terus referensi database yang benar,
hq.uk.acme.com.

Distributed Application Development database


pengembangan aplikasi dalam sistem terdistribusi menimbulkan isu-isu yang tidak berlaku dalam
sistem nondistributed. Bagian ini berisi topik berikut yang relevan untuk pengembangan aplikasi
terdistribusi:

 Transparansi dalam Sistem Database Terdistribusi


 Remote Procedure Calls (RPC)
 Optimasi Query didistribusikan

Transparansi dalam Sistem Database Terdistribusi

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.

Biasanya, administrator dan pengembang menggunakan sinonim untuk membangun transparansi


lokasi untuk tabel dan objek pendukung dalam skema aplikasi. Sebagai contoh, pernyataan berikut
membuat sinonim dalam database untuk tabel di lain, basis data jauh.

MENCIPTAKAN PUBLIC SYNONYM emp


UNTUK scott.emp@sales.us.americas.acme_auto.com;
MENCIPTAKAN PUBLIC SYNONYM dept
UNTUK scott.dept@sales.us.americas.acme_auto.com;

Sekarang, daripada mengakses tabel jarak jauh dengan query seperti:

SELECT ename, dname


DARI scott.emp@sales.us.americas.acme_auto.com e,
scott.dept@sales.us.americas.acme_auto.com d
MANA e.deptno = d.deptno;

Sebuah aplikasi dapat mengeluarkan permintaan yang lebih sederhana yang tidak harus
menjelaskan lokasi tabel jarak jauh.

SELECT ename, dname


DARI emp e, dept d
MANA e.deptno = d.deptno;
SQL dan COMMIT Transparansi

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.

Remote Procedure Calls (RPC)

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

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.

Character Set Dukungan untuk Lingkungan


Terdistribusi
Oracle Database mendukung lingkungan di mana klien, Oracle Database server, dan non-Oracle
Database server menggunakan set karakter yang berbeda. NCHARdukungan disediakan untuk
lingkungan yang heterogen. Anda dapat mengatur berbagai Support National Language (NLS) dan
Layanan heterogen (HS) variabel lingkungan dan parameter inisialisasi untuk mengontrol konversi
data antara set karakter yang berbeda.

pengaturan karakter didefinisikan oleh NLS berikut dan parameter HS:

parameter Lingkungan Hidup ditetapkan Untuk


NLS_LANG (Variabel lingkungan) Server klien Klien
NLS_LANGUAGE Server klien Oracle Database Server
NLS_CHARACTERSET Tidak heterogen Terdistribusi
NLS_TERRITORY
heterogen Terdistribusi
HS_LANGUAGE heterogen Terdistribusi Non-Oracle Database Server

gateway transparan
NLS_NCHAR (Variabel lingkungan) heterogen Terdistribusi Oracle Database Server

HS_NLS_NCHAR gateway transparan


Client / Server Lingkungan

Dalam lingkungan client / server, mengatur karakter klien diatur menjadi sama atau subset dari
Oracle Database Server set karakter, seperti digambarkan dalam Gambar 29-6:

Gambar 29-6 NLS Parameter Settings di Lingkungan Client-Server

Deskripsi admin043.gif ilustrasi

Homogen Lingkungan Terdistribusi

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:

Gambar 29-7 NLS Parameter Settings di Lingkungan Homogen

Deskripsi admin044.gif ilustrasi


Heterogen Lingkungan Terdistribusi

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.

Gambar 29-8 NLS Parameter Pengaturan dalam heterogen Lingkungan

Deskripsi admin042.gif ilustrasi

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.

Anda mungkin juga menyukai