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.

Hur ansluter man till pluggbara databaser i Oracle RAC 12cR1?

Summary: Vi vill leverera lösningar som förenklar IT. Vi tillhandahåller databaslösningar, anpassad utveckling, dynamiska datacenter, flexibel datoranvändning.

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

Gäller:

Oracle-databas – Oracle 12cR1 12.1.0.1.0 Enterprise Edition

Operativsystem – Oracle Linux 6.4 med kärnan 2.6.39-400.109.17.1.el6uek.x86-64 &                                          
Red Hat Enterprise Linux med kärnan 2.6.32-431.el6.x86_64

Lagringsplattformar – Dell EqualLogic PS 5000 & Dell EqualLogic PS 6110

Problem:

Hur ansluter man till pluggbara databaser i Oracle RAC 12cR1?

Lösning:

Det finns fyra sätt att etablera en anslutning med de pluggbara databaserna (PDB:erna).
  1. Med standardtjänsten med samma namn som PDB-namnet, som automatiskt skapas av databasprogramvaran.
  2. Med hjälp av användardefinierade tjänster som skapats med PDB-egenskaper med hjälp av verktyget SRVCTL som associerar tjänsten med de pluggbara databaserna
  3. Använd sessionsändringskommandot och ställ in behållaren till önskad behållare
  4. Använd Enterprise Manager Express
 1. Använd standardtjänsten för att ansluta till PDB:n

Om du vill upprätta en anslutning till PDB:n med hjälp av standardtjänsten måste följande utföras.
  •    En post måste göras i filen tnsnames.ora som definierar databasadresser som gör det möjligt för oss att upprätta en anslutning till databasen.
  •    Status för PDB:n måste ändras från montering till läs-/skrivläge.
 Post som ska göras i filen tnsnames.ora:

Med Oracle RAC 12c genereras filen tnsnames.ora med en enda post som hör till den globala databasen, även om en standardtjänst med samma namn som det pluggbara databasnamnet automatiskt skapas av databasprogramvaran. När det till exempel gäller Oracle RAC 12c med två noder, där cpdb är den globala databasen, pdb1 och pdb2 är de två pluggbara databaserna som skapas och cpdb1 och cpdb2 är de två instanserna, är standardposten i filen tnsnames.ora enligt nedan:

CPDB =

(BESKRIVNING =

   (ADRESS = (PROTOKOLL = TCP) (VÄRD = OracleRACscan.dbase.lab) (PORT = 1521))

   (ANSLUTA_DATA =

     (SERVER = DEDIKERAD)

     (TJÄNSTENS_NAMN = cpdb.dbase.lab)

   )

)

Därför måste relevanta poster skapas för standardtjänstens namn på de pluggbara databaserna i filen tnsnames.ora enligt nedan:

PDB1 =

(BESKRIVNING =                                                             

   (ADRESS = (PROTOKOLL = TCP) (VÄRD = OracleRACscan.dbase.lab)(PORT = 1521))

   (ANSLUTA_DATA =

     (SERVER = DEDIKERAD)

     (TJÄNSTENS_NAMN = pdb1.dbase.lab)

   )

)

PDB2 =

(BESKRIVNING =

   (ADRESS = (PROTOKOLL = TCP) (VÄRD = OracleRACscan.dbase.lab)(PORT = 1521))

   (ANSLUTA_DATA =

     (SERVER = DEDIKERAD)

     (TJÄNSTENS_NAMN = pdb2.dbase.lab)

   )

)

Ändra status för den pluggbara databasen:

När pdbs skapas är open_mode som standard endast monterad. Det kan verifieras så här:

SQL> välj namn, open_mode från v$pdbs;

NAMN                           OPEN_MODE
PDB$SEED                       SKRIVSKYDDAD

PDB1                           MONTERAD

PDB2                           MONTERAD

Med följande kommando öppnas alla de pluggbara databaserna i ett läs-/skrivläge.

SQL> Ändra alla öppna pluggbara databaser:

Efter detta kan anslutning upprättas till databasen med hjälp av sqlplus enligt följande:

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

* plus: version 12.1.0.1.0 produktion på tis 8 okt. 11:23:32 2013

Copyright (c) 1982, 2013, Oracle. Alla rättigheter förbehålles.

Connected to: (Ansluten till:)

