Hoje decidimos publicar um pequeno projeto, mas que auxilia para quem precisa ficar sempre instalado softwares Oracle.
Esse projeto é chamado de oracle-prep-env, e disponibilizamos ele no Google Code, ele pode ser acessado através da URL: http://code.google.com/p/oracle-prep-env
A idéia principal desse projeto é fazer todo o pré-install na máquina, de forma automatizada e com a mínima interferência do DBA ou administrador do sistema.
Esse projeto é open-source, sendo assim, comentários e atualizações serão bem vindas.
quarta-feira, 22 de outubro de 2008
terça-feira, 15 de julho de 2008
Configurando archivelog
Essa é uma configuração que algumas pessoas não utilizam ainda, e ai os motivos podem ser diversos (não entra no mérito).
O banco em archivelog é um jeito de fazer com que o banco crie um backup das transações que ocorreram no banco, sendo assim, permite que ele seja recuperado e caso de problemas até um ponto específico no tempo (point-in-time recovery). Quando não se está utilizando o banco no modo archivelog, o administrador perde essa vantagem e fica preso em ter efetuar restaurações mais rígidas em relação ao tempo do problema, a vantagem é que o administrador teria um ganho de performance, mas que talvez esse ganho se torne um prejuízo mais na frente.
No Oracle 10g, existem alguns parâmetros que servem para a configuração do processo de arquivamento, como os mostrados a seguir:
Para verificar o estado do archive no banco, o comando pode ser utilizado:
Se o banco não estiver configurado com o modo de arquivamento (Archivelog Mode), então deve-se fazer os passos:
Com essas configurações o servidor começará a criar os arquivos de archive no(s) diretório(s) especificados. Fica a cargo do administrador agora cuidar desses arquivos, a melhor forma de fazer isso é utilizando o RMAN para fazer o backup deles.
O banco em archivelog é um jeito de fazer com que o banco crie um backup das transações que ocorreram no banco, sendo assim, permite que ele seja recuperado e caso de problemas até um ponto específico no tempo (point-in-time recovery). Quando não se está utilizando o banco no modo archivelog, o administrador perde essa vantagem e fica preso em ter efetuar restaurações mais rígidas em relação ao tempo do problema, a vantagem é que o administrador teria um ganho de performance, mas que talvez esse ganho se torne um prejuízo mais na frente.
No Oracle 10g, existem alguns parâmetros que servem para a configuração do processo de arquivamento, como os mostrados a seguir:
- log_archive_format: serve para formatar o nome dos arquivos gerados no processo de arquivamento, os parâmetros de formatação podem ser:
- %s log sequence number
- %S log sequence number, zero filled
- %t thread number
- %T thread number, zero filled
- %a activation ID
- %d database ID
- %r resetlogs ID that ensures unique names are constructed for the archived log files across multiple incarnations of the database;
- log_archive_dest_n: esse parâmetro (onde o n varia de 1 a 10), e indica até dez diretórios diferentes onde os arquivos serão gravados, mas atenção, isso não faz striping dos arquivos, é uma cópia de cada um, logo deve ser utilizado para se ter uma maior segurança do armazenamento dos mesmos.
- log_archive_dest_state_n: aqui o n também varia de 1 a 10 e a sua utilização é para dizer se o destino está habilitado ou desabilitado.
- log_archive_dest: este parâmetro é incompatível com o parâmetro log_archive_dest_n, mas também serve para especificar um diretório de destino para os arquivos de archive. Se for uma versão Enterprise, então esse valor está deprecated.
Para verificar o estado do archive no banco, o comando pode ser utilizado:
SQL> archive log list;
Modo log de banco de dados Modo de Arquivamento
Arquivamento automático Ativado
Destino de arquivamento /u02/oradata/archives/orcl
A seqüência de log on-line mais antiga 8
Próxima seqüência de log a arquivar 10
Seqüência de log atual 10
Se o banco não estiver configurado com o modo de arquivamento (Archivelog Mode), então deve-se fazer os passos:
SQL> alter system set log_archive_format='%t_%s_%r.arc' scope=spfile;
Sistema alterado.
SQL> alter system set log_archive_dest_1='LOCATION=/u02/oradata/archives/orcl' scope=spfile;
Sistema alterado.
SQL> shutdown immediate;
Banco de dados fechado.
Banco de dados desmontado.
Instância ORACLE desativada.
SQL> startup mount
Instância ORACLE iniciada.
Total System Global Area 1073741824 bytes
Fixed Size 2026224 bytes
Variable Size 373294352 bytes
Database Buffers 692060160 bytes
Redo Buffers 6361088 bytes
Banco de dados montado.
SQL> alter database archivelog;
Banco de dados alterado.
SQL> alter database open;
Banco de dados alterado.
SQL> archive log list;
Modo log de banco de dados Modo de Arquivamento
Arquivamento automático Ativado
Destino de arquivamento /u02/oradata/archives/orcl
A seqüência de log on-line mais antiga 8
Próxima seqüência de log a arquivar 10
Seqüência de log atual 10
Com essas configurações o servidor começará a criar os arquivos de archive no(s) diretório(s) especificados. Fica a cargo do administrador agora cuidar desses arquivos, a melhor forma de fazer isso é utilizando o RMAN para fazer o backup deles.
Labels:
Archivelog,
Oracle
sábado, 12 de julho de 2008
Duplicando uma instância Oracle
Suponha o seguinte, a máquina de produção teve algum tipo de problema (fonte ou a placa-mãe foi para ao espaço), ou simplesmente você deseja reproduzir o seu ambiente de produção e para isso precisa dos dados. Uma boa forma de fazer isso é utilizando o RMAN.
Com o RMAN você traz a sua instância com todas as configurações de parâmetros, usuários e permissões diretamente para uma nova máquina, isso te permite ter um novo ambiente totalmente igual ao outro.
Aqui irá ser mostrado caso seja utilizado o RMAN sem catálogo, ou seja, todas suas configurações estão no controlfile.
Inicialmente no banco de origem:
Na máquina de destino:
Explicando algums pontos:
Depois de feito isso, pode ser feito atualizações nos usuários ou no próprio banco com nos novos backups do RMAN. Se for de apenas um esquema, então pode ser utilizado o utilitário Datapump
Com o RMAN você traz a sua instância com todas as configurações de parâmetros, usuários e permissões diretamente para uma nova máquina, isso te permite ter um novo ambiente totalmente igual ao outro.
Aqui irá ser mostrado caso seja utilizado o RMAN sem catálogo, ou seja, todas suas configurações estão no controlfile.
Inicialmente no banco de origem:
$ sqlplus /nolog
SQL> conn sys as sysdba
SQL> create pfile='/u01/app/oracle/product/10.2.0/db_1/dbs/initprod.ora' from spfile;
SQL> select dbid from v$database;
Na máquina de destino:
$ mkdir -p /u01/app/oracle/oradata/orcl/
$ mkdir -p /u01/app/oracle/flash_recovery_area/orcl
$ cd /u01/app/oracle/flash_recovery_area/orcl
$ mkdir archivelog onlinelog
$ mkdir -p /u01/app/oracle/admin/orcl
$ cd /u01/app/oracle/admin/orcl
$ mkdir adump bdump cdump dpdump pfile udump
$ cd $ORACLE_HOME/dbs
$ scp oracle@ip.maquina.origem:/ORACLE_HOME/dbs/initorcl.ora .
$ cd ..
$ bin/orapwd file=orapworcl password=XXXXXXX entries=5
$ bin/rman
RMAN> set dbid=55580497;
RMAN> connect target /
RMAN> startup nomount;
RMAN> restore controlfile from '/caminho/do/backup/bkp_ctf_orcl_c-55580497-20080619-0e.rman';
RMAN> mount database;
RMAN> restore database;
RMAN> recover database;
RMAN> ALTER TABLESPACE TEMP ADD TEMPFILE '/u01/app/oracle/oradata/orcl/temp01.dbf' SIZE 100M AUTOEXTEND ON NEXT 100M MAXSIZE 4000M;
RMAN> alter database open resetlogs;
RMAN> exit;
Explicando algums pontos:
- A criação dos diretórios do banco, devem ser iguais aos seus originais, o RMAN não cria os diretórios, apenas os datafiles;
- Os diretórios de flashback e os de dump devem ser criados pois a instância precisa deles e eles provavelmente estão mapeados no seu controlfile;
- Preciso copiar o arquivo de parâmetros para poder ficar tudo igual na máquina de destino;
- Não é preciso setar o dbid, apenas faço por precaução;
- A criação do tempfile é preciso pois tempfiles não estão no backup, quanto ao tamanho dele e opções de auto-incremento isso vai depender do seu banco.
Depois de feito isso, pode ser feito atualizações nos usuários ou no próprio banco com nos novos backups do RMAN. Se for de apenas um esquema, então pode ser utilizado o utilitário Datapump
Assinar:
Comentários (Atom)
