Toon posts:

Database export/import probleem

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een export gedaan van een oracle 8.1.7 database en deze geimporteerd in een 8.1.6 versie.
In TOAD ben ik nu de databases aan het vergelijken en het blijkt dat die de triggers niet heeft meegenomen. Kan het zijn dat ligt aan het versie-verschil of moet ik een parameter meegeven.

Verwijderd

Als je een full database export hebt gedaan, dan moet je alles hebben als het goed is.

Je kan de opties die je mee kunt geven met de export op de volgende manier zien:

c:>exp help=y

Voor import:

c:>imp help=y

Verwijderd

Topicstarter
Ik heb het volgende commando uitgevoerd:

Export
exp sys@tpb full=y file=full.dmp

Import
imp sys@tpp full=y file=full.dmp

Dit gaat niet goed, hij importeerd op een of andere manier niet alle data (sowiezo geen triggers). Waar het mij om gaat is om te weten of dit aan het versieverschil ligt anders moet ik een upgrade uitvoeren (dus 8.1.6 naar 8.1.7)

Beide versies zijn Enterprise Edition.

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

In principe wordt het niet ondersteund om op deze manier in een lagere versie te importeren.
Wat bekend is dat wel werkt is met de 8.1.6 exp tool de 8.1.7 database exporteren en deze met de 8.1.6 imp tool weer inlezen in de 8.1.6.

Who is John Galt?


Verwijderd

Topicstarter
Wat bekend is dat wel werkt is met de 8.1.6 exp tool de 8.1.7 database exporteren en deze met de 8.1.6 imp tool weer inlezen in de 8.1.6.
Ja dat heb ik gedaan. Maar toch gaat het niet goed.
Kan het zijn dat het probleem ontstaat omdat er verschillende character sets worden gebruikt. Of een verschil tussen de compatible instelling.

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Op dinsdag 09 april 2002 10:44 schreef BL het volgende:
Ja dat heb ik gedaan. Maar toch gaat het niet goed.
Kan het zijn dat het probleem ontstaat omdat er verschillende character sets worden gebruikt. Of een verschil tussen de compatible instelling.
Character set conversie ed. doet hij automatisch zelf.
Dat lijkt me dus niet het probleem.

Staan de databases op verschillende machines?
Zo ja: hoe heb je de .dmp overgehaald?

Who is John Galt?


Verwijderd

Topicstarter
Staan de databases op verschillende machines?
Zo ja: hoe heb je de .dmp overgehaald?
Ja de databases staan op verschillende machines. Hier zit verschil in het OS. De database die ik exporteer staat op een solaris en de database waarop ik de export importeer is een linux machine.
Ik heb op de linux machine de TNS-name van de solaris database toegevoegd in tnsnames.ora. Zodoende kan ik dus connecten via sqlplus sys@tp_t (waarbij tp_t de SID van de solaris database is).

Ik heb exp sys@tp_t file=full.dmp full=y gedaan vanaf de linux machine. er werd een .dmp file aangemaakt. Deze heb ik via imp sys@tpp file=full.dmp full=y weer geimporteerd.

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Op dinsdag 09 april 2002 10:38 schreef BL het volgende:
Export
exp sys@tpb full=y file=full.dmp

Import
imp sys@tpp full=y file=full.dmp
Dit lees ik nu pas goed :o
Een export en import doe je normaal nooit als sys.
Ik weet het niet meer zeker, maar het gaat geloof ik fout op datadictionary objecten.

Je kunt beter system gebruiken.

Who is John Galt?


Verwijderd

Topicstarter
Je kunt beter system gebruiken.
Oh, zit daar verschil in dan? Met rechten of zo?
Ik heb ook wel eens iets gelezen van sysdba of zo dacht ik.

Maar ik zal het eens proberen.

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Op dinsdag 09 april 2002 11:02 schreef BL het volgende:
Oh, zit daar verschil in dan? Met rechten of zo?
Ik heb ook wel eens iets gelezen van sysdba of zo dacht ik.

Maar ik zal het eens proberen.
Zeker zit daar verschil in.
sys is de eigenaar van de datadictionary.
system is een gewone user met dba rechten.

