Результаты опроса: Какими средствами организован бэкап базы?
Холодный бэкап средствами ОС 24 77.42%
Горячий бэкап без использования RMAN 1 3.23%
Горячий бэкап с использованием RMAN 6 19.35%
Голосовавшие: 31. Вы ещё не голосовали в этом опросе

11.09.2006 14:37
Vlad
 
Холодный бэкап средствами "Acronis True Img" для ЦО
В магах бэкап при помощи OlegON BackUper
Каждую ночь.
ОС Win 2000 Serv Sp4
Oracle 8-ка
12.09.2006 03:37
isi
 
Пытались использовать OlegON BackUper, были проблемы с остановкой сервисов на некоторых серверах, в итоге написана своя программа, холодный backUp раз в сутки ночью.
W2000 Server & W2k3 Server, Oracle 8 & 9
19.09.2006 06:10
reddevil
 
Мдя, результаты более чем печальные, посему:
Код:
--@hotb 'c:\backup' 'd:\oracle\archive';
--        bak dir       archlog dir
set lin 1000
set serveroutput on format wrapped size 1000000
set echo off
set verify off
set feedback off
define bdir='&1'
define archdir=&2
spool hotbackup.sql

declare 
 cursor tbspc is 
    select tablespace_name from 
        dba_tablespaces
     where
       contents <> 'TEMPORARY'
        order by tablespace_name;

    cursor datfil (tbspcname varchar2) is 
      select df.file_name from dba_data_files df, v$datafile d
    where
       df.tablespace_name = tbspcname
      and
 df.file_name = d.name
       and
 d.enabled like '%WRITE%'
  order by df.tablespace_name;

    tabcur tbspc%rowtype;
       datcur datfil%rowtype;  

        sql_string Varchar2(500);
   tsname1 varchar2(30);
       tsname2 varchar2(30);
begin
      /*  send_mail('Backup Started'); СМС-ка админу что Бэкап начали (на яве) */ 

        dbms_output.put_line('WHENEVER SQLERROR EXIT SQL.SQLCODE');
        dbms_output.put_line('WHENEVER OSERROR EXIT');
        dbms_output.put_line('host rd &bdir\dfbak /Q /S');
        dbms_output.put_line('host rd &bdir\arcbak /Q /S');
  dbms_output.put_line('host md &bdir\dfbak');
        dbms_output.put_line('host md &bdir\arcbak');
        dbms_output.put_line('host del &archdir\*.* /q');
        dbms_output.put_line('alter system archive log current;');

        open tbspc;      
    loop
                fetch tbspc into tabcur;
            exit when tbspc%notfound;
           sql_string := 'ALTER TABLESPACE ' || tabcur.tablespace_name || ' BEGIN BACKUP;';
            dbms_output.put_line(sql_string);
--         Execute Immediate sql_string;
               for datcur in datfil(tabcur.tablespace_name)
                loop
                        sql_string := 'host copy ' || datcur.file_name || ' &bdir\dfbak';
                      dbms_output.put_line(sql_String);
--                 Execute Immediate sql_string;                   
            end loop;
           sql_string := 'ALTER TABLESPACE ' || tabcur.tablespace_name || ' END BACKUP;';
              dbms_output.put_line(sql_string);
                dbms_output.put_line('alter system archive log current;');
--         Execute Immediate sql_string;
       end loop;
   close tbspc;

    dbms_output.put_line('alter database backup controlfile to trace;');
      dbms_output.put_line('alter database backup controlfile to '||''''||'&bdir'||'\dfbak\'||to_char(sysdate,'ddmmyyhhmi')||'.ctl'||''''||';');
      --  dbms_output.put_line('alter system archive log all;');
  dbms_output.put_line('host copy &archdir\*.* &bdir\arcbak');
    dbms_output.put_line('host del &archdir\*.* /q');
   dbms_output.put_line('host del &bdir\dfbak2.rar');
    dbms_output.put_line('host del &bdir\arcbak2.rar');
    dbms_output.put_line('host rename &bdir\dfbak1.rar dfbak2.rar');
     dbms_output.put_line('host rename &bdir\arcbak1.rar arcbak2.rar'); 
    dbms_output.put_line('host RAR a  &bdir\dfbak  &bdir\dfbak\*.* -ep -ri1 -s- -df -rr[10]'); 
     dbms_output.put_line('host RAR a  &bdir\arcbak  &bdir\arcbak\*.* -ep -ri1 -s- -df -rr[10]');  
     dbms_output.put_line('host rename &bdir\dfbak.rar dfbak1.rar');
     dbms_output.put_line('host rename &bdir\arcbak.rar arcbak1.rar');
    dbms_output.put_line('host rd &bdir\dfbak /Q /S');
     dbms_output.put_line('host rd &bdir\arcbak /Q /S');
      /*  dbms_output.put_line('begin send_mail(''Backup Finished''); end;');
         dbms_output.put_line('/'); */
 dbms_output.put_line('exit;');
end;
/

spool off

@hotbackup.sql

exit
- hotb.sql

Код:
sqlplus sys/pass@alias @hotb 'E:\backup\hot' 'd:\oracle\archive';
-hbackup.cmd

файл hbackup.cmd - батник вызывающий SQL скрипт который генерит другой скрипт со списком копируемых файлов, 1-ый параметр это -куда копируем, 2-ой это где лежат архивлоги(то где лежат архивологи можно конечно у базы спросить, но писать в лом чета :)) в результате работы буду созданы 2 архива с архивлогами и файлами данных и РК упр.файла. Политика удержания минус 2 суток то есть *bak1.rar - за стуик назад,*bak2.rar - за двое суток. В директории с этими скриптами должен лежать rar.exe.

P.S. Скрпиты не претендуют на оригинальность и гениальность.
P.P.S Кто скажет что это сложно, долго и т.д. пусть первый бросит в меня камень
З.Ы.Ы.Ы. RMAN - рулит
19.09.2006 07:58
OlegON
 
Я еще в 2002 написал батник на горячее копирование, вроде этого. Судя по тому, что его никто не использует, тебя сейчас закидают камнями :)
19.09.2006 08:05
kadr
 
reddevil, респект, такой реализации я ещё не встречал, достаточно компактно и просто.

P.S. А RMAN действительно рулит, если в нём разобраться
16.05.2011 09:49
Didar
 
Цитата:
reddevil Мдя, результаты более чем печальные, посему:
Код:
--@hotb 'c:\backup' 'd:\oracle\archive';
--        bak dir       archlog dir
set lin 1000
set serveroutput on format wrapped size 1000000
set echo off
set verify off
set feedback off
define bdir='&1'
define archdir=&2
spool hotbackup.sql

declare 
 cursor tbspc is 
    select tablespace_name from 
        dba_tablespaces
     where
       contents <> 'TEMPORARY'
        order by tablespace_name;

    cursor datfil (tbspcname varchar2) is 
      select df.file_name from dba_data_files df, v$datafile d
    where
       df.tablespace_name = tbspcname
      and
 df.file_name = d.name
       and
 d.enabled like '%WRITE%'
  order by df.tablespace_name;

    tabcur tbspc%rowtype;
       datcur datfil%rowtype;  

        sql_string Varchar2(500);
   tsname1 varchar2(30);
       tsname2 varchar2(30);
begin
      /*  send_mail('Backup Started'); СМС-ка админу что Бэкап начали (на яве) */ 

        dbms_output.put_line('WHENEVER SQLERROR EXIT SQL.SQLCODE');
        dbms_output.put_line('WHENEVER OSERROR EXIT');
        dbms_output.put_line('host rd &bdir\dfbak /Q /S');
        dbms_output.put_line('host rd &bdir\arcbak /Q /S');
  dbms_output.put_line('host md &bdir\dfbak');
        dbms_output.put_line('host md &bdir\arcbak');
        dbms_output.put_line('host del &archdir\*.* /q');
        dbms_output.put_line('alter system archive log current;');

        open tbspc;      
    loop
                fetch tbspc into tabcur;
            exit when tbspc%notfound;
           sql_string := 'ALTER TABLESPACE ' || tabcur.tablespace_name || ' BEGIN BACKUP;';
            dbms_output.put_line(sql_string);
