powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / После impdp primary keys в неверном состоянии
25 сообщений из 46, страница 1 из 2
После impdp primary keys в неверном состоянии
    #39621007
Sm1le2911
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет.
Возникла проблема с импортом данных.
Импорт делаю по такой схеме.
0. Делаю дамп всего с ключом flashback_time=systimestamp и за исключением grant и dblink и CONTENT=ALL
1. Импортирую сиквенсы в sql файл
где $_ подстановка из скрипта
remap_schema=$_`:FOR_SCHEMA_REPLACE remap_tablespace=$_`:FOR_SCHEMA_REPLACE Include=Sequence CONTENT=METADATA_ONLY sqlfile=$FileName

2. Затем импортирую таблицы в sql файл. Таким же образом
3. Заменяю схему на нужную мне там где она корректно непроставилась. Накатываю полученные скрипты от имени пользователя схемы.
4. Накатываю все METADATA_ONLY из файла дампа утилитой impdp за исключением sequence и tables с ключом DATA_OPTIONS=SKIP_CONSTRAINT_ERRORS

5. Накатываю все DATA_ONLY с ключом DATA_OPTIONS=SKIP_CONSTRAINT_ERRORS

6. Создается видимость успешного имопорта, все данные вставлены, ключи есть. Но при попытке вставить данные в таблицы с данными возникает ошибка
ORA-00001: нарушено ограничение уникальности (CASHFLOW_TFSBUILD_CMS_BUILD1.PK_SYS_FIELDPROPERTYTYPES_ID)
Я так понимаю что импортировав последним шагом данные, оракл не увеличил значения сиквенсов primary keys.
Подскажите пожалуйста, как заставить его корректно увеличивать значения ключей, после импорта данных?
...
Рейтинг: 0 / 0
После impdp primary keys в неверном состоянии
    #39621029
Охрименко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sm1le29111. Импортирую сиквенсы в sql файл
где $_ подстановка из скрипта
remap_schema=$_`:FOR_SCHEMA_REPLACE remap_tablespace=$_`:FOR_SCHEMA_REPLACE Include=Sequence CONTENT=METADATA_ONLY sqlfile=$FileName

2. Затем импортирую таблицы в sql файл. Таким же образом
3. Заменяю схему на нужную мне там где она корректно непроставилась. Накатываю полученные скрипты от имени пользователя схемы.


А пояснить зачем вся эта боль вам нужна, можете?
...
Рейтинг: 0 / 0
После impdp primary keys в неверном состоянии
    #39621032
Фотография Viewer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sm1le2911как заставить его корректно увеличивать значения ключей, после импорта данных?
Если его заставить не удастся, попробуйте ручками 20700153
...
Рейтинг: 0 / 0
После impdp primary keys в неверном состоянии
    #39621039
Охрименко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sm1le2911Я так понимаю что импортировав последним шагом данные, оракл не увеличил значения сиквенсов primary keys.
Подскажите пожалуйста, как заставить его корректно увеличивать значения ключей, после импорта данных?

Оракл должен заливать данные и сиквенсы как есть (было), ничего не уменьшая и не увеличивая. Если у вас сиквенсы сбрасываются в 0, что то не так. Да и неплохо бы проверить констрейнт, возможно проблема не в сиквенсе, а в уникальности данных, которые вставляются повторно и не являются уникальными. Без детального DDL CASHFLOW_TFSBUILD_CMS_BUILD1.PK_SYS_FIELDPROPERTYTYPES_ID сложно сказать, что причина однозначно в одном сиквенсе. И вы их зачем то отдельно импортируете. Зачем?
...
Рейтинг: 0 / 0
После impdp primary keys в неверном состоянии
    #39621043
Sm1le2911
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Охрименко,

Ну как зачем. Думаю тут надо сказать спасибом разрабам оракла. Потому что remap не везде заменяет схему на нужную. Я уже задавал здесь этот вопрос. Так что это не причуда)
Вот ссыль http://www.sql.ru/forum/1286686/remap-schema-ne-korrektna?hl=
...
Рейтинг: 0 / 0
После impdp primary keys в неверном состоянии
    #39621050
Sm1le2911
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Охрименко,

