Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Холодная копия и Linux  [new]
ERG73
Member

Откуда:
Сообщений: 111
Заставили перейти на Linux.
Поскольку я в Linux никода еще не работал, то не могу настроить холодное копирование базы
Может кто-то поделится скриптами? База работает в режиме архив логов.
Хотелось чтоб копии хранились за два периода и желательно архивировались.
Помогите поалуйста!
5 май 07, 17:07    [4104008]     Ответить | Цитировать Сообщить модератору
 Re: Холодная копия и Linux  [new]
juks@gala.net
Member

Откуда: Киев
Сообщений: 4212
shutdown immediate
startup mount
backup as compressed backupset database format '/backup/%U' 
5 май 07, 17:23    [4104026]     Ответить | Цитировать Сообщить модератору
 Re: Холодная копия и Linux  [new]
.....
Guest
ERG73
Заставили перейти на Linux.
Поскольку я в Linux никода еще не работал, то не могу настроить холодное копирование базы
Может кто-то поделится скриптами? База работает в режиме архив логов.
Хотелось чтоб копии хранились за два периода и желательно архивировались.
Помогите поалуйста!


зачем холодная копия?
5 май 07, 17:37    [4104048]     Ответить | Цитировать Сообщить модератору
 Re: Холодная копия и Linux  [new]
ERG73
Member

Откуда:
Сообщений: 111

зачем холодная копия?

Делается раз в неделю.
При выходе из строя компа, мне так кажется, проще и быстрее базу поднять снова.
5 май 07, 17:43    [4104056]     Ответить | Цитировать Сообщить модератору
 Re: Холодная копия и Linux  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18483
juks@gala.net
shutdown immediate
startup mount
backup as compressed backupset database format '/backup/%U' 
Ты голову человеку с RMAN'ом не морочь
Мое мнение, что для холодного бэкапа -- лучше самопальные скрипты
7 май 07, 02:41    [4105868]     Ответить | Цитировать Сообщить модератору
 Re: Холодная копия и Linux  [new]
orlangur
Member

Откуда: Санкт-Петербург
Сообщений: 149
Под рукой сейчас нет Linux’а холодным быкапом, но в первом приближении, должно быть что-то такого типа:
export ORACLE_HOME = [значение переменной]
export ORACLE_SID = [значение переменной]
export PATH=$PTAH:$ORACLE_HOME/bin
sqlplus /nolog <<EOF
connect / as sysdba
shutdown immediate
quit
EOF
# копируем файлы
cp [откуда] [куда]
sqlplus /nolog <<EOF
connect / as sysdba
startup
quit;
EOF

7 май 07, 09:19    [4106181]     Ответить | Цитировать Сообщить модератору
 Re: Холодная копия и Linux  [new]
questn
Member

Откуда:
Сообщений: 35
orlangur
Под рукой сейчас нет Linux’а холодным быкапом, но в первом приближении, должно быть что-то такого типа:
export ORACLE_HOME = [значение переменной]
export ORACLE_SID = [значение переменной]
export PATH=$PTAH:$ORACLE_HOME/bin
sqlplus /nolog <<EOF
connect / as sysdba
shutdown immediate
quit
EOF
# копируем файлы
cp [откуда] [куда]
sqlplus /nolog <<EOF
connect / as sysdba
startup
quit;
EOF



1. На активных БД перед shutdown immediate лучше выполнять pkill. Иначе ложится может очень долго.
2. Копировать лучше по одному файлу. Перед каждым файлом надо выполнять fuser для его проверки на возможность использования каким либо из процессов (мало ли).
7 май 07, 09:23    [4106196]     Ответить | Цитировать Сообщить модератору
 Re: Холодная копия и Linux  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18483
questn
1. На активных БД перед shutdown immediate лучше выполнять pkill. Иначе ложится может очень долго.
Это называется shutdown abort (на самом деле хуже, не завершается файловая операция)
После этого базу можно и не открыть
И не надо рассказывать, что так уже пять лет делается -- на шестой сожет и не повезти
questn
2. Копировать лучше по одному файлу. Перед каждым файлом надо выполнять fuser для его проверки на возможность использования каким либо из процессов (мало ли).
Глупо
7 май 07, 09:44    [4106273]     Ответить | Цитировать Сообщить модератору
 Re: Холодная копия и Linux  [new]
