- Este tópico contém 11 respostas, 3 vozes e foi atualizado pela última vez 13 anos, 2 meses atrás por
Marcos Braga.
-
AutorPosts
-
3 de janeiro de 2013 às 3:20 pm #104968
Thiago Luiz
ParticipantePessoal bom dia ao Forum.
E o seguinte, tenho uma BD 11g na minha empresa.
Sou novo no ramo do BD oracle, entao preciso de ajuda de voces.
Entao, teenho uma Base de Teste (Maquina Virtual) com o banco de dados XE.
Preciso fazer uma replicação desse banco de dados do 11G para o BD XE (Base de teste).
Como que eu faço, alguem poderia me ajudar com alguma ideia ou tutorial.
Lembrando que sou novo nesse ramo BD oracle ok.Anteciosamente.
Thiago LuizFico no aguardo
3 de janeiro de 2013 às 11:04 pm #104976Marcos Braga
ParticipanteOi Thiago,
Acredito que o método mais prático é executar um exp/imp.
O que é necessário saber é se necessita migrar somente um ou vários schemas.
Vou deixar um exemplo de como migrar um schema simples da base 11 para a XE.
Primeiramente, digamos que existe um schema chamado SIRUS e vamos migrá-lo para outra base.
Antes de executar a importação é necessário saber qual o tamanho atual da tablespace que o schema SIRUS ocupa para criá-la na base destino a fim de evitar problemas de falta de espaço.
Siga os passos abaixo:
- Executar export do schema:
$ exp system/system-pass@sid-name file=export_sirus.dmp log=exp_sirus.log owner=sirus -
Criar a tablespace do schema na base destino:
SQL> create tablespace tbl_sirus
2 datafile '/u01/oracle/oradata/df_sirus_01.dbf'
3 size 10m autoextend on next 10m; -
Criar o schema na base destino:
SQL> create user sirus
2 identified by sirus
3 default tablespace tbl_sirus
4 quota unlimited on tbl_sirus; -
Executar grants necessários para que o usuário crie objetos na tablespace:
SQL> grant resource, connect to sirus; -
Executar a importação:
$ imp system/system-pass@sid-name file=export_sirus.dmp log=imp_sirus.log fromuser=sirus touser=sirus
Após os procedimentos acima, você terá o schema SIRUS migrado para a base XE.
Usei o usuário SYSTEM para executar esse procedimento, mas poderá usar o usuário SIRUS, se houver permissões para tanto.
Qualquer dúvida, estamos por aí…
[]s
Braga7 de janeiro de 2013 às 10:28 pm #104978Thiago Luiz
ParticipanteCaro Braga,
Mas os dados sao replicados automaticamente atualizados em tempo real?
Caso sim como fazer?
Essa é questao chave, em que preciso. As duas bases atualizadas em tempo real.Anteciosamente.
7 de janeiro de 2013 às 10:47 pm #104979rman
Participante@Thiago Luiz
O procedimento que o @braga passou não é um solução de replicação, é apenas uma importação de um dump (backup lógico), ou seja, toda vez que você quer atualizar o ambiente de teste você deve realizar o procedimento.
Se realmente for um ambiente de teste, a atualização não deve ser em tempo real, e sim, de tempos em tempos quando for necessário.
7 de janeiro de 2013 às 11:01 pm #104980Thiago Luiz
ParticipanterMAN,
Resumindo, teria como em fazer em tempo real atualizando as duas bases automaticamente?
Para entender o cenario é o seguinte..
Tenho um BD que se chama APPROACH IBM (DBF) entretanto o meu ERP(CIGAM – BD Oracle 11g). O Approach visualiza as tabelas do ERP . Esse approach sao feitos os calculos de comissão e etc em DBF. Entao, ao acessar o approach consigo visualizar o conteudo do CIGAM (ERP) as tabelas que foram interligadas no approach com o ERP(BD)
Então, queria sincronizar em tempo real o direcionamento do APPROACH (BD) iria para a base teste, desvinculando a relação da Base Oficial colocando em uma base de teste (BD – Maquina Virtual)..Acho que consegui explicar melhor …
8 de janeiro de 2013 às 2:19 am #104981Marcos Braga
ParticipanteOi Thiago,
Para uma solução que necessita, com bancos diferentes, pode usar o Oracle GoldenGate que faz o trabalho.
Pelo que percebi, não está querendo transformação de dados, mas somente replicação. Acredito que o GoldenGate possa ser uma ótima solução.
Infelizmente não possuo um processo pronto do GoldenGate para passar, mas há muita documentação na internet e o procedimento não é muito complexo.
[]s
Braga8 de janeiro de 2013 às 3:50 pm #104982rman
Participante@Thiago Luiz
Ainda não consegui enxergar se realmente a replicação é a melhor solução, talvez um simples dblink + permissões de usuário resolva o problema, só uma observação a solução de replicação que o @braga citou envolve custo, ou seja, você precisa comprar a licença.
8 de janeiro de 2013 às 5:54 pm #104984Thiago Luiz
ParticipanteOk, entendi a situação agora.
Realmente andei pesquisando o Oracle Golden Gate o custo é muito caro.Creio, que o Oracle GoldenGate nao esta incluindo no pacote de compra do 11G.
Agora gostaria que voces me ajuda-se em relaçao a uma outra parte que podemos fazer.
Seria as permissoes de usuarios no banco.
Mandei as permissoes de usuario com o print abaixo.
Gostaria de saber se esses usuarios estao no modo de alteraçao de dados,visualização e e etc.
Tenho que ter essa certeza que esse usuario consegue fazer a modificação dos dados.
Assim partimos para uma outra etapa em que como faço para criar um usuário no BD com permissão somente para a visualização de dados.
Ai nao precisaremos dessa replicação conforme RMAN respondeu abaixo e sim somente a criaçao com as devidas permissões de visualização.Attachments:8 de janeiro de 2013 às 7:28 pm #104985rman
Participante@Thiago Luiz
Pelo que percebi esse usuário possui permissões até a mais do que deveria, realmente é necessário a permissão de DBA? Geralmente o CONNECT + RESOURCE + CREATE VIEW já são suficientes para um usuário de sistema, mas o correto é consultar quem desenvolveu o sistema.
Sobre o usuário de leitura é só dar GRANT SELECT ON TABELA TO USUARIO nas tabelas necessárias, caso queira restringir por coluna é possivel criar uma VIEW com apenas os campos necessário e dar a permissão nesta VIEW.
8 de janeiro de 2013 às 10:17 pm #104987Thiago Luiz
ParticipanteOK,RMAN!!
Entendi a sua colocação.Agora,como eu disse nao tenho uma experiencia em relação ao oracle.
Queria um passo a passo, de se criar os usuarios e dar as devidas permissoes.Agradeço pela atençao e suas informaçoes !
8 de janeiro de 2013 às 10:30 pm #104988rman
Participante@Thiago Luiz
Utilizando um usuário que possua permissão de DBA:
CREATE USER "USUARIO" PROFILE "DEFAULT" IDENTIFIED BY "senha" DEFAULT TABLESPACE "USERS" TEMPORARY TABLESPACE "TEMP" ACCOUNT UNLOCK;
GRANT "CONNECT" TO "USUARIO";
GRANT "RESOURCE" TO "USUARIO";
GRANT SELECT ON CIGAM11.TABELA1 TO USUARIO;
GRANT SELECT ON CIGAM11.TABELA2 TO USUARIO;
GRANT SELECT ON CIGAM11.TABELA3 TO USUARIO;
Ou caso prefira utilizar o Oracle Enterprise Manager também é possível fazer por lá… é bem simples.
9 de janeiro de 2013 às 6:04 am #104990Marcos Braga
ParticipanteBem lembrado o lance do custo @rman.
Thiago,
Reforçando o script de criação do usuário do @rman, também é possível conseguí-lo dentro do próprio Enterprise Manager com todas as permissões que possui.
Não lembro o caminho correto, mas é na tela de administração dos usuários, verifique onde você encontra o SQL do usuário ou export SQL, algo bem parecido.
[]s
Braga - Executar export do schema:
-
AutorPosts
- Você deve fazer login para responder a este tópico.