batmunkh
(Batmunkh Moltov)
1
Standby серверт хэдийн орсон (applied) архив лог файлуудыг автоматаар хэрхэн цэвэрлэх скрипт оруулъя.
vi /home/oracle/crons/remove_applied_archivelog.sh
#!/bin/ksh
#
#
# apply hiigdsen archivelog file uudiig ustgana
#
# www.batmunkh.net
#
ORACLE_SID=orcl; export ORACLE_SID
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1; export ORACLE_HOME
tmpfile=/tmp/arch_id.tmp
$ORACLE_HOME/bin/sqlplus -S /nolog <<EOF > $tmpfile
connect / as sysdba
set head off
set pages 0
select max(sequence#) from v\$archived_log where applied = 'YES';
exit
EOF
echo DELETE NOPROMPT ARCHIVELOG UNTIL SEQUENCE = `head -n 1 $tmpfile | awk '{print $1}'` ';' > $tmpfile
#echo DELETE NOPROMPT ARCHIVELOG UNTIL SEQUENCE = `cat $tmpfile ` ';' > $tmpfile
$ORACLE_HOME/bin/rman target / <<EOF
@$tmpfile
exit
EOF
Файлд permission өгөх
[oracle@orcl crons]$ chmod +x /home/oracle/crons/remove_applied_archivelog.sh
cronjob нэмэх
[oracle@orcl crons]$ crontab -e
05 22 * * * /home/oracle/crons/remove_applied_archivelog.sh
Дээрх үйлдлийг хийж дууссанаар өдөр бүрийн 22:05-д уг скрипт ажиллана.
3 Likes
tmdeft
(Tuvshinzaya)
2
vi remove_applied_archivelog.sh
ORACLE_SID=orcl; export ORACLE_SID
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1; export ORACLE_HOME
rman target / <<EOF
delete archivelog all
YES
delete archivelog all хийхэд apply хийгдсэн нь устаад apply хийгдээгүй нь устахгүй warning өгдөг, ингэж хийх нь ялгаатай юу ?
batmunkh
(Batmunkh Moltov)
3
Уул шугамандаа crosscheck ажиллуулсны дараа устгах ёстой тийм үү? файл устгахгүй байна гэдэг нь цаанаа үлдэж байна гэсэн үг. Үлдсэн учир дара сэргээхэд ашиглаж болноо л гэсэн үг. Үр дүн харахад хэдийгээр ижил байгаа ч дүрмийн бус үйлдэл болоод байна л даа. Алдаан дээр INFO төрлөөс өөр алдаа гарахгүй бол уг зүйл маш сайн ажиллаж байнаа л гэсэн үг.
Дээрхи скриптийг standby талдаа л ер нь ашиглана. Primary бол policy-р явнаа. applied on all standby гэх мэт…
Зарим баазууд ч бас архивлогийг үйлдвэрлэх юм аа… тэр үед бас ашиглаж болох л юм…
batmunkh
(Batmunkh Moltov)
4
archivelog policy харъя. Бүгдийг устгах комманд үлдээж байна гэхээр policy-д баригдаж байгаа байх.
1 Like
Primary дээр энэ шелл скриптээр устгаж болох уу заавал policy байх ёстой юу.?
batmunkh
(Batmunkh Moltov)
6
Primary дээр policy байх хэрэгтэй. хэрэв лог шидэх чинь SYNC бол бас тоохгүй байж болох юм… Тийм үү. Apply гэдэг зүйл маань өөрөө standby дээр яригдаад байгаа юм…
Primary дээр crosscheck нтэр гэж байгаад устгана даа.
Архивлог полиси доорх шиг байвал ялгаагүй
CONFIGURE ARCHIVELOG DELETION POLICY TO APPLIED ON STANDBY;
3 Likes
1118
(Б Баасанжав)
8
[quote=“batmunkh, post:1, topic:794”]
applied
[/quote] eniig ajiluulii geheer applied log baihgui baigan select hiij harsin teheer yaahu
batmunkh
(Batmunkh Moltov)
9
apply хийгдээгүй үед устгаж болохгүй ээ. SBY -г шинээр тохируулах, эсвэл нөхөж хийх гээд ажил их гарна ш дээ…
batmunkh
(Batmunkh Moltov)
10
Чиний хайгаад байгаа зүйл энэ бололтой…
1118
(Б Баасанжав)
11
enuuger uzsen bolj bna ahij garaar orj ustahgui amar bollo bayrllaa
1 Like
batmunkh
(Batmunkh Moltov)
12
RAC to Single Dataguard дээр залхуураад дараах байдлаар хийчихлээ…
ORACLE_SID=ORCL; export ORACLE_SID
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/12.1.0.2/dbhome_1; export ORACLE_HOME
tmpfile=/tmp/arch_id.tmp
$ORACLE_HOME/bin/sqlplus -S /nolog <<EOF > $tmpfile
connect / as sysdba
set head off
set pages 0
select max(sequence#) from v\$archived_log where thread#=1 AND applied = 'YES';
exit
EOF
echo DELETE NOPROMPT ARCHIVELOG UNTIL SEQUENCE = `head -n 1 $tmpfile | awk '{print $1}'` ' thread 1;' > $tmpfile
#echo DELETE NOPROMPT ARCHIVELOG UNTIL SEQUENCE = `cat $tmpfile ` ';' > $tmpfile
$ORACLE_HOME/bin/rman target / <<EOF
@$tmpfile
exit
EOF
$ORACLE_HOME/bin/sqlplus -S /nolog <<EOF > $tmpfile
connect / as sysdba
set head off
set pages 0
select max(sequence#) from v\$archived_log where thread#=2 AND applied = 'YES';
exit
EOF
echo DELETE NOPROMPT ARCHIVELOG UNTIL SEQUENCE = `head -n 1 $tmpfile | awk '{print $1}'` ' thread 2;' > $tmpfile
#echo DELETE NOPROMPT ARCHIVELOG UNTIL SEQUENCE = `cat $tmpfile ` ';' > $tmpfile
$ORACLE_HOME/bin/rman target / <<EOF
@$tmpfile
exit
EOF
2 node той RAC -ийг Single instance руу явуулж байгаа юм. Дээрхээр шийдэхгүй бол нэг thread ийнхэн лог үлдээд байна… copy paste and add thread option.
1 Like