Dimka9
Member

Откуда: Владивосток
Сообщений: 1851
[OFFTOPIC]
Вячеслав, а вы не поделитесь вашим мылом на адрес в профиле? Есть пара вопросов.
Наверное это будет совсем уж нагло попросить адрес Quadro?
[/OFFTOPIC]
7 май 07, 10:08    [4106375]     Ответить | Цитировать Сообщить модератору
 Re: Холодная копия и Linux  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18483
Проще в аську -- lubomudr
Quadro кординаты оставлял на форуме
7 май 07, 10:13    [4106411]     Ответить | Цитировать Сообщить модератору
 Re: Холодная копия и Linux  [new]
Dimka9
Member

Откуда: Владивосток
Сообщений: 1851
как наши гуру любят сложности :)

пошел, ставить аську и продалбливать дырки на FW
Квадро не нашел (видел только в работе - официальный)
7 май 07, 10:43    [4106624]     Ответить | Цитировать Сообщить модератору
 Re: Холодная копия и Linux  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18483
1.На гуру я еще не выпил
2. Мне по-барабану, можешь писать в мыло на lubomudrov@mail.ru, но честно обещаю, что читаю раз в день (с утра). Впрочем, сегодня еще часок менить через 10 могу и попроверять
3. Также я постоянно торчу на канале #oracle в RusNet
4. С 10 (а считай с завтра) я ухожу в отпуск (без доступа к инету)
7 май 07, 10:50    [4106675]     Ответить | Цитировать Сообщить модератору
 Re: Холодная копия и Linux  [new]
questn
Member

Откуда:
Сообщений: 35
Вячеслав Любомудров
questn
1. На активных БД перед shutdown immediate лучше выполнять pkill. Иначе ложится может очень долго.
Это называется shutdown abort (на самом деле хуже, не завершается файловая операция)
После этого базу можно и не открыть
И не надо рассказывать, что так уже пять лет делается -- на шестой сожет и не повезти
questn
2. Копировать лучше по одному файлу. Перед каждым файлом надо выполнять fuser для его проверки на возможность использования каким либо из процессов (мало ли).
Глупо


Это не называется shutdown abort. Это абсолютно нормальный процесс, когда перед тем как положить БД, убиваются пользователькие процессы (учите мат. часть, батенька). Если у Вас 10 000 пользователей и из них активеы в текущий момент 10000 Вы своим immediate'ом можете ложить БД до конца тысячелетия.

По поводу глупо, я не вижу аргументов, только голая фраза, а это отдает непрофессионализмом.
7 май 07, 16:10    [4109064]     Ответить | Цитировать Сообщить модератору
 Re: Холодная копия и Linux  [new]
ERG73
Member

Откуда:
Сообщений: 111
Подскажите еще, как архивировать архивлоги каждый день (желательно каждый лог - один архив)?
11 май 07, 18:41    [4128057]     Ответить | Цитировать Сообщить модератору
 Re: Холодная копия и Linux  [new]
Sevick
Member

Откуда: из-за компа
Сообщений: 833
ERG73
Подскажите еще, как архивировать архивлоги каждый день (желательно каждый лог - один архив)?



Их надо не архивировать, а удалять, когда не нужны.... -)
Да еще и каждый в свой архив - зачем?!
Если уж действительно надо хранить, то я бы сказал все вмести и рядом с бэкапом ко времени которого они относятся...
11 май 07, 20:20    [4128372]     Ответить | Цитировать Сообщить модератору
 Re: Холодная копия и Linux  [new]
ERG73
Member

Откуда:
Сообщений: 111
Просто файлы очень большие, а поскольку холодная копия делается раз в неделю, то за неделю они занимают очень много места. Поэтому нужно их архивировать, хотя бы раз в день. Может все таки подскажете как это делается?
12 май 07, 18:04    [4129602]     Ответить | Цитировать Сообщить модератору
 Re: Холодная копия и Linux  [new]
AG#
Member

