Proceduri Mentenanta DB (Oracle)

1. Backup si restaurare date

Baza de date se salveaza zilnic in format full folosind utilitarul de export al bazei de date. Suplimentar, arhivele zilnice se copiaza si intr-o alta locatie via ftp, nfs sau s3. Ca si istoric se pastreaza minim 60 de arhive zilnice (minim ultimele 2 luni) si cate o arhiva saptamanala. Pentru verificarea consistentei arhivelor, acestea se restaureaza pe instanta de test.

2. Salvarea bazei de date

Pentru efectuarea de copii de siguranta a bazei de date, cu utilizatorul oracle, in linie de comanda se ruleaza comanda:

exp total/parola_total@emsysp file=cale_fisier_dmp/nume_fisier_dmp full=yes buffer=1024000 feedback=1000 log=log_export.txt

unde parola_total este parola utilizatorului TOTAL de pe baza Oracle, iar emsysp este numele bazei de productie.

Recomandam arhivarea fisierului dump folosind in denumirea arhivei - data si ora la care a fost facuta operatia. Ex: emsys_01aug2022_1930.zip

Pentru arhivarea zilnica automata, se descarca scriptul bkup_oracle_cron_daily.sh in folderul /etc/cron.daily/ si scriptul bkup_oracle.sh in folderul /home/oracle/ folosind comanda:

curl -H 'Cache-Control: no-cache' http://static.emsys.ro/emsys/menten/db_ora/bkup_oracle_cron_daily.sh -o /etc/cron.daily/bkup_oracle_cron_daily.sh http://static.emsys.ro/emsys/menten/db_ora/bkup_oracle.sh  -o /home/oracle/bkup_oracle.sh

In scriptul bkup_oracle.sh se actualizeaza parola pentru utilizatorul TOTAL (parola_total) si numele bazei de date (emsysp).

Se ruleaza apoi o singura data, cu utilizatorul root, comanda:

dos2unix /etc/cron.daily/bkup_oracle_cron_daily.sh && chmod +x /etc/cron.daily/bkup_oracle_cron_daily.sh

Arhivele se vor genera zilnic in folderul /bk_Oracle

3. Restaurarea bazei de date

Pentru restaurarea manuala a bazei de date pe un server nou sau pe o instanta de test:

Se descarca scriptul oracle_emsys_users.sql in folderul /home/oracle/ folosind comanda:

curl -H 'Cache-Control: no-cache'  http://static.emsys.ro/emsys/menten/db_ora/oracle_emsys_users.sql  -o /home/oracle/oracle_emsys_users.sql

Se actualizeaza in script parola utilizatorului TOTAL cu parola dorita;

Se dezarhiveaza fisierul cu salvarea bazei de date din data dorita in folderul /home/oracle/

Cu utilizatorul oracle se ruleaza succesiv comenzile:

sqlplus system/parola_system@emsyst @/home/oracle/oracle_emsys_users.sql
imp total/parola@emsyst full=yes file=cale_fisier_dmp/nume_fisier_dmp log=log_import.txt buffer=1024000 feedback=1000

Pentru restaurarea automata pe instanta de test se descarca scripturile restore_oracle_test.sh si oracle_emsys_users.sql in folderul /home/oracle/restore_test cu comanda:

curl -H 'Cache-Control: no-cache'  http://static.emsys.ro/emsys/menten/db_ora/restore_oracle_test.sh -o /home/oracle/restore_test/restore_oracle_test.sh http://static.emsys.ro/emsys/menten/db_ora/oracle_emsys_users.sql -o /home/oracle/restore_test/oracle_emsys_users.sql

Se actualizeaza parola utilizatorului TOTAL cu parola dorita in scripturile restore_oracle_test.sh si oracle_emsys_users.sql precum si numele bazei de date (emsyst).

Se copiaza o singura arhiva a bazei de date in folderul /home/oracle/restore_test/

Se executa, cu utilizatorul root, o singura data, comenzile:

dos2unix /home/oracle/restore_test/restore_oracle_test.sh && chmod +x /home/oracle/restore_test/restore_oracle_test.sh

dupa care, se executa cu utilizatorul oracle comanda:

sh restore_oracle_test.sh

Notă

Se recomanda salvarea bazei de date curente inainte de a restaura o arhiva mai veche !

4. Mentenanta baza de date

Pentru actualizarea automata saptamanala a statisticilor folosite de optmizerul bazei de date, se descarca scriptul get_stats_cron_weekly.sh in folderul /etc/cron.weekly/ si scripturile get_stats_oracle.sh si get_stats_oracle.sql in folderul /home/oracle/ cu comanda:

curl -H 'Cache-Control: no-cache'  http://static.emsys.ro/emsys/menten/db_ora/get_stats_cron_weekly.sh -o /etc/cron.weekly/get_stats_cron_weekly.sh http://static.emsys.ro/emsys/menten/db_ora/get_stats_oracle.sh -o /home/oracle/get_stats_oracle.sh http://static.emsys.ro/emsys/menten/db_ora/get_stats_oracle.sql -o /home/oracle/get_stats_oracle.sql

In fisierul get_stats_oracle.sh se actualizeaza parola utilizatorului TOTAL si numele bazei de date.

Se executa cu utilizatorul root comenzile:

dos2unix /etc/cron.weekly/get_stats_cron_weekly.sh && chmod +x /etc/cron.weekly/get_stats_cron_weekly.sh