|
перенос базы данных [Oracle]
|
|||
---|---|---|---|
#18+
Всем привет. Есть задача - необходимо перенести базу данных на другой сервер, проблема в том, что на новом сервере только 1 tablespace под индексы и еще 1 под таблицы. На старом сервере их порядка 1к. В системе есть авторизация пользователей, каждый пользователь сделан как отдельная схема. Каким образом лучше всего перенести правильно? Сможет ли Toad сделать export отдельно схем вместе с паролем доступа? Или делать полный expdp, потом на новом impdp и уже потом исправлять все индексы? Или генерация кода через тоад, исправление tablespace, импорт структуры, исправление индексов, импорт данных? Я еще боюсь за индексные таблицы, их порядка 130 штук. У кого есть опыта такого подхода? Как правильно организовать работу с минимальным простоем для пользователей? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2018, 01:11 |
|
перенос базы данных [Oracle]
|
|||
---|---|---|---|
#18+
DieTry, Есть несколько вариантов: 1. поднять еще один инстанс БД на новом сервере, запихать туда БД со старого сервера, если платформы одинаковы 2. Воспользоваться утилитами exPdp/impdp Описание По мне 2 вариант предпочтительней. Но все зависит от размеров. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2018, 03:21 |
|
перенос базы данных [Oracle]
|
|||
---|---|---|---|
#18+
Для 2 варианта, предварительно необходимо сделать необходимые табличные пространства, как на старом сервере. Выполнить по схемный (можно все схемы скопом) экспорт в несколько потоков. Затем пере собрать взаимозависимые индексы и пакеты. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2018, 03:28 |
|
перенос базы данных [Oracle]
|
|||
---|---|---|---|
#18+
DieTry, Если уровень знаний не позволяет оценить масштаб трагедии, если есть страх что-то забыть перенести или потерять внутреннюю экзотику, то , возможно, вам поможет клонирование базы ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2018, 04:30 |
|
перенос базы данных [Oracle]
|
|||
---|---|---|---|
#18+
Дмитрий ДальнийДля 2 варианта, предварительно необходимо сделать необходимые табличные пространства, как на старом сервере. Выполнить по схемный (можно все схемы скопом) экспорт в несколько потоков. Затем пере собрать взаимозависимые индексы и пакеты.создавать полный набор табличных пространств - совершенно необязательный шаг. перенос возможен и в единственное доступное табличное пространство... посхемный экспорт-импорт, конечно, интересная вещь, но тогда, как минимум, нужно отследить взаимосвязи между схемами, чтобы не "просрать" гранты, как минимум. про "взаимозависимые индексы" не совсем понятно, что имели ввиду? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2018, 04:33 |
|
перенос базы данных [Oracle]
|
|||
---|---|---|---|
#18+
Щукина Анна, По схемный импорт гранты просрешь, так как если есть опыт то выгрузишь гранты отдельно. Взаимосвязанные - неверное слово подобрал, для экзотики класса доменных. По табличным пространствам, наверно кто делал разные табличные чем-то думал. Так как сейчас в эксплуатации есть БД, где об этом не думали от слова совсем, и сейчас уперлись в размер ТБ, с блоком 8к :( . Хотя может быть весь этот спичь не о чем, так как база только метаданные и малые справочники, и она весит единицы гб. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2018, 05:47 |
|
перенос базы данных [Oracle]
|
|||
---|---|---|---|
#18+
уперлись в размер ТБ, с блоком 8к :( Не понятно - не можете добавить датафайл к ТБ? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2018, 06:48 |
|
перенос базы данных [Oracle]
|
|||
---|---|---|---|
#18+
Дмитрий Дальний, Или вы рассказчик так себе, или я - слушатель не очень, но сумбур вашей мысли понятен всё меньше... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2018, 07:07 |
|
перенос базы данных [Oracle]
|
|||
---|---|---|---|
#18+
нужные схемы занимают порядка 2гб, а вот есть схема для старого софта, там порядка 50гб. Хотелось бы импортировать в новую базу именно нужные схемы, но как быть с паролями подключения? Так как схем очень много, создавать вручную каждую схему не вариант, да и не везде пароль помню, надо искать в коде. Toad разве не умеет делать экспорт со всеми грантами? Вот только как экспортнуть всю схему с паролем подключения. Т.е. наиболее оптимальный вариант сделать full expdp и на новом сервере импортнуть? Инстанс на новой бд сделал с такими же настройками. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2018, 10:35 |
|
перенос базы данных [Oracle]
|
|||
---|---|---|---|
#18+
DieTry, скрипт генерации команды на создание пользователей легко собирается по словарю. пароль помнить необязательно, в словаре храниться хэш - этого вполне себе достаточно. главное, при создании пользователей помнить про identified by values. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2018, 11:10 |
|
перенос базы данных [Oracle]
|
|||
---|---|---|---|
#18+
DieTryТ.е. наиболее оптимальный вариант сделать full expdp и на новом сервере импортнуть? Инстанс на новой бд сделал с такими же настройками.критерии оптимальности озвучьте. так-то "на вкус и цвет все фломастеры разные"(с). как по мне, клонировать базу и выкинуть лишнее - в разы проще, чем по крупицам собирать и переносить нужное. а с учетом ваших вопросов - всё больше опасаюсь за то, что при частичном переносе вы чего-нибудь, да забудете перенести... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2018, 11:13 |
|
перенос базы данных [Oracle]
|
|||
---|---|---|---|
#18+
DieTry Как правильно организовать работу с минимальным простоем для пользователей?сделать стэндбай, синхронизировать его с примари и переключить в один момент, когда придет время... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2018, 11:15 |
|
перенос базы данных [Oracle]
|
|||
---|---|---|---|
#18+
Какие-то уж очень изощренные варианты предлагаются. В чем проблема просто использовать schema mode у datapump и переопределить ТБС с помощью remap_tablespace? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2018, 11:33 |
|
перенос базы данных [Oracle]
|
|||
---|---|---|---|
#18+
alwan, собственно, этот вариант и предлагался самым первым. Но ТС хочет всё упорно через ТОАД сделать. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2018, 11:35 |
|
перенос базы данных [Oracle]
|
|||
---|---|---|---|
#18+
Щукина Аннаalwan, собственно, этот вариант и предлагался самым первым . Но ТС хочет всё упорно через ТОАД сделать.всё же - самым вторым ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2018, 11:36 |
|
перенос базы данных [Oracle]
|
|||
---|---|---|---|
#18+
DieTry, пусть промышленная БД работает пока на старом сервере. Представьте себе, что новый сервер - это тестовый сервер, если нет других серверов. Читайте документацию Oracle (это обязательное условие) и тренируйтесь на тестовом сервере переносить Бд разными способами. Как научитесь, тогда уже начинайте думать о переносе промышленной БД на новый сервер. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2018, 11:43 |
|
перенос базы данных [Oracle]
|
|||
---|---|---|---|
#18+
landyуперлись в размер ТБ, с блоком 8к :( Не понятно - не можете добавить датафайл к ТБ? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2018, 12:28 |
|
перенос базы данных [Oracle]
|
|||
---|---|---|---|
#18+
Дмитрий Дальнийlandyпропущено... Не понятно - не можете добавить датафайл к ТБ? Извиняюсь за косяк, не туда нажал. Файлов в этом ТБ 1023 шт, каждый размером под жвак. В общем не добавить, ни прибавить. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2018, 12:30 |
|
перенос базы данных [Oracle]
|
|||
---|---|---|---|
#18+
Щукина АннаДмитрий Дальний, Или вы рассказчик так себе, или я - слушатель не очень, но сумбур вашей мысли понятен всё меньше... Это я сумбурно объясняю. Но за стэдбай вам зачет ! ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2018, 12:31 |
|
перенос базы данных [Oracle]
|
|||
---|---|---|---|
#18+
Щукина Анна, не, я не настаивал на toad, просто есть проблема в том, что на сервере используются базы для erp системы и за сервер отвечает поддержка. Для меня они создали отдельный инстанс, просто могут не дать данные для подключения к самому сан-серверу. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2018, 12:46 |
|
перенос базы данных [Oracle]
|
|||
---|---|---|---|
#18+
Просто если бы был полностью под моим контролем сервер, то я бы перенес без проблем, но тут уже, может, надо подумать над другим подходом. Либо просить их, чтобы они сделали импорт бэкапа, а мне потом уже удалять и исправлять. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2018, 12:56 |
|
перенос базы данных [Oracle]
|
|||
---|---|---|---|
#18+
DieTry, На каких платформах исходная и целевая базы работают? Какой размер исходной БД? Они в пределах одного ЦОД-а? Какая скорость сети между ними? > Как правильно организовать работу с минимальным простоем для пользователей? GoldenGate или похожие (SharePlex, например). Но стоят они как крыло от боинга. При этом лицензируются ядра как на исходной, так и на целевой платформе. Ну или через кросс-платформенную файловую систему (например Veritas, что тоже дорого), это если платформы разные. Если одинаковые, то можно через перемонтирование файловых систем попробовать. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2018, 14:23 |
|
перенос базы данных [Oracle]
|
|||
---|---|---|---|
#18+
witteDieTry, На каких платформах исходная и целевая базы работают? Какой размер исходной БД? Они в пределах одного ЦОД-а? Какая скорость сети между ними? > Как правильно организовать работу с минимальным простоем для пользователей? GoldenGate или похожие (SharePlex, например). Но стоят они как крыло от боинга. При этом лицензируются ядра как на исходной, так и на целевой платформе. Ну или через кросс-платформенную файловую систему (например Veritas, что тоже дорого), это если платформы разные. Если одинаковые, то можно через перемонтирование файловых систем попробовать.GoldenGate можно использовать облачный. В этом случае цена будет очень гуманная, потому что купить его можно на время (месяц-два). Ну и лицензировать не по ядрам, а по коннектам. Простой реально нулевой можно сделать ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2018, 15:14 |
|
перенос базы данных [Oracle]
|
|||
---|---|---|---|
#18+
Alexander RyndinGoldenGate можно использовать облачный. В этом случае цена будет очень гуманная, потому что купить его можно на время (месяц-два). Ну и лицензировать не по ядрам, а по коннектам. Я правильно понимаю что я смогу использовать облачный GG на время миграции, при этом исходная и целевая платформы будут находится в клиентском ЦОД-е/ЦОД-ах? Или все-таки в рамках этого оффера придется мигрировать в облако? Если не сложно дайте пожалуйста ссылку на этот офферинг. Alexander RyndinПростой реально нулевой можно сделать Технически - да, согласен. Практически я этого ни на одном проекте не видел, т.к. нужна как минимум верификация того что мы все правильно утащили, переключение серверов приложений, принятие решения что "да, все в порядке и мы теперь на новой платформе" и т.п. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2018, 15:30 |
|
перенос базы данных [Oracle]
|
|||
---|---|---|---|
#18+
witteAlexander RyndinGoldenGate можно использовать облачный. В этом случае цена будет очень гуманная, потому что купить его можно на время (месяц-два). Ну и лицензировать не по ядрам, а по коннектам. Я правильно понимаю что я смогу использовать облачный GG на время миграции, при этом исходная и целевая платформы будут находится в клиентском ЦОД-е/ЦОД-ах? Или все-таки в рамках этого оффера придется мигрировать в облако? Если не сложно дайте пожалуйста ссылку на этот офферинг.Да. Более того, в рамках такой конфигурации данные не будут идти через облако, а будут передаваться внутри ЦОД заказчик или между ЦОДами. Реализуется это все с помощью Data Integration Platform Cloud witteAlexander RyndinПростой реально нулевой можно сделатьТехнически - да, согласен. Практически я этого ни на одном проекте не видел, т.к. нужна как минимум верификация того что мы все правильно утащили, переключение серверов приложений, принятие решения что "да, все в порядке и мы теперь на новой платформе" и т.п.1) Шаг верификации из простоя можно исключить с помощью Veridata. 2) Переключение серверов да, будет. Но это зависит от самого приложения. У кого-то это час. У кого-то секунды-минуты. 3) Время на принятие решения тоже можно убрать за счет обратной синхронизации данных. В этом вариант мы после того как смигрировали запускаем обратный поток. Т.е., по сути, делается switchover: старая платформа становится резервной, и дает нам возможность вернуться в экстренной ситуации ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2018, 16:16 |
|
перенос базы данных [Oracle]
|
|||
---|---|---|---|
#18+
Alexander Ryndin, Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2018, 16:30 |
|
перенос базы данных [Oracle]
|
|||
---|---|---|---|
#18+
подскажите, а как можно сделать remap_tablespace много в 1? допустим на новой бд у меня только 2 таблспэйса, один под индекс, а второй под все остальное. а в старой только под индекс 57 штук, и под таблицы 42, но есть одинаковые. Как мне указать при IMPDP, чтобы чтобы ремап был для всех 57 => 1. Или надо будет все 57 раз писать Код: plsql 1.
И более важный второй вопрос, как-нибудь можно при импорте написать условие, если это segment_type=index, значит делаем ремап для таких данных, если, например segment_type=table, значит используем ремпа для другого таблспэйса. Это связано с тем, что теперь есть таблспэйс, который используется для индексов и таблицы, а в новой бд необходимо разделить для индексов один, а для таблиц другой... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2018, 17:47 |
|
перенос базы данных [Oracle]
|
|||
---|---|---|---|
#18+
DieTryИли надо будет все 57 раз писать Ага, и 57 это еще не много)) но это несложно из словаря нагенерить, а запускать из файла параметров. Код: plsql 1.
DieTryесли это segment_type=index, значит делаем ремап для таких данных, если, например segment_type=table, значит используем ремпа для другого таблспэйса. Насколько я знаю, нет. Если не прав - меня поправят) Правильнее и легче будет привести расположение сегментов в порядок на источнике. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2018, 18:11 |
|
перенос базы данных [Oracle]
|
|||
---|---|---|---|
#18+
alwanПравильнее и легче будет привести расположение сегментов в порядок на источнике. я тоже об этом думал, но база рабочая, пока не хочется её трогать. Я быстренько восстановить в другую бд, проверить все ли ок, если сразу заремапаются таблспэйсы, то будет шикарно. И сразу запустить уже новую бд. Исправлять в старой уже пока нет времени :( ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2018, 18:18 |
|
перенос базы данных [Oracle]
|
|||
---|---|---|---|
#18+
alwanПравильнее и легче будет привести расположение сегментов в порядок на источнике. А если невозможно: IMPDP CONTENT=METADATA_ONLY SQLFILE=METADATA.SQL Редaктируешь METADATA.SQL. Выполняешь. Затем IMPDP CONTENT=DATA_ONLY SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2018, 18:27 |
|
перенос базы данных [Oracle]
|
|||
---|---|---|---|
#18+
Забыл: индексы, констрейнты, триггеры переводим в unusable/disable перед impdp content=data_only и в rebuild/enable после. SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2018, 18:33 |
|
перенос базы данных [Oracle]
|
|||
---|---|---|---|
#18+
SYЗабыл: индексы, констрейнты, триггеры переводим в unusable/disable перед impdp content=data_only и в rebuild/enable после. SY. спасибо. Вот только думаю, может проще при импорте сделать ремап все в 1 таблспэйс, а уже после запуска в работу бд потихоньку индексы переносить в другой. Так как теперь в быстром темпе надо все это сделать и слишком много работы получится, сначала выгрузить мета-данные, исправить на нужные, загрузить, отключить все зависимые объекты при импорте (индексы, триггеры...), затем импорт и включить. В спешке можно что-то пропустить. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2018, 19:34 |
|
перенос базы данных [Oracle]
|
|||
---|---|---|---|
#18+
вот только проблема в том, что надо будет писать remap_tablespace тысячу раз :) такое вообще правильно?) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2018, 19:42 |
|
перенос базы данных [Oracle]
|
|||
---|---|---|---|
#18+
DieTryвот только проблема в том, что надо будет писать remap_tablespace тысячу раз :) такое вообще правильно?) Если сгенерируешь SQLFILE то будет один global replace. SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2018, 21:09 |
|
перенос базы данных [Oracle]
|
|||
---|---|---|---|
#18+
еще уточнить хочу, что идет переход с enterprise to standart. обычный expdp/impdp пройдет успешно с full=y (по идеи должно быть ок, не выгрузится лишь лишнее)? Ведь есть разница в таблицах, или есть дополнительный параметр при использовании expdp/impdp? (знаю только есть параметра VERSION) Ну а если исключить системные, то как быть с хэшами паролей подключения? И еще вопрос выше, есть порядка тысячи необходимых ремапов tablespace, можно ли всех их перечислить при импорте? или есть ограничение? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2018, 21:12 |
|
перенос базы данных [Oracle]
|
|||
---|---|---|---|
#18+
SYDieTryвот только проблема в том, что надо будет писать remap_tablespace тысячу раз :) такое вообще правильно?) Если сгенерируешь SQLFILE то будет один global replace. SY. это да, просто появляется много проблем с переключением триггеров и прочее, так как импорт делают другие люди, придется в 2 захода все делать и ждать пока импортнут все мета-данные, потом я отрублю все триггера, индексы... потом опять ждать пока импортнут уже данные... Т.е. если бы было все в 1 руках, был бы сам хозяин, то без проблем, но тут другая ситуация ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2018, 21:14 |
|
перенос базы данных [Oracle]
|
|||
---|---|---|---|
#18+
единственный вариант я придумал, это как использовать parfile, туда запихнуть уже больше 1к таблспэйсов. Интересует еще момент, можно ли использовать запрос в параметрах impdp? Допустим такой синтаксис видел include=TABLE:"IN (SELECT tbl_name FROM list_of_tables)" А можно ли подобное использовать при импорте но в remap_tablespace? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2018, 22:50 |
|
перенос базы данных [Oracle]
|
|||
---|---|---|---|
#18+
А подскажите, при запуске expdp в каком состоянии должна находиться база данных? startup nomount? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2019, 08:59 |
|
|
start [/forum/topic.php?all=1&fid=52&tid=1882863]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
50ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
67ms |
get tp. blocked users: |
1ms |
others: | 361ms |
total: | 521ms |
0 / 0 |