- Este tópico contém 5 respostas, 3 vozes e foi atualizado pela última vez 14 anos, 6 meses atrás por
jspaulonci.
-
AutorPosts
-
16 de agosto de 2010 às 4:28 pm #95565
airoosp
ParticipanteBom dia,
Estou testando uma procedure que foi criada para gerar estatística do banco durante a noite através de um job.
Na procedure foi colocado o comando dbms_stats.gather_database_stats executada através do usuário system.
O problema é que apareceram erros informando que este usuário não tem acesso a diretórios no caso DATA_FILE_DIR e LOG_FILE_DIR.
Porque é necessário o usuário ter permissão nestes diretórios para executar a estatística? Fazendo pesquisas vi que não é ideal utilizar o sys nem o system para gerar estatísticas e sim criar um outro usuário com perfil sysdba para esta operação.
Fiz um teste criando outro usuário com este perfil só que apareceu outro erro “ORA-01925: maximum of 30 enabled roles exceeded”.Alguém sabe se é necessário criar outro usuário ou as estatísticas podem ser geradas com o SYS ou system (mas com mais privilégios, quais).
Este processo esta sendo testado em um banco de testes versão 9i.
Obrigado.
Airton
17 de agosto de 2010 às 6:19 pm #95572jspaulonci
ParticipanteMe passe o comando inteiro do dbms_stas e também todos os erros
18 de agosto de 2010 às 6:34 pm #95581airoosp
ParticipanteBom dia,
Na procedure é executada a partir de um job, fiz testes com as duas linhas de comando:
BANCO 9i.
dbms_stats.gather_database_stats();
dbms_stats.gather_database_stats(OPTIONS => ‘GATHER AUTO’);
As mensagens de erro que retornaram foram:
1 – Quando executado com o usuário System
ORA-12012: error on auto execute of job 181
ORA-06564: object DATA_FILE_DIR does not exist
ORA-06512: at “SYS.DBMS_STATS”, line 10301
ORA-06512: at “SYS.DBMS_STATS”, line 10795
ORA-06512: at “SYS.DBMS_STATS”, line 10982
ORA-06512: at “SYS.DBMS_STATS”, line 11076
ORA-06512: at “SYS.DBMS_STATS”, line 110562- Executado novamente depois de atribuir grant para o system no directory DATA_FILE_DIR, apareceu o erro abaixo.
ORA-12012: error on auto execute of job 181
ORA-29913: error in executing ODCIEXTTABLEOPEN callout
ORA-29400: data cartridge error
KUP-04080: directory object LOG_FILE_DIR not found3 – Quando executado com outro usuário que foi criado com perfil de Sysdba ocorreram os erros abaixo.
ORA-12012: error on auto execute of job 202
ORA-01925: maximum of 30 enabled roles exceededCriei outro usuário e estou fazendo testes.
Obrigado.
Airton
18 de agosto de 2010 às 6:54 pm #95582jspaulonci
ParticipanteCaramba Airton, nunca vi isso cara
Não faço a mínima idéia do que seja, vc tem Metalink, acho que abrir um chamado seja sensato.19 de agosto de 2010 às 10:57 pm #95604vieri
Participante[oracle@admdata11 exp]$ oerr ora 01925
01925, 00000, “maximum of %s enabled roles exceeded”
// *Cause: The INIT.ORA parameter “max_enabled_roles” has been exceeded.
// *Action: Increase max_enabled_roles and warm start the database.20 de agosto de 2010 às 2:37 pm #95607jspaulonci
ParticipanteFaz assim Airton, aumente esse parametro e rode denovo as suas estatísticas.
http://download.oracle.com/docs/cd/B105 … tm#1019492
Agora uma outra questão que recomendo você levar em consideração, você está migrando de ANALYZE para DBMS_STATS ? pergunto isso pois eu fiz uma migração de ANALYZE par DBMS_STATS em 9.2.0.5.0 e tive problemas com planos de execução que foram modificados depois de executar o DBMS_STATS, mudar não é problema a questão é, se mudar para pior, então tome cuidado e se puder teste os select mais pesados antes de implementar em produção.
Abraços
-
AutorPosts
- Você deve fazer login para responder a este tópico.