sql >> Database teknologi >  >> RDS >> Oracle

Sådan eksporteres databaseskema i Oracle til en dumpfil

Det afhænger af hvilken version af Oracle? Ældre versioner kræver exp (eksport), nyere versioner bruger expdp (datapumpe); exp blev forældet, men fungerer stadig det meste af tiden.

Før du starter, skal du være opmærksom på, at Data Pump eksporterer til Oracle-biblioteket på serversiden, som er en Oracle-symbolsk placering, der er kortlagt i databasen til en fysisk placering. Der kan være en standardmappe (DATA_PUMP_DIR), tjek ved at forespørge DBA_DIRECTORIES:

  SQL> select * from dba_directories;

... og hvis ikke, opret en

  SQL> create directory DATA_PUMP_DIR as '/oracle/dumps';
  SQL> grant all on directory DATA_PUMP_DIR to myuser;    -- DBAs dont need this grant

Forudsat at du kan oprette forbindelse som SYSTEM-bruger eller en anden DBA, kan du eksportere et hvilket som helst skema som sådan til standardmappen:

 $ expdp system/manager schemas=user1 dumpfile=user1.dpdmp

Eller angiv en specifik mappe, tilføj directory=<directory name> :

 C:\> expdp system/manager schemas=user1 dumpfile=user1.dpdmp directory=DUMPDIR

Med ældre eksportværktøj kan du eksportere til dit arbejdsbibliotek og endda på en klientmaskine, der er fjernt fra serveren, ved at bruge:

 $ exp system/manager owner=user1 file=user1.dmp

Sørg for, at eksporten udføres i det korrekte tegnsæt. Hvis du ikke har konfigureret dit miljø, matcher Oracle-klientens tegnsæt muligvis ikke DB-tegnsættet, og Oracle udfører tegnsætkonvertering, hvilket måske ikke er det, du ønsker. Du vil se en advarsel, hvis det er tilfældet, så vil du gerne gentage eksporten efter at have indstillet NLS_LANG miljøvariablen, så klienttegnsættet matcher databasens tegnsæt. Dette vil få Oracle til at springe tegnsætkonvertering over.

Eksempel på amerikansk UTF8 (UNIX):

 $ export NLS_LANG=AMERICAN_AMERICA.AL32UTF8

Windows bruger SET, f.eks. japansk UTF8:

 C:\> set NLS_LANG=Japanese_Japan.AL32UTF8

Mere info om Data Pump her:http://docs.oracle.com/cd/B28359_01/server.111/b28319/dp_export.htm#g1022624




  1. JSON_SET() – Indsæt eller opdater værdier i et JSON-dokument i MySQL

  2. SQL SELECT for begyndere

  3. SQLT i 12c kan ikke indsamle statistik

  4. Login mislykkedes for brugeren 'DOMAIN\MACHINENAME$'