{"id":89,"date":"2010-03-04T09:53:00","date_gmt":"2010-03-04T12:53:00","guid":{"rendered":"http:\/\/www.soudba.com.br\/?p=89"},"modified":"2010-03-04T09:53:00","modified_gmt":"2010-03-04T12:53:00","slug":"treinamento-workshop-2-comentarios-e-dicas","status":"publish","type":"post","link":"https:\/\/www.soudba.com.br\/?p=89","title":{"rendered":"Treinamento Workshop 2 &#8211; Coment\u00e1rios e dicas"},"content":{"rendered":"<p>No ultimo treinamento, um aluno me enviou alguns dos coment\u00e1rios que fiz sobre os exerc\u00edcios e dicas que repassei e que fui executando enquanto os slides eram repassados. Assim, como s\u00e3o dicas valiosas e super interessantes &#8211; decidi compartilhar. Creditos do Aluno Ronan Eustaquio. Aqui est\u00e1 a semana toda do treinamento, somente os coment\u00e1rios e dicas.<\/p>\n<pre>#### Primeiro dia de Curso (08\/02\/2010) ####<br \/>Aluno: Ronan Eust\u00e1quio de Brito<br \/>Prof.: Andr\u00e9<br \/>Casa de Software S\/A<br \/>---------------------------<br \/>-- RMAN --<br \/>dbid -&gt; assinatura do banco<br \/>crosscheck -&gt; verifica o status do backup ou copia no disco ou fita;<br \/><br \/>-&gt; Verificar se o modo de arquivamento est\u00e1 ativado.<br \/>SQL&gt; select archiver from v$instance;<br \/>ou<br \/>SQL&gt; archive log list;<br \/><br \/>-&gt; Mostrar data neste formato.<br \/>[oracle@aluno04 ~]$ export NLS_DATE_FORMAT=DDMMYYYY_HH24MI<br \/><br \/>RMAN&gt; show all;<br \/><br \/>----<br \/># Listar todos data files que requerem backup<br \/># Assume que os mais recentes backups est\u00e3o sendo usados durante o restore.<br \/># Mostra 4 op\u00e7\u00f5es (incremental, dias, redundancia e janela de recupera\u00e7\u00e3o)<br \/>RMAN&gt; report need backup;<br \/><br \/>---- Alterar o banco para modo de archive log. ----<br \/>RMAN&gt; sql 'shutdown immeditate';<br \/>RMAN&gt; sql 'startup mount';<br \/>RMAN&gt; sql 'alter database archivelog';<br \/>RMAN&gt; sql 'alter database open'; # Para alterar o banco para modo de archive log \u00e9 necess\u00e1rio realizar at\u00e9 este passo.<br \/>RMAN&gt; sql 'alter system switch logfile';<br \/>RMAN&gt; list archivelog all;<br \/>RMAN&gt; backup tablespace users;<br \/>RMAN&gt; list backupset;<br \/>RMAN&gt; delete backupset 2;<br \/><br \/>RMAN&gt; backup as copy datafile 5 format '\/u01\/example.dbf';<br \/><br \/># usando TAG's<br \/>RMAN&gt; backup tablespace users TAG='BACKUPTBUSERS';<br \/>RMAN&gt; delete backupset TAG='BACKUPTBUSERS';<br \/><br \/><br \/>RMAN&gt; backup archivelog all delete all input; # para remover os logs arquivados no arquivo de redo.<br \/><br \/><br \/># Para fazer backup completo do banco, inclusive os arquivos de controle.<br \/>RMAN&gt; backup database plus archivelog;<br \/><br \/>----- Fazendo recupera\u00e7\u00e3o ----<br \/>RMAN&gt; backup tablespace users; # faz backup da tablespace users;<br \/>RMAN&gt; sql 'alter tablespace users offline immediate'; # para n\u00e3o ser usada.<br \/>RMAN&gt; restore tablespace users; # Restaura a tablespace.<br \/>RMAN&gt; recover tablespace users; # Aplica os devidos archivers.<br \/>RMAN&gt; sql 'alter tablespace users online';<br \/><br \/>---- Deletar backup obsoleto ----<br \/>RMAN&gt; list backup of tablespace users; # listar backups j\u00e1 feitos.<br \/>RMAN&gt; host;<br \/>[oracle@aluno04 ~]$ rm <br \/>[oracle@aluno04 ~]$ exit<br \/>RMAN&gt; crosscheck backupset; # visualiza os backups j\u00e1 feitos.<br \/>RMAN&gt; delete expired backupset; # deletar backups expirados.<br \/><br \/>---- Pratica 3 Usando recovery manager ----<br \/># Exerc\u00edcio 6<br \/>RMAN&gt; list backup of database;<br \/>RMAN&gt; backup as copy datafile 1 format '\/u01\/system01.copy';<br \/>RMAN&gt; backup as copy datafile 4 format '\/u01\/example01.dbf';<br \/><br \/># Exerc\u00edcio 7<br \/>RMAN&gt; crosscheck backupset;<br \/><br \/># Exerc\u00edcio 8<br \/>RMAN&gt; report need backup;<br \/><br \/># Exerc\u00edcio 9<br \/>RMAN&gt; configure exclude for tablespace staging clear;<br \/><br \/><br \/>---- Exemplo para Recriar \u00edndice. ----<br \/>SQL&gt; create tablespace indices;<br \/>SQL&gt; create table cliente (codigo number, nome varchar2(50));<br \/>SQL&gt; create index cliente_idx on cliente(nome) tablespace indices;<br \/>SQL&gt; insert into cliente values (1, 'luiz');<br \/>SQL&gt; commit;<br \/>SQL&gt; select index_name, status from dba_indexes where index_name = 'CLIENTE_IDX';<br \/>SQL&gt; drop tablespace indices including contents and datafiles;<br \/>SQL&gt; select index_name, status from dba_indexes where index_name = 'CLIENTE_IDX';<br \/>SQL&gt; create tablespace indices;<br \/>SQL&gt; create index cliente_idx on cliente(nome) tablespace indices;<br \/>SQL&gt; alter table cliente move tablespace users;<br \/>SQL&gt; select index_name, status from dba_indexes where index_name = 'CLIENTE_IDX';<br \/>SQL&gt; alter index cliente_idx rebuild tablespace indices;<br \/><br \/>---- Recriando o arquivo de senha para autentica\u00e7\u00e3o. ----<br \/>[oracle@aluno04 ~]$ orapwd file=orapworcl.ora password=oracle entries=5 <br \/><br \/># este arquivo deve ficar na pasta $ORACLE_HOME\/dbs<br \/># Obs.: N\u00e3o esquecer de setar o par\u00e2metro REMOTE_LOGIN_PASSWORDFILE para EXCLUSIVE;<br \/># Para verificar como est\u00e1 setado execute o comando:<br \/>SQL&gt; show parameter remote_login_passwordfile<br \/><br \/>#################################################################################<br \/>#### Segundo dia de Curso (09\/02\/2010) ####<br \/><br \/>Recupera\u00e7\u00e3o completa: Onde n\u00e3o h\u00e1 perda de dados.<br \/>Recupera\u00e7\u00e3o incompleta: Por exemplo, recuperar informa\u00e7\u00e3o de 1 hora atr\u00e1s.<br \/><br \/>Ponto de restaura\u00e7\u00e3o: Ponto criado para fazer um recover at\u00e9 aquele momento. Utilizado quando n\u00e3o se tem certeza<br \/>do que est\u00e1 fazendo, por exemplo.<br \/>Ex.:<br \/>SQL&gt; CREATE RESTORE POINT before_load;<br \/>RMAN&gt; RECOVER DATABASE UNTIL RESTORE POINT before_load;<br \/><br \/># Fazer backup full do banco<br \/>RMAN&gt; backup full database plus archivelog delete all input tag=BACKUPFULL;<br \/><br \/>---- Exerc\u00edcio 5: Recupera\u00e7\u00e3o de banco de dados. ----<br \/><br \/>Dica: Para mudar o formato da data.<br \/>SQL&gt; alter session set nls_date_format='DD\/MM\/YYYY HH24:MI';<br \/><br \/>Exerc\u00edcio 1:<br \/>[oracle@aluno04 labs]$ sqlplus hr\/hr @lab_05_01.sql<br \/><br \/>Exerc\u00edcio 2:<br \/>SQL&gt; select * from job_history;<br \/><br \/>Exerc\u00edcio 3:<br \/>SQL&gt; shutdown immediate;<br \/>SQL&gt; startup mount<br \/>[oracle@aluno06 labs]$ export NLS_DATE_FORMAT=\"DD\/MM\/YYYY HH24:MI\"<br \/>[oracle@aluno06 labs]$ export NLS_LANG=\"BRAZILIAN PORTUGUESE_BRAZIL.WE8ISO8859P1\"<br \/><br \/>RMAN&gt; list backupset; # Observe que a partir deste momento o relat\u00f3rio de backup est\u00e1 sendo apresentado em portugues.<br \/>RMAN&gt; RUN {<br \/>SET UNTIL TIME = '09\/02\/2010 14:02';<br \/>RESTORE DATABASE;<br \/>RECOVER DATABASE;<br \/>sql 'ALTER DATABASE OPEN RESETLOGS';<br \/>}<br \/><br \/>---- Capitulo 5: Flashback ----<br \/>---- Simular situa\u00e7\u00e3o de recupera\u00e7\u00e3o utilizando flashback ----<br \/><br \/>sqlplus hr\/hr<br \/>SQL&gt; create table dados(codigo number, nome varchar2(100));<br \/>SQL&gt; insert into dados values (1, 'xxxxx');<br \/>SQL&gt; commit;<br \/>SQL&gt; show recyclebin; # Observe que aqui n\u00e3o tem nada na lixeira, uma vez que este usu\u00e1rio n\u00e3o \"deletou\" nada.<br \/>SQL&gt; drop table dados; # Dropando a tabela;<br \/>SQL&gt; show recyclebin; # Mostrar dados que est\u00e3o na lixeira. Note que a tabela dropada est\u00e1 l\u00e1.<br \/>ORIGINAL NAME    RECYCLEBIN NAME                OBJECT TYPE  DROP TIME<br \/>---------------- ------------------------------ ------------ -------------------<br \/>DADOS            BIN$fy2774dMAnvgQKjAEAxxMw==$0 TABLE        2010-02-09:14:51:50<br \/><br \/>SQL&gt; flashback table dados to before drop; # Comando utilizado para recuperar dados que est\u00e1 na lixeira (flashback)<br \/>SQL&gt; select * from dados; # Neste ponto a tabela dados j\u00e1 foi restaurada;<br \/><br \/><br \/>---- Configurando o flashback ----<br \/>SQL&gt; conn \/ as sysdba<br \/>SQL&gt; shutdown immediate<br \/>SQL&gt; startup mount exclusive # exclusive para impedir que outros dba's conectem no banco.<br \/>SQL&gt; alter system set db_flashback_retention_target=2880 scope=both;<br \/>SQL&gt; alter database flashback on;<br \/>SQL&gt; alter database open;<br \/><br \/>---- Pontos de restaura\u00e7\u00e3o garantidos ----<br \/>Um ponto de restaura\u00e7\u00e3o garantido assegura que voc\u00ea possa executar um comando FLASHBACK DATABASE para um SCN em qualquer momento.<br \/><br \/>---- Exerc\u00edcio 6: Flashback ----<br \/>SQL&gt; create restore point before_load guarantee flashback database # Criar um ponto de restaura\u00e7\u00e3o por medidas de seguran\u00e7a.<br \/>SQL&gt; select CURRENT_SCN from V$DATABASE;<br \/>CURRENT_SCN<br \/>-----------<br \/>     521807<br \/><br \/>SQL&gt; SELECT SUM(SALARY) FR\nOM HR.EMPLOYEES;<br \/><br \/>SUM(SALARY)<br \/>-----------<br \/>     679050<br \/><br \/>SQL&gt; SELECT COUNT(*) FROM HR.JOB_HISTORY;<br \/><br \/>  COUNT(*)<br \/>----------<br \/>        15<br \/><br \/>---- Agora temos as informa\u00e7\u00f5es a serem comparadas. ----<br \/>[oracle@aluno06 labs]$ sqlplus hr\/hr @lab_06_04.sql # execu\u00e7\u00e3o do script do exerc\u00edcio<br \/>[oracle@aluno06 labs]$ sqlplus \/ as sysdba<br \/>SQL&gt; SELECT SUM(SALARY) FROM HR.EMPLOYEES;<br \/>SQL&gt; shutdown immediate;<br \/>SQL&gt; startup mount;<br \/>RMAN&gt; flashback database to scn=521807; # o n\u00famero SCN \u00e9 o mesmo que executamos no select acima.<br \/>RMAN&gt; alter database open resetlogs;<br \/><br \/>---- Capitulo 7: Lidando com banco de dados danificados. ----<br \/>-- DBVerify<br \/>SQL&gt; select name from v$datafile<br \/>NAME<br \/>--------------------------------------------------------------------------------<br \/>\/u01\/app\/oracle\/oradata\/orcl\/system01.dbf<br \/>\/u01\/app\/oracle\/oradata\/orcl\/undotbs01.dbf<br \/>\/u01\/app\/oracle\/oradata\/orcl\/sysaux01.dbf<br \/>\/u01\/app\/oracle\/oradata\/orcl\/users01.dbf<br \/>\/u01\/app\/oracle\/oradata\/orcl\/example01.dbf<br \/><br \/>[oracle@aluno06 labs]$ dbv file=\/u01\/app\/oracle\/oradata\/orcl\/system01.dbf blocksize=8192 # Executando o dbv para verificar o datafile, em caso de corrup\u00e7\u00e3o.<br \/><br \/>-- EXP<br \/>[oracle@aluno06 labs]$ exp hr\/hr file=dadoshr.dmp # Todo esquema do usu\u00e1rio hr foi exportado para o arquivo dadoshr.dmp<br \/><br \/>---- Laboratorio 7: ----<br \/>Exerc\u00edcio 1:<br \/>SQL&gt; select file_id, block_id from dba_extents where segment_name = 'DEPARTMENTS';<br \/>ou <br \/>SQL&gt; select SEGMENT_NAME, TABLESPACE_NAME, HEADER_FILE, HEADER_BLOCK # Este comando n\u00e3o mostrou o bloco correto.<br \/>SQL&gt; from DBA_SEGMENTS<br \/>SQL&gt; WHERE SEGMENT_NAME = 'DEPARTMENTS';<br \/><br \/>id do arquivo: 5 <br \/>id do bloco: 49<br \/><br \/>[oracle@aluno06 labs]$ sh lab_07_02.sh \/u01\/app\/oracle\/oradata\/orcl\/example01.dbf 49 8192<br \/>[oracle@aluno06 labs]$ sqlplus \/ as sysdba<br \/>SQL&gt; select * from hr.departments;<br \/>Em caso de n\u00e3o retornar erro, \u00e9 necess\u00e1rio limpar o buffer_cache;<br \/>Com o usu\u00e1rio system execute o comando abaixo.<br \/>SQL&gt; alter system flush buffer_cache;<br \/>SQL&gt; select * from hr.departments;<br \/>ERROR at line 1:<br \/>ORA-01578: ORACLE data block corrupted (file # 5, block # 51)<br \/>ORA-01110: data file 5: '\/u01\/app\/oracle\/oradata\/orcl\/example01.dbf'<br \/><br \/>Neste caso vamos recuperar usando o dbv (DB Verify) no arquivo de dados corrompido e informando o tamanho do bloco.<br \/>[oracle@aluno06 labs]$ dbv file=\/u01\/app\/oracle\/oradata\/orcl\/example01.dbf blocksize=8192<br \/><br \/>Obs.: os blocos corrompidos foram logados no log de alert. Mas a sa\u00edda do comando dbv tamb\u00e9m mostra os blocos corrompidos. Que no meu caso foram os blocos 49,50,51 e 52<br \/>SQL&gt; show parameter background_dump_dest<br \/>\/u01\/app\/oracle\/admin\/orcl\/bdump<br \/>[oracle@aluno06 labs]$ vi \/u01\/app\/oracle\/admin\/orcl\/bdump\/alert_orcl.log<br \/><br \/>Logo em seguida, dentro do RMAN execute o comando de recupera\u00e7\u00e3o.<br \/>RMAN&gt; blockrecover datafile 5 block 49,50,51,52;<br \/><br \/>Por fim, execute um select dentro da tabela hr.departments para verificar sua integridade.<br \/>SQL&gt; select * from hr.departments;<br \/><br \/>Capitulo 8: Monitoramento e Gerenciamento de mem\u00f3ria<br \/><br \/>SQL&gt; show parameter db_block_size<br \/>SQL&gt; show parameter db_cache_size<br \/>SQL&gt; show parameter db_keep_cache_size<br \/>SQL&gt; alter table hr.departments storage (buffer_pool keep); # este comando n\u00e3o ter\u00e1 validade a menos que defina o par\u00e2metro db_keep_cache_size, pois este \u00e9 configurado manualmente pelo DBA.<br \/>SQL&gt; alter system set db_keep_cache_size=50M scope=both;<br \/><br \/>SGA_MAX_SIZE \u00e9 o tamanho m\u00e1ximo que se pode definir para sga. Portanto, SGA_TARGET tem sempre que ser igual ou menor que ela.<br \/><br \/>alter system set sga_target=500M; # Definindo o tamanho do SGA_TARGET manualmente.<br \/><br \/>Comportamento de Par\u00e2metros Auto-ajust\u00e1veis da SGA<br \/>SQL&gt; select sum(bytes)\/1024\/1024 size_mb<br \/>  2  from v$sgastat where pool = 'shared pool';<br \/><br \/>SQL&gt; select component, current_size\/1024\/1024 size_mb<br \/>  2  from v$sga_dynamic_components;<br \/><br \/>---- Laboratorio 8: ----<br \/>SQL&gt; shutdown immediate<br \/>SQL&gt; startup pfile='\/home\/oracle\/labs\/init_sgalab.ora';<br \/>SQL&gt; @\/home\/oracle\/labs\/lab_08_02.sql<br \/>SQL&gt; conn \/ as sysdba<br \/>SQL&gt; @\/home\/oracle\/labs\/lab_08_04.sql # Este script deve ser executado v\u00e1rias vezes para se ver o comportamento do banco de dados ao longo do tempo.<br \/>SQL&gt; shutdown immediate<br \/>SQL&gt; startup<br \/><br \/>#################################################################################<br \/>#### Terceiro dia de Curso (10\/02\/2010) ####<br \/><br \/><br \/>V$EVENT_NAME -&gt; Eventos de espera Oracle.<br \/><br \/><br \/>Sql Access Advisor<br \/>SQL&gt; select * from hr.employees, dba_objects<br \/>  2  union all<br \/>  3  select * from hr.employees, dba_objects<br \/>  4  where employee_id in (100,101)<br \/>  5  order by 5,7,8;<br \/><br \/>Para monitorar a execu\u00e7\u00e3o dessa SQL Advisor centro -&gt; Advisor de ajuste SQL -&gt; Principal Atividade<br \/><br \/><br \/>#################################################################################<br \/>#### Quarto dia de Curso (11\/02\/2010) ####<br \/><br \/>---- ASM ----<br \/><br \/>[oracle@aluno06 labs]$ dbca # Vamos criar o ASM - Gerenciamento de Armazenamento Autom\u00e1tico. Para isso, \u00e9 necess\u00e1rio rodar o script \"localconfig\".<br \/><br \/>[root@aluno06 ~]# \/u01\/app\/oracle\/product\/10.2.0\/db_1\/bin\/localconfig add<br \/><br \/>Posteriormente, continue no assitente do dbca. Na ultima etapa deste assistente, passo 2 de 2, onde aparecem os grupos<br \/>de discos dispon\u00edveis, clique em criar novo para criar um novo disc group.<br \/><br \/>Na linha de comando, execute o comando abaixo<br \/><br \/>[oracle@aluno06 labs]$ pgrep -lf pmon<br \/>5432 ora_pmon_orcl<br \/>8792 asm_pmon_+ASM<br \/><br \/>Isso quer dizer que o ASM est\u00e1 no ar.<br \/><br \/>Carregue a vari\u00e1vel de ambiente ORACLE_SID para verificar o ASM<br \/><br \/>[oracle@aluno06 labs]$ export ORACLE_SID=+ASM<br \/>[oracle@aluno06 labs]$ sqlplus \/ as sysdba<br \/>SQL&gt; select instance_name, status from v$instance;<br \/>INSTANCE_NAME    STATUS<br \/>---------------- ------------<br \/>+ASM             STARTED<br \/><br \/>Na tela do Create Disk Group, em Disc Group Name coloque DGROUP1, adicione os 4 primeiros discos e clique em ok. Depois finalize o assistente.<br \/><br \/>---- Laboratorio 12: ----<br \/>[oracle@aluno06 labs]$ export ORACLE_SID=+ASM<br \/>[oracle@aluno06 labs]$ sqlplus \/ as sysdba<br \/>SQL&gt; !ps -ef |grep ASM # Para listar os processos no so a partir do sqlplus.<br \/>SQL&gt; select name, state,type total_mb, free_mb from v$asm_diskgroup;<br \/><br \/>[oracle@aluno06 labs]$ export ORACLE_SID=orcl<br \/>[oracle@aluno06 labs]$ sqlplus \/ as sysdba<br \/>SQL&gt; create tablespace tbsasm DATAFILE '+DGROUP1' SIZE 200M;<br \/>SQL&gt; drop tablespace tbsasm including contents and datafiles;<br \/>SQL&gt; create tablespace tbsasmmig DATAFILE 'asmmig1.dbf' SIZE 10M;<br \/>SQL&gt; create table t2(c number) tablespace tbsasmmig;<br \/>SQL&gt; insert into t2 values(1);<br \/>SQL&gt; commit;<br \/>SQL&gt; host rman target \/ nocatalog;<br \/>RMAN&gt; sql \"alter tablespace tbsasmmig offline\";<br \/>RMAN&gt; backup as copy tablespace tbsasmmig format '+DGROUP1';<br \/>RMAN&gt; switch tablespace tbsasmmig to copy;<br \/>RMAN&gt; sql \"alter tablespace tbsasmmig online\";<br \/>RMAN&gt; exit<br \/>SQL&gt; column file_name format a48<br \/>SQL&gt; select tablespace_name, file_name from dba_data_files;<br \/>SQL&gt; select * from t2;<br \/>SQL&gt; drop tablespace tbsasmmig including contents and datafiles;<br \/>SQL&gt; host rm $ORACLE_HOME\/dbs\/asmmig1.dbf<br \/><br \/>#################################################################################<br \/>#### Quinto dia de Curso (12\/02\/2010) ####<br \/><br \/>---- Capitulo 15: OWM Oracle Wallet Manager ----<br \/>owm # Ferramenta para criar certificados digitais.<br \/><br \/><br \/>---- Clonar um banco de dados ----<br \/>Os passos abaixo servem como orienta\u00e7\u00e3o para clona\nr um banco de dados. Uma das utiliza\u00e7\u00f5es para isto, por exemplo, \u00e9 quando se tem um banco de produ\u00e7\u00e3o e voc\u00ea quer criar um banco de homologa\u00e7\u00e3o identico ao de produ\u00e7\u00e3o.<br \/><br \/>[oracle@aluno06 u01]$ mkdir -p \/u01\/bdo\/{adump,bdump,cdump,udump}<br \/>[oracle@aluno06 bdo]$ sqlplus \/ as sysdba<br \/>SQL&gt; startup mount # Obs.: O banco original n\u00e3o pode estar aberto. Caso esteja, atrapalha todo o processo.<br \/>SQL&gt; create pfile='\/u01\/bdo\/init.ora' from spfile;<br \/>SQL&gt; show parameter background_dump_dest;<br \/>SQL&gt; host rm \/u01\/app\/oracle\/admin\/orcl\/udump\/* # Este comando serve para remover tudo quanto \u00e9 lixeira existente neste diret\u00f3rio para que n\u00e3o atrapalhe o procedimento.<br \/>SQL&gt; alter database backup controlfile to trace; # Este comando vai criar o arquivo orcl_ora_8778.trc que servir\u00e1 de exemplo para o nosso script.<br \/>SQL&gt; select status from v$instance;<br \/>[oracle@aluno06 bdo]$ vi \/u01\/app\/oracle\/admin\/orcl\/udump\/orcl_ora_8778.trc # Alterar este arquivo e deix\u00e1-lo como est\u00e1 abaixo. Lembre-se que voc\u00ea deve trocar o caminho do orcl para o novo bdo.<br \/><br \/>STARTUP NOMOUNT pfile='\/u01\/bdo\/init.ora';<br \/>CREATE CONTROLFILE SET DATABASE \"BDO\" RESETLOGS  NOARCHIVELOG<br \/>    MAXLOGFILES 16<br \/>    MAXLOGMEMBERS 3<br \/>    MAXDATAFILES 100<br \/>    MAXINSTANCES 8<br \/>    MAXLOGHISTORY 292<br \/>LOGFILE<br \/>  GROUP 1 '\/u01\/bdo\/redo01.log'  SIZE 50M,<br \/>  GROUP 2 '\/u01\/bdo\/redo02.log'  SIZE 50M,<br \/>  GROUP 3 '\/u01\/bdo\/redo03.log'  SIZE 50M<br \/>-- STANDBY LOGFILE<br \/>DATAFILE<br \/>  '\/u01\/bdo\/system01.dbf',<br \/>  '\/u01\/bdo\/undotbs01.dbf',<br \/>  '\/u01\/bdo\/sysaux01.dbf',<br \/>  '\/u01\/bdo\/users01.dbf',<br \/>  '\/u01\/bdo\/example01.dbf'<br \/>CHARACTER SET AL32UTF8;<br \/>alter database open resetlogs;<br \/>ALTER TABLESPACE TEMP ADD TEMPFILE '\/u01\/bdo\/temp01.dbf';<br \/>:w \/u01\/bdo\/control.sql<br \/>:q<br \/><br \/>[oracle@aluno06 bdo]$ vi \/u01\/bdo\/init.ora # Neste passo deve-se trocar todo o caminho do orcl para o bdo assim como foi feito no arquivo acima.<br \/><br \/>*.audit_file_dest='\/u01\/bdo\/adump'<br \/>*.background_dump_dest='\/u01\/bdo\/bdump'<br \/>*.compatible='10.2.0.1.0'<br \/>*.control_files='\/u01\/bdo\/control01.ctl','\/u01\/bdo\/control02.ctl','\/u01\/bdo\/control03.ctl'<br \/>*.core_dump_dest='\/u01\/bdo\/cdump'<br \/>*.db_block_size=8192<br \/>*.db_cache_size=251658240<br \/>*.db_create_file_dest='\/u01\/bdo'<br \/>*.db_domain='oracle.com'<br \/>*.db_file_multiblock_read_count=16<br \/>*.db_flashback_retention_target=2880<br \/>*.db_keep_cache_size=54525952<br \/>*.db_name='bdo'<br \/>*.db_recovery_file_dest='\/u01\/app\/oracle\/flash_recovery_area'<br \/>*.db_recovery_file_dest_size=2147483648<br \/>*.dispatchers='(PROTOCOL=TCP) (SERVICE=bdoXDB)'<br \/>*.java_pool_size=4194304<br \/>*.job_queue_processes=10<br \/>*.large_pool_size=4194304<br \/>*.open_cursors=300<br \/>*.pga_aggregate_target=200278016<br \/>*.processes=150<br \/>*.remote_login_passwordfile='EXCLUSIVE'<br \/>*.resource_manager_plan='SYSTEM_PLAN'<br \/>*.sga_target=578813952<br \/>*.shared_pool_size=201326592<br \/>*.streams_pool_size=0<br \/>*.undo_management='AUTO'<br \/>*.undo_tablespace='UNDOTBS1'<br \/>*.user_dump_dest='\/u01\/bdo\/udump'<br \/><br \/>[oracle@aluno06 orcl]$ cp \/u01\/app\/oracle\/oradata\/orcl\/* \/u01\/bdo\/ # aqui voc\u00ea dever\u00e1 copiar toda a estrutura do banco atual para o novo.<br \/><br \/>[oracle@aluno06 bdo]$ sqlplus \/ as sysdba<br \/>SQL&gt; alter database open; # inicie o banco atual para se ter certeza do que est\u00e1 fazendo.<br \/><br \/>[oracle@aluno06 bdo]$ export ORACLE_SID=bdo # agora vamos para o passo do novo banco.<br \/>[oracle@aluno06 bdo]$ rm *.ctl # remover os arquivos de controle, pois o comando dentro do script ir\u00e1 cri\u00e1-los. Caso tenha algum arquivo .ctl, o comando n\u00e3o funcionar\u00e1 e retornar\u00e1 erro.<br \/>[oracle@aluno06 bdo]$ sqlplus \/ as sysdba<br \/>Connected to an idle instance.<br \/>SQL&gt; @control.sql<br \/>SQL&gt; exit<br \/><br \/>[oracle@aluno06 bdo]$ emca -repos recreate # Aqui voc\u00ea deve passar as informa\u00e7\u00f5es do banco como, sid do banco, porta, senhas, etc.<br \/>[oracle@aluno06 bdo]$ emca -config bd # No passo acima, vai dar erro uma vez que o caminho acima n\u00e3o existe. Isso ser\u00e1 resolvido com este passo para que reconfigure todo o banco. Ser\u00e1 necess\u00e1rio passar toda a informa\u00e7\u00e3o conforme descrito no passo acima.<br \/><br \/><br \/><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>No ultimo treinamento, um aluno me enviou alguns dos coment\u00e1rios que fiz sobre os exerc\u00edcios e dicas que repassei e que fui executando enquanto os slides eram repassados. Assim, como s\u00e3o dicas valiosas e super interessantes &#8211; decidi compartilhar. Creditos &hellip; <a href=\"https:\/\/www.soudba.com.br\/?p=89\">Continue lendo <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,316,337],"tags":[],"class_list":["post-89","post","type-post","status-publish","format-standard","hentry","category-bash_profile-oracle","category-treinamento-oracle","category-workshop2"],"_links":{"self":[{"href":"https:\/\/www.soudba.com.br\/index.php?rest_route=\/wp\/v2\/posts\/89","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.soudba.com.br\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.soudba.com.br\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.soudba.com.br\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.soudba.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=89"}],"version-history":[{"count":0,"href":"https:\/\/www.soudba.com.br\/index.php?rest_route=\/wp\/v2\/posts\/89\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.soudba.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=89"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.soudba.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=89"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.soudba.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=89"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}