Данные вставляются в пустую схему, к которой только накатили метаданные.
...
Рейтинг: 0 / 0
После impdp primary keys в неверном состоянии
    #39621063
Sm1le2911
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Охрименко,

Вот ddl этой таблицы, накатывается от владельца схемы

CREATE TABLE "SYS_FIELD_PROPERTY_TYPES"
( "ID" NUMBER(*,0) GENERATED BY DEFAULT AS IDENTITY MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 1 NOCACHE NOORDER NOCYCLE NOT NULL ENABLE,
"INNER_NAME" VARCHAR2(255 CHAR) NOT NULL ENABLE,
"DISPLAY_NAME" VARCHAR2(255 CHAR) NOT NULL ENABLE
) SEGMENT CREATION IMMEDIATE
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
NOCOMPRESS LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "CASHFLOW_TFSBUILD_CMS_BUILD1" ;

А затем
ALTER TABLE "SYS_FIELD_PROPERTY_TYPES" ADD CONSTRAINT "PK_SYS_FIELDPROPERTYTYPES_ID" PRIMARY KEY ("ID")
USING INDEX (CREATE UNIQUE INDEX "PK_SYS_FIELDPROPERTYTYPES_ID" ON "SYS_FIELD_PROPERTY_TYPES" ("ID")
PCTFREE 10 INITRANS 2 MAXTRANS 255
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "CASHFLOW_TFSBUILD_CMS_BUILD1" ) ENABLE;
...
Рейтинг: 0 / 0
После impdp primary keys в неверном состоянии
    #39621065
Sm1le2911
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sm1le2911,

Забыл, между ними еще вот это выполняется
ALTER TABLE "SYS_FIELD_PROPERTY_TYPES" MODIFY ("ID" GENERATED BY DEFAULT AS IDENTITY MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH LIMIT VALUE NOCACHE NOORDER NOCYCLE );
...
Рейтинг: 0 / 0
После impdp primary keys в неверном состоянии
    #39621082
Фотография Viewer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sm1le2911Охрименко,

Вот ddl этой таблицы, накатывается от владельца схемы

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
CREATE TABLE "SYS_FIELD_PROPERTY_TYPES" 
   (	"ID" NUMBER(*,0) GENERATED BY DEFAULT AS IDENTITY MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 1 NOCACHE  NOORDER  NOCYCLE  NOT NULL ENABLE, 
	"INNER_NAME" VARCHAR2(255 CHAR) NOT NULL ENABLE, 
	"DISPLAY_NAME" VARCHAR2(255 CHAR) NOT NULL ENABLE
   ) SEGMENT CREATION IMMEDIATE 
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
 NOCOMPRESS LOGGING
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "CASHFLOW_TFSBUILD_CMS_BUILD1" ;



А затем
Код: plsql
1.
2.
3.
4.
5.
6.
7.
ALTER TABLE "SYS_FIELD_PROPERTY_TYPES" ADD CONSTRAINT "PK_SYS_FIELDPROPERTYTYPES_ID" PRIMARY KEY ("ID")
  USING INDEX (CREATE UNIQUE INDEX "PK_SYS_FIELDPROPERTYTYPES_ID" ON "SYS_FIELD_PROPERTY_TYPES" ("ID") 
  PCTFREE 10 INITRANS 2 MAXTRANS 255 
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "CASHFLOW_TFSBUILD_CMS_BUILD1" )  ENABLE;


Забыл, между ними еще вот это выполняется
Код: plsql
1.
ALTER TABLE "SYS_FIELD_PROPERTY_TYPES" MODIFY ("ID" GENERATED BY DEFAULT AS IDENTITY MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH LIMIT VALUE NOCACHE NOORDER NOCYCLE );
...
Рейтинг: 0 / 0
После impdp primary keys в неверном состоянии
    #39621088
Sm1le2911
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Viewer,

спасибо!
...
Рейтинг: 0 / 0
После impdp primary keys в неверном состоянии
    #39621101
dmdmdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Из многоэтажной истории болезни я понял только, что вы сиквенсы пересоздаете.
Код: plsql
1.
"ID" GENERATED BY DEFAULT AS IDENTITY MINVALUE 1 


Ессно, они генерируют значения с 1.
...
Рейтинг: 0 / 0
После impdp primary keys в неверном состоянии
    #39621105
