Форум программистов, компьютерный форум, киберфорум
Oracle
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.97/67: Рейтинг темы: голосов - 67, средняя оценка - 4.97
0 / 0 / 0
Регистрация: 30.11.2013
Сообщений: 80
1

Импорт/создание схемы из дампа

08.12.2014, 23:43. Показов 12186. Ответов 20
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Коллеги, помогите с такой ситуацией:
по роду деятельности мало сталкивался с БД, тем более с Oracle, поэтому могу подтупливать. Есть Centos 6.5 с БД на Oracle. Суть в том, что мне нужно для неких своих тестов создать себе схему БД, но не с нуля, а есть дампы, и вот из них каким-то образом нужно накатить. Я так понимаю, скорее всего, дампы уже имеют записи, а мне (по моим предположениям) нужно накатить схему, но данные вычистить, но на самом деле буду рад и просто, если кто-то подскажет что нужно делать с этими дампами.
Если мало инфы, уточняйте.
Доступ к серваку с БД, естественно, есть, учетные данные на sysdba есть.
Заранее спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.12.2014, 23:43
Ответы с готовыми решениями:

Импорт дампа из 11 oracle в 18
Добрый вечер. При импорте дампа при создании пользователя схемы возникает ошибка ORA-65096:...

импорт базы из дампа средством php
$sql = file_get_contents('1.sql'); $res = mysql_query($sql) or die("Invalid query: " ....

Импорт из SQL дампа в таблицу посредством PHP PDO
Всем привет. Делаю инсталлятор - встала проблема: Есть файл MySQL дампа БД. Содержит около 20...

sqlite создание дампа
Суть вопроса такова,- нужно создать дамп существующей базы/таблицы в файл. Ну я конечно понимаю что...

20
Эксперт Java
4091 / 3825 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 11
09.12.2014, 01:33 2
Надо определить в первую очередь что это за дамп. В Oracle есть два основных набора утилит для запуска импорта/экспорта:
1. Старые exp/imp
2. Новые expdp/impdp

Они немного по разному работают.
В принципе пользоваться имя довольно просто - у них есть встроенная справка (exp help=y), главное попробовать.
0
0 / 0 / 0
Регистрация: 30.11.2013
Сообщений: 80
09.12.2014, 10:17  [ТС] 3
Через imp пытаюсь. При вводе imp в терминале просит логин и пароль, учетные данные не подходят. Может нужно с каким-то специальным ключем? Например, чтобы под sysdba войти в sqlplus, нужно было дополнительно дописать ключ "/as sysdba".
0
190 / 55 / 4
Регистрация: 10.11.2014
Сообщений: 508
Записей в блоге: 1
09.12.2014, 13:26 4
нужно вводить имя польз-ля от имени которого создавался данный дамп.
0
Модератор
4217 / 3058 / 583
Регистрация: 21.01.2011
Сообщений: 13,205
09.12.2014, 13:38 5
Цитата Сообщение от pic16f874 Посмотреть сообщение
нужно вводить имя польз-ля от имени которого создавался данный дамп.
Совсем не обязательно.
Импорт схемы должен делаться либо под владельцем схемы, либо под любым пользователем, который имеет роль IMP_FULL_DATABASE
0
190 / 55 / 4
Регистрация: 10.11.2014
Сообщений: 508
Записей в блоге: 1
09.12.2014, 13:40 6
у меня процесс восстановления бэкапа при помощи imp происходил примерно так:

создавал tablespace-ы
создавал user -ов
назначал им права
собственно импорт (пользователь inventory)
imp userid=inventory/inventory@127.0.0.1 file=inventory.dat fromuser=inventory touser=inventory LOG=imp_inventory.LOG

Добавлено через 59 секунд
Цитата Сообщение от Grossmeister Посмотреть сообщение
Совсем не обязательно.
я хотел сказать, что так проще всего...
0
0 / 0 / 0
Регистрация: 30.11.2013
Сообщений: 80
09.12.2014, 13:42  [ТС] 7
Мне нужно из готовых дампов импортироваться в новую схему. То есть её нужно сначала создать, создать пользователей? Для меня всё запутано. Есть готовый скрипт, вот я думаю, его редактировать наверно каким-то образом нужно?
Bash
1
2
3
4
5
6
7
8
9
chcp 65001
set NLS_LANG=RUSSIAN_RUSSIA.AL32UTF8
 
sqlplus /nolog @recreate_users.sql
 
imp nsi/nsi@XXX file=dump/NSI.DMP full=y log=impdpNSI.log
imp shard1/shard1@XXX file=dump/SHARD1.DMP full=y log=impdpSHARD1.log
imp shard2/shard2@XXX file=dump/SHARD1.DMP full=y log=impdpSHARD2.log
imp cs_security/cs_security@XXX file=dump/SECURITY.DMP full=y log=impdpCS_SECURITY.log
Нужно накатиться из дампов в новую схему. Я не хнаю как этого сделать
0
190 / 55 / 4
Регистрация: 10.11.2014
Сообщений: 508
Записей в блоге: 1
09.12.2014, 13:43 8
а что в здесь написано ?
Цитата Сообщение от ShmeaogorL Посмотреть сообщение
recreate_users.sql
наверное пересоздают польз-лей
0
0 / 0 / 0
Регистрация: 30.11.2013
Сообщений: 80
09.12.2014, 13:48  [ТС] 9
ок, ну, а дальше
imp nsi/nsi@XXX file=dump/NSI.DMP full=y log=impdpNSI.log
nsi/nsi - меняю на свои, допустим nsi2/nsi2 (мне надо, чтоб создалась новая схема параллельно с имеющимися там)
так?
0
190 / 55 / 4
Регистрация: 10.11.2014
Сообщений: 508
Записей в блоге: 1
09.12.2014, 13:50 10
у меня так
imp userid=inventory/inventory@127.0.0.1 file=inventory.dat fromuser=inventory touser=inventory LOG=imp_inventory.LOG
inventory/inventory это логин / пароль
fromuser=inventory от какого польз. делался импорт
touser=inventory под какого польз. вставлять.
хотя я под другого не вставлял никогда

ну и touser= нового польз тоже нужно созд
0
0 / 0 / 0
Регистрация: 30.11.2013
Сообщений: 80
09.12.2014, 18:14  [ТС] 11
pic16f874, пользователя, под которого импорт будет производиться, нужно изначально создать (перед непосредственно импортом)? Если да, то как?
0
190 / 55 / 4
Регистрация: 10.11.2014
Сообщений: 508
Записей в блоге: 1
09.12.2014, 18:42 12
нужно создать польз-ля и обязательно дать ему права.
в вашем recreate_users.sql посмотрите - там по идее должны созд. польз и выдаватся права.
у меня так, а как вам надо смотрите у себя в recreate_users.sql и делайте подобно.
Oracle 11 SQL
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
CREATE USER inventory
  IDENTIFIED BY "inventory"
  DEFAULT TABLESPACE inventory
  TEMPORARY TABLESPACE TEMP
  PROFILE DEFAULT
  quota unlimited ON inventory
/
GRANT CREATE SESSION        TO inventory
/
GRANT SELECT ANY TABLE      TO inventory
/
GRANT SELECT ANY DICTIONARY TO inventory
/
GRANT CREATE TABLE          TO inventory
/
GRANT CREATE PROCEDURE      TO inventory
/
GRANT CREATE TRIGGER        TO inventory
/
GRANT CREATE VIEW           TO inventory
/
GRANT CREATE SEQUENCE       TO inventory
/
GRANT CREATE DATABASE LINK  TO inventory
/
0
0 / 0 / 0
Регистрация: 30.11.2013
Сообщений: 80
10.12.2014, 09:52  [ТС] 13
pic16f874,
в файле recreate_users.sql у меня

connect sys/sys@//localhost:1521/eaist as sysdba ;
prompt === create_all.sql;
@create_all.sql
spool off
exit

говорит о чём-то?

Поясни, пожалуйста, строчки со 2-ой по 6-ю в своём предыдущем сообщении.
0
Модератор
4217 / 3058 / 583
Регистрация: 21.01.2011
Сообщений: 13,205
10.12.2014, 09:55 14
Цитата Сообщение от ShmeaogorL Посмотреть сообщение
говорит о чём-то?
Говорит о том, что на выполнение вызывается файл create_all.sql
0
0 / 0 / 0
Регистрация: 30.11.2013
Сообщений: 80
10.12.2014, 09:56  [ТС] 15
Grossmeister, а там
SQL
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
DROP USER nsi CASCADE
;
CREATE USER nsi IDENTIFIED BY nsi
DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp
;
 
GRANT CONNECT,resource TO nsi
;
DROP USER cs_security CASCADE
;
CREATE USER cs_security IDENTIFIED BY cs_security
DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp
;
 
GRANT CONNECT,RESOURCE TO cs_security
;
DROP USER shard1 CASCADE
;
CREATE USER shard1 IDENTIFIED BY shard1
DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp
;
 
GRANT CONNECT,resource TO shard1
;
DROP USER shard2 CASCADE
;
CREATE USER shard2 IDENTIFIED BY shard2
DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp
;
 
GRANT CONNECT,resource TO shard2
;
0
Модератор
4217 / 3058 / 583
Регистрация: 21.01.2011
Сообщений: 13,205
10.12.2014, 09:59 16
Цитата Сообщение от ShmeaogorL Посмотреть сообщение
а там
Ну дык создание упомянутых пользователей и выдача им минимальных грантов (чтобы смогли коннектиться к БД и создавать объекты в своих схемах).
0
0 / 0 / 0
Регистрация: 30.11.2013
Сообщений: 80
10.12.2014, 10:15  [ТС] 17
Grossmeister,
зачем юзер дропается DROP USER nsi CASCADE
а потом он же и создаётся заново CREATE USER nsi IDENTIFIED BY nsi?
0
Модератор
4217 / 3058 / 583
Регистрация: 21.01.2011
Сообщений: 13,205
10.12.2014, 10:39 18
Цитата Сообщение от ShmeaogorL Посмотреть сообщение
зачем юзер дропается DROP USER
Если попытаться создать пользователя, который уже есть, то будет ошибка. Поэтому его сначала удаляют, а потом пересоздают заново.
0
190 / 55 / 4
Регистрация: 10.11.2014
Сообщений: 508
Записей в блоге: 1
10.12.2014, 10:55 19
Цитата Сообщение от Grossmeister Посмотреть сообщение
Поэтому его сначала удаляют, а потом пересоздают заново.
И при этом еще каскадно удаляются все объекты БД для данного пользователя.
добавьте польз nsi2 и импортируйте fromuser=nsi touser=nsi2
0
0 / 0 / 0
Регистрация: 30.11.2013
Сообщений: 80
10.12.2014, 10:59  [ТС] 20
pic16f874,
допустим, добавил нового пользователя,
тогда строчка по импорту будет выглядеть так:
Bash
1
imp nsi2/nsi2@XXX file=dump/NSI.DMP full=y log=impdpNSI.log fromuser=nsi touser=nsi2
?
0
10.12.2014, 10:59
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.12.2014, 10:59
Помогаю со студенческими работами здесь

Создание дампа при ошибке
Пишу большое приложение, иногда возникают ошибки и оно падает. Возможно ли сделать чтобы при...

BSOD и не возможность создание дампа
Приветствую. Проблема такая: Месяца два назад выскочил "синий экран", при игре Rome Totaw War II....

Создание дампа памяти и его чтение
Написал такой вот метод для записи дампа нужного мне процесса. Пишется и читается очень даже не...

Импорт схемы БД в рекактируемый Visio
Как импортировать схему БД SQL Server 2008R2 в формат Visio 2010? Естественно не картинкой, а...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru