импортировать данные в оракул - PullRequest
1 голос
/ 23 июня 2011

Я знаю, как использовать «imp» для импорта данных .dmp. Но мне интересно, нужно ли мне сначала создавать табличное пространство, например?

У других людей есть экземпляр базы данных oracle, и он создает пользователя "sa_one", у которого табличное пространство по умолчанию - "tabspace_one", затем он создает несколько таблиц в этом табличном пространстве.

Затем он экспортирует объекты под пользователем "sa_one" в xx.dmp.

Теперь на моем компьютере у меня есть собственный экземпляр базы данных, и я создаю пользователя "sa_two", табличное пространство по умолчанию которого равно "tabspace_two".

Теперь, если я хочу импортировать xx.dmp пользователю "sa_two". Я использую cmd:

imp fromuser=sa_one touser=sa_two file=xx.dmp

Но мне интересно, нужно ли мне создавать табличное пространство "tabspace_one" в моей базе данных?

Ответы [ 2 ]

1 голос
/ 23 июня 2011

hguser,

Если вы делаете то, что сказали:

imp fromuser=sa_one touser=sa_two file=xx.dmp

Затем данные будут импортированы в табличное пространство, которое схема 'sa_two' установила в качестве табличного пространства по умолчанию. Хотя я должен признать - я не могу найти документацию оракула, которая явно говорит, что это правда, но я нашел эту вики оракула: http://wiki.oracle.com/thread/1284972/EXP+%26+IMP+only+restores+to+same+tablespace(s)

В качестве альтернативы, вы можете просто использовать EXPDP и IMPDP и выдать remap_tablespace для импорта.

Все остальное, вот что происходит, когда вы пытаетесь импортировать в несуществующее табличное пространство:

C:\Users\jslowik\Desktop>impdp user/password@db_name dumpfile=datfile.dat full=y

Import: Release 11.2.0.1.0 - Production on Thu Jun 23 15:34:27 2011

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
ORA-31626: job does not exist
ORA-31633: unable to create master table "SC_BASE.SYS_IMPORT_FULL_05"
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 95
ORA-06512: at "SYS.KUPV$FT", line 1020
ORA-00959: tablespace 'TABLES' does not exist
1 голос
/ 23 июня 2011

Да, я считаю, что вы должны создать табличное пространство и предоставить ему права пользователя sa_two. Я обычно использую группу команд SQL, таких как:

create tablespace my_data
datafile 'C:\Oracle\oradata\orcl\my_data.dbf' size 50m
autoextend on next 10m
/

drop user sa_two cascade
/

create user sa_two
identified by mypassword
quota unlimited on my_data
/

grant connect, resource to sa_two
/

Если вы используете полный импорт imp, я думаю, что табличные пространства созданы для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...