Olá!

Olá para todos,

Para aqueles que não me conhecem, eu sou Ronan e estou escrevendo este blog com o intuito de reunir informações daquilo que eu gosto de fazer. Sou formado em computação e gosto de ler e escrever sobre Liderança, Desenvolvimento Pessoal, Motivação e assuntos na minha área. Pretendo colocar aqui aquilo que é interessante pra mim. Se você gostar do conteúdo, ótimo!
Atualmente estou conhecendo um mundo novo, que é o mundo do empreendedorismo e que está me fascinando. Hoje eu prezo muito pela liberdade! Palavra forte que me faz acordar todos os dias pensando no quê fazer alcançá-la. Afinal, o que é liberdade? Aos poucos vou aprendendo o significado desta palavra e acho que muito poucas pessoas sabem o significado. Para aqueles que já sabem, meus parabéns! Um grande mentor deu um significado para esta palavra e que gostei: "Liberdade não é a ausência de regras e sim usufruir da disciplina." Eu gostei deste significado, mas acho que tem mais. Como não sei o que é ao certo ainda, vou tentando aprender o que é para mim. Ano passado fui apresentado ao Marketing de Rede e acreditem, mudei totalmente a minha concepção em relação ao mercado. Hoje eu acredito muito que este é o Negócio do Século XXI. Um mercado onde se encontra pessoas positivas, alto astral e todas lutam por seus ideais e acreditam num mundo melhor. É uma família de empreendedores de diversas áreas onde o sucesso de todos é interessante para todos! Vou escrever sobre isso também, afinal, tenho lido demais sobre este assunto.

terça-feira, 22 de junho de 2010

Duplicando Base no Oracle 10g – cópia

Documento com o objetivo de comentar os passos necessários para duplicar um banco de dados oracle 10g usando cópia (comando cp do sistema operacional).

Cenário:

Uma das utilizações para isto, por exemplo, é quando se tem um banco de produção e você quer criar um banco de homologação identico ao de produção. É feito uma cópia física do banco. Para isso o banco de produção não pode estar aberto. Existem diversas formas de se fazer isso. Neste blog esta é o segundo post referente ao mesmo assunto. Ou seja, 2 formas de se fazer a mesma coisa.

Informações:

Nome da máquina: aluno06.treinamento
DB Produção: orcl
senha oracle: oracle

DB Teste: bdo
senha oracle: oracle

Vamos aos passos:


Crie os diretórios adump, bdump, cdump e udump
$ mkdir -p /u01/bdo/{adump,bdump,cdump,udump}

Conecte no banco como sysdba e altere-o para o estado mount. Vale lembrar que o banco original não pode estar aberto. Caso esteja, atrapalha todo o processo.

$ sqlplus / as sysdba
SQL> startup mount

Estes próximos são alguns passos pequenos e que não há necessidade de explicá-los, basta fazer um breve comentário.

SQL> create pfile='/u01/bdo/init.ora' from spfile; # Criar o aquivo init.ora com a configuração atual do banco
SQL> show parameter background_dump_dest;
SQL> host rm /u01/app/oracle/admin/orcl/udump/* # Este comando serve para remover tudo quanto é lixeira existente neste diretório para que não atrapalhe o procedimento.
SQL> alter database backup controlfile to trace; # Este comando vai criar o arquivo orcl_ora_8778.trc que servirá de exemplo para o nosso script.
SQL> select status from v$instance;

Edite o arquivo com toda a configuração atual do banco. Neste passo você deve alterar esse arquivo e deixá-lo como está abaixo. Lembre-se que você deve trocar o caminho do orcl para o novo bdo.

$ vi /u01/app/oracle/admin/orcl/udump/orcl_ora_8778.trc

STARTUP NOMOUNT pfile='/u01/bdo/init.ora';
CREATE CONTROLFILE SET DATABASE "bdo" RESETLOGS NOARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 '/u01/bdo/redo01.log' SIZE 50M,
GROUP 2 '/u01/bdo/redo02.log' SIZE 50M,
GROUP 3 '/u01/bdo/redo03.log' SIZE 50M
-- STANDBY LOGFILE
DATAFILE
'/u01/bdo/system01.dbf',
'/u01/bdo/undotbs01.dbf',
'/u01/bdo/sysaux01.dbf',
'/u01/bdo/users01.dbf',
'/u01/bdo/example01.dbf'
CHARACTER SET AL32UTF8;
alter database open resetlogs;
ALTER TABLESPACE TEMP ADD TEMPFILE '/u01/bdo/temp01.dbf';
:w /u01/bdo/control.sql
:q

Agora é necessário editar o arquivo init.ora e trocar todo o caminho do orcl para o bdo assim como foi feito no arquivo acima.

$ vi /u01/bdo/init.ora

*.audit_file_dest='/u01/bdo/adump'
*.background_dump_dest='/u01/bdo/bdump'
*.compatible='10.2.0.1.0'
*.control_files='/u01/bdo/control01.ctl','/u01/bdo/control02.ctl','/u01/bdo/control03.ctl'
*.core_dump_dest='/u01/bdo/cdump'
*.db_block_size=8192
*.db_cache_size=251658240
*.db_create_file_dest='/u01/bdo'
*.db_domain='oracle.com'
*.db_file_multiblock_read_count=16
*.db_flashback_retention_target=2880
*.db_keep_cache_size=54525952
*.db_name='bdo'
*.db_recovery_file_dest='/u01/app/oracle/flash_recovery_area'
*.db_recovery_file_dest_size=2147483648
*.dispatchers='(PROTOCOL=TCP) (SERVICE=bdoXDB)'
*.java_pool_size=4194304
*.job_queue_processes=10
*.large_pool_size=4194304
*.open_cursors=300
*.pga_aggregate_target=200278016
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.resource_manager_plan='SYSTEM_PLAN'
*.sga_target=578813952
*.shared_pool_size=201326592
*.streams_pool_size=0
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='/u01/bdo/udump'

Copie toda a estrutura física do banco atual para o novo conforme o objetivo do documento.

$ cp /u01/app/oracle/oradata/orcl/* /u01/bdo/

Inicie o banco atual para se ter certeza do que está fazendo.
SQL> alter database open;

Agora vamos para o passo do novo banco.

$ export ORACLE_SID=bdo

Remova os arquivos de controle, pois o comando dentro do script irá criá-los novamente. Caso tenha algum arquivo .ctl, o comando não funcionará e retornará erro.

$ rm /u01/bdo/*.ctl

Conecte no banco, execute o script e saia novamente.
SQL> @control.sql
SQL> exit


Caso queira criar um dbconsole no enterprise manager para este banco, execute os passos:


Aqui você deve passar as informações do banco como, sid do banco, porta, senhas, etc.

$ emca -repos recreate

No passo acima, vai dar erro uma vez que o caminho acima não existe. Isso será resolvido com este passo para que reconfigure todo o banco. Será necessário passar toda a informação conforme descrito no passo acima.

$ emca -config dbcontrol db

Nenhum comentário: