Skip to main content
  • Place orders quickly and easily
  • View orders and track your shipping status
  • Create and access a list of your products
  • Manage your Dell EMC sites, products, and product-level contacts using Company Administration.

Oracle RAC 12cR1'de takılabilir veritabanlarını bağlama

Summary: Amacımız; veritabanı çözümleri, özel geliştirme işlemleri, dinamik veri merkezleri ve esnek hesaplamalar sunarak bilişim teknolojilerini basitleştiren çözümler sağlamaktır

This article may have been automatically translated. If you have any feedback regarding its quality, please let us know using the form at the bottom of this page.

Article Content


Symptoms

Aşağıdakiler için geçerlidir:

Oracle Veritabanı - Oracle 12cR1 12.1.0.1.0 Enterprise Edition

İşletim Sistemleri – 2.6.39-400.109.17.1.el6uek.x86-64 çekirdeğine sahip Oracle Linux 6.4 ve                                          
2.6.32-431.el6.x86_64 çekirdeğine sahip Red Hat Enterprise Linux

Depolama Platformları - Dell EqualLogic PS 5000 ve Dell EqualLogic PS 6110

Sorun:

Oracle RAC 12cR1'de Takılabilir Veritabanlarını Bağlama

Çözüm:

Takılabilir veritabanlarına (PDB'ler) sahip bir bağlantının kurulabilmesinin dört yolu vardır.
  1. Varsayılan hizmeti, veritabanı yazılımı tarafından otomatik olarak oluşturulan pdb adıyla aynı adla kullanma.
  2. Hizmeti takılabilir veritabanlarıyla ilişkilendiren SRVCTL yardımcı programını kullanarak pdb özelliği ile oluşturulan kullanıcı tanımlı hizmetleri kullanma
  3. Oturumu değiştir komutunu kullanma ve kapsayıcıyı istenen kapsayıcıya ayarlama
  4. Enterprise Manager Express'i kullanma
 1. PDB'ye bağlanmak için Varsayılan Hizmeti kullanma

Varsayılan hizmeti kullanarak pdb ile bağlantı kurmak için aşağıdakilerin yapılması gerekir.
  •    Veritabanıyla bağlantı kurmamıza olanak tanıyan veritabanı adreslerini tanımlayan tnsnames.ora dosyasında bir giriş yapılması gerekir.
  •    pdb durumunun takıldı modundan okuma yazma moduna değiştirilmesi gerekir.
 tnsnames.ora dosyasında yapılması gereken giriş:

Oracle RAC 12c'de her ne kadar takılabilir veritabanı yazılımı tarafından veritabanının adıyla aynı ada sahip varsayılan hizmet otomatik olarak oluşturulmuş olsa da tnsnames.ora dosyası genel veritabanına ait tek bir girişle oluşturulur. Örneğin cpdb'nin genel veritabanı, pdb1 ve pdb2'nin oluşturulan iki takılabilir veritabanı ve cpdb1 ile cpdb2'nin iki kurulum olduğu iki düğümlü bir Oracle RAC 12c'de tnsnames.ora dosyasındaki varsayılan giriş aşağıdaki gibidir:-

CPDB =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = OracleRACscan.dbase.lab)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = cpdb.dbase.lab)

)

)

Bu nedenle aşağıda gösterildiği gibi tnsnames.ora dosyasındaki takılabilir veritabanlarının varsayılan servis adı için ilgili girişlerin oluşturulması gerekir:

PDB1 =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP) (HOST = OracleRACscan.dbase.lab)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = pdb1.dbase.lab)

)

)

PDB2 =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP) (HOST = OracleRACscan.dbase.lab)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = pdb2.dbase.lab)

)

)

Takılabilir veritabanının durumunu değiştirme:

Varsayılan olarak, pdb'ler oluşturulduğunda open_mode (açık mod) yalnızca "Mounted" (Takıldı) modudur. Bu durum aşağıdaki şekilde doğrulanabilir:

SQL> select name, open_mode from v$pdbs; (SQL> ad seç, v$pdbs'den açık_mod;)

NAME OPEN_MODE
PDB$SEED READ ONLY

PDB1 MOUNTED

PDB2 MOUNTED

Aşağıdaki komut, okuma yazma modundaki tüm takılabilir veritabanlarını açar.

SQL> Alter pluggable database all open; (Tüm takılabilir veritabanlarını açık olarak değiştir;)

Bundan sonra, aşağıdaki şekilde sqlplus kullanılarak veritabanıyla bağlantı kurulabilir:

[oracle@node1 bin]$ sqlplus sys/oracle@pdb1 as sysdba

SQL*Plus: Release 12.1.0.1.0 Production on Tue Oct 8 11:23:32 2013 (Sürüm 12.1.0.1.0 Üretim Tarihi 8 Eki Sal 11:23:32 2013)

Copyright (c) 1982, 2013, Oracle (Telif Hakkı (c) 1982, 2013, Oracle.). All rights reserved (Tüm hakları saklıdır.)

Connected to (Şuna Bağlandı):

Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP, Advanced Analytics and Real Application Testing options (Oracle Database 12c Enterprise Edition Sürüm 12.1.0.1.0 - Bölümlendirmeli 64 bit Üretim, Gerçek Uygulama Kümeleri, Otomatik Depolama Yönetimi, OLAP, Gelişmiş Analiz ve Gerçek Uygulama Testi seçenekleri)

2. PDB'ye bağlanmak için Kullanıcı Tanımlı Hizmeti kullanma

Yukarıda açıklanan varsayılan hizmet yalnızca yönetim amaçları için kullanılmalı ve uygulamalar için kullanılmamalıdır. Kullanıcı tanımlı hizmetler, uygulamaların gereksinimlerine uyacak şekilde özelleştirilebildiğinden uygulamalar için her zaman kullanıcı tanımlı hizmetlerin kullanılması gerekir. Kullanıcı tanımlı hizmetleri kullanarak bağlantı kurma aşağıdaki adımları içerir:
  1. SRVCTL yardımcı programını kullanarak PDB özelliğine sahip bir veritabanı hizmeti oluşturma
  2. Oluşturulan hizmet için tnsnames.ora dosyasında bir giriş oluşturma
  3. Hizmeti başlatma
  4. Adım a'da oluşturulan pdb özelliğine sahip hizmeti kullanarak veritabanına bağlanma
a. SRVCTL yardımcı programını kullanarak PDB Özelliğine sahip bir veritabanı hizmeti oluşturma

Aşağıdaki komutlar, SRVCTL yardımcı programını kullanarak takılabilir veritabanı pdb1 ile ilişkilendirilecek iki veritabanı hizmeti olan hr1 ve sales1'i oluşturur:

[oracle@node1 bin]$ srvctl add service -db cpdb -service hr1 -pdb pdb1 -preferred cpdb1 -available cpdb2

[oracle@node1 bin]$ srvctl add service -db cpdb -service sales1 -pdb pdb1 -preferred cpdb1 -available cpdb2

pdb özelliği view all_services (tüm_hizmetleri görüntüle) veri sözlüğünden görüntülenebilir.

SQL> SELECT NAME, PDB FROM all_services; (SQL> AD SEÇ, tüm_hizmetler'den PDB;)

NAME PDB

pdb1.dbase.lab PDB1

hr1 PDB1

sales1 PDB1

$ srvctl config service –db <veritabanı_adı> komutu da kullanılabilir hizmetleri listeler.

b. Oluşturulan veritabanı hizmeti için tnsnames.ora dosyasında bir giriş oluşturma

Takılabilir veritabanı pdb1'e bağlanmak için sırasıyla hr uygulamasının ve sales uygulamasının kullanabileceği ağ hizmeti adları olan HR_PDB1 ve SALES_PDB1'i aşağıdaki gibi oluşturabiliriz:

 HR_PDB1 =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = OracleRACscan.dbase.lab)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = hr1.dbase.lab)

)

)

SALES_PDB1 =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = OracleRACscan.dbase.lab)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = sales1.dbase.lab)

)

)

c. Hizmeti başlatma

[oracle@nsnode1 bin]$ srvctl status service -db cpdb -service hr1

Service hr1 is not running (Hizmet hr1 çalışmıyor)

[oracle@nsnode1 bin]$ srvctl start service -db cpdb -service hr1

pdb ile ilişkilendirilmiş hizmetin başlatılması pdb'yi otomatik olarak okuma yazma modunda açar.

d. Veritabanı hizmetine bağlanma

