Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Перенос данных через dblink  [new]
KoTTT
Member

Откуда: Екб
Сообщений: 1511
Есть необходимость скопировать всю базу (~3 Тб) на другой сервер (тестовую сделать).
Эксп-имп не канает, т.к. просто нет столько свободного места нигде. С бэкапа боевой поднимать тоже не вариант. Ну в общем суть не в этом. Решил просто создать структуру базы в тестовом инстансе и через дблинк перетянуть все данные.
Если делать
insert /*+append*/ into ... select * from ...@dblink;
то табличка в 2.4 млн. записей переливается за 120 секунд.
Профиль ожиданий:
Event Name                                  % Time       Seconds      Calls          Avg         Min         Max
----------------------------------------  --------  ------------  ---------  ----------- ----------- -----------
EXEC calls [CPU]                             98.6%     118.7200s        226      0.5253s     0.0000s   118.1100s
SQL*Net more data from dblink                 2.2%       2.6434s     21,574      0.0001s     0.0000s     0.0257s
FETCH calls [CPU]                             0.5%       0.5900s      5,478      0.0001s     0.0000s     0.0100s
Если замудрить через
declare
cursor c is select * from ...@dblink;
....
begin
   open c;
   fetch c bulk collect into... limit 100
   forall ...
      insert into ...
...
end;
то вставка идет 90 секунд.
Event Name                                  % Time       Seconds      Calls          Avg         Min         Max
----------------------------------------  --------  ------------  ---------  ----------- ----------- -----------
FETCH calls [CPU]                            66.2%      59.0100s     23,842      0.0024s     0.0000s     0.0200s
SQL*Net message from dblink                  23.3%      20.7172s     23,832      0.0008s     0.0006s     0.0051s
unaccounted-for time                          9.3%       8.2932s
SQL*Net more data from dblink                 1.0%       0.9208s      9,717      0.0000s     0.0000s     0.0003s
SQL*Net message to dblink                     0.1%       0.0863s     23,835      0.0000s     0.0000s     0.0001s
Увеличиваем limit до 1000 - 60 секунд.
Event Name                                  % Time       Seconds      Calls          Avg         Min         Max
----------------------------------------  --------  ------------  ---------  ----------- ----------- -----------
FETCH calls [CPU]                            89.8%      53.0300s      2,384      0.0222s     0.0000s     0.0400s
SQL*Net message from dblink                   4.1%       2.4192s      2,385      0.0010s     0.0007s     0.0016s
SQL*Net more data from dblink                 3.9%       2.2819s     20,945      0.0001s     0.0000s     0.0003s
unaccounted-for time                          2.1%       1.2641s

Порядок проведения тестов картины не меняет.
Одиночный
select /*+full(a)*/ * from ...@dblibk a order by 1,2,3...;
выполняется 10 секунд.
Как это понимать? И что за какой-то странный "EXEC calls [CPU]" в первом варианте?
Оракл с обеих сторон 9.2.0.8 на солярисе 8.
И с такой скоростью 3 Тб страшно подумать, сколько времени будут переливаться...
30 июн 08, 05:03    [5863062]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных через dblink  [new]
Isaev
Member

Откуда: Нижневартовск
Сообщений: 172
KoTTT

Эксп-имп не канает, т.к. просто нет столько свободного места нигде.

Через pipe можно лить.
KoTTT

С бэкапа боевой поднимать тоже не вариант.

ИХМО duplicate самое то...
30 июн 08, 11:02    [5863643]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных через dblink  [new]
KoTTT
Member

Откуда: Екб
Сообщений: 1511
Isaev
KoTTT

Эксп-имп не канает, т.к. просто нет столько свободного места нигде.

Через pipe можно лить.
KoTTT

С бэкапа боевой поднимать тоже не вариант.

ИХМО duplicate самое то...

Через пайп по сетке? 3Тбайтную базу? Любой чих - и все начинать сначала? Или не все так плохо?
С бэкапа - не вариант, т.к. в тестовая база должны быть не полной копией боевой. Т.е. кое-что там не нужно (и этого ненужного хлама там еще N Тб...). А данные все в 1 TS лежат. Ну и места на тестовом сервере в обрез. Сразу не написал, сорри.
30 июн 08, 11:28    [5863821]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных через dblink  [new]
Isaev
Member

Откуда: Нижневартовск
Сообщений: 172
KoTTT
Isaev
KoTTT

Эксп-имп не канает, т.к. просто нет столько свободного места нигде.

Через pipe можно лить.
KoTTT

С бэкапа боевой поднимать тоже не вариант.

ИХМО duplicate самое то...

Через пайп по сетке? 3Тбайтную базу? Любой чих - и все начинать сначала? Или не все так плохо?
С бэкапа - не вариант, т.к. в тестовая база должны быть не полной копией боевой. Т.е. кое-что там не нужно (и этого ненужного хлама там еще N Тб...). А данные все в 1 TS лежат. Ну и места на тестовом сервере в обрез. Сразу не написал, сорри.

По dblink'у, я так понимаю, тоже не по воздуху перелетит.
Данные не из всех таблиц нужны ?
3Тб это то что нужно реально перенести?
30 июн 08, 11:49    [5863969]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных через dblink  [new]
KoTTT
Member

Откуда: Екб
Сообщений: 1511
Isaev
По dblink'у, я так понимаю, тоже не по воздуху перелетит.
Данные не из всех таблиц нужны ?
3Тб это то что нужно реально перенести?