connect as sysdba is nodig om de database te kunnen stoppen/starten etc.
Op dinsdag 09 april 2002 11:02 schreef BL het volgende:
Maar ik zal het eens proberen.
Hou er rekening mee dat je mogelijk de datadictionary van je doeldatabase al verknoeid hebt.
Als dat zo is dan kun je dat misschien fixen door catalog.sql en catproc.sql opnieuw te draaien, maar het zekerst ben je als je de database opnieuw aanmaakt.

Who is John Galt?


Verwijderd

Topicstarter
Ok, ik heb de databases verwijderd en twee nieuwe aangemaakt. Ik ga nu met 'exp' van versie 8.1.6 een export doen van 8.1.7 database. Dit doe ik als user 'system' en deze schrijf ik weg als full.dmp. Daarna importeer ik, als 'system' full.dmp en kijk ik of het goed is gegaan.

Verwijderd

Topicstarter
Nee, gaat nog steeds niet goed.

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Op dinsdag 09 april 2002 13:24 schreef BL het volgende:
Nee, gaat nog steeds niet goed.
Hoe constateer je dat het niet goed gaat?
En had je alle tablespaces van de bron database aangemaakt in de doel-database?
Welke warnings heb je gekregen bij het importeren?

Who is John Galt?


Verwijderd

Topicstarter
Hoe constateer je dat het niet goed gaat?
Ik vergelijk de beiide databases met TOAD. Het blijkt dat de triggers niet zijn meegekomen.
En had je alle tablespaces van de bron database aangemaakt in de doel-database?
Yep

Verwijderd

Topicstarter
Uitgaande van dit stukje:

The problem was the compatibility matrix. If someone wants to exp Data from a higher Oracle Version to import to a lower Version, he must use the Version of exp of the lower Oracle Version. If the difference between the versions is too big, the use of the catexp??.sql is needed to create the database objects, which are needed by exp version.

Hebben ze het over een catexp??.sql die je moet runnen. Enig idee of dat wat uitmaakt?

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Op dinsdag 09 april 2002 14:21 schreef BL het volgende:
Hebben ze het over een catexp??.sql die je moet runnen. Enig idee of dat wat uitmaakt?
Daar hebben ze het over de basistabellen van exp/imp.
Aangezien je maar een klein versieverschil hebt is dit niet van toepassing voor jou.

Who is John Galt?


Verwijderd

Topicstarter
Deze foutmelding:
code:
1
2
3
4
5
6
7
8
EXP-00008: ORACLE error 4045 encountered
ORA-04045: errors during recompilation/revalidation of SYS.DBMS_AQ_SYS_EXP_INTERNAL
ORA-06552: PL/SQL: Compilation unit analysis terminated
ORA-06553: PLS-905: object SYS.AQ$_SUBSCRIBERS is invalid
ORA-06508: PL/SQL: could not find program unit being called
ORA-06512: at "SYS.DBMS_AQ_EXP_QUEUES", line 141
ORA-06512: at line 1
EXP-00083: The previous problem occurred when calling SYS.DBMS_AQ_EXP_QUEUES.grant_sysprivs_exp

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Op woensdag 10 april 2002 09:50 schreef BL het volgende:
Deze foutmelding:
code:
1
EXP-00083: The previous problem occurred when calling SYS.DBMS_AQ_EXP_QUEUES.grant_sysprivs_exp
Dit wijst toch wel in de richting van de basistabellen van exp/imp.
Mogelijk zijn deze toch anders tussen 8.1.6 en 8.1.7.
Dan kun je dus met dat catexp script aan de gang.

Who is John Galt?


Verwijderd

Topicstarter
Ik heb maar even update binnengehaald. Ik gebruik dus nu 8.1.7. Kijken wat dat brengt.

catexp.sql moet ik die draaien op de export database of de import database?

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Op woensdag 10 april 2002 10:25 schreef BL het volgende:
Ik heb maar even update binnengehaald. Ik gebruik dus nu 8.1.7. Kijken wat dat brengt.

catexp.sql moet ik die draaien op de export database of de import database?
Als ze nu allebei 8.1.7 zijn is dat niet meer nodig.

Who is John Galt?


Verwijderd

