Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / как восстановить... / 16 сообщений из 16, страница 1 из 1
14.06.2006, 15:52
    #33790629
lnkz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как восстановить...
благодаря своим кривым рукам перекомпилировал процедуру с абсолютно левым кодом... как можно восстановить?
кто подскажет буду очень благодарен..
...
Рейтинг: 0 / 0
14.06.2006, 15:56
    #33790645
tru55
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как восстановить...
Не очень понятен вопрос. Если был грубо заменен код и не осталось копии, то никак
...
Рейтинг: 0 / 0
14.06.2006, 15:57
    #33790647
lnkz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как восстановить...
ясн.. придется заново писать(
...
Рейтинг: 0 / 0
14.06.2006, 16:01
    #33790665
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как восстановить...
lnkz wrote:
> благодаря своим кривым рукам перекомпилировал процедуру с абсолютно
> левым кодом... как можно восстановить?
> кто подскажет буду очень благодарен..

Если еще не поздно и Oracle 9i , то:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
select text
from all_source as of timestamp (systimestamp - interval '3' hour)
where owner = :owner
   and name = :object_name
   and type = :object_type
order by name
        , type
        , line;

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
14.06.2006, 16:15
    #33790715
Takurava
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как восстановить...
А из архивлогов через логминер нельзя ничего достать?
...
Рейтинг: 0 / 0
14.06.2006, 16:43
    #33790840
Takurava
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как восстановить...
Да, вытащить можно, но только операторы по созданию:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
execute sys.DBMS_LOGMNR.ADD_LOGFILE ('/ebs/arch_0000000641_0001.log');
execute sys.DBMS_LOGMNR.START_LOGMNR;
select SQL_REDO from V$LOGMNR_CONTENTS where operation='DDL';

SQL_REDO
---------------------------------
create or replace procedure a as
begin
null;
end;
;
А в SQL_UNDO пусто...
...
Рейтинг: 0 / 0
14.06.2006, 16:46
    #33790857
lnkz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как восстановить...
не непомогает... возращает пустоту(
...
Рейтинг: 0 / 0
14.06.2006, 16:46
    #33790859
Takurava
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как восстановить...
А ты вспомни, когда создавал правильную процедуру и возьми оттуда...
...
Рейтинг: 0 / 0
14.06.2006, 16:48
    #33790867
lnkz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как восстановить...
блин всем спасибо восстановил!
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
19.06.2020, 11:06
    #39970790
kiki123
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как восстановить...
Zdravstvuite,

u menia takaja zhe problema.. No all_sources ne pomogaet. Pozdno. A po sovetu Takuravy ne umeju. Kak vsio zhe poluchilosj vosstanovitj? Esli mozhno, objasnite eshe raz..
...
Рейтинг: 0 / 0
19.06.2020, 11:25
    #39970797
kiki123
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как восстановить...
lnkz,

Здравствуйте,

у меня такая же проблема. Но all_sources не помогает. Поздно. А по совету Takuravy не умею. Если можно, обясните ещё раз..
...
Рейтинг: 0 / 0
19.06.2020, 12:17
    #39970823
ilyuha111
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как восстановить...
у были такие проблемы поставил такой триггер



Код: plsql
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.
37.
38.
39.
40.
-- Create table
create table T_DDL_LOG
(
  object_owner          VARCHAR2(150) not null,
  object_name           VARCHAR2(150) not null,
  object_type           VARCHAR2(150) not null,
  date_log              DATE not null,
  is_get_ddl_error_flag NUMBER not null,
  old_object_ddl        CLOB,
  ddl_command           CLOB
)
tablespace USERS
  pctfree 10
  initrans 1
  maxtrans 255
  storage
  (
    initial 25M
    next 1M
    minextents 1
    maxextents unlimited
  );
-- Add comments to the table 
comment on table T_DDL_LOG
  is 'Таблица изменений DDL объектов';
-- Add comments to the columns 
comment on column T_DDL_LOG.object_owner
  is 'Владелец объекта';
comment on column T_DDL_LOG.object_name
  is 'Имя объекта';
comment on column T_DDL_LOG.object_type
  is 'Тип объекта';
comment on column T_DDL_LOG.date_log
  is 'Дата создания/изменения записи';
comment on column T_DDL_LOG.is_get_ddl_error_flag
  is '1 - если попытка получения DDL объекта вызвала ошибку, в этом случае в  OLD_OBJECT_DDL записано сообщение об ошибке (например объекта не существовало), 0 - все ок';
comment on column T_DDL_LOG.old_object_ddl
  is 'DDL объекта ДО изменения';
comment on column T_DDL_LOG.ddl_command
  is 'команда DDL, вызвавшая изменение объекта';





Код: plsql
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.
37.
38.
39.
40.
41.
42.
43.
CREATE OR REPLACE TRIGGER "TR_DDL_LOG"
  before DDL on ORGANIZ.SCHEMA
declare
  PRAGMA AUTONOMOUS_TRANSACTION;
  vl_old_object_ddl         CLOB;
  vl_ddl_command            CLOB;
  vl_is_get_ddl_error_flag  t_ddl_log.is_get_ddl_error_flag%TYPE := 0;
  vl_ora_dict_obj_name varchar2(200);
  vl_ora_dict_obj_owner varchar2(200);
  vl_ora_dict_obj_type varchar2(200);
  n NUMBER;
  sql_text ora_name_list_t;

BEGIN
  IF ora_dict_obj_name NOT IN ('TR_DDL_LOG', 'T_DDL_LOG') THEN
    BEGIN
      SELECT dbms_metadata.get_ddl(decode(ora_dict_obj_type, 'PACKAGE BODY', 'PACKAGE', ora_dict_obj_type), ora_dict_obj_name, ora_dict_obj_owner)
        INTO vl_old_object_ddl
        FROM dual;
    EXCEPTION
      WHEN OTHERS THEN BEGIN
        vl_is_get_ddl_error_flag := 1;
        vl_old_object_ddl := SQLERRM;
      END;
    END;

    n := ora_sql_txt(sql_text);
    FOR i IN 1..n LOOP
      vl_ddl_command := vl_ddl_command || sql_text(i);
    END LOOP;

    vl_ora_dict_obj_name := nvl(ora_dict_obj_name,'UNDEFINED');
    vl_ora_dict_obj_owner := nvl(ora_dict_obj_owner,'UNDEFINED');
  vl_ora_dict_obj_type := nvl(ora_dict_obj_type,'UNDEFINED');

    INSERT INTO t_ddl_log
      (object_owner, object_name, object_type, date_log, is_get_ddl_error_flag, old_object_ddl, ddl_command)
    VALUES
      (vl_ora_dict_obj_owner, vl_ora_dict_obj_name, vl_ora_dict_obj_type, SYSDATE, vl_is_get_ddl_error_flag, vl_old_object_ddl, vl_ddl_command);

    COMMIT;
  END IF;
end TR_DDL_LOG;



...
Рейтинг: 0 / 0
19.06.2020, 12:40
    #39970836
oragraf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как восстановить...
kiki123,

есть 10 типов людей - те, кто делают бекапы и те, кто пока не делает бекапы.
...
Рейтинг: 0 / 0
19.06.2020, 12:45
    #39970840
kiki123
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как восстановить...
ilyuha111,

Спасибо,

это удобно и целесообразно, особенно в старом оракле.

А что имелось ввиду в другом сообщении: "взять первичную правильную процедуру.." откуда?
...
Рейтинг: 0 / 0
19.06.2020, 12:49
    #39970843
kiki123
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как восстановить...
oragraf,

согласна:) вообще-то первичный ддл я у себя всё-таки нашла.. но сколько было написано позже..:/
...
Рейтинг: 0 / 0
19.06.2020, 16:11
    #39970985
Vadim Lejnin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как восстановить...
kiki123
oragraf,

согласна:) вообще-то первичный ддл я у себя всё-таки нашла.. но сколько было написано позже..:/


для целей программирования есть различные control version system

настоятельно рекомендую освоить инструмент
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / как восстановить... / 16 сообщений из 16, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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