Oracle-databas 12c Enterprise Edition version 12.1.0.1.0 – 64-bitarsproduktion med partitionering, verkliga programkluster, automatisk lagringshantering, OLAP, avancerad analys och verkliga programtestningsalternativ

 2. Använd den användardefinierade tjänsten för att ansluta till PDB:n

 Standardtjänsten som beskrivs ovan bör endast användas för administrativa ändamål och bör inte användas för program. Användardefinierade tjänster måste alltid användas för program eftersom användardefinierade tjänster kan anpassas så att de passar programmens krav. Upprättning av en anslutning med hjälp av användardefinierade tjänster omfattar följande steg:
  1. Skapa en databastjänst med en PDB-egenskap med hjälp av verktyget SRVCTL
  2. Skapa en post i filen tnsnames.ora för den tjänst som har skapats
  3. Starta tjänsten
  4. Anslut till databasen med hjälp av tjänsten med den PDB-egenskap som skapades i steg a
a. Skapa en databastjänst med en PDB-egenskap med hjälp av verktyget SRVCTL

Följande kommandon med hjälp av verktyget SRVCTL skapar två databastjänster hr1 och sales1 som kopplas till den pluggbara databasen pdb1:

[[oracle@node1 bin]$ srvctl tilläggstjänst -db cpdb -tjänst hr1 -pdb pdb1 -önskad cpdb1 -tillgänglig cpdb2

[oracle@node1 bin]$ srvctl tilläggstjänst -db cpdb -tjänst sales1 -pdb pdb1 -önskad cpdb1 -tillgänglig cpdb2

 PDB-egenskapen kan visas från vyn all_services för dataordbok.

SQL> VÄLJ NAMN, PDB FRÅN all_services;

 NAMN                       PDB

pdb1.dbase.lab             PDB1

hr1                        PDB1

sales1                     PDB1

Kommandot $ srvctl config service –db listar även tillgängliga tjänster.

b. Skapa en post i filen tnsnames.ora för den databastjänst som har skapats

 Vi kan skapa tjänstenamnen HR_PDB1 och SALES_PDB1, som HR-programmet respektive säljprogrammet kan använda för att ansluta till den pluggbara databasen, PDB1, enligt följande:

 HR_PDB1 =

(BESKRIVNING =

   (ADRESS = (PROTOKOLL = TCP) (VÄRD = OracleRACscan.dbase.lab) (PORT = 1521))

   (ANSLUTA_DATA =

     (SERVER = DEDIKERAD)

     (TJÄNSTENS_NAMN = hr1.dbase.lab)

   )

)

SALES_PDB1 =

(BESKRIVNING =

   (ADRESS = (PROTOKOLL = TCP) (VÄRD = OracleRACscan.dbase.lab) (PORT = 1521))

   (ANSLUTA_DATA =

     (SERVER = DEDIKERAD)

     (TJÄNSTENS_NAMN = sales1.dbase.lab)

   )

)

 c. Starta tjänsten

[oracle@nsnode1 bin]$ srvctl statustjänst -db cpdb -tjänst hr1

Tjänsten hr1 körs inte

 [oracle@nsnode1 bin]$ srvctl starttjänst -db cpdb -tjänst hr1

Om du startar tjänsten som är kopplad till en PDB öppnas PDB:n automatiskt i ett läs-/skrivläge.

d. Anslut till databastjänsten 

En användare ansluter till PDB:n med hjälp av en databastjänst som har den PDB-egenskapen.

SYS-användaren kan till exempel ansluta till pdb1 med hjälp av databastjänsten HR_PDB1 som är associerad med pdb1 enligt följande:

SQL> anslut sys/oracle@HR_PDB1 SOM SYSDBA

Ansluten.

SQL> VISA ANSL_ID;

 ANSL_ID

3

SQL> VISA ANSL_NAMN;

ANSL_NAMN

PDB1

3. Använda kommandot Ändra session för att ansluta till PDB:n

När du ansluter till RAC-instansen ansluter du som standard till CDB $ ROOT. Varje RAC-instans öppnar PDB:n i sin helhet och en enda systemavbild blir tillgänglig. När du vill ändra sessionen till en PDB kan du göra det genom att ändra sessionen och ställa in behållaren till önskad behållare. Frågan Visa ansl_namn kan användas för att kontrollera namnet på den aktuella behållaren.

[oracle@node1 bin]$ sqlplus / som sysdba

SQL*Plus: Version 12.1.0.1.0 produktion på ons 9 okt. 13:56:27 2013

Copyright (c) 1982, 2013, Oracle. Alla rättigheter förbehålles. 

Connected to: (Ansluten till:)

Oracle-databas 12c Enterprise Edition version 12.1.0.1.0 – 64-bitarsproduktion

Med partitionering, verkliga programkluster, automatisk lagringshantering, OLAP,

Avancerade analyser och faktiska programtestningsalternativ

SQL> visa ansl_namn;

ANSL_NAMN

$ ROT

> ÄNDRA SESSION STÄLL IN BEHÅLLARE = PDB1;

Sessionen har ändrats.

SQL> VISA ANSL_NAMN;

ANSL_NAMN

PDB1

 > ÄNDRA SESSION STÄLL IN BEHÅLLARE = PDB2;

Sessionen har ändrats.

SQL> VISA ANSL_ID;

ANSL_ID

4

SQL > ÄNDRA SESSION STÄLL IN BEHÅLLARE = CDB$ROOT;

Sessionen har ändrats.

 SQL> VISA ANSL_NAMN;

ANSL_NAMN

$ ROT

 Beskrivning av behållar-ID är följande:
Behållar-ID Beskrivning
0 Hela CDB
1 $ ROT
2 PDB$SEED
3 till 254 PDB:er
Tabell 1: Beskrivning av behållar-ID

I det här specifika exemplet representerar ansl_id 3 pdb1 och ansl_id 4 representerar pdb2.

[grid@node1 bin]$ visar $ORACLE_HOME

/u01/app/12.1.0/grid

 [grid@node1 bin]$ visar $ORACLE_SID

+ASM1

[grid@node1 bin]$ sqlplus / som sysdba

 SQL*Plus: Version 12.1.0.1.0 Produktion på ons 9 okt. 13:51:39 2013

Copyright (c) 1982, 2013, Oracle. Alla rättigheter förbehålles.

Connected to: (Ansluten till:)

Oracle-databas 12c Enterprise Edition version 12.1.0.1.0 – 64-bitarsproduktion

Med verkliga programkluster och automatiska lagringshanteringsalternativ

 SQL> visa ansl_id;

ANSL_ID

0

 SQL> visa ansl_namn;

 ANSL_NAMN

Ej konsoliderade

 4. Använda Enterprise Manager (EM) Express för att ansluta till PDB:n

När databasen skapas med hjälp av Database Configuration Assistant (DBCA), tillhandahålls URL-adressen för EM Express av DBCA vid tiden för slutförandet. URL-adressen har formatet http://:portnummer/em med 5500 som standardport-ID.

 Innan du går till den URL-adressen för att komma åt EM Express måste du utfärda följande SQL-påstående för att bekräfta porten för EM Express:

SQL> VÄLJ dbms_xdb_config.gethttpsport från dual;

HÄMTAHTTPSPORT

       5500

Om utdata är enligt ovan kan du ansluta till URL-adressen som visas av DBCA.

Men om utdata är noll, till exempel

HÄMTAHTTPSPORT

måste du köra PL/SQL-proceduren DBMS_XDB_KONFIG.STÄLLINHTTPSPORT för att ställa in HTTPS-porten för EM Express. Exempel:

SQL> kör dbms_xdb_konfig.ställinhttpsport(5500);

PL/SQL-proceduren har slutförts.

Efter detta kan du försöka komma åt EM Express med hjälp av URL-adressen.

 En HTTP-port kan även konfigureras för EM Express enligt nedan:

SQL> välj dbms_xdb_konfig.hämtahttpport från dual;

 SQL> kör dbms_xdb_konfig.ställinhttpport(8080);

Om du vill ställa in EM Express-porten för PDBS:en måste du ändra behållaren till respektive PDBS och köra PL/SQL-proceduren för att ställa in porten för den behållaren.

När du har gjort det kan du kontrollera HTTP-porten för cpdb, pdb1 och pdb2 enligt följande:

SQL> välj dbms_xdb_konfig.hämtahttpport från dual;

HÄMTAHTTPPORT

       8080

SQL> ändra session ställ in behållare = pdb1;

Sessionen har ändrats.

SQL> välj dbms_xdb_konfig.hämtahttpport från dual;

 HÄMTAHTTPPORT

       8081

SQL> ändra session ställ in behållare = pdb2;

Sessionen har ändrats.

SQL> välj dbms_xdb_konfig.hämtahttpport från dual;

HÄMTAHTTPPORT

       8082 
SLN310924_sv__1icon Obs! Om du fortfarande inte kan ansluta till URL-adressen för EM Express kan du läsa in lyssningskontrollen som en rutnätsanvändare och sedan försöka igen.

Article Properties


Last Published Date

21 Feb 2021

Version

3

Article Type

Solution