- Este tópico contém 13 respostas, 3 vozes e foi atualizado pela última vez 13 anos, 6 meses atrás por
Thiago.
-
AutorPosts
-
28 de junho de 2012 às 9:49 pm #103976
Cleber_df
ParticipanteBoa tarde,
Estou com o seguinte problema. Possuo o seguinte parfile:USERID=”user/senha@dblink”
TABLES=(PWD.TABLE1,
PWD.TABLE2,
PWD.TABLE3)
TRACE=Y
STATISTICS=NONE
CONSTRAINTS=N
INDEXES=Y
ROWS=Y
TRIGGERS=N
GRANTS=N
FILE=/u02/pwd.dmp
LOG=/u02/log/pwd.logTenho uma rotina .sh que executa esse parfile. A questão é a seguinte atualmente ele conecta no banco com o user sys. Criei um outro usuário e concedi os grants de: EXP_FULL_DATABASE, IMP_FULL_DATABASE, FLASHBACK ANY TABLE. Quando executo ele aparece a seguinte mensagem de erro:
EXP-00056: ORACLE error 1031 encountered
ORA-01031: insufficient privileges
EXP-00000: Export terminated unsuccessfullyConcedi diversos outros grants e não obtive sucesso. Só funciona com a concessão da role de DBA. Alguma dica? Não gostaria de ficar com o user e senha com privilégios de DBA no script. Lembrando que estou usando exp pois se trata de uns scripts legados e como são muitos gostaria de alterar o minimo possivel. Valeu galera.
[/code]28 de junho de 2012 às 9:54 pm #103977rman
Participante@Cleber_df
Só por desencargo, o usuário tem permissão de CONNECT?
Posta o /u02/log/pwd.log
28 de junho de 2012 às 10:03 pm #103978Cleber_df
ParticipanteSim. Por desencargo coloquei connect, resource, create session e create table. No pwd.log aparece:
EXP-00056: ORACLE error 1031 encountered
ORA-01031: insufficient privileges
EXP-00000: Export terminated unsuccessfullyObrigado
28 de junho de 2012 às 10:40 pm #103980rman
Participante@Cleber_df
Posta o conteúdo completo do log.
28 de junho de 2012 às 11:06 pm #103981Cleber_df
ParticipanteEste é o conteúdo completo do log ele não grava mais nada.
Export: Release 11.2.0.1.0 – Production on Thu Jun 28 16:02:40 2012
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
EXP-00056: ORACLE error 1031 encountered
ORA-01031: insufficient privileges
EXP-00000: Export terminated unsuccessfully28 de junho de 2012 às 11:32 pm #103983rman
Participante@Cleber_df
Qual a versão do oracle e qual SO ?
Você está usando qual usuário de SO para chamar o script?
28 de junho de 2012 às 11:41 pm #103984Cleber_df
ParticipanteO usuário de SO é o oracle e a versão do SO é RH 5.6 e a do oracle é 11.2.0.1.0. Quando eu retiro o dblink ele funciona, só com o dblink que ele da erro.
28 de junho de 2012 às 11:43 pm #103985rman
Participante@Cleber_df
Posta o tnsnames.ora
29 de junho de 2012 às 12:15 am #103986Cleber_df
ParticipanteSegue o tns. Eu estou conectado no banco dw e o dblink é para o banco prod.
DW =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = serverdw1-vip.dominio.com.br)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = serverdw2-vipdominio.com.br)(PORT = 1521))
(LOAD_BALANCE = yes)
(FAILOVER = ON)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = serverdw.dominio.com.br)
(FAILOVER_MODE =
(TYPE = SELECT)
(METHOD = BASIC)
(RETRIES = 180)
(DELAY = 5)
)
)
)PROD =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = prod1-vip.dominio.com.br)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = prod2-vip.dominio.com.br)(PORT = 1521))
(LOAD_BALANCE = yes)
(FAILOVER = ON)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = prod.dominio.com.br)
(FAILOVER_MODE =
(TYPE = SELECT)
(METHOD = BASIC)
(RETRIES = 180)
(DELAY = 5)
)
)
)29 de junho de 2012 às 3:11 pm #103987rman
Participante@Cleber_df
Não entendi o por que do dblink…
No parfile, em USERID=”user/senha@dblink” não deveria ter USERID=”user/senha@DW” ou USERID=”user/senha@PROD” ?
É um RAC de dois nós?
29 de junho de 2012 às 4:14 pm #103989Cleber_df
ParticipanteBom dia! Sim é o rac de 02 nós. Eu coloquei o dblink só como exemplo, mas na verdade eu uso @prod. Executo essa instrução no banco de dw, faço esse export em produção gravando na máquina de dw e depois realizo o import no dw. Como te falei com a role de DBA funciona perfeito, mas me incomoda o fato de passar user e senha de um usuário com grant de dba em um script. Uma solução seria conectar assim USERID=”/@PROD as sysdba” já me serviria, mas assim também não funciona. O meu problema de privilégio esta ligado diretamente ao dblink haja vista que o usuário criado sem o grant de dba e executando o comando localmente (sem o dblink) funciona perfeitamente. É osso já li muito a respeito e não achei muita coisa as dicas que achei não deram certo. Obrigado pela ajuda
29 de junho de 2012 às 6:16 pm #103991rman
Participante@Cleber_df
Acho que agora eu entendi o que você quis dizer com dblink, não tem nada a ver com o objeto database link do Oracle, você esta se referindo a conexão remota.
Primeiro, eu utilizaria o Datapump ao invés do exp. Se mesmo assim você quer usar o exp, eu faria o exp local, depois faria a transferência do dump para a máquina de DW. Se você fizer o dump remoto, você pode ter o gargalo da rede, que pode até comprometer a integridade do dump.
29 de junho de 2012 às 8:57 pm #103993Cleber_df
ParticipanteOk rman vou implementar algo do tipo aqui. Muito obrigado pela ajuda.
Há braços.
23 de agosto de 2012 às 6:46 am #104305Thiago
ParticipanteConcordo com o Rman…
E caso seu servidor seja um Rac.. antes de colocar o seu parfile, no proprio servidor
da um export ORACLE_SID=’SID’ que aí voce nao irá precisar comolocar o @ pra definir em qual banco que deseja entrar -
AutorPosts
- Você deve fazer login para responder a este tópico.