INSTALLAZIONE ORACLE-RAC 10G
ENTERPRISE LINUX i386
iSCSI + ASM + OCFS2
1 -PREPARAZIONE STORAGE iSCSI
Bisogna preparare un server che esponga ameno due dischi iscsi.
Questi verranno utilizzati uno per lo spazio ASM, uno diviso in tre partizioni dove andremo a creare il disco di “voting”, il disco “ocr” e lo spazio condiviso per la “flash_recovery_area" che verrà formattato utilizzando ocfs2.
Una volta pronto il server iSCSI configurare due dischi, le dimensioni saranno adeguate al o ai database che intendere installare:
# DISCO PER ASM 50G
<target iqn.rac01.disk01>
backing-store /dev/STORAGE/iSCSI_RAC01
initiator-address IP_NODO_RAC01
initiator-address IP_NODO_RAC02
</target>
#DISCO PER VOTING–OCR-OCFS2 10G
<target iqn.rac01.disk02>
backing-store /dev/STORAGE/iSCSI_RAC02
initiator-address IP_NODO_RAC01
initiator-address IP_NODO_RAC02
</target>
#/etc/init.d/tgtd start
Nota.
Per ottimizzare la connessione con il server iSCSI si consiglia di dedicare una/due interface di rete (magari in bonding) su una rete dedicata. Su i client poi sarà necessario configurare di contattare l’indirizzo IP assegnato a questa interfaccia in modo statico.
Altra configurazione consigliata è una piccola ottimizzazione ai parametri del kernel tramite “sysctl.conf” es.
……………
net.ipv4.tcp_reordering = 20
net.ipv4.tcp_wmem = 8192 87380 16777216
net.ipv4.tcp_rmem = 8192 87380 16777216
net.ipv4.tcp_no_metrics_save = 1
net.ipv4.tcp_congestion_control = cubic
net.core.wmem_max = 16777216
net.core.rmem_max = 1677721
………………
2 - HARDWARE MINIMO RICHIESTO
L’installazione descritta qui è stata fatta utilizzando due macchine con i seguente hardware:
CPU P4 2.8Ghz HT
RAM 1Gb
HD 120Gb
Una schede di rete 100 Mbit/s per la connessione privata tra i nodi (per il rac)
Una schede di rete 1000 Mbit/s per la connessione pubblica per l’accesso alle macchine
3 - INSTALLAZIONE SISTEMA OPERATIVO
Per l’installazione è stata utilizzata una Oracle Enterprise Linux 5 i386. Si configureranno due nodi in modo identico.
L’installazione richiede sicuramente i seguenti pacchetti:
iscsi-initiator-util-6.2.9.742-0.5.el5
binutils-2.17.50.0.6-2.el5
compat-db-4.2.52-5.1
control-center-2.16.0-14.el5
gcc-4.1.1-52.el5
gcc-c++-4.1.1-52.el5
glibc-2.5-12
glibc-common-2.5-12
libstdc++-4.1.1-52.el5
libstdc++-devel-4.1.1-52.el5
make-3.81-1.1
sysstat-7.0.0-3.el5
gcc-4.1.1-52.el5
gcc-c++-4.1.1-52.el5
glibc-2.5-12
libaio-0.3.106-3.2
make-3.81-1.1
openmotif22-2.2.3-18
ocfs2-2.6.18-8.el5-1.2.6-1.el5
ocfs2console-1.2.6-1.el5
ocfs2-tools-1.2.6-1.el5
oracleasm-2.6.9-22.ELsmp-2.0.0-1.i686.rpm
oracleasmlib-2.0.1-1.i386.rpm
oracleasm-support-2.0.1-1.i386.rpm
+ ovviamente da scaricare
10201_clusterware_linux32.zip
10201_database_linux32.zip
jre-6u13-linux-i586-rpm.bin
Se si dovesse utilizzare una distribuzione diversa, ad esempio una Centos 5, bisognerà scaricare dal sito Oracle i pacchetti per OCFS2 e ASM.
OCFS2
http://oss.oracle.com/projects/ocfs2-tools/files/RedHat/RHEL5/
ASM
http://www.oracle.com/technology/software/tech/linux/asmlib/index.html
Esempio di configurazione degli indirizzi IP da assegnare staticamente
nodo1.oraclerac.rac 192.168.100.100 # deve essere inserito anche nel DNS
nodo1-vip.oraclerac.rac 192.168.200.100 # deve essere inserito anche nel DNS
nodo1-priv.oraclerac.rac 10.0.0.10
nodo2.oraclerac.rac 192.168.100.101 # deve essere inserito anche nel DNS
nodo2-vip.oraclerac.rac 192.168.200.101 # deve essere inserito anche nel DNS
nodo2-priv.oraclerac.rac 10.0.0.11
4 - PREPARAZIONE DEI NODI
Configurazione file Parametri Oracle e file Hosts
Inserire nel file hosts tutte le informazioni di rete necessarie al funzionamento corretto del RAC.
#vim /etc/hosts
### LOCALMACHINE
127.0.0.1 localhost.localdomain localhost
### INTERFACCIA PUBBLICA
192.168.100.100 nodo1.oraclerac.rac nodo1
192.168.100.101 nodo2.oraclerac.rac nodo2
### INTERFACCIA VIRTUALE
192.168.200.100 nodo1-vip.oraclerac.rac nodo1-vip
192.168.200.101 nodo1-vip.oraclerac.rac nodo2-vip
### INTERFACCIA PRIVATA
10.0.0.10 nodo1-priv.oraclerac.rac nodo1-priv
10.0.0.11 nodo1-priv.oraclerac.rac nodo2-priv
Aggiungere al file /etc/securiry/limits.conf
* soft nproc 2047
* hard nproc 16384
* soft nofile 1024
* hard nofile 65536
Aggiungere al file /etc/sysctl.conf
kernel.hostname = NOME_MACCHINA #attenzione da modificare sul nodo2
kernel.domainname = NOME_DOMINIO
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default=262144
net.core.rmem_max=262144
net.core.wmem_default=262144
net.core.wmem_max=262144
#sysctl –p
per attivare
Aggiungere al file /etc/profile
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
Creazione dell’user oracle e dei gruppi necessari:
Da eseguire su tutti i nodi.
# /usr/sbin/groupadd oinstall
# /usr/sbin/groupadd dba
# /usr/sbin/useradd -m -g oinstall -G dba oracle
# id oracle
uid=501(oracle) gid=501(oinstall) groups=501(oinstall),502(dba)
# passwd oracle
Changing password for user oracle.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
Configurare il parametro “noexec” all’avvio
Editare /etc/grub.conf ed aggiungere “noexec=off”.
Enterprise Linux (2.6.18-8.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-8.el5 ro root=LABEL=/ noexec=off
initrd /initrd-2.6.18-8.el5.img
Configurare il server per avviarsi in “init 3”
Editare /etc/inittab ed modificare:
…
id:5:initdefault:
…
in
…
id:3:initdefault:
…
Modifica della configurazione ssh per l’accesso senza richiesta passwd per l’user oracle
Per eliminare la richiesta di inserimento “HostKeyCeking” a ogni nuova connessione verso e da i vari nodi si può configurare il demone ssh in modo che reputi sempre affidabili tutti i nuovi host contattati via ssh. Per fare questo bisogna editare il file “/etc/ssh/ssh_config” e aggiungere il seguente parametro.
Host *
StrictHostKeyChecking no
Restart del servizzio sshd.
Eseguire su tutti i nodi come user oracle:
$/usr/bin/ssh-keygen -t rsa
e
$/usr/bin/ssh-keygen -t dsa
Eseguire sul primo nodo:
$cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
Copiare il file “authorized_keys” nella dir .ssh/ del secondo nodo con :
$scp ~/.ssh/authorized_keys oracle@nodo2:~/.ssh/authorized_keys
collegarsi a questo ed eseguire:
$cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
Ricopiarlo sul primo con :
$scp ~/.ssh/authorized_keys oracle@nodo1:~/.ssh/authorized_keys
Test della connessione:
E’ importante fare “ssh” (come user oracle) su tutti nomi macchina abbinati ad un ip (tranne per il vip) anche su se stessi. In caso contrario si avrà un errore nell’accesso ai nodi in fase di installazione.
Quindi sul nodo 1: “ssh nodo1 - ssh nodo1-priv - ssh nodo2 - ssh nodo2-priv”
E sul nodo 2: “ssh nodo2 - ssh nodo2-priv - ssh nodo1 - ssh nodo1-priv”
Eseguire su tutti i nodi come user oracle:
$ exec /usr/bin/ssh-agent $SHELL
$ /usr/bin/ssh-add
Identity added: /home/oracle/.ssh/id_rsa (/home/oracle/.ssh/id_rsa)
Identity added: /home/oracle/.ssh/id_dsa (/home/oracle/.ssh/id_dsa)
Ora le connessioni devono avvenire senza la richiesta di password e di conferma inserimento key in Known_hosts
Configurazione dei dischi iSCSI
La configurazione dei dischi iSCSI è molto semplice, abbiamo configurato il server per accettare richieste da indirizzi IP specifici, quindi non resta che lanciare il demone iscsi
#/etc/init.d/iscsi start # da fare su tutti i nodi
#iscsiadm -m discovery -t sendtargets -p IPSRVISCSI # da fare su tutti i nodi
192.168.100.10:3260,1 iqn.rac01.disk01
192.168.100.10:3260,1 iqn.rac01.disk02
#/etc/init.d/iscsi restart # da fare su tutti i nodi
# chkconfig iscsi on # da fare su tutti i nodi
Se tutto è andato bene il risultato sarà come sotto.
#fdisk –l
Disk /dev/sda: 122.9 GB, 122942324736 bytes # disco locale
255 heads, 63 sectors/track, 14946 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 1288 10241437+ 83 Linux
/dev/sda3 1289 1551 2112547+ 82 Linux swap / Solaris
/dev/sda4 1552 14946 107595337+ 83 Linux
Disk /dev/sdb: 53.6 GB, 53687091200 bytes # primo iscsi PER ASM
64 heads, 32 sectors/track, 51200 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Device Boot Start End Blocks Id System
Disk /dev/sdc: 10.7 GB, 10737418240 bytes # secondo iscsi PER OCR-VOTING-FLASH
64 heads, 32 sectors/track, 10240 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Device Boot Start End Blocks Id System
/dev/sdc1 1 30 30704 83 Linux
/dev/sdc2 31 155 128000 83 Linux
/dev/sdc3 156 10240 10327040 83 Linux
La creare le partizioni necessarie su i dischi appena collegati:
sul disco che verrà dedicato ad ASM fare una partizione unica quindi avremo /dev/sdb1, sul secondo disco ci serviranno tre partizioni; una per il disco di VOTING una per il disco OCR ed una per la recovery area. Le dimensioni delle partizioni saranno:
/dev/sdc1 disco VOTING 30M
/dev/sdc2 disco OCR 120M
/dev/sdc3 disco FLASH_AREA tutto il resto
Configurazione dei device RAW per l’utilizo con il RAC
Da fare su tutti i nodi
Creiamo i RAW device che serviranno per l’istanza ASM e per lo spazio di Ocr e Voting. L’ultima partizione (/dev/sdc4), verrà formattata invece con “ocfs2” cosi da poter condivide l’area che dedicheremo alla “flash_recovery_area” (archivelog, autobackup, backupset) montandola su tutti i nodi.
Editiamo ed aggiungiamo a /etc/udev/rules.d/60-raw.rules
ACTION=="add", KERNEL=="sdb", RUN+="/bin/raw /dev/raw/raw1 %N"
ACTION=="add", KERNEL=="sdc1", RUN+="/bin/raw /dev/raw/raw2 %N"
ACTION=="add", KERNEL=="sdc2", RUN+="/bin/raw /dev/raw/raw3 %N"
Creiamo /etc/udev/rules.d/99-raw-perms.rules
#
KERNEL=="raw[1-3]",MODE="640",GROUP="oinstall",OWNER="oracle"
Ed ora riavviamo le macchine.
Al riavvio dobbiamo controllare che vengano caricati correttamente i dischi iSCSI e che i RAW device vengano configurati.
#fdisk –l
E controllare che ci siano tutti i dischi
[root@atmps-rac01 ~]# ls -l /dev/raw/
total 0
crw-r----- 1 oracle oinstall 162, 1 Apr 28 08:03 raw1
crw-r----- 1 oracle oinstall 162, 2 Apr 28 08:30 raw2
crw-r----- 1 oracle oinstall 162, 3 Apr 28 08:30 raw3
Formattare il disco OCFS2
#mkfs.ocfs2 /dev/sdc3
mkfs.ocfs2 1.2.6
Filesystem label=
Block size=4096 (bits=12)
Cluster size=4096 (bits=12)
Volume size=10574888960 (2581760 clusters) (2581760 blocks)
81 cluster groups (tail covers 1280 clusters, rest cover 32256 clusters)
Journal size=67108864
Initial number of node slots: 4
Creating bitmaps: done
Initializing superblock: done
Writing system files: done
Writing superblock: done
Writing backup superblock: 2 block(s)
Formatting Journals: done
Writing lost+found: done
mkfs.ocfs2 successful
#/etc/init.d/o2cb configure
Configuring the O2CB driver.
This will configure the on-boot properties of the O2CB driver.
The following questions will determine whether the driver is loaded on
boot. The current values will be shown in brackets ('[]'). Hitting
<ENTER> without typing an answer will keep that current value. Ctrl-C
will abort.
Load O2CB driver on boot (y/n) [y]:
Cluster to start on boot (Enter "none" to clear) [ocfs2]:
Specify heartbeat dead threshold (>=7) [31]:
Specify network idle timeout in ms (>=5000) [30000]:
Specify network keepalive delay in ms (>=1000) [2000]:
Specify network reconnect delay in ms (>=2000) [2000]:
Writing O2CB configuration: OK
O2CB cluster ocfs2 already online
Configurare il filesystem ocfs2 e montarlo in automatico all’avvio
Collegatevi al nodo1 lanciate startx (o init5), aprite una shell e lanciate
#ocfs2console
Aggiungete tutti i nodi, confermate con OK, cliccate su “Cluster” e selezionate “ Propagate configuration”.
Creiamo la directory “FLASH_AREA” (su tutti i nodi) e montiamo il disco.
#mkdir /home/oracle/FLASH_AREA
#mount /dev/sdc3 /home/oracle/FLASH_AREA
#chown –R oracle.oinstall /home/oracle/FLASH_AREA
#vim /etc/fstab
LABEL=/ / ext3 defaults 1 1
LABEL=/boot /boot ext3 defaults 1 2
devpts /dev/pts devpts gid=5,mode=620 0 0
tmpfs /dev/shm tmpfs defaults 0 0
LABEL=/home /home ext3 defaults 1 2
proc /proc proc defaults 0 0
sysfs /sys sysfs defaults 0 0
LABEL=SWAP-sda3 swap swap defaults 0 0
/dev/sdc3 /home/oracle/FLASH_AREA ocfs2 _netdev,defaults 0 0
Se state usando delle distribuzioni Linux basate sulla Red Hat, si deve anche installare il pacchetto
cvuqdisk-1.0.1-1.rpm, che trovate nella directrory “../clusterware/rpm”.
Siamo pronti per cominciare l’installazione del CRS….:)
5 - INSTALLAZINE CLUSTERWARE 10G
Collegarsi al nodo1 su X (init5 ), create una cartella in home o dove vi sembra meglio e copiate jre-6u13-linux-i586-rpm.bin, 10201_clusterware_linux32.zip, 10201_database_linux32.zip. Decomprimete i due file e installate java.
Cancellate il link simbolico di java
#rm /usr/bin/java
E ricreatelo con il nuovo percorso:
#ln –s /usr/java/jre1.6.0_13/bin/java /usr/bin/java
lanciare una shell digitare:
#xhost +
#su – oracle
#/home/CARTELLACREATA/clusterware/runinstall
Qui si potranno avere i problemi se non si è configurato correttamente la connessione ssh.
Se superate questa parte il cluster e’ assicurato :)
State attenti ad assegnare correttamente l’interfaccia pubblica.
Piccola nota fate in modo che la eth0 sia quella pubblica. Non come nell’immagine sopra
Inserite il device /dev/raw/raw3 (quello agganciato alla partizione con i 120M)
Inserite il device /dev/raw/raw3 (quello agganciato alla partizione con i 120M)
Install
Attenzione adesso.
Prima di tutto dobbiamo lanciare lo script da root che configura i permessi.
Quindi come richiesto:
#/home/oracle/oraInventoru/orainstRoot.sh
Su tutti i nodi.
Adesso si deve fare attenzione perché c’è un piccolo bug da risolvere altrimenti non si continua e si perde l’installazione. Questo passaggio mi ha fatto perdere non poche orette…….
Si deve cercare ed editare il file “vipca” che si trova in
/homer/oracle/product/10.2.0/crssv/bin/vipca
Si deve cambiare il percorso della variabile “JREDIR” e impostarlo su quello attuale che è stato installato in precedenza.
Perciò:
JREDIR=/usr/java/jre1.6.0_13
Si vada poi alla riga 118, troverete un avviso che comincia con :
#Remove this workaround when the bug 3937319 is fixed
Si commenti tutto, come scritto, fino a:
#End workaround
Adesso siete pronti per lanciare il secondo script.
Lanciatelo in locale e aspettate che finisca, verrà formattata e create sia l’area OCR che di VOTING.
Poi ricollegatevi via ssh al nodo2 ma con l’opzione
-X che permette esportare anche le applicazioni grafiche sulla shell remota.
#ssh –X nodo2
/home/oracle/product/10.2.0/crssv/root.sh
Qui altro bug che non fa partire in automatico il file (con la 11G tutto questo non succede) “/home/oracle/product/10.2.0/crssv/bin/vipca” e che noi lanceremo a mano sempre da root.
Con le modifiche che abbiamo fatto a questo file tutto procederà correttamente (finalmente).
Selezionare l’interfaccia che verrà dedicata all’indirizzo vip.
In questo caso la eth1 e procedere con avanti
In alcune installazioni ho avuto degli errori nella configurazione al momento del “Starting GSD. Application….” Ho atteso e premuto riprova fino a quando non è andato avanti concludendo correttamente tutte le operazioni.
Ora non resta che confermare la prossima schermata con Ok e alla fine con EXIT…
Il “CRS” è installato! Partirà in automatico ad ogni riavvio e se ci sarà un fault sui dischi forzerà il riavvio istantaneo del Server. Prepariamoci ad installare il database.
6 - CONFIGURAZIONE ISTANZA ASM
Bisogna ora creare l’istanza ASM che preparerà lo spazio per l’installazione del database.
Collegarsi al nodo1 su X (init5 ) e lanciare una shell, digitare:
#xhost +
#su – oracle
#/home/CARTELLACREATA/database/runinstall
Ho scelto un installazione standard…
Seleziono anche il nodo2
Qui setto la password per accedere come amministratore all’istanza ASM.
Configurazione dei device raw. E’ interessante notare che se potessi contare su due (o più) partizioni raw date da due Server diversi, potrei configurare i device in modo ridondato nativamente con ASM. Immaginiamo come un RAD1 di raw device.
Al solito lancio lo script da root su tutti i nodi
Fatto. Anche l’istanza ASM è configurata.
7 – INSTALLAZIONE DI UN DATBASE
Ora procediamo con l’installazione di un database sulla struttura che abbiamo appena preparato
Torniamo sulla shell e digitiamo:
Sempre da user oracle…
$ /home/oracle/product/10.2.0/db_1/bin/dbca
Qui cambiamo l’impostazione di default che utilizzerebbe lo spazioASM, con la nostra partizione create e formattata con OCFS2. Questo perché non è possibile (in realtà lo è) vedere i datafile del database dentro ASM, ma voglio almeno gestire i file di backup, gli autobackup e gli archivelog sotto forma del classico file.
Qui do il percorso che verrà utilizzato dagli archivelog.
Oracle 10G RAC in funzione… :)
8 – ESEMPIO SCRIPT DI BACKUP RMAN
Ora che abbiamo un bel database in RAC configuriamo un pochino di cose per poter eseguire i backup.
Cominciamo con modificare il file oratab, ne abbiamo uno in ogni nodo con descritto l’home dell’istanza da avviare in automatico all’avvio.
Nodo1:
# vim /etc/oratab
+ASM1:/home/oracle/product/10.2.0/db_1:Y
orarac01:/home/oracle/product/10.2.0/db_1:Y
Se vogliamo avviare anche “Enterprise Manager”, dobbiamo aggiungere una linea che configura la “ORACLE_HOME” anche per il nodo su cui stiamo lavorando.
Quindi aggiungeremo
orarac011:/home/oracle/product/10.2.0/db_1:Y
Nodo2:
# vim /etc/oratab
+ASM2:/home/oracle/product/10.2.0/db_1:Y
orarac01:/home/oracle/product/10.2.0/db_1:Y
orarac012:/home/oracle/product/10.2.0/db_1:Y
Per avviare l’enterprise manager sul nodo (o su tutti e due) bisognerà accedere come user oracle, settare la “oracle_home” del nodo e avviare l’applicazione.
# su – oracle
$ . oraenv
ORACLE_SID = [oracle] ?
orarac011
$ emctl start dbconsole
Creazione e configurazione script di backup rman
[oracle@atmps-rac02 ~]# su – oracle
[oracle@atmps-rac02 ~]$ . oraenv
ORACLE_SID = [orarac2] ? orarac01
[oracle@atmps-rac02 ~]$ rman target sys/********@orarac01
Recovery Manager: Release 10.2.0.1.0 - Production on Wed Apr 29 11:19:42 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
connected to target database: ORARAC01 (DBID=393333534)
RMAN> show all;
using target database control file instead of recovery catalog
RMAN configuration parameters are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; #
default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO
'/home/oracle/product/10.2.0/db_1/dbs/snapcf_orarac012.f'; # default
Modifichiamo ed attiviamo l’autobackup per il controlfile e spfile
RMAN> configure controlfile autobackup on;
new RMAN configuration parameters:
CONFIGURE CONTROLFILE AUTOBACKUP ON;
new RMAN configuration parameters are successfully stored
Creiamo due script per eseguire:
- il backup completo compresso del database
- la cancellazione degli archivelog più vecchi di 4 giorni
- backup del controlfile e spfile nel backupset
- il crosckeck dei backup e degli arcivelog
- la validazione del backup appena fatto.
FILE = /home/oracle/bck_scr/backup.sh
----------------------------------------------
#!/bin/bash
export ORACLE_SID=orarac01
export ORACLE_HOME=/home/oracle/product/10.2.0/db_1
export PATH=$ORACLE_HOME/bin:$PATH
rman cmdfile=/home/oracle/bck_scr/backup_full.rman
----------------------------------------------
FILE = /home/oracle/bck_scr/backup_full.rman
----------------------------------------------
connect target sys/*********
run {
backup as compressed backupset database spfile;
sql 'alter system archive log current';
delete obsolete recovery window of 4 days;
delete archivelog until time 'sysdate -4';
backup current controlfile spfile;
crosscheck backupset of archivelog all spfile;
crosscheck backup of archivelog all spfile;
change archivelog all crosscheck;
backup validate database archivelog all;
}
----------------------------------------------
Luca