Откуда: Российская Федерация
Сообщений: 2305
questn
Вячеслав Любомудров
questn
1. На активных БД перед shutdown immediate лучше выполнять pkill. Иначе ложится может очень долго.
Это называется shutdown abort (на самом деле хуже, не завершается файловая операция)
После этого базу можно и не открыть
И не надо рассказывать, что так уже пять лет делается -- на шестой сожет и не повезти
questn
2. Копировать лучше по одному файлу. Перед каждым файлом надо выполнять fuser для его проверки на возможность использования каким либо из процессов (мало ли).
Глупо


Это не называется shutdown abort. Это абсолютно нормальный процесс, когда перед тем как положить БД, убиваются пользователькие процессы (учите мат. часть, батенька). Если у Вас 10 000 пользователей и из них активеы в текущий момент 10000 Вы своим immediate'ом можете ложить БД до конца тысячелетия.

По поводу глупо, я не вижу аргументов, только голая фраза, а это отдает непрофессионализмом.


Не надо вводить людей в заблуждения.Вы просто так убиваете процессы и ничего более дополнительно ?
На Ваше "учите" для ... скажу вам также "Учите мат.часть."
12 май 07, 20:34    [4129743]     Ответить | Цитировать Сообщить модератору
 Re: Холодная копия и Linux  [new]
orlangur
Member

Откуда: Санкт-Петербург
Сообщений: 149
ERG73
Просто файлы очень большие, а поскольку холодная копия делается раз в неделю, то за неделю они занимают очень много места. Поэтому нужно их архивировать, хотя бы раз в день. Может все таки подскажете как это делается?


Вот команда архивирования одного файла
gzip -c > [архивный файл].gz < [архивируемый файл] 
Если за хотите, сложить в архив несколько файлов, то лучше использовать связку gzip tar в GNU tar’e все это можно сделать одной командой
tar cvfz [архивный файл].tar.gz [архивируемый файл 1] ... [архивируемый файл N]
Потом насколько я понимаю необходимо удалить с архивированные файлы, для этого используем команду rm –f и проверку как завершилась команда архивирования, А для получения списка архив логов команду ls и цикл for. В месте получаем следующий скрипт:
cd [каталог с archlog файлами]
for F in $(ls); do
 gzip -c > $F.gz < $F
 if [ $? -eq 0 ]; then
  rm -f  $F
 else
  exit 1
 fi 
done
Но на Вашем месте я бы глядел в сторону RMAN’а с чередованием полного и инкрементного быкапа.
14 май 07, 09:31    [4132244]     Ответить | Цитировать Сообщить модератору
 Re: Холодная копия и Linux  [new]
NoNobody
Guest
Архивные логи просто удалять не комильфо, лучше делать:

change archivelog until time 'SYSDATE-31' delete';
17 май 07, 19:49    [4152160]     Ответить | Цитировать Сообщить модератору
 Re: Холодная копия и Linux  [new]
Alex Roudnev
Member

Откуда: Валнут Крик, Калифорния
Сообщений: 5547
NoNobody
Архивные логи просто удалять не комильфо, лучше делать:

change archivelog until time 'SYSDATE-31' delete';


Не морочьте себе и другим голову с холодными копиями, а делайте нормальный бэкап (лучше rman-ом)
и раз в месяц проверяйте что вы с него можете поднять базу. И все.
18 май 07, 00:40    [4152759]     Ответить | Цитировать Сообщить модератору
 Re: Холодная копия и Linux  [new]
NoNobody
Guest
Alex Roudnev
NoNobody
Архивные логи просто удалять не комильфо, лучше делать:

change archivelog until time 'SYSDATE-31' delete';


Не морочьте себе и другим голову с холодными копиями, а делайте нормальный бэкап (лучше rman-ом)
и раз в месяц проверяйте что вы с него можете поднять базу. И все.

По-моему я ни слова про холодные копии не сказал, я всего-лишь намекнул, что просто удалять файлы логов не стоит.
А лично я RMAN-ом это делаю так:

sql 'alter system archive log current';
run {
allocate channel c1 type disk;
backup
format '<DESTINATION>\arclogs_%t_%s_%p.arc'
(archivelog
from time 'SYSDATE-31' all
delete input
);
release channel c1;
}

Так вот, если в этом диапазоне времени попадется лог, который был просто удален с диска, RMAN ругнется и не заархивирует логи. Потому лучше это делать цивильно.
18 май 07, 12:41    [4154785]     Ответить | Цитировать Сообщить модератору
 Re: Холодная копия и Linux  [new]
Alex Roudnev
Member

Откуда: Валнут Крик, Калифорния
Сообщений: 5547
NoNobody
Alex Roudnev
[quot NoNobody]Архивные логи просто удалять не комильфо, лучше делать:

change archivelog until time 'SYSDATE-31' delete';


Не морочьте себе и другим голову с холодными копиями, а делайте нормальный бэкап (лучше rman-ом)
и раз в месяц проверяйте что вы с него можете поднять базу. И все.

По-моему я ни слова про холодные копии не сказал, я всего-лишь намекнул, что просто удалять файлы логов не стоит.
А лично я RMAN-ом это делаю так:

sql 'alter system archive log current';
run {
allocate channel c1 type disk;
backup
format '<DESTINATION>\arclogs_%t_%s_%p.arc'
(archivelog
from time 'SYSDATE-31' all
delete input
);
release channel c1;
}

Так вот, если в этом диапазоне времени попадется лог, который был просто удален с диска, RMAN ругнется и не заархивирует логи. Потому лучше это делать цивильно.[/quot

А еще лучше просто добавить туда ключик, который говорит _делать бэкап даже если попался недоступный файл_. Посмотрите в доках (я не оракл ДБА а потому наизусть эти фишки не помню), он там есть.

Но мы делаем еще проще.

find /arch -type f -mtime +2 -name '*.arc' -print | xargs gzip -v
find /arch -type f -mtime +30 -print | xargs rm -f

и всех делов. Можно и двигать в первом скрипте (на самом деле я привел упрощенный вариант, естественно мы файлы двигаем из каталога архивов в каталог бэкапов, потом их зипуем, потом они уходят на ленту, потом раз в неделю бэкапы и архивлоги за неделю уходят на большой диск архивов, а потом через месяц удаляются на фиг. Все простейшими скриптами.
19 май 07, 05:24    [4159142]     Ответить | Цитировать Сообщить модератору
 Re: Холодная копия и Linux  [new]
AG#
Member

Откуда: Российская Федерация
Сообщений: 2305
Ты про этот ключик ? :)
Ну там токо примерчик:
https://www.sql.ru/forum/actualthread.aspx?bid=3&tid=423615&pg=-1&hl=#4080295
19 май 07, 10:36    [4159241]     Ответить | Цитировать Сообщить модератору
 Re: Холодная копия и Linux  [new]
NoNobody
Guest
Alex Roudnev
А еще лучше просто добавить туда ключик, который говорит _делать бэкап даже если попался недоступный файл_. Посмотрите в доках (я не оракл ДБА а потому наизусть эти фишки не помню), он там есть.
Это конечно добавить можно, если делать бекапы ради самого процесса бекапирования. :) Что потом делать с бекапом с недостающим в нем файлом если он окажется не давно прибитым за не надобностью а довольно таки нужным? Я считаю такой ключик опасным и не понимаю чем тот, способ, что я предложил хуже простого удаления?
21 май 07, 13:43    [4162970]     Ответить | Цитировать Сообщить модератору
 Re: Холодная копия и Linux  [new]
gda
Member

Откуда:
Сообщений: 985
u menea on zapuskaetsea po cronu v 02:00, zapuskaetsea iz pod root.

beresh arhiv copiruseh na comp gde cistii linux i vpered.


#!/bin/bash

##########################################################################################################################

set_date ()
{
set `date '+%d %M %H %b %m %S %Y'`
DATE=$1
MINUTE=$2
HOUR=$3
DM=$4
MONTH=$5
SECOND=$6
YEAR=$7
TIME="$HOUR:$MINUTE:$SECOND"
}

##########################################################################################################################

source="/data/u0?/oradata/MAINORA"
destination="/data/u05/coldbackup"
initora="/work/oracle/admin/MAINORA/pfile/initMAINORA.ora"
dbs="/work/oracle/product/9.2.0/dbs"
network="/work/oracle/product/9.2.0/network/admin"
sysconfig_oracle="/etc/sysconfig/oracle"
oraInst="/etc/oraInst.loc"
oratab="/etc/oratab"
profiled="/etc/profile.d/oracle.*"