Kullanıcı, pdb özelliğine sahip bir veritabanı hizmetini kullanarak pdb'ye bağlanır.

Örneğin SYS kullanıcısı pdb1 ile ilişkili HR_PDB1 veritabanı hizmetini kullanarak pdb1'e aşağıdaki şekilde bağlanabilir:

SQL> connect sys/oracle@HR_PDB1 AS SYSDBA

Connected (Bağlandı).

SQL> SHOW CON_ID;

CON_ID

3

SQL> SHOW CON_NAME;

CON_NAME

PDB1

3. PDB'ye bağlanmak için Oturumu Değiştir Komutunu kullanma

Varsayılan olarak, RAC kurulumuna bağlandığınızda CDB$ROOT'a bağlanırsınız. Her RAC kurulumu PDB'yi bir bütün olarak açar ve tek bir sistem görüntüsü kullanılabilir. Oturumu bir pdb'ye değiştirmek istediğinizde bunu oturumu değiştirip kapsayıcıyı istenen kapsayıcıya ayarlayarak yapabilirsiniz. show con_name (kapsayıcı_adını göster) sorgusu geçerli kapsayıcının adını doğrulamak için kullanılabilir.

[oracle@node1 bin]$ sqlplus / as sysdba

SQL*Plus: Release 12.1.0.1.0 Production on Wed Oct 9 13:56:27 2013 (Sürüm 12.1.0.1.0 Üretim Tarihi 9 Eki Çar 13:56:27 2013)

Copyright (c) 1982, 2013, Oracle (Telif Hakkı (c) 1982, 2013, Oracle.). Tüm hakları saklıdır. 

Connected to (Şuna Bağlandı):

Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production (Oracle Veritabanı 12c Enterprise Edition Sürüm 12.1.0.1.0 - 64 bit Üretim)

With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP, (Bölümlendirmeli, Gerçek Uygulama Kümeleri, Otomatik Depolama Yönetimi, OLAP,)

Advanced Analytics and Real Application Testing options (Gelişmiş Analiz ve Gerçek Uygulama Testi seçenekleri)

SQL> show con_name; (SQL> kapsayıcı_adını göster;)

CON_NAME

CDB$ROOT

SQL> ALTER SESSION SET CONTAINER = PDB1; (SQL> OTURUMU DEĞİŞTİR KAPSAYICIYI AYARLA = PDB1;)

Session altered. (Oturum değiştirildi.)

SQL> SHOW CON_NAME; (SQL> KAPSAYICI ADINI GÖSTER;)

CON_NAME

PDB1

SQL> ALTER SESSION SET CONTAINER = PDB2; (SQL> OTURUMU DEĞİŞTİR KAPSAYICIYI AYARLA = PDB2;)

Session altered. (Oturum değiştirildi.)

SQL> SHOW CON_ID; (SQL> KAPSAYICI_KİMLİĞİNİ GÖSTER;)

CON_ID

4

SQL> ALTER SESSION SET CONTAINER = CDB$ROOT; (SQL> OTURUMU DEĞİŞTİR KAPSAYICIYI AYARLA = CDB$ROOT;)

Session altered. (Oturum değiştirildi.)

 SQL> SHOW CON_NAME; (SQL> KAPSAYICI ADINI GÖSTER;)

CON_NAME

CDB$ROOT

Kapsayıcı kimliği açıklamaları aşağıdaki gibidir:
Kapsayıcı Kimliği Açıklama
0 Tüm CDB
1 CDB$ROOT
2 PDB$SEED
3 - 254 PDB'ler
Tablo 1:  Kapsayıcı kimliği açıklamaları

Bu özel örnekte con_id 3 (kapsayıcı_kimliği 3) pdb1'i ve con_id 4 (kapsayıcı_kimliği 4) pdb2'yi gösterir.

[grid@node1 bin]$ echo $ORACLE_HOME

/u01/app/12.1.0/grid

[grid@node1 bin]$ echo $ORACLE_SID

+ASM1

[grid@node1 bin]$ sqlplus / as sysdba

SQL*Plus: Release 12.1.0.1.0 Production on Wed Oct 9 13:51:39 2013 (Sürüm 12.1.0.1.0 Üretim Tarihi 9 Eki Çar 13:51:39 2013)

