Zarejestruj się na BitBay.net
Home > Oracle > Jak zaimportować dane do innego tablespace

Jak zaimportować dane do innego tablespace

oracle Oracle nie oferuje parametru do zmiany tablespace podczas importowania danych. Domyślnie importowane obiekty tworzone są w tablespace takim samym z jakiego zostały wyeksportowane nawet mimo tego, że użytkownik ma ustawiony inny domyślny tablespace. Aby zaimportować do innego robimy:

Użytkownik z którego eksportujemy dane (uprawnienia w zasadzie dowolne oprócz tego, że nie może to być DBA):

-- USER SQL
CREATE USER "NIKT1" 
PROFILE "DEFAULT" 
IDENTIFIED BY "hasło" 
DEFAULT TABLESPACE "HART1" 
TEMPORARY TABLESPACE "TEMP" 
ACCOUNT UNLOCK

-- ROLES
GRANT "RESOURCE" TO NIKT1 ;
GRANT "CONNECT" TO NIKT1 ;

-- SYSTEM PRIVILEGES
GRANT CREATE SESSION TO NIKT1;

Eksport danych:

exp NIKT/hasło file=nikt.dmp log=niktexp.log full=n owner=NIKT1

Użytkownik do którego będziemy importować (ważne jest żeby miał tylko te 2 uprawnienia + unlimited quota na tablespace do którego chcemy ładować dane):

CREATE USER "NIKT2" 
PROFILE "DEFAULT" 
IDENTIFIED BY "hasło" 
DEFAULT TABLESPACE "HART2" 
QUOTA UNLIMITED ON "HART2" 
ACCOUNT UNLOCK;

-- ROLES
GRANT "CONNECT" TO NIKT2 ;

-- SYSTEM PRIVILEGES
GRANT CREATE TABLE TO "NIKT2"

Import Danych:

imp NIKT2/hasło file=nikt.dmp log=niktimp.log full=n fromuser=NIKT1 touser=NIKT2
Kategorie:Oracle Tagi:, , ,
  1. marek
    Sierpień 5th, 2011 at 13:40 | #1

    A nie łatwiej stworzyć najpierw przestrzeń z wykonanego dmp a następnie po prostu wczytać import? Pobranie skryptu tworzącego przestrzeń z importu jest bardzo proste: strings /sciezka/do/pliku/baza.dmp | grep „CREATE TABLESPACE” >> spaces.sql Następnie edytujemy ten plik, zmieniamy ścieżkę do pliku na taką jaka się nam podoba, wykonujemy skrypt i puszczamy import.

  2. Sierpień 22nd, 2011 at 11:49 | #2

    Chyba raczej nie. Ponieważ chcemy zaimportować do przestrzeni o innej nazwie a nie o innej lokalizacji.

  1. Brak jeszcze trackbacków

*