Autonome Systeme werden in naher Zukunft in so gut wie jedem Bereich unserer modernen Gesellschaft zu finden sein. Auch die Oracle Datenbank Entwicklung trägt dieser Entwicklung Rechnung
und liefert mit seinen Workload optimierten Autonomous Database Services für Data Warehousing (kurz ADW) oder für Online Transaction Processing (kurz ATP)
die entsprechenden Lösungen im Datenbankbereich.
Wie der Einstieg funktioniert - also Connections, Provisionierung, Import von Daten und weitere Anbindungen - habe ich in einem älteren Beitrag zum Thema
Autonomous Data Warehouse Cloud: So geht's - schon beschrieben.
Übrigens sind die dort beschriebenen Vorgehensweisen auch ohne Weiteres auf ATP zu übertragen.
Einige Kunden stellen uns nun die Frage, ob und wie man Daten aus den Autonomous Database Services exportieren kann?
Da sich die Vorgehensweise vom Data Pump Import in Autonomous Database unterscheidet, möchte ich im folgenden Beitrag das Export Prozedere an einem Beispiel beschreiben.
Kurz zusammengefasst funktioniert das Exportieren in zwei Schritten:
Da es bekanntermaßen keinen direkten Zugriff auf das Betriebsystem gibt, und noch kein direktes Vorgehen (in einem einzigen) Schritt mittels Data Pump Export existiert, nutzen wir die ganz normale Export Schnittstelle mit dem vorgegebenen logischen Directory DATA_PUMP_DIR. Im folgenden Beispiel verwende ich dafür SQL Developer (in der Version 18.x). Mit dem Data Pump Wizard im DBA Window können wir recht einfach den Export durchführen Für meine Testzwecke reicht ein Tabellen Export. Im Wizard selbst selektiere ich die entsprechende Tabelle, nutze das Directory DATA_PUMP_DIR und vergebe einen Namen für die DMP Datei. Achtung bei der Namensvergabe wird unter Umständen noch ein weiteres Kürzel (wegen %u etc.) angehängt. Folgender Screenshot zeigt einen Ausschnitt.
Im Window "Export Jobs" erscheint ein weiterer Eintrag für den Job. Der Status ist EXECUTING. Nachdem der Export fertig ist (hier NOT RUNNING), können wir uns das Ergebnis ansehen.
Der Export ist durchgeführt. Um nun einen Zugriff auf die Datei mit Namen EXPORT_DP_PRODUCTS-13_40_50.dmp zu bekommen, müssen wir sie in den Object Storage verlagern. Dazu verwenden wir die Funktionalität von DBMS_CLOUD.PUT_FILE. Übrigens falls man nachsehen möchte, welche Dateien im Directory DATA_PUMP_DIR abgelegt sind, kann man dies mit dem Package DBMS_CLOUD folgendermassen überprüfen:
SQL> select * from dbms_cloud.list_files('DATA_PUMP_DIR'); OBJECT_NAME BYTES ----------------------- ---------- EXPDAT-14_43_03.LOG 864 dp.log 129 EXPDAT01-14_43_04.DMP 180224
Als Nächstes müssen wir der Datenbank unsere Object Storage Credentials bekannt geben.
Hinweis: Der zu verwendende Name des Users leitet sich daraus ab, ob man einen lokalen OCI User oder einen federated User verwendet. Im zweiten Fall muss der Username vollqualifiziert angegeben werden - also zum Beispiel oracleidentitycloudservice/ulrike.schwinn@oracle.com. Das Auth Token wird dann rechts oben im Menüpunkt unter "User Settings" erzeugt. Mehr zum Usermanagement findet sich auch im Kapitel zu Handbuch unter User Provisioning with Oracle Identity Cloud Service.
Die Credential werden mit DBMS_CLOUD.CREATE_CREDENTIAL wie folgt bekannt gegeben.
execute dbms_cloud.drop_credential('CREDENTIAL_US1'); begin DBMS_CLOUD.create_credential(credential_name => 'CREDENTIAL_US1', username => 'Username', password => 'AUth Token Passwort'); end; / alter database property set default_credential = 'ADMIN.CREDENTIAL_US1';
Danach verwenden wir DBMS_CLOUD.PUT_OBJECT. Eine genaue Beschreibung findet man in der Dokumentation. Zur Ausführung wird der Credential Name, die Objekt URI, der Directory Name und der DMP Datei Name benötigt.
BEGIN DBMS_CLOUD.PUT_OBJECT( credential_name => 'CREDENTIAL_US1', object_uri => 'https://objectstorage.eu-frankfurt-1.oraclecloud.com/n/oraseemeadesandbox/b/ULRIKE/o/expdat_dp_products.dmp', directory_name => 'DATA_PUMP_DIR', file_name =>'EXPORT_DP_PRODUCTS-13_40_50.dmp'); -- Name aus SQL Developer END; /
Hinweis: Die maximal zulässige Dateigröße (FILESIZE) bei diesem Verfahren beträgt 5 Gigabyte (GB).
Und schon sind wir fertig. Das Ergebnis ist dann in der Console im Object Storage Bereich zu finden.
Das Ganze lässt sich natürlich auch mit dem Instant Client realisieren. Dazu kann man das gleiche Vorgehen wählen wie im Artikel Autonomous Data Warehouse Cloud: So geht's beschrieben ist. Nach dem Unzip und Setzen der Umgebungsvariablen (hier Windows Umgebung) kann man mit dem Exportieren beginnen.
set tns_admin=c:\data\keys\walletautosand set path=%path%;c:\data\instantclient_12_2\instantclient_12_2;C:\Data\sqldeveloper_182\sqldeveloper\jdk\jre\bin expdp admin@db201901101618_high directory=data_pump_dir dumpfile=products_dp_instant.dmp
Folgender Screenshot zeigt die Verwendung.
Die Nutzung im Linemode bietet gegenüber der Verwendung von SQL Developer den Vorteil, weitere Optionen beim Export verwenden zu können - wie zum Beispiel FILESIZE, PARALLEL, COMPRESSION usw.
Weitere Informationen
Zurück zur Community-Seite