Автор Тема: Дъмп на Oracle схема [решено - заобиколено]  (Прочетена 8348 пъти)

victim70

  • Напреднали
  • *****
  • Публикации: 454
  • Distribution: Gentoo, Ubuntu
  • Window Manager: Kde Xfce
    • Профил
Имам следният проблем:
Опитвам се да дъмпна схемата до която имам достъп през sqlplus. Обаче дъмпа трябва да е във sql формата а не бинарният оракълски формат. Също така ми се иска в дъмпа да съществуват и функциите и процедурите които съм писал. Горе долу както го генерира за постгре pg_dump формата.
Целта е да прехвърля част от функциите и таблиците да работят локално на 2 машини, в случая когато се скапе мрежата към оракълският клъстера, за да не спира производствените логове.
Програма за синхронизиране и превключване на даните вече съм написал и тествал, обаче администратора на оракъл сървера е болен от вчера за минимум 3 седмици и немога да си сваля схемата за да я ъпдейтна на двата сървера, винаги стигам до двоичен дъмп, а той ми даваше SQL дъмп който с малко корекции на процедурите и полетата за дата се импортва лесно в локалното постгре.
Положението е напечено защото в базите не ми е силата, само ги ползвам, а мениджмънта не го разбира. За тях дали е драйвер, web апликация или база данни е все едно - нали си програмист.
« Последна редакция: Mar 18, 2012, 18:29 от victim70 »
Активен

"Господи, дай ми сила да променя нещата които немога да приема,
дай ми търпение да приема нещата които не мога да променя,
и ми дай мъдрост, да правя разликата между двете"

radoulov

  • Напреднали
  • *****
  • Публикации: 116
    • Профил
Re: Дъмп на Oracle схема
« Отговор #1 -: Mar 10, 2012, 00:32 »
Пробвай с тези GUI tools (не sqlplus):

1. TOAD (commercial)
2. Oracle SQL Developer (free)



Активен

victim70

  • Напреднали
  • *****
  • Публикации: 454
  • Distribution: Gentoo, Ubuntu
  • Window Manager: Kde Xfce
    • Профил
Re: Дъмп на Oracle схема
« Отговор #2 -: Mar 10, 2012, 08:57 »
Проблема е че, домеин контролера не ми позволява да инсталирам нищо. За да кача нещо - каквото и да е ми трябва администратора, а той е в болница. Имам само tora и sqlplus.
tora се троши много често а през sqlplus (оръкал клиент) стигам само до двоичен дъмп, а ми трябва дъмп в SQL формат и то само на мойта схема.
Благодаря за Oracle SQL Developer  [_]3  [_]3  [_]3 . Не знаех че има такъв тул. При първа възможност ще го кача и на служебният компютър.
« Последна редакция: Mar 10, 2012, 09:08 от victim70 »
Активен

"Господи, дай ми сила да променя нещата които немога да приема,
дай ми търпение да приема нещата които не мога да променя,
и ми дай мъдрост, да правя разликата между двете"

radoulov

  • Напреднали
  • *****
  • Публикации: 116
    • Профил
Re: Дъмп на Oracle схема
« Отговор #3 -: Mar 10, 2012, 09:14 »
Разбирам.
Аз лично бих пробвал първо с TORA (трябва да има някъде export/unload в текстов формат).
Имай предвид, че Oracle SQL Developer трябва само да се копира, за да работи (не използва обичайните Windows installers).

Иначе DDL-може да бъде извлечен чрез get_ddl:

Чрез sqlplus

Код:
SET LONG 10000

SELECT dbms_metadata.get_ddl('TABLE', '<YOUR_TABLENAME>')
FROM DUAL;

SELECT dbms_metadata.get_ddl('VIEW', '<YOUR_VIEW_NAME>')
FROM DUAL;

...

Прочети това за ascii dump на данните:

http://tkyte.blogspot.com/2009/10/httpasktomoraclecomtkyteflat.html
Активен

victim70

  • Напреднали
  • *****
  • Публикации: 454
  • Distribution: Gentoo, Ubuntu
  • Window Manager: Kde Xfce
    • Профил