Sm1le2911
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmdmdm,

а как иначе? База на пустую схему накатывается
...
Рейтинг: 0 / 0
После impdp primary keys в неверном состоянии
    #39621106
dmdmdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В заголовке темы - impdp.
Иначе - это если по-нормальному - поручить все объекты ему. Он специально для этого предназначен.
...
Рейтинг: 0 / 0
После impdp primary keys в неверном состоянии
    #39621110
dmdmdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И простое правило не устану повторять.
Меньше отсебятины и описаний "своими словами".
Больше команд и листингов.
...
Рейтинг: 0 / 0
После impdp primary keys в неверном состоянии
    #39621113
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sm1le2911dmdmdm,

а как иначе? База на пустую схему накатывается

Поставить корректное начальное значение сиквенсу.
В крайнем случае, просто анонимный блок с FOR LOOP и домотать сиквенс до нужного значения

IMHO
...
Рейтинг: 0 / 0
После impdp primary keys в неверном состоянии
    #39621116
Sm1le2911
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmdmdm,
Это очевидный путь и как преполагалось быстрый, он не взошел.
Вот пример того что получается если я экспортирую таблицу в файл sql утилитой impdp. Видно что он перемапил все кроме "CF_TFS_CMS_DUMP_EXP_OU"."CONDITIONS_SEQ"
ТОже самое накатывается на базу, что с этим делать? Вы знаете другое решение?
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
CREATE TABLE "FOR_SCHEMA_REPLACE"."CONDITIONS" 
   (	"ID" NUMBER(10,0) DEFAULT "CF_TFS_CMS_DUMP_EXP_OU"."CONDITIONS_SEQ"."NEXTVAL" NOT NULL ENABLE, 
	"TITLE" VARCHAR2(255 CHAR) NOT NULL ENABLE, 
	"MODEL_VERSION_ID" NUMBER(10,0), 
	"TIMELINE_ID" NUMBER(10,0) NOT NULL ENABLE, 
	"CREATED" TIMESTAMP (6) NOT NULL ENABLE, 
	"CREATED_BY" NUMBER(10,0) NOT NULL ENABLE, 
	"MODIFIED" TIMESTAMP (6) NOT NULL ENABLE, 
	"MODIFIED_BY" NUMBER(10,0) NOT NULL ENABLE, 
	"ISDELETED" NUMBER(1,0) NOT NULL ENABLE
   ) SEGMENT CREATION DEFERRED 
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
 NOCOMPRESS LOGGING
  TABLESPACE "MODEL_VERSION_D" ;
...
Рейтинг: 0 / 0
После impdp primary keys в неверном состоянии
    #39621121
Sm1le2911
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev,

Ну преполагается что это DevOps и дамп должен автоматически создаваться, а выходит это невозможно. Нужно узнать, сколько записей в таблице, потом открыть файлик, найти сиквенс поменять в нем значение. Не кажется вам что это как-то несерьезно для такого продукта как оракл?
...
Рейтинг: 0 / 0
После impdp primary keys в неверном состоянии
    #39621124
dmdmdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
экспортирую таблицу в файл sql утилитой impdp

Зачем в SQL ?
...
Рейтинг: 0 / 0
После impdp primary keys в неверном состоянии
    #39621127
Sm1le2911
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmdmdm,

Потому что при импорте на схему напрямую как раз таки и выскакивала ошибка с тем что он не может найти сиквенс
"CF_TFS_CMS_DUMP_EXP_OU"."CONDITIONS_SEQ"
хотя выбирался полный импорт, где был и этот сиквенс и эта таблица.
...
Рейтинг: 0 / 0
После impdp primary keys в неверном состоянии
    #39621131
dmdmdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот давайте и начнем с параметров экспорта/импорта. Чтобы попытаться решить задачу штатными средствами.
У меня обычно посхемной перекачки не требуется. REMAP пробовал 1 или 2 раза.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
USERID=system/qqq@DMASLOV
DUMPFILE=DMASLOV.dmp
DIRECTORY=backup
LOGFILE=export_DMASLOV.log
FULL=Y
EXCLUDE=SCHEMA:"IN ('SYSTEM', 'OUTLN', 'DIP', 'TSMSYS', 'DBSNMP', 'CTXSYS', 'XDB', 'ANONYMOUS', 'MDSYS', 'HR', 'OLAPSYS', 'SYSMAN', 'AURORA$JIS$UTILITY$', 'AURORA$ORB$UNAUTHENTICATED', 'OSE$HTTP$ADMIN', 'TRACESVR', 'ORDDATA', 'SCOTT')"
EXCLUDE=SCHEMA:"LIKE 'APEX%'"
EXCLUDE=SCHEMA:"LIKE 'FLOWS%'"


USERID=system/qqq@DMASLOV
DUMPFILE=DMASLOV.dmp
DIRECTORY=backup
LOGFILE=import_DMASLOV.log
FULL=Y
EXCLUDE=SCHEMA:"IN ('SYSTEM', 'OUTLN', 'DIP', 'TSMSYS', 'DBSNMP', 'CTXSYS', 'XDB', 'ANONYMOUS', 'MDSYS', 'HR', 'OLAPSYS', 'SYSMAN', 'AURORA$JIS$UTILITY$', 'AURORA$ORB$UNAUTHENTICATED', 'OSE$HTTP$ADMIN', 'TRACESVR', 'ORDDATA', 'SCOTT')"
EXCLUDE=SCHEMA:"LIKE 'APEX%'"
EXCLUDE=SCHEMA:"LIKE 'FLOWS%'"

...
Рейтинг: 0 / 0
После impdp primary keys в неверном состоянии
    #39621139
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IMHO N1

Он и так, обычно, все корректно создает.

Если что-то создаете или накатываете руками (в данном случае SQL для сиквенсов) - то тут уже это Ваши проблемы и исключительно кривизна Ваших рук.

Мы попросили выгрузить ОПИСАНИЕ сиквенсов. Oracle их выгрузил. То, что их нужно "доматывать" потому что Вы потом ОТДЕЛЬНО данные решили загрузить - ну так это Ваши проблемы )))

IMHO N2

Написать на PL/SQL генерацию SQL для сиквенсов (или с изменение START WITH, или без изменения START WITH но тогда "доматывать").... ну как бы не особо большая проблема. Минут на 15-30

Нужно узнать, сколько записей в таблице, потом открыть файлик, найти сиквенс поменять в нем значение.

Сколько записей в таблице - знать не надо. Можно при генерации SQL у сиквенса его текущее значение спросить.

p.s. про корректную / не очень корректную работу REMAP ничего не знаю. Не сталкивался.
...
Рейтинг: 0 / 0
После impdp primary keys в неверном состоянии
    #39621144
Sm1le2911
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmdmdm,

Ну если на ту же самую схему то и нет никаких проблем, согласен.
Вот с полным набором аргументов
"xxxx/yyyyy@SBT directory=TEST_DIRECTORY DUMPFILE=dump11.dmp flashback_time=systimestamp LOGFILE=$logName SCHEMAS=CF_TFS_CMS_DUMP_EXP_OU Exclude=GRANT Exclude=DB_LINK CONTENT=ALL"
...
Рейтинг: 0 / 0
После impdp primary keys в неверном состоянии
    #39621157
Фотография Viewer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не пробовали экспорт сделать как владелец экспортируемой схемы, а импрот как владелец схемы в которую импортируешь?
В классическом exp, если экспорт выполнял владелец схемы - то в дамп владелец объектов не записывался, и при импорте другим пользователем все объекты попадали в схему импортирующего.
Как с этим обстоит у data pump - не проверял.
...
Рейтинг: 0 / 0
После impdp primary keys в неверном состоянии
    #39621159
Sm1le2911
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Viewer,

нет, сейчас попробую, в таком случае remap не понадобится получается?
...
Рейтинг: 0 / 0
После impdp primary keys в неверном состоянии
    #39621166
Фотография Viewer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Очень даже может быть. По крайней мере то, что при экспорте собственой схемы можно опустить оптцию SCHEMAS - даёт на это надежду..
...
Рейтинг: 0 / 0
25 сообщений из 46, страница 1 из 2
Форумы / Oracle [игнор отключен] [закрыт для гостей] / После impdp primary keys в неверном состоянии
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]