--         Execute Immediate sql_string;
               for datcur in datfil(tabcur.tablespace_name)
                loop
                        sql_string := 'host copy ' || datcur.file_name || ' &bdir\dfbak';
                      dbms_output.put_line(sql_String);
--                 Execute Immediate sql_string;                   
            end loop;
           sql_string := 'ALTER TABLESPACE ' || tabcur.tablespace_name || ' END BACKUP;';
              dbms_output.put_line(sql_string);
                dbms_output.put_line('alter system archive log current;');
--         Execute Immediate sql_string;
       end loop;
   close tbspc;

    dbms_output.put_line('alter database backup controlfile to trace;');
      dbms_output.put_line('alter database backup controlfile to '||''''||'&bdir'||'\dfbak\'||to_char(sysdate,'ddmmyyhhmi')||'.ctl'||''''||';');
      --  dbms_output.put_line('alter system archive log all;');
  dbms_output.put_line('host copy &archdir\*.* &bdir\arcbak');
    dbms_output.put_line('host del &archdir\*.* /q');
   dbms_output.put_line('host del &bdir\dfbak2.rar');
    dbms_output.put_line('host del &bdir\arcbak2.rar');
    dbms_output.put_line('host rename &bdir\dfbak1.rar dfbak2.rar');
     dbms_output.put_line('host rename &bdir\arcbak1.rar arcbak2.rar'); 
    dbms_output.put_line('host RAR a  &bdir\dfbak  &bdir\dfbak\*.* -ep -ri1 -s- -df -rr[10]'); 
     dbms_output.put_line('host RAR a  &bdir\arcbak  &bdir\arcbak\*.* -ep -ri1 -s- -df -rr[10]');  
     dbms_output.put_line('host rename &bdir\dfbak.rar dfbak1.rar');
     dbms_output.put_line('host rename &bdir\arcbak.rar arcbak1.rar');
    dbms_output.put_line('host rd &bdir\dfbak /Q /S');
     dbms_output.put_line('host rd &bdir\arcbak /Q /S');
      /*  dbms_output.put_line('begin send_mail(''Backup Finished''); end;');
         dbms_output.put_line('/'); */
 dbms_output.put_line('exit;');
end;
/

spool off

@hotbackup.sql

exit
- hotb.sql

Код:
sqlplus sys/pass@alias @hotb 'E:\backup\hot' 'd:\oracle\archive';
-hbackup.cmd

файл hbackup.cmd - батник вызывающий SQL скрипт который генерит другой скрипт со списком копируемых файлов, 1-ый параметр это -куда копируем, 2-ой это где лежат архивлоги(то где лежат архивологи можно конечно у базы спросить, но писать в лом чета :)) в результате работы буду созданы 2 архива с архивлогами и файлами данных и РК упр.файла. Политика удержания минус 2 суток то есть *bak1.rar - за стуик назад,*bak2.rar - за двое суток. В директории с этими скриптами должен лежать rar.exe.

P.S. Скрпиты не претендуют на оригинальность и гениальность.
P.P.S Кто скажет что это сложно, долго и т.д. пусть первый бросит в меня камень
З.Ы.Ы.Ы. RMAN - рулит
Закидайте меня камнями... Но я нихрена не понял... Неделю как Оракл вижу, шеф заставляет делать бэкапы... Объясните как ламеру... Оч прошу... :kez_01:
16.05.2011 09:53
Didar
 
Кстати Оракл 10, а винда 2003 сп 2... Помоги ...
16.05.2011 09:55
John Doe
 
Увеличение доступности БД Oracle - поставь оптимизатор, он и будет делать бекапы.
16.05.2011 09:58
Didar
 
Я не умею читать.
В заранее спасибо... Жду помощи...
Часовой пояс GMT +3, время: 06:22.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.