Latest Posts

Oracle Multitenant Self-Service Provisioning – Neue Version

Mit der Oracle Multitenant Self-Service Provisioning Applikation PDBSS hat ein DBA / Entwickler die Möglichkeit, sich mit dem mit 12c neu eingeführten Konzept von Multitenant und den Pluggable Databases (PDB) vertraut zu machen. Die auf Oracle Application Express basierende Webapplikation ist eine prima Möglichkeit, Aktionen wie Bereitstellung, cloning, plug unplug durchzuführen.

Bereits 2013 habe ich im Trivadis O-AI Blog darüber berichtet, damals war die Software noch im Beta-Status. Seit dem 20. Mai 2015 ist die finale Version als Download verfügbar. Als Neuerung wird bspw. die Apex-Applikation in CDB$ROOT installiert und der Oracle REST Data Service verwendet (vorher APEX-Listener).

Die Applikation ist nicht für den produktiven Einsatz gedacht.

Aus dem Readme:

PDBSS provides an interface to an Oracle Database 12c multitenant environment and allows for the self-service provisioning of pluggable databases (PDBs) in a multitenant container database  (CDB). Its primary goal is to encourage learning about PDBs in development and test environments. It is an easy and productive way to allow database administrators (DBAs) and application developers the opportunity to gain hands-on experience with powerful PDB features, including creating PDBs, cloning PDBs, plugging in PDBs, and unplugging PDBs.

Voraussetzungen – Software

Oracle 12.1.0.2 oder höher
Oracle Application Express 4.2.5 oder höher (4.2.5 wird mit 12.1.0.2 mitgeliefert)
Oracle REST Data Services 2.0.6 oder höher (2.0.7 wird mit 12.1.0.2 mitgeliefert)
Oracle Pluggable Database Self-Service Provisioning Application

Im ZIP-Paket der Oracle Pluggable Database Self-Service Provisioning Application ist ein README.pdf mit der detaillierten Installationsanleitung verfügbar. Dabei wird auch empfohlen die neueste Version der Oracle REST Data Services herunterzuladen.

Voraussetzungen – Datenbank

Es wird eine leere Datenbank mit dem Zeichensatz AL32UTF8, sollte der lokale Listener nicht auf Port 1521 laufen, so muss in der Container-Datenbank CDB$ROOT der Parameter LOCAL_LISTENER gesetzt werden:

RESTful Web Services in der Datenbank konfigurieren

Es muss für die Datenbankbenutzer APEX_LISTENER und APEX_REST_PUBLIC_USER ein Passwort gesetzt werden. Hinweis: Die Passwörter werden später für die Konfiguration der Oracle REST Data Services benötigt.

Unlock APEX_PUBLIC_USER und Passwort ändern

Hinweis: Das Passwort werden später für die Konfiguration der Oracle REST Data Services benötigt.

Oracle REST Data Services ORDS konfigurieren

Auf Grund von Konfigurationsproblemen habe ich auf eine aktuelle 3-er Version verzichtet und mir stattdessen die Version 2.0.10 runtergeladen und entpackt:

http://www.oracle.com/technetwork/developer-tools/rest-data-services/downloads/ords-downloads-2010-2528184.html

Erster Start vom ORDS

Beim ersten Start vom APEX Listener werden folgende Abfragen gemacht – diese werden dann in der Konfigurationsdatei gespeichert:

  • Pfad für die Konfiguationsdatei – bspw.  /u00/app/oracle/product/ords/config
  • Hostname
  • Port
  • Datenbank-Servicename
  • Passwort APEX_PUBLIC_USER
  • Passwörter APEX_REST_PUBLIC_USER / APEX_LISTENER

Hinweis: Die Konfiguration vom ORDS-Benutzer muss übersprungen werden (Known Issues) – der Listener wird beim ersten Mal nicht gestartet: exit [2] am Schluss.

Konfiguration vom DB-Suffix für ORDS

Die DB-Domain in die ORDS-Konfiguration eingetragen – Beispiel: trivadis.com. Ermitteln der DB-Domain als SYSDBA:

Danach wird die Domain in ein Konfigurationsfile eingtragen welches anschliessend verwendet wird.

 ORDS Konfiguration aktualisieren

Starten vom ORDS

Beim ersten Start wird nach dem /images Pfad gefragt – hier muss der Pfad vom $ORACLE_HOME/apex/images angegeben werden.Sollte Oracle Application Express in einem anderen Pfad installiert worden sein, so muss das entsprechende Verzeichnis angegeben werden.

Mit der URL http://localhost:8080/multitenant/ erreicht man die Oracle Application Express Startseite:

apex_einstiegsseite

Installation der PDBSS-Applikation

Die Applikation habe ich auf dem Server  in ein temporäres Verzeichnis entpackt, welches später dann gelöscht werden kann. Die Installation erfolgt mit einem SQL-Script aus dem entpackten Unterverzeichnis pdbss, welches als SYSDBA in der Container-Datenbank CDB$ROOT ausgeführt wird:

