Hogy lehet Oracle Cloud-hoz csatlakozni távolról és adatokat letölteni?

Halihó!

Régóta (kb. 18-20 év) nem használtam Oracle-t. Amikor használtam, akkor valahová fel volt telepítve.

Akkoriban (Oracle 7, 8, 9, 10) az exp paranccsal dumpoltam ki adatbázisból adatokat és schema tartalmakat. Úgy emlékszem, szöveges fájl (SQL script) volt az eredmény, amit fel tudtam darabolni, a schema objektumokat pl. source controlban el tudtam tárolni.

Valami hasonlót szeretnék, de most Oracle 23-ban vannak az adatok, oracle cloud architektúrában. Az ingyenes tier-t használom.

Nem vagyok benne biztos, hogy mi a legjobb irány erre, gyakorlatilag ezt a 2 dolgot akarom: schema objektumokat source controlban, adatokról mentést valahol helyben (saját gépemen) eltárolva.

Mivel hobbi projekten dolgozgatok időnként, előfordult már, hogy az Oracle cloud inaktivitás miatt törölte a teljes adatbázist, vagyis elvesztettem a programot, amit készítettem addig és az adatokat is, amiket kézzel feltöltögettem formokon.

Inaktivitás lesz a jövőben is, viszont el szeretném kerülni az adatbázis tartalmának az elvesztését.

Azt látom, hogy az exp/imp már nem javasolt, van helyette data pump. Olvasgattam, azt látom, hogy ez valami saját formátumot használ. Ez arra biztos jó, hogy lementsem és visszatöltsem a tartalmat, de pl. bináris cuccot source controlba tenni nem túl jó. Azt nem láttam, hogy le tudom-e lokálba tölteni a datapump exportot. Biztonsági mentésnek végül is jó lenne.

Arra gondoltam, hogy majd lokálba feltelepítem az Oracle kliens programokat, hozzákapcsolódok a felhőben lévő adatbázishoz és majd használom a régi módszert. Egyelőre ezzel nem jártam sikerrel, nem tudnak a dolgok kapcsolódni. SQL*Plus-szal és SQLDeveloperrel próbáltam tesztelni, de valami nem ment.

tnsnames.ora-ba bemásoltam a felhős adatbázis weboldalán amit mutatnak. Beállítottam, hogy ACL legyen, saját IP címemet engedélyeztem, beállítottam, hogy nem kötelező a mTLS. Ahogy értem, ha a tűzfalam kiengedi a csomagokat a 1521-es portra, akkor működnie kellene.

Mivel ilyesmi kapcsolódással nem foglalkoztam a régmúltban, fogalmam sincs, hogy mi nem működik, vagy hogy hogyan tesztelhetném.

Enter user-name: skot
Enter password:
ERROR:
ORA-12560: Database communication protocol error.
Help: https://docs.oracle.com/error-help/db/ora-12560/


Enter user-name: admin
Enter password:
ERROR:
ORA-12560: Database communication protocol error.
Help: https://docs.oracle.com/error-help/db/ora-12560/


SP2-0157: unable to CONNECT to ORACLE after 3 attempts, exiting SQL*Plus
Help: https://docs.oracle.com/error-help/db/sp2-0157/

Az ORA-12560 nem mond sokat:

Cause

A lower level communication protocol adapter error occurred.

Action

Do the following:

  • Check for lower level network transport errors in the error stack for additional information.
  • Ensure that the protocol specification used in the address for the connection is correct.
  • For further details, turn on network tracing and rerun the operation. Turn off tracing when the operation is complete.
  • Contact Oracle Support.

Ezekből az elsőt nem tudom, mire gondol. Nem tudom, hol kéne megnézni az error stack-et.

A másodikat másoltam a weboldalról, szóval feltételezem, hogy jó. Ha nem jó, akkor nem tudom, hogy mi a hiba vagy hogyan kéne kijavítani.

A harmadik jól hangzik, de nem tudom, hol  kellene be- és kikapcsolni a network tracking-et.

Tud valaki valami hasznos tanácsot adni? Jó irányba keresgélek, vagy van valami egyszerűbb megoldás ugyanerre, és inkább azt kéne megnéznem?

Hozzászólások

Szia

Nem a Data Pump a megoldás?  emlékeim szerint azzal lehet exportálni is.

Igen, lehet vele. De ahogy látom, a felhőben futtathatok Data Pumpot, de akkor a mentés is a felhőben marad valahol. Ez jó lenne, ha le tudnám tölteni.

Futtathatnék lokálban, de akkor először meg kell oldjam, hogy csatlakozni tudjon.

disclaimer: ha valamit beidéztem és alá írtam valamit, akkor a válaszom a beidézett szövegre vonatkozik és nem mindenféle más, random dolgokra.

Hányas klienssel próbálod ? 12.2.0.1-től megváltozott az sqlnet protokoll így a régebbi klienssel nem fogsz tudni hozzáférni.

Ssh-val elvileg be tudsz lépni a szerveredre és le tudod tölteni a dump-ot.

23.7-es klienssel. Pontosabban azzal, amit most pár napja le tudtam tölteni a weboldalról.

Ssh-val elvileg be tudsz lépni a szerveredre és le tudod tölteni a dump-ot.

Lehet, hogy félreértek valamit, de nekem úgy jött le, hogy nincs szerverem, amire be tudnék lépni, csak van egy adatbázis, valahol a felhőben, amit használhatok.

Én egy Autonomous Database nevű dolgot hoztam létre. Ha jól értelmezem a dolgokat, akkor a compute instance nevű dolog az, ami egy virtuális szerver. Ilyenem, jelenleg, nincs. Lehet, hogy kéne?

disclaimer: ha valamit beidéztem és alá írtam valamit, akkor a válaszom a beidézett szövegre vonatkozik és nem mindenféle más, random dolgokra.

Némi küzdelem árán, de sikerült csatlakoznom. Mivel nekem többféle oracle kliensem van ezért a PATH-ban előre kellett hoznom a 23-as instant client-et, hogy működjön.

C:\ic23\instantclient_23_7>sqlplus admin@remote

SQL*Plus: Release 23.0.0.0.0 - Production on K. ┴pr. 8 09:52:27 2025
Version 23.7.0.25.01

Copyright (c) 1982, 2025, Oracle.  All rights reserved.

Adja meg a jelszˇt:

Kapcsolˇdßsi cÚl:
Oracle Database 23ai Enterprise Edition Release 23.0.0.0.0 - for Oracle Cloud and Engineered Systems
Version 23.7.0.25.03

SQL>

Jogos.

tnsnames.ora

remote =
(description= (retry_count=20)(retry_delay=3)(address=(protocol=tcps)(port=1522)(host=xhost.eu-frankfurt-1.oraclecloud.com))(connect_data=(service_name=xxxxxxxxxservicename.adb.oraclecloud.com))(security=(ssl_server_dn_match=yes)))

Amúgy a management felületen a példányt kiválasztva a Database connection fülön látható ami kell neked.