Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Introdução...........................................................................................................................................1
Objetivo.......................................................................................................................................1
Escopo.........................................................................................................................................1
Documentos Relacionados .........................................................................................................1
Ambiente ....................................................................................................................................1
Integração TSM e RMAN..................................................................................................................3
Integração ...................................................................................................................................3
Configurações Repositório RMAN.....................................................................................................i
Instalação RDBMS .....................................................................................................................i
Instalação de RDBMS 10.2.0.1...................................................................................................4
Upgrade do RDBMS para 10.2.0.2.............................................................................................8
Criação do Banco de Dados RMAN.........................................................................................10
Criação do Listener para o Banco de Dados RMAN................................................................14
Criação do “Net Service” para o banco RMAN ( bkp-sc1, rac-sc1, rac-sc2 e rac-sc3 )...........17
Criação Repositório ..................................................................................................................21
Archive Log..............................................................................................................................22
Configuração RMAN ...............................................................................................................23
Arquitetura do Ambiente..................................................................................................................24
Arquitetura ...............................................................................................................................24
Agendamento de Backups................................................................................................................25
Agenda .....................................................................................................................................25
Observações..............................................................................................................................26
Scripts de Backup.............................................................................................................................27
Scripts Horários.........................................................................................................................27
Scripts Semanais ......................................................................................................................27
Script Mensal ...........................................................................................................................31
Script Anual ..............................................................................................................................32
Arquivos TSM - Configuração .................................................................................................32
Introdução
Objetivo
O objetivo deste documento é descrever os procedimento para utilização do RMAN
(Oracle Recovery Manager) no ambiente RAC (Real Application Cluster) versão 10gR2,
Sistema Operacional Linux Red Hat Enterprise Server 4.0, com armazenamento direto
para a Library gerenciada pelo Tivoli Storage Manager (TSM).
Escopo
O escopo desse documento é descrever os passos para a integração e funcionamento do
RMAN com o TSM. Os scripts de backup e recovery estão em processo de validação e
podem necessitar mínimos ajustes para o ambiente.
Documentos Relacionados
Note:241772.1 Subject: RMAN backup fails with TSM Media Manager Error
ANU2519E
Ambiente
bkp-sc1 bkp-sc1.12.com.br
Integração
Integração - Execução em todos os servidores RAC
Usuário ORACLE
$ mkdir p /u00/app/rman/lib
$ ln s /usr/lib/libobk.so $ORACLE_HOME/lib/libobk.so
$ ln s /opt/tivoli/tsm/client/oracle/bin/tdpo.opt
/u00/app/rman/lib/tdpo.opt
Usuário ROOT
# chmod 777 /opt/tivoli/tsm/client/api/bin/dsm.sys
# chmod 777 /opt/tivoli/tsm/client/oracle/bin/tdpo.opt
# chmod 777 /opt/tivoli/tsm/client/api/bin/dsm.opt
# chmod 777 /u01/backup/Log/tdpoerror.log
O link para o arquivo TDPO.OPT é utilizado dentro dos scripts de backup do RMAN
como segue exemplo abaixo:
run {
resync catalog;
allocate channel t1 type 'sbt_tape' parms
'ENV=(TDPO_OPTFILE=/u00/app/rman/lib/tdpo.opt)' maxpiecesize 2g;
sql 'alter system archive log current';
backup incremental level 1 cumulative database;
backup archivelog all;
release channel t1;
}
Instalação RDBMS
Pré-Requisitos
Pacotes RPM
Além dos pacotes RPM instalados durante o processo de instalação do sistema
operacional, foram instalados alguns pacotes extras para o funcionamento do Oracle
RAC. Validar se todos os pacotes citados abaixo foram instalados nos ambientes.
Providenciar instalação dos pacotes faltantes. O Comando “rpm –qa” listará todos os
pacotes instalados no Sistema Operacional Linux.
binutils-2.15.92.0.2-10.EL4 gnome-libs-1.4.1.2.90-44.1
compat-db-4.1.25-9 libstdc++-3.4.3-9.EL4
compat-libstdc++-296-2.96-132.7.2 libstdc++-devel-3.4.3-9.EL4
compat-libstdc++-33-3.2.3-47.3 make-3.80-5
control-center-2.8.0-12 pdksh-5.2.14-30
gcc-3.4.3-9.EL4 sysstat-5.0.5-1
gcc-c++-3.4.3-9.EL4 xscreensaver-4.18-5.rhel4.2
glibc-2.3.4-2 openmotif21-2.1.30-11.RHEL4.2
(required to install Oracle demos)
glibc-common-2.3.4-2
libaio-0.3.96 - libaio-0.3.102-1
Usuários e Grupos
oracle:dba, oinstall, oper
# /usr/sbin/groupadd g 500 oinstall
# /usr/sbin/groupadd g 501 dba
# /usr/sbin/groupadd g 502 oper
# /usr/sbin/useradd u 200 g oinstall G dba,oper oracle
# passwd oracle
Parâmetros de Kernel
Os parâmetros de kernel e sistema operacional foram ajustados conforme está no manual
de instalação. As entradas estão conforme descritas abaixo:
/etc/sysctl.conf:
# semaphores
kernel.sem = 250 32000 100 128
# sharedmemory
kernel.shmmni = 4096
kernel.shmall = 2097152
kernel.shmmax = 2147483648
# filemax
fs.filemax = 65536
# ip network
net.ipv4.ip_local_port_range = 1024 65000
# core network
net.core.optmem_max = 10240
net.core.message_burst = 50
net.core.message_cost = 5
net.core.mod_cong = 290
net.core.lo_cong = 100
net.core.no_cong = 20
net.core.no_cong_thresh = 20
net.core.netdev_max_backlog = 300
net.core.dev_weight = 64
net.core.rmem_default = 262144
net.core.wmem_default = 262144
net.core.rmem_max = 262144
net.core.wmem_max = 262144
127.0.0.1 localhost.localdomain localhost
192.168.1.200 bkpsc1.12.com.br bkpsc1
192.168.1.201 racsc1.12.com.br racsc1
192.168.1.202 racsc2.12.com.br racsc2
192.168.1.203 racsc3.12.com.br racsc3
192.168.2.1 racsc1priv.12.com.br racsc1priv
192.168.2.2 racsc2priv.12.com.br racsc2priv
192.168.2.3 racsc3priv.12.com.br racsc3priv
192.168.1.206 racsc1vip.12.com.br racsc1vip
192.168.1.207 racsc2vip.12.com.br racsc2vip
192.168.1.208 racsc3vip.12.com.br racsc3vip
Arquivos de Segurança
/etc/pam.d/login:
session required /lib/security/pam_limits.so
session required pam_limits.so
/etc/security/limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nfile 2047
oracle hard nfile 65536
ORACLE_BASE=/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/10.2.0; export ORACLE_HOME
ORACLE_RMAN=/u01/rman; export ORACLE_RMAN
LD_LIBRARY_PATH=$ORACLE_HOME/lib; export LD_LIBRARY_PATH
NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1; export NLS_LANG
ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data; export ORA_NLS33
# User specific environment and startup programs
PATH=$ORACLE_HOME/bin:$PATH:$HOME/bin
export PATH
ORACLE_BASE=/u00/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/10.2.0; export ORACLE_HOME
ORACLE_RMAN=/u01/rman; export ORACLE_RMAN
LD_LIBRARY_PATH=$ORACLE_HOME/lib; export LD_LIBRARY_PATH
CRS_BASE=/u00/crs/oracle; export CRS_BASE
CRS_HOME=$CRS_BASE/product/10.2.0/crs; export CRS_HOME
NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1; export NLS_LANG
ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data; export ORA_NLS33
# User specific environment and startup programs
PATH=$ORACLE_HOME/bin:$PATH:$HOME/bin
export PATH
ORACLE_SID=<Instance de Cada Máquina, por exemplo, bdteste1>
export ORACLE_SID
Next
Error
Ok
Next
Oracle Universal Installer: Product-Specific Prerequisite
Checks
Next
Warning
Yes
Oracle Universal Installer: Summary
Install
Execute Configuration scripts
Ok
Exit
Upgrade do RDBMS para 10.2.0.2
Inicialização de um Terminal Gráfico
Foi utilizado o terminal gráfico através da ferramenta
vncserver.
Executado o comando “./runInstaller” no usuário “oracle”
no diretório onde encontra-se o PatchSet do RDBMS
10.2.0.2.
Oracle Universal Installer: Welcome
Iniciar o Oracle Universal Installer.
Next
Next
Install
Execute Configuration scripts
Execução dos scripts de inicialização.
Ok
Exit
Next
Next
Next
Database Configuration Assistant, Step 3 of 12:
Database Identification
Identificar o nome para o banco de dados a ser criado.
Next
Next
Next
Database Configuration Assistant, Step 6 of 12: Storage
Options
Finish
Exit
Criação do Listener para o Banco de Dados RMAN
Inicialização de um Terminal Gráfico
Foi utilizado o terminal gráfico através da ferramenta
vncserver.
Executado o comando “netca” no usuário “oracle”.
Oracle Net Configuration Assistant: Welcome
Escolha a opção:
[ • ] Listener Configuration
Next
Oracle Net Configuration Assistant: Listener
Configuration, Listener
Escolha a opção:
[ • ] Add
Next
Oracle Net Configuration Assistant: Listener
Configuration, Listener Name
Preencha o campo:
Next
Oracle Net Configuration Assistant: Listener
Configuration, Select Protocols
Next
Oracle Net Configuration Assistant: Listener
Configuration, TCP/IP Protocol
Next
Oracle Net Configuration Assistant: Listener
Configuration, More Listeners ?
Next
Oracle Net Configuration Assistant: Listener
Configuration, Listener Configuration Done
Next
Oracle Net Configuration Assistant:Welcome
Finish
Criação do “Net Service” para o banco RMAN ( bkp-sc1, rac-sc1, rac-sc2 e rac-sc3 )
Inicialização de um Terminal Gráfico
Foi utilizado o terminal gráfico através da ferramenta
vncserver.
Executado o comando “netca” no usuário “oracle”.
Oracle Net Configuration Assistant:Real Application
Cluster, Configuration
Escolha a opção:
Next
Oracle Net Configuration Assistant:Welcome
Escolha a opção:
Next
Oracle Net Configuration Assistant:Net Service Name
Configuration
Escolha a opção:
[ • ] Add
Next
Oracle Net Configuration Assistant: Net Service Name
Configuration, Service Name
Preencha o campo:
Next
Oracle Net Configuration Assistant: Net Service Name
Configuration, Select Protocols
Next
Oracle Net Configuration Assistant: Net Service Name
Configuration, TCP/IP Protocol
Preencha o campo:
Next
Oracle Net Configuration Assistant: Net Service Name
Configuration, Test
Next
Oracle Net Configuration Assistant : Net Service Name
Configuration, Net Service Name
Preencha o campo:
Next
Oracle Net Configuration Assistant: Net Service Name
Configuration, Another Net Service Name
Next
Oracle Net Configuration Assistant: Net Service Name
Configuration Done
Next
Oracle Net Configuration Assistant: Welcome
Finish
Criação Repositório
Criação do Repositório do RMAN – Criação de Schema e Tablespace
CREATE TABLESPACE "TS_RMAN" DATAFILE
'/oracle/oradata/rman/rman01.dbf' SIZE 20m <atributo>
AUTOEXTEND ON NEXT 1m MAXSIZE 1920m
LOGGING ONLINE PERMANENT BLOCKSIZE 8192
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K SEGMENT SPACE
MANAGEMENT AUTO;
2) Criação do Schema que receberá os dados do catálogo (SID RMAN / Host Source)
create user RMAN identified by RMAN
temporary tablespace temp
default tablespace TS_RMAN;
grant CREATE SESSION, RESOURCE, RECOVERY_CATALOG_OWNER, UNLIMITED
TABLESPACE to RMAN;
$ rman catalog rman/rman@rman log=bdteste.log
RMAN>
RMAN> create catalog tablespace 'TS_RMAN';
RMAN> exit
$ rman catalog rman/rman@rman target 'system/oracle'
Recovery Manager: Release 10.2.0.2.0 Production on Wed May 10
16:11:38 2006
Copyright (c) 1982, 2005, Oracle. All rights reserved.
connected to target database: BDTESTE (DBID= 2927553651)
connected to recovery catalog database
RMAN> register database;
database registered in recovery catalog
starting full resync of recovery catalog
full resync complete
Archive Log
Configurações
Para o funcionamento das configurações RMAN desse documento, o banco de dados
deve estar em modo archive. Abaixo estão as configurações necessárias.
$ export ORACLE_SID=bdteste1
$ sqlplus /nolog
Database altered.
System altered.
Database dismounted.
ORACLE instance shut down.
SQL> exit
Configuração RMAN
Configurações
$ rman catalog rman/rman@rman target 'system/oracle'
CONFIGURE RETENTION POLICY TO REDUNDANCY 15;
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE DEVICE TYPE DISK PARALLELISM 3;
CONFIGURE DEFAULT DEVICE TYPE TO SBT_TAPE;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE SBT_TAPE
to '%F';
Arquitetura do Ambiente
Arquitetura
2.A integração é
1.Backup realizada através da
Iniciado biblioteca client
3.O backup começa a Library IBM
ser armazenado no
tape storage
Agenda
Backups ArchiveLogs
Descrição: O backup dos archivelogs será realizado a cada hora, para o caso de
perda do hardware do storage de discos, o máximo de transações perdidas seja de
uma hora.
Os archive logs não são apagados no momento do backup, sendo que o backup
desses será acumulado durante o dia. Os archive logs só serão apagados nos
backups diários.
Backups Diários
Backup Mensal
Completo
22:00
RootMensal.sh
MOUNT – OFFLINE
DELETE INPUT
Backup Anual
Completo
22:00 – 6:00
RootAnual.sh
MOUNT – OFFLINE
DELETE INPUT
Observações
- Archive Logs:
- O agendamento dos backups será realizado através de Scheduler do TSM. As rotinas devem ser executas com o
usuário root utilizando os scripts iniciados com a string Root.
Scripts de Backup
Scripts Horários
ArchiveLogHour.rman / RootArchHour.sh / RodaArchHour.sh
ArchiveLogHour.rman
run {
resync catalog;
allocate channel t1 type 'sbt_tape' parms 'ENV=(TDPO_OPTFILE=/u00/app/rman/lib/tdpo.opt)'
maxpiecesize 2g;
sql 'alter system archive log current';
backup archivelog all;
}
RootArchHour.sh
su oracle c "/u01/rman/scripts/bdteste/RodaArchHour.sh"
RodaArchHour.sh
data=`date '+%y%m%d%H%M%S'`
echo $data
echo Executando ...
log_bkp="archHour_$ORACLE_SID.$data"
echo $log_bkp
rman catalog rman/rman@rman target 'system/oracle' log
$ORACLE_RMAN/log/bdteste/$log_bkp
@$ORACLE_RMAN/scripts/bdteste/ArchiveLogHour.rman
Scripts Semanais
Domingo.rman / RootDomingo.sh / RodaDomingo.sh
Domingo.rman
run {
resync catalog;
allocate channel t1 type 'sbt_tape' parms 'ENV=(TDPO_OPTFILE=/u00/app/rman/lib/tdpo.opt)'
maxpiecesize 2g;
sql 'alter system archive log current';
backup incremental level 0 database keep until time='sysdate+92' logs;
backup check logical archivelog all delete input;
}
RootDomingo.sh
su oracle c "/u01/rman/scripts/bdteste/RodaDomingo.sh"
RodaDomingo.sh
data=`date '+%y%m%d%H%M%S'`
echo $data
echo Executando ...
log_bkp="domingo_$ORACLE_SID.$data"
echo $log_bkp
rman catalog rman/rman@rman target 'system/oracle' log
$ORACLE_RMAN/log/bdteste/$log_bkp
@$ORACLE_RMAN/scripts/bdteste/Domingo.rman
run {
resync catalog;
allocate channel t1 type 'sbt_tape' parms 'ENV=(TDPO_OPTFILE=/u00/app/rman/lib/tdpo.opt)'
maxpiecesize 2g;
sql 'alter system archive log current';
backup incremental level 2 database;
backup check logical archivelog all delete input;
}
RootSegunda.sh
su oracle c "/u01/rman/scripts/bdteste/RodaSegunda.sh"
RodaSegunda.sh
data=`date '+%y%m%d%H%M%S'`
echo $data
echo Executando ...
log_bkp="segunda_$ORACLE_SID.$data"
echo $log_bkp
rman catalog rman/rman@rman target 'system/oracle' log
$ORACLE_RMAN/log/bdteste/$log_bkp
@$ORACLE_RMAN/scripts/bdteste/Segunda.rman
run {
resync catalog;
allocate channel t1 type 'sbt_tape' parms 'ENV=(TDPO_OPTFILE=/u00/app/rman/lib/tdpo.opt)'
maxpiecesize 2g;
sql 'alter system archive log current';
backup incremental level 2 database;
backup check logical archivelog all delete input;
}
RootTerca.sh
su oracle c "/u01/rman/scripts/bdteste/RodaTerca.sh"
RodaTerca.sh
data=`date '+%y%m%d%H%M%S'`
echo $data
echo Executando ...
log_bkp="terca_$ORACLE_SID.$data"
echo $log_bkp
rman catalog rman/rman@rman target 'system/oracle' log
$ORACLE_RMAN/log/bdteste/$log_bkp
@$ORACLE_RMAN/scripts/bdteste/Terca.rman
run {
resync catalog;
allocate channel t1 type 'sbt_tape' parms 'ENV=(TDPO_OPTFILE=/u00/app/rman/lib/tdpo.opt)'
maxpiecesize 2g;
sql 'alter system archive log current';
backup incremental level 1 cumulative database;
backup check logical archivelog all delete input;
}
RootQuarta.sh
su oracle c "/u01/rman/scripts/bdteste/RodaQuarta.sh"
RodaQuarta.sh
data=`date '+%y%m%d%H%M%S'`
echo $data
echo Executando ...
log_bkp="quarta_$ORACLE_SID.$data"
echo $log_bkp
rman catalog rman/rman@rman target 'system/oracle' log
$ORACLE_RMAN/log/bdteste/$log_bkp
@$ORACLE_RMAN/scripts/bdteste/Quarta.rman
run {
resync catalog;
allocate channel t1 type 'sbt_tape' parms 'ENV=(TDPO_OPTFILE=/u00/app/rman/lib/tdpo.opt)'
maxpiecesize 2g;
sql 'alter system archive log current';
backup incremental level 2 database;
backup check logical archivelog all delete input;
}
RootQuinta.sh
su oracle c "/u01/rman/scripts/bdteste/RodaQuinta.sh"
RodaQuinta.sh
data=`date '+%y%m%d%H%M%S'`
echo $data
echo Executando ...
log_bkp="quinta_$ORACLE_SID.$data"
echo $log_bkp
rman catalog rman/rman@rman target 'system/oracle' log
$ORACLE_RMAN/log/bdteste/$log_bkp
@$ORACLE_RMAN/scripts/bdteste/Quinta.rman
run {
resync catalog;
allocate channel t1 type 'sbt_tape' parms 'ENV=(TDPO_OPTFILE=/u00/app/rman/lib/tdpo.opt)'
maxpiecesize 2g;
sql 'alter system archive log current';
backup incremental level 2 database;
backup check logical archivelog all delete input;
}
RootSexta.sh
su oracle c "/u01/rman/scripts/bdteste/RodaSexta.sh"
RodaSexta.sh
data=`date '+%y%m%d%H%M%S'`
echo $data
echo Executando ...
log_bkp="sexta_$ORACLE_SID.$data"
echo $log_bkp
rman catalog rman/rman@rman target 'system/oracle' log
$ORACLE_RMAN/log/bdteste/$log_bkp
@$ORACLE_RMAN/scripts/bdteste/Sexta.rman
Script Mensal
Mensal.rman / RootMensal.sh / RodaMensal.sh
Mensal.rman
run {
startup mount;
resync catalog;
allocate channel t1 type 'sbt_tape' parms 'ENV=(TDPO_OPTFILE=/u00/app/rman/lib/tdpo.opt)' maxpiecesize 2g;
backup incremental level 0 database keep until time='sysdate+2200' nologs;
backup check logical archivelog all delete input;
alter database open;
}
RootMensal.sh
su oracle c "srvctl stop database d bdteste"
su oracle c "/u01/rman/scripts/bdteste/hist/RodaMensal.sh"
su oracle c "srvctl start database d bdteste"
RodaMensal.sh
#/bin/bash
data=`date '+%y%m%d%H%M%S'`
echo $data
echo Executando ...
log_bkp="Mensal_$ORACLE_SID.$data"
echo $log_bkp
rman catalog rman/rman@rman target 'system/oracle' log
$ORACLE_RMAN/log/bdteste/$log_bkp
@$ORACLE_RMAN/scripts/bdteste/hist/Mensal.rman
echo Reestartando o Cluster ...
Script Anual
Anual.rman / RootAnual.sh / RodaAnual.sh
Anual.rman
run {
startup mount;
resync catalog;
allocate channel t1 type 'sbt_tape' parms 'ENV=(TDPO_OPTFILE=/u00/app/rman/lib/tdpo.opt)'
maxpiecesize 2g;
backup incremental level 0 database keep forever nologs;
backup check logical archivelog all delete input;
alter database open;
}
RootAnual.sh
su oracle c "srvctl stop database d bdteste"
su oracle c "/u01/rman/scripts/bdteste/hist/RodaAnual.sh"
su oracle c "srvctl start database d bdteste"
RodaAnual.sh
data=`date '+%y%m%d%H%M%S'`
echo $data
echo Executando ...
log_bkp="Anual_$ORACLE_SID.$data"
echo $log_bkp
rman catalog rman/rman@rman target 'system/oracle' log
$ORACLE_RMAN/log/bdteste/$log_bkp
@$ORACLE_RMAN/scripts/bdteste/hist/Anual.rman
echo Reestartando o Cluster ...
***************************************************************************
* IBM Tivoli Storage Manager for Databases
* Data Protection for Oracle
*
* Sample tdpo.opt for the Linux86 Data Protection for Oracle
*********************************************************************
DSMI_ORC_CONFIG /opt/tivoli/tsm/client/api/bin/dsm.opt
DSMI_LOG /u01/backup/Log
TDPO_FS ocfs
TDPO_NODE RACPB1_TDP
* TDPO_OWNER <username>
TDPO_PSWDPATH /opt/tivoli/tsm/client/oracle/bin
* TDPO_DATE_FMT 1
* TDPO_NUM_FMT 1
* TDPO_TIME_FMT 1
* TDPO_MGMT_CLASS_2 mgmtclass2
* TDPO_MGMT_CLASS_3 mgmtclass3
* TDPO_MGMT_CLASS_4 mgmtclass4
/opt/tivoli/tsm/client/api/bin/dsm.opt:
************************************************************************
* IBM Tivoli Storage Manager *
* *
* Sample Client User Options file for UNIX (dsm.opt.smp) *
************************************************************************
* This file contains an option you can use to specify the TSM
* server to contact if more than one is defined in your client
* system options file (dsm.sys). Copy dsm.opt.smp to dsm.opt.
* If you enter a server name for the option below, remove the
* leading asterisk (*).
************************************************************************
/opt/tivoli/tsm/client/api/bin/dsm.sys:
* SErvername A server name defined in the dsm.sys file
SErvername BKPPB1
************************************************************************
* IBM Tivoli Storage Manager *
* *
* Sample Client System Options file for UNIX (dsm.sys.smp) *
************************************************************************
************************************************************************