Das Script pdbss_ins.sql wird als SYSDBA gestartet. Die Frage nach dem Demonstration Mode, Datafiles und Port kann mit Enter beantwortet werden. Der neu angelegte ADMIN User ist dann der Verwalter der PDBSS-Applikation. Die Installation ist in kurzer Zeit durch.

Login in die Oracle Multitenant Self-Service Provisioning Applikation

Die URL muss mit dem Suffix f?p=pdbss ergänz werden:http://localhost:8080/multitenant/f?p=pdbss – danach erscheint die Startseite und es kann sich eingeloggt werden. Der Benutzer heisst ADMIN, das Passwort wurde bei der Installation mit dem pdbss_ins.sql gesetzt.

pdbss_login

pdbss_startseite

ORDS Service separat starten

Der Service läuft aktuell als Terminal-Job. Das heisst sobald das Terminalfenster zu ist, ist kein Zugriff mehr auf die Applikation möglich. Verschiedene Lösungen sind möglich:

Fazit

Die Oracle Multitenant Self-Service Provisioning Applikation hat den Beta-Status überwunden und ist nun offiziell verfügbar. Gerade für DBAs und Entwickler bietet die Apex-Applikation eine tolle Gelegenheit, sich mit Multitenant auseinanderzusetzen. Das Verständnis für die neue Architektur ist wichtig und gehört zu den technischen Grundlagen beim zukünftigen Einsatz von Oracle 12c.

Give me a ping, Vasili. One ping only, please – Ping eines Windows Server 2012 R2

Windows Server 2012 R2 geben per Default keine Antwort auf ping-Versuche von Clients. Das liegt an den Firewall-Einstellungen, sogenannte Echo-Requests sind für IPv4 und IPv6 sind deaktiviert. Die Funktion kann im GUI oder in der PowerShell aktiviert werden.

Test Ping von einem Linux-Client

Das Kommando bleibt hängen, der Windows Server 2012 R2 gibt keine Antwort:

ping_win_01

Variante 1: Aktivieren vom Echo Request in der “Windows Firewall with Advanced Security”

ping_win_02

Variante 2: Aktivieren vom Echo Request in der PowerShell

Erneuter Test Ping von einem Linux-Client

Das Ping-Kommando ist erfolgreich, der Server gibt Antwort.

ping_win_03

 

 

 

ORA-01996: GRANT failed: password file

Für den Neuaufbau der Umgebung für das Trivadis-Training Oracle Architektur und Interna wollte ich in einer 12.1.0.2 Multitenant-Datenbank unter Oracle Linux 6 mehrere Common User anlegen. Diese sollten die CONNECT und DBA Rolle sowie das SYSDBA-Privileg erhalten. Nach den ersten 8 Benutzern brach das Skript ab mit einer ORA-01996 Fehlermeldung. Die Multitenant-Datenbank wurde mit dem Database Creation Assistant DBCA erstellt.

PL/SQL Code

Verifizierung vom Passwort-File

Ein Blick in das Passwort-File zeigt dass bereits 12 Einträge mit Privilegien drin sind. Nebst den vier Default-Benutzer SYS,SYSDG, SYSBACKUP und SYSKM wurden nur acht meiner Benutzer mit dem Prefix C##DBA0x eingetragen.

ORA-01996

Der Fehlermeldung nach hat es zuwenig Platz für neue Einträge. Gibt man beim Erstellen eines Passwort-Files keinen ENTRIES Parameter an, so ist gemäss Oracle Dokumentation die Anzahl maximaler Einträge abhängig von der  OS-Blockgrösse: http://docs.oracle.com/database/121/ADMIN/dba.htm#ADMIN11059:

For example, if your operating system block size is 512 bytes, it holds four password entries. The number of password entries allocated is always a multiple of four.

Aber: Mein OS hat eine Blockgrösse von 4096 Bytes, das heisst es müssten also 32 Einträge drin Platz haben:

 My Oracle Support

Ich habe daraufhin am 24.04.2015 einen Service Request bei Oracle eröffnet – der Fall wurde geprüft und ein Bug eröffnet:

Hello Mr. Berger,

The issue you have pointed out is easily reproducible and I have created bug 20938256 to get this clarified. Most probably you know already that you can add as many passwords to that passwordfile as you wish, if you specify a large value for the passwordfile’s ENTRIES parameter. Bug’s purpose is to clarify what would be the default number of entries on an OS having a blocksize that is different to the 512 bytes ( that was used as an example in the documentation)

Thanks

MOS Note

OERR: ORA 1996 GRANT failed: password file <name> is full (Doc ID 19282.1):

Lösung

Momentan bleibt mir nur die Neuerstellung vom Passwort-File mit Angabe von ENTRIES und dann die Neuvergabe der administrativen Privilegien. Update folgt…