Copyright (c) 1982, 2013, Oracle (Telif Hakkı (c) 1982, 2013, Oracle.). All rights reserved (Tüm hakları saklıdır.)

Connected to (Şuna Bağlandı):

Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production (Oracle Veritabanı 12c Enterprise Edition Sürüm 12.1.0.1.0 - 64 bit Üretim)

With the Real Application Clusters and Automatic Storage Management options (Gerçek Uygulama Kümeleri ve Otomatik Depolama Yönetimi seçenekleriyle)

SQL> show con_id; (SQL> kapsayıcı_kimliğini göster;)

CON_ID

0

SQL> show con_name; (SQL> kapsayıcı_adını göster;)

CON_NAME

Birleştirilmemiş

4. PDB'ye bağlanmak için Enterprise Manager (EM) Express'i kullanma

Veritabanı Yapılandırma Yardımcısı (DBCA) kullanılarak veritabanı oluşturulduğunda tamamlanma sırasında EM Express'in URL'si DBCA tarafından sağlanır. URL, varsayılan bağlantı noktası kimliği olarak 5500 ile http://<ana_bilgisayar_adı>:bağlantı_noktası_kimliği/em biçimindedir.

EM Express'e erişmek için bu URL'ye gitmeden önce EM Express'in bağlantı noktasını onaylamak üzere aşağıdaki SQL ifadesinin düzenlenmesi gerekir:

SQL> SELECT dbms_xdb_config.gethttpsport from dual; (SQL> çiftten dbms_xdb_config.gethttpsport'u SEÇ;)

GETHTTPSPORT

5500

Çıktı yukarıda gösterildiği gibiyse DBCA tarafından görüntülenen URL'ye bağlanabilirsiniz.

Ancak çıktı

GETHTTPSPORT

gibi boşsa EM Express için HTTPS bağlantı noktasını ayarlamak için DBMS_XDB_CONFIG.SETHTTPSPORT PL/SQL prosedürünü yürütmelisiniz. Örneğin:

SQL> exec dbms_xdb_config.sethttpsport(5500); (SQL> dbms_xdb_config.sethttpsport(5500)'u yürüt;)

PL/SQL procedure successfully completed. (PL/SQL prosedürü başarıyla tamamlandı.)

Bu işlemden sonra URL'yi kullanarak EM Express'e erişmeyi deneyin.

 EM Express için aşağıda verildiği gibi bir HTTP bağlantı noktası da yapılandırılabilir:

SQL> select dbms_xdb_config.gethttpport from dual; (SQL> çiftten dbms_xdb_config.gethttpport'u seç;)

SQL> exec dbms_xdb_config.sethttpport(8080); (SQL> dbms_xdb_config.sethttpport(8080)'u yürüt;)

pdbs için EM Express bağlantı noktasını ayarlamak için kapsayıcıyı ilgili pdbs olarak değiştirmeniz ve bu kapsayıcının bağlantı noktasını ayarlamak için PL /SQL Prosedürünü yürütmeniz gerekir.

Bu işlemden sonra aşağıdaki gibi cpdb, pdb1 ve pdb2 için HTTP bağlantı noktasını kontrol edebilirsiniz:

SQL> select dbms_xdb_config.gethttpport from dual; (SQL> çiftten dbms_xdb_config.gethttpport'u seç;)

GETHTTPPORT

8080

SQL> alter session set container = pdb1; (SQL> oturumu değiştir kapsayıcıyı ayarla = pdb1;)

Session altered. (Oturum değiştirildi.)

SQL> select dbms_xdb_config.gethttpport from dual; (SQL> çiftten dbms_xdb_config.gethttpport'u seç;)

GETHTTPPORT

8081

SQL> alter session set container = pdb2; (SQL> oturumu değiştir kapsayıcıyı ayarla = pdb2;)

Session altered. (Oturum değiştirildi.)

SQL> select dbms_xdb_config.gethttpport from dual; (SQL> çiftten dbms_xdb_config.gethttpport'u seç;)

GETHTTPPORT

8082 
SLN310924_en_US__1icon NOT: EM Express URL'sine hala bağlanamıyorsanız dinleyici denetlemeyi ızgara kullanıcısı olarak yeniden yükleyin ve ardından tekrar deneyin.

Article Properties


Last Published Date

21 Feb 2021

Version

3

Article Type

Solution