Topicstarter
Nee, de fout blijft ondanks een nieuwe installatie van 8.1.7. optreden ;(. Ik ben er al wel achter dat het niet aan de nieuwe database ligt.

Wanneer ik op de solaris machine (de database waar ik van exporteer) een export uitvoer met de exp van die machine dan krijg ik die error:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
...
...

. exporting profiles
. exporting user definitions
. exporting roles
EXP-00008: ORACLE error 4045 encountered
ORA-04045: errors during recompilation/revalidation of SYS.DBMS_AQ_SYS_EXP_INTERNAL
ORA-06552: PL/SQL: Compilation unit analysis terminated
ORA-06553: PLS-905: object SYS.AQ$_SUBSCRIBERS is invalid
ORA-06508: PL/SQL: could not find program unit being called
ORA-06512: at "SYS.DBMS_AQ_EXP_QUEUES", line 141
ORA-06512: at line 1
EXP-00083: The previous problem occurred when calling SYS.DBMS_AQ_EXP_QUEUES.grant_sysprivs_exp
. exporting resource costs
. exporting rollback segment definitions

...
...
...

. exporting indextypes
. exporting bitmap, functional and extensible indexes
. exporting posttables actions
EXP-00008: ORACLE error 4045 encountered
ORA-04045: errors during recompilation/revalidation of SYS.DBMS_AQ_IMPORT_INTERNAL
ORA-06552: PL/SQL: Compilation unit analysis terminated
ORA-06553: PLS-905: object SYS.AQ$_SUBSCRIBERS is invalid
ORA-06508: PL/SQL: could not find program unit being called
ORA-06512: at line 1
ORA-06512: at "SYS.DBMS_SYS_SQL", line 1118
ORA-06512: at "SYS.DBMS_SQL", line 316
ORA-06512: at "SYS.DBMS_EXPORT_EXTENSION", line 84
ORA-06512: at "SYS.DBMS_EXPORT_EXTENSION", line 135
ORA-06512: at line 1
EXP-00000: Export terminated unsuccessfully

Er zit dus blijkbaar een fout in deze database. Toch moet ik wel een identieke database hebben. Dat de triggers niet worden meegenomen, kan dat met deze fout te maken hebben?

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Op woensdag 10 april 2002 13:18 schreef BL het volgende:
Nee, de fout blijft ondanks een nieuwe installatie van 8.1.7. optreden ;(. Ik ben er al wel achter dat het niet aan de nieuwe database ligt.

Wanneer ik op de solaris machine (de database waar ik van exporteer) een export uitvoer met de exp van die machine dan krijg ik die error:
*knip*
Zo te zien is er iets mis met je export basistabellen in je brondatabase.
Ik zou in deze database catexp.sql draaien.
Er zit dus blijkbaar een fout in deze database. Toch moet ik wel een identieke database hebben. Dat de triggers niet worden meegenomen, kan dat met deze fout te maken hebben?
Dat kan idd. met deze fout te maken hebben.
Een export hoort altijd zonder waarschuwingen te gaan.

Who is John Galt?


Verwijderd

Denk dat je hiermee wel verder moet komen:

Problem Description
-------------------

You are trying to perform a full export of a database and receive the
following errors:

ORA-04045: errors during recompilation/revalidation of
SYS.DBMS_AQ_IMPORT_INTERNAL
ORA-06552: PL/SQL:Compilation unit analysis terminated
ORA-06553: PLS-905: objectSYS.AQ$_SUBSCRIBERS is invalid
ORA-06508: PL/SQL: could not find program unitbeing called
ORA-06512: at line 1
ORA-06512: at "SYS.DBMS_SYS_SQL", line787
ORA-06512: at "SYS.DBMS_SQL", line 328
ORA-06512: at"SYS.DBMS_EXPORT_EXTENSION", line 82
ORA-06512: at "SYS.DBMS_EXPORT_EXTENSION",line 133
ORA-06512: at line 1
EXP-00000: Export terminated unsuccessfully


Solution Description
--------------------

Run catqueue.sql which is in ORACLE_HOME/rdbms/admin while logged into
the database as SYS.

Verwijderd

Topicstarter
Run catqueue.sql which is in ORACLE_HOME/rdbms/admin while logged into the database as SYS.
Inderdaad dat werkt. Ik had deze oplossing als eens vaker gelezen maar dat ging over catnoque.sql. Deze had ik gerund als system en dat werkte niet. Ik had de hoop bij die scripts dus een beetje opgegegeven.

Maar inderdaad catqueue.sql als sys werkt!

THANX

Verwijderd

No prob,

Als system zal het idd niet werken, omdat system geen eigenaar is van de data dictionary dat is de sys user. Vandaar dat het script als sys gerund moet worden.
Pagina: 1