# oracle and root cron file
cron_tb="/var/spool/cron/tabs"

max_backup=1

set_date
filename=backup_$DM$DATE
logname=log_$DM$DATE.log
arc=archive.txt

##########################################################################################################################

if [ ! -e $destination/$logname ]
then
cd $destination
touch $logname
fi

##########################################################################################################################

echo '=======================================================================' >> $destination/$logname

# Aflu cit ocupa fisierele care se vor arhiva
du -kc $source >> $destination/$logname

set_date
echo "Am inceput lucrul: $DM $DATE $YEAR, ora $TIME" >> $destination/$logname

bhh=`echo $HOUR | sed -e 's/000$//' -e 's/^0//'`
bmi=`echo $MINUTE | sed -e 's/000$//' -e 's/^0//'`
bss=`echo $SECOND | sed -e 's/000$//' -e 's/^0//'`
bt=$(($(($bhh*60*60))+$(($bmi*60))+$bss))

##########################################################################################################################

if [ -e $destination/$arc ]
then
a=`cat $destination/$arc | wc -l`
h=$((`cat $destination/$arc | wc -l` - $max_backup))
for i in `cat $destination/$arc | head -$h` 
do
echo "	Sterg: $i !!!" >> $destination/$logname
rm -rf $i 
done
else
echo "	Fisierul $destination/$arc nu exista !!!" 
fi

##########################################################################################################################

set_date
echo "oracle stop: $DM $DATE $YEAR, ora $TIME" >> $destination/$logname
/etc/init.d/oracle stop

##########################################################################################################################

set_date
echo "tar start: $DM $DATE $YEAR, ora $TIME" >> $destination/$logname

tar cvf - `du $source | awk '{print $2}'` $initora $dbs $network $sysconfig_oracle $oraInst $oratab $profiled $cron_tb $scrs > $destination/$filename.tar --exclude $source/archive 
tar tvf $destination/$filename.tar | awk '{printf ("       %s\n",$6)}' >> $destination/$logname

set_date
echo "tar stop: $DM $DATE $YEAR, ora $TIME" >> $destination/$logname

##########################################################################################################################

set_date
echo "oracle start: $DM $DATE $YEAR, ora $TIME" >> $destination/$logname
/etc/init.d/oracle start

##########################################################################################################################

set_date
echo "gzip start: $DM $DATE $YEAR, ora $TIME" >> $destination/$logname

gzip -c $destination/$filename.tar > $destination/$filename.tar.gz
rm -rf $destination/$filename.tar
ls -lh $destination/$filename.tar.gz | awk '{printf ("       Arhiva (gzip) %s, creata la ora %s, marimea %s\n",$9,$8,$5)}' >> $destination/$logname

set_date
echo "gzip stop: $DM $DATE $YEAR, ora $TIME" >> $destination/$logname

##########################################################################################################################

set_date
echo "Am terminat lucrul: $DM $DATE $YEAR, ora $TIME" >> $destination/$logname

ehh=`echo $HOUR | sed -e 's/000$//' -e 's/^0//'`
emi=`echo $MINUTE | sed -e 's/000$//' -e 's/^0//'`
ess=`echo $SECOND | sed -e 's/000$//' -e 's/^0//'`
et=$(($(($ehh*60*60))+$(($emi*60))+$ess))

rez=$(($et-$bt))

let "r=$rez/60"
let "ss=$rez%60"

let "mi=$r%60"
let "hh=$r/60"

echo "Total timp: $hh:$mi:$ss" >> $destination/$logname
echo '=======================================================================' >> $destination/$logname

##########################################################################################################################

echo $filename.cold.dir >> $destination/$arc
mkdir $destination/$filename.cold.dir
split --bytes=630m $destination/$filename.tar.gz $destination/$filename.tar.gz

mv $destination/$logname $destination/$filename.cold.dir
mv `ls -l $destination/$filename.tar.gza* | awk '{print $9}'` $destination/$filename.cold.dir

rm -rf $destination/$filename.tar.gz
chown -R oracle.oinstall $destination/$filename.cold.dir

21 май 07, 17:42    [4164768]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Oracle Ответить