Re: Дъмп на Oracle схема
« Отговор #4 -: Mar 10, 2012, 09:37 »
tora краши постоянно ако и дадеш заявка с голям изход. А иначе таблиците които се ползват са грубо около 40 и толкова изгледа и има около 40 записани процедури.
Процедурите са прости от по 10-30 реда но немога без тях а всяка таблица, изглед, процедура, тригер, и т.н.т да я листвам във файл е малко гадно.
Достатъчен проблем са ми сикуенсите (то те са намазани в същност персонално със моето любезно съдействие и за това искам да експортна свежо копие).
В програмата за синхронизиране бях обявил грешно променлива като int без да ползвам OCI дефинициите, която е long long
Активен

"Господи, дай ми сила да променя нещата които немога да приема,
дай ми търпение да приема нещата които не мога да променя,
и ми дай мъдрост, да правя разликата между двете"

bubu

  • Напреднали
  • *****
  • Публикации: 113
    • Профил
Re: Дъмп на Oracle схема
« Отговор #5 -: Mar 13, 2012, 23:23 »
Тука във един друг форум пише, че може дъмп-а да го пуснеш през strings и така е възможно да го вземеш в sql формат.
Активен

dilyan

  • Напреднали
  • *****
  • Публикации: 186
  • Distribution: Debian, OpenBSD
  • Window Manager: Gnome, xfce
    • Профил
Re: Дъмп на Oracle схема
« Отговор #6 -: Mar 14, 2012, 15:51 »
exp user/pass@instance full=y file=file_name log=x.log

би трябвало да свърши работа.
Активен

victim70

  • Напреднали
  • *****
  • Публикации: 454
  • Distribution: Gentoo, Ubuntu
  • Window Manager: Kde Xfce
    • Профил
Re: Дъмп на Oracle схема
« Отговор #7 -: Mar 14, 2012, 19:58 »
exp user/pass@instance full=y file=file_name log=x.log

би трябвало да свърши работа.
Така става ако имам достъп до сървера. Проблема е че скоро няма да има кой да го извърши а аз нямам и достъп до шел. Имам достъп като system обаче това не помага. А таблиците функциите и изгледите са твърде много за да щракам всяка една на ръка и се ъпдейтват постоянно. За шастие тази седмица все още няма пропадания но статистиката сочи че на 2 седмици има по 3-4 пропадания за по 10-ина минути.
Трябва нещо да правя че другата остава малко време преди да се случи статистически нещо.
Активен

"Господи, дай ми сила да променя нещата които немога да приема,
дай ми търпение да приема нещата които не мога да променя,
и ми дай мъдрост, да правя разликата между двете"

romeo_ninov

  • Напреднали
  • *****
  • Публикации: 2155
    • Профил
Re: Дъмп на Oracle схема
« Отговор #8 -: Mar 14, 2012, 20:43 »
exp user/pass@instance full=y file=file_name log=x.log

би трябвало да свърши работа.
Така става ако имам достъп до сървера. Проблема е че скоро няма да има кой да го извърши а аз нямам и достъп до шел. Имам достъп като system обаче това не помага. А таблиците функциите и изгледите са твърде много за да щракам всяка една на ръка и се ъпдейтват постоянно. За шастие тази седмица все още няма пропадания но статистиката сочи че на 2 седмици има по 3-4 пропадания за по 10-ина минути.
Трябва нещо да правя че другата остава малко време преди да се случи статистически нещо.
това става ако имаш инсталиран целия клиент
https://forums.oracle.com/forums/thread.jspa?threadID=1021678
Активен

0x2B|~0x2B

victim70

  • Напреднали
  • *****
  • Публикации: 454
  • Distribution: Gentoo, Ubuntu
  • Window Manager: Kde Xfce
    • Профил
Re: Дъмп на Oracle схема
« Отговор #9 -: Mar 14, 2012, 23:19 »
Няма го в клиента. Само в сървера го има. Имам инсталиран Oracle instant client basic и sqlplus. Без администратора немога да инсталирам нищо. При всяко такова изпълнение домейн контролера ме реже и спирам да имам достъп до услуги в мрежата, докато не върна статуса на инсталацията такава каквато е записана.
Този тъп контролер е наложен заради Вин потребителите, но обхваща и линукските компютри.

//офф
На админите трябва да се забрани да ходят на ски и други адреналинови мероприятия според мене. И специален курс на тема 'как да не съм параноик поне един ден'
Активен

"Господи, дай ми сила да променя нещата които немога да приема,
дай ми търпение да приема нещата които не мога да променя,
и ми дай мъдрост, да правя разликата между двете"

radoulov

  • Напреднали
  • *****
  • Публикации: 116
    • Профил
Re: Дъмп на Oracle схема
« Отговор #10 -: Mar 14, 2012, 23:23 »
Може би нещо изпускам,
ама, както казах, Oracle SQL Developer
не изисква инсталация и има wizard за export
(който включва и това, което искаш).
Активен

romeo_ninov

  • Напреднали
  • *****
  • Публикации: 2155
    • Профил
Re: Дъмп на Oracle схема
« Отговор #11 -: Mar 14, 2012, 23:34 »
Няма го в клиента. Само в сървера го има. Имам инсталиран Oracle instant client basic и sqlplus. Без администратора немога да инсталирам нищо. При всяко такова изпълнение домейн контролера ме реже и спирам да имам достъп до услуги в мрежата, докато не върна статуса на инсталацията такава каквато е записана.
Този тъп контролер е наложен заради Вин потребителите, но обхваща и линукските компютри.

//офф
На админите трябва да се забрани да ходят на ски и други адреналинови мероприятия според мене. И специален курс на тема 'как да не съм параноик поне един ден'
Пак да повторя, трябва ви целия клиент или друг софтуер, както ви предложиха sqldeveloper, който само се дезархивира. изтеглете си го със джава машината за да не се мъчите с тази с отворен код (която вероятно имате инсталирана)
А по повод параноята - сигурността трябва да помага на бизнеса, не да му пречи, това научете вашия админ и вашия шеф
Активен

0x2B|~0x2B

MairJ

  • Участници
  • ***
  • Публикации: 3
    • Профил
Re: Дъмп на Oracle схема
« Отговор #12 -: Mar 15, 2012, 00:33 »
Здравей,

Не си споменал никъде коя версия е Оракъл и платформата.
До колкото разбрах искаш само да имаш DDL на всички обекти в определена схема.
Има два бързи варианта:
1.Да извадиш всички DDL.Мета-скрипта ще ти даде команди как да извадиш всеки един обект в желаната схемата след като го пуснеш.
set pages 10000
set head off
set lines 1000
set long 30000
set feedback off
select 'select dbms_metadata.get_ddl('''||object_type||q'!','!'||object_name||q'!','!'||owner||q'!') from dual;!'
from dba_objects
where owner='SCHEMA_OWNER'
/

2.Това което ползва Оракъл ДБА е expdp CONTENT=METADATA_ONLY  и след това impdp SQLFILE.

Активен

romeo_ninov

  • Напреднали
  • *****
  • Публикации: 2155
    • Профил
Re: Дъмп на Oracle схема
« Отговор #13 -: Mar 15, 2012, 07:11 »
....
2.Това което ползва Оракъл ДБА е expdp CONTENT=METADATA_ONLY  и след това impdp SQLFILE.
impdp/expdp т.е. Data Pump го има в 10 и по-горни версии
Активен

0x2B|~0x2B

radoulov

  • Напреднали
  • *****
  • Публикации: 116
    • Профил
Re: Дъмп на Oracle схема
« Отговор #14 -: Mar 15, 2012, 22:34 »

....
2.Това което ползва Оракъл ДБА е expdp CONTENT=METADATA_ONLY  и след това impdp SQLFILE.

DP изисква достъп до host-а ...
Освен това, с metadata_only, разбира се, няма да може да импортира данните.
Активен