По dblink-у я смогу хоть нормально контролировать процесс. Переносить по таблицам, по секциям, вести лог и т.п. В случае чего - перенести то, что не перенеслось. А в случае эксп-имп - все сложнее...
3Тб - это то, что нужно перенести. Почти 3000 таблиц.
30 июн 08, 11:53    [5863988]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных через dblink  [new]
KoTTT
Member

Откуда: Екб
Сообщений: 1511
Собственно суть-то моего вопроса была не в том, как именно лучше сделать тестовую базу, а почему такое поведение в разных вариантах из первого поста. Если все молчат, то потяну базу таким медленным макаром... Причем уже пофиг, что insert ... select ... медленнее. Лень писать процедуру переливки через bulk collect...
1 июл 08, 05:07    [5867344]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных через dblink  [new]
Relic Hunter
Member

Откуда: AB
Сообщений: 7438
KoTTT
Есть необходимость скопировать всю базу (~3 Тб) на другой сервер (тестовую сделать).И с такой скоростью 3 Тб страшно подумать, сколько времени будут переливаться...
Купите нормальный сторедж...
1 июл 08, 05:54    [5867353]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных через dblink  [new]
KoTTT
Member

Откуда: Екб
Сообщений: 1511
Relic Hunter
KoTTT
Есть необходимость скопировать всю базу (~3 Тб) на другой сервер (тестовую сделать).И с такой скоростью 3 Тб страшно подумать, сколько времени будут переливаться...
Купите нормальный сторедж...

Оно есть. Но они разные. На одном как раз боевая, на другом много всякого и в том числе место под тестовую.
1 июл 08, 05:57    [5867355]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных через dblink  [new]
Relic Hunter
Member

Откуда: AB
Сообщений: 7438
KoTTT
Оно есть. Но они разные. На одном как раз боевая, на другом много всякого и в том числе место под тестовую.
Не... Должно быть на одном. Не достаточно места - добавляем дисковые полки и все. "Голова" одна должна быть.
1 июл 08, 06:05    [5867356]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных через dblink  [new]
KoTTT
Member

Откуда: Екб
Сообщений: 1511
Relic Hunter
KoTTT
Оно есть. Но они разные. На одном как раз боевая, на другом много всякого и в том числе место под тестовую.
Не... Должно быть на одном. Не достаточно места - добавляем дисковые полки и все. "Голова" одна должна быть.

Наверное, согласен. Но уж так сейчас есть.
Сейчас меня интересует вопрос почему такая ситуация с ожиданиями и скоростью переливки по дблинку.
:-)
1 июл 08, 06:10    [5867360]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных через dblink  [new]
Relic Hunter
Member

Откуда: AB
Сообщений: 7438
KoTTT

Наверное, согласен. Но уж так сейчас есть.
Сейчас меня интересует вопрос почему такая ситуация с ожиданиями и скоростью переливки по дблинку.
:-)
Энтузиазм все это, уж простите...
1 июл 08, 06:17    [5867362]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных через dblink  [new]
KoTTT
Member

Откуда: Екб
Сообщений: 1511
Relic Hunter
KoTTT

Наверное, согласен. Но уж так сейчас есть.
Сейчас меня интересует вопрос почему такая ситуация с ожиданиями и скоростью переливки по дблинку.
:-)
Энтузиазм все это, уж простите...

Ну не голый энтузиазм.
Есть текущая конкретная ситуация со своими условиями.
И есть задача, которую нужно выполнить. Вот и стараюсь как-то решить проблему.
1 июл 08, 06:22    [5867365]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных через dblink  [new]
Nuri
Member

Откуда: Архангельск
Сообщений: 625
Все-таки, почему exp-imp не канает? ведь сами сказали, не одна таблица, а 3000. частями переносите...
1 июл 08, 10:23    [5867932]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных через dblink  [new]
KoTTT
Member

Откуда: Екб
Сообщений: 1511
Nuri
Все-таки, почему exp-imp не канает? ведь сами сказали, не одна таблица, а 3000. частями переносите...

На серверах нет свободного места в файловых системах. Ну если есть, то гигов 100 максимум. Таблиц хоть и 3000, но бОльшую часть из 3Тб занимают 3-4 штуки.
В общем я думал упростить себе жизнь, не заморачиваясь с импортом частями.
Теперь видимо, пересмотрю свои предположения.

Однако же: тот же самый insert... select... из первого поста на двух других серверах (взял два первых попавшихся - на 9.2 и 10.2) выполняется за 10-12 секунд. Т.е. ровно столько, сколько и простой select...

Только что проверил и задумался....

PS. В sqlnet.ora на тестовом сервере стоит TCP.NODELAY = YES.
1 июл 08, 10:57    [5868130]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных через dblink  [new]
Nuri
Member

Откуда: Архангельск
Сообщений: 625
Все равно надо доп. сторадж покупать. без этого только гимор поимеете и ничего больше. на персоналку пару 500 гиговых винтов поставьте, они дешевы нынче :) и через нее гоняйте.
1 июл 08, 11:08    [5868203]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных через dblink  [new]
KoTTT
Member

Откуда: Екб
Сообщений: 1511
А симптомы очень похожи на баги 3375301 и 3305586 и еще целую кучу..... Точно так же жрется CPU, так же медленно идет вставка и т.п.
Вот зараза.
1 июл 08, 12:04    [5868545]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить