Gjelder for:
Oracle-database - Oracle 12cR1 12.1.0.1.0 Enterprise-utgaven
Operativsystem(er) – Oracle Linux 6.4 med kjerne 2.6.39-400.109.17.1.el6uek.x86-64 og
Red Hat Enterprise Linux med kjerne 2.6.32-431.el6.x86_64
Lagringsplattform(er) - Dell EqualLogic PS 5000 og Dell EqualLogic PS 6110
Problem:
Slik kobler du til databaser i Oracle RAC 12cR1
Løsning:
Det er fire måter å opprette en tilkobling til databasene (PDB-er) på.
- Ved bruk av standardtjenesten med samme navn som PDB-navnet, som blir opprettet av databaseprogramvaren automatisk.
- Ved hjelp av brukerdefinerte tjenester, opprettet med PDB-egenskapen ved bruk av SRVCTL-verktøyet, som knytter tjenesten til databasene
- Ved hjelp av endre økt-kommandoen og angi beholderen til ønsket beholder
- Ved hjelp av Enterprise Manager Express
1. Bruk av standardtjenesten for tilkobling til PDB
Hvis du vil opprette en tilkobling til PDB ved hjelp av standardtjenesten, må du gjøre følgende.
- Det må opprettes en oppføring i tnsnames.ora-filen som definerer databaseadresser, som gjør det mulig for oss å opprette en tilkobling til databasen.
- Statusen til PDB må endres fra montert til lese/skrive-modus.
Oppføring i tnsnames.ora-filen:
I tilfelle Oracle RAC 12c, selv om en standardtjeneste med samme navn som databasenavnet automatisk blir opprettet av databaseprogramvaren, blir tnsnames.ora-filen likevel generert med kun én enkelt oppføring, som gjelder for den globale databasen. For eksempel når det gjelder en to-noders Oracle RAC-12c, der cpdb er den globale databasen, pdb1 og pdb2 er de to databasene som opprettes, og cpdb1 og cpdb2 er de to forekomstene, vil standardoppføringen i tnsnames.ora-filen være som vist nedenfor:
CPDB =
(BESKRIVELSE =
(ADRESSE = (PROTOKOLL = TCP)(VERT = OracleRACscan.dbase.lab)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDIKERT)
(SERVICE_NAME = cpdb.dbase.lab)
)
)
Så relevante oppføringer må opprettes for standardtjenestenavnet for databaser i tnsnames.ora-filen, som vist nedenfor:
PDB1 =
(BESKRIVELSE =
(ADRESSE = (PROTOKOLL = TCP) (VERT = OracleRACscan.dbase.lab)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDIKERT)
(SERVICE_NAME = pdb1.dbase.lab)
)
)
PDB2 =
(BESKRIVELSE =
(ADRESSE = (PROTOKOLL = TCP) (VERT = OracleRACscan.dbase.lab)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDIKERT)
(SERVICE_NAME = pdb2.dbase.lab)
)
)
Endre status for databasen som skal kobles til:
Når pdbs er opprettet, er det kun open_mode som blir "montert" som standard. Dette kan bekreftes som følgende:
SQL> select name, open_mode from v$pdbs;
NAVN OPEN_MODE
PDB$SEED SKRIVEBESKYTTET
PDB1 MONTERT
PDB2 MONTERT
Følgende kommando åpner alle tilkoblede databaser i lese/skrive-modus.
SQL> Alter pluggable database all open;
Etter denne,
kan tilkoblingen opprettes med databasen ved hjelp av sqlplus som følger:
[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
Copyright (c) 1982, 2013, Oracle. Forbeholdt alle rettigheter.
Connected to (Koblet til):
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
2. Bruk av den brukerdefinerte tjenesten for tilkobling til PDB
Standardtjenesten som er beskrevet ovenfor, bør kun brukes til administrative formål, og den skal ikke brukes til programmer. Brukerdefinerte tjenester må alltid brukes til programmer fordi brukerdefinerte tjenester kan tilpasses kravene til programmene. Når du vil opprette en tilkobling ved hjelp av brukerdefinerte tjenester gjør du følgende trinn:
- Opprett en databasetjeneste med PDB-egenskapen ved hjelp av SRVCTL-verktøyet
- Opprett en oppføring i tnsnames.ora-filen for den opprettede tjenesten
- Start tjenesten
- Koble til databasen ved hjelp av tjenesten med pdb-egenskapen, opprettet i trinn a
a Opprett en databasetjeneste med PDB-egenskapen ved hjelp av SRVCTL-verktøyet
Følgende kommandoer ved hjelp av SRVCTL-verktøyet, oppretter to databasetjenester, HR1 og sales1, som skal knyttes til den tilkoblede databasen pdb1:
[[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-egenskapen kan vises fra dataordbokvisningen all_services.
SQL> SELECT NAME, PDB FROM all_services;
NAVN PDB
pdb1.dbase.lab PDB1
hr1 PDB1
sales1 PDB1
Kommandoen $ srvctl config service –db viser også de tilgjengelige tjenestene.
b.Opprett en oppføring i tnsnames.ora-filen for den opprettede databasetjenesten
Vi kan opprette HR_PDB1 og SALES_PDB1, nettjenestenavn som du kan bruke til å koble til databasen PDB1 på følgende måte:
HR_PDB1 =
(BESKRIVELSE =
(ADRESSE = (PROTOKOLL = TCP)(VERT = OracleRACscan.dbase.lab)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDIKERT)
(SERVICE_NAME = hr1.dbase.lab)
)
)
SALES_PDB1 =
(BESKRIVELSE =
(ADRESSE = (PROTOKOLL = TCP)(VERT = OracleRACscan.dbase.lab)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDIKERT)
(SERVICE_NAME = sales1.dbase.lab)
)
)
c. Start tjenesten:
[oracle@nsnode1 bin]$ srvctl status service -db cpdb -service hr1
Tjenesten hr1 kjører ikke
[oracle@nsnode1 bin]$ srvctl start service -db cpdb -service hr1
Hvis du starter tjenesten som er knyttet til en pdb, åpnes pdb-en automatisk i lese/skrive-modus.
d. Koble deg til databasetjenesten
En bruker kobler seg til pdb-en ved hjelp av en databasetjeneste som har pdb-egenskapen.
SYS-brukeren kan for eksempel koble seg til pdb1 ved hjelp av databasetjenesten HR_PDB1, som er tilknyttet pdb1, på følgende måte:
SQL> connect sys/oracle@HR_PDB1 AS SYSDBA
Tilkoblet.
SQL> SHOW CON_ID;
CON_ID
3
SQL> SHOW CON_NAME;
CON_NAME
PDB1
3. Bruk av kommandoen Endre økt for å koble deg til PDB-en
Når du kobler deg til RAC-forekomsten, kobler du deg som standard til CDB$ROOT. Hver RAC-forekomst åpner PDB-en som en helhet, og én enkelt systemavbildning blir tilgjengelig. Når du vil endre økten til en pdb, kan du gjøre det ved å endre økten og angi beholderen som den ønskede beholderen. Forespørselen show con_name kan brukes til å verifisere navnet på den gjeldende beholderen.
[oracle@node1 bin]$ sqlplus / as sysdba
QL * Plus: Release 12.1.0.1.0 produksjonen på ons okt 9 13:56:27 2013
Copyright (c) 1982, 2013, Oracle. Forbeholdt alle rettigheter.
Connected to (Koblet til):
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
SQL> show con_name;
CON_NAME
CDB$ROOT
SQL> ALTER SESSION SET CONTAINER = PDB1;
Økt endret.
SQL> SHOW CON_NAME;
CON_NAME
PDB1
SQL> ALTER SESSION SET CONTAINER = PDB2;
Økt endret.
SQL> SHOW CON_ID;
CON_ID
4
SQL> ALTER SESSION SET CONTAINER = CDB$ROOT;
Økt endret.
SQL> SHOW CON_NAME;
CON_NAME
CDB$ROOT
Beholderens ID-beskrivelser er følgende:
Beholder-ID |
Beskrivelse |
0 |
Hele CDB |
1 |
CDB$ROOT |
2 |
PDB$SEED |
3 til 254 |
PDB-er |
Tabell 1: Beskrivelser av beholder-ID
I dette spesifikke eksemplet representerer con_id 3 pdb1 og con_id 4 pdb2.
[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
QL * Plus: Release 12.1.0.1.0 produksjonen på ons okt 9 13:51:39 2013
Copyright (c) 1982, 2013, Oracle. Forbeholdt alle rettigheter.
Connected to (Koblet til):
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
Med alternativer for Real Application Clusters og Automatic Storage Management
SQL> show con_id;
CON_ID
0
SQL> show con_name;
CON_NAME
Ikke konsolidert
4. Bruk av Enterprise Manager(EM) Express for tilkobling til PDB
Når databasen er opprettet ved hjelp av databasekonfigurasjonssassistenten (DBCA), blir URL-en på for EM Express levert av DBCA-en på tidspunktet for fullføring. URL-en har formatet http://:portnumber/em with 5500 som standard port-ID.
Før du går til denne URL-en for å få tilgang til EM Express, må du utstede følgende SQL-setning for å bekrefte porten til EM Express:
SQL> SELECT dbms_xdb_config.gethttpsport from dual;
GETHTTPSPORT
5500
Hvis utdataene er som vist ovenfor, kan du koble til URL-en som vises av DBCA.
Men hvis utdataene er null, for eksempel
GETHTTPSPORT
må man utføre PL/SQL-prosedyren, DBMS_XDB_CONFIG.SETHTTPSPORT, for å angi HTTPS-porten til EM Express. Eksempel:
SQL> exec dbms_xdb_config.sethttpsport(5500);
PL/SQL-prosedyren er fullført.
Etter dette kan du prøve å få tilgang til EM Express ved hjelp av URL-en.
En HTTP-port kan også konfigureres for EM Express, som angitt nedenfor:
SQL> select dbms_xdb_config.gethttpport from dual;
SQL> exec dbms_xdb_config.sethttpport(8080);
Hvis du vil angi EM Express-porten for pdbs, må du endre beholderen til gjeldende pdbs og kjøre en/SQL-prosedyre for å angi porten for denne beholderen.
Når du har gjort det, kan du kontrollere HTTP-porten for cpdb, pdb1 og pdb2 som følger:
SQL> select dbms_xdb_config.gethttpport from dual;
GETHTTPPORT
8080
SQL> alter session set container = pdb1;
Økt endret.
SQL> select dbms_xdb_config.gethttpport from dual;
GETHTTPPORT
8081
SQL> alter session set container = pdb2;
Økt endret.
SQL> select dbms_xdb_config.gethttpport from dual;
GETHTTPPORT
8082
MERK: Hvis du fremdeles ikke kan koble til en URL-adresse for EM Express, kan du laste inn lyttekontroll på nytt som en nettbruker og deretter prøve på nytt.