A função Sleep da Oracle

Escrito por jackie lohrey | Traduzido por josé fabián
  • Compartilhar
  • Tweetar
  • Compartilhar
  • Pin
  • E-mail
A função Sleep da Oracle
Suspender um banco de dados da Oracle é uma tarefa comum durante as cópias de segurança dos dados (Hemera Technologies/PhotoObjects.net/Getty Images)

A função "sleep" da Oracle é na verdade um procedimento que você pode incluir em uma função e não uma função em si. A confusão aparece por causa das semelhanças entre as duas coisas, com a única diferença de que um procedimento não sempre retorna um valor após seguir uma série de instruções, mas uma função deve fazê-lo. Adicionar sentenças PL/SQL que "suspendam" um banco de dados da Oracle é uma tarefa administrativa comum e, dependendo da sua preferência, os usuários finais podem também fazê-lo.

Outras pessoas estão lendo

Identificação

"Suspender" uma base de dados da Oracle é exatamente o que o nome diz. As sentenças digitadas farão com que o banco de dados suspenda as operações normais ou deixe de funcionar, às vezes durante apenas uns centésimos de segundo. Por exemplo, os usuários podem adicionar um procedimento "sleep" para suspender o banco de dados antes de inserir uma nova informação em uma tabela. Os administradores podem usar a função para indicar ao banco de dados que devem esperar um certo tempo antes de tentar retornar uma ação que falhou, ou que devem parar para a realização de uma cópia de segurança.

Processo

A Oracle fornecerá três opções se você for um administrador, e uma opção se você for um usuário final, para codificar e usar o procedimento "sleep" em sentenças PL/SQL. Os três comandos administrativos são "dbms_backup_restore", "dbms_drs" e "dbms_lock", e o comando para o usuário final é "user_lock". A opção "dbms_backup_restore" para o banco de dados para fazer ou restaurar uma cópia de segurança, "dbms_drs" (abreviação de "agendamento de recursos distribuídos") pode suspender uma sessão para otimizar os recursos, e "dbms" e "user_lock" são úteis para fornecer o uso exclusivo por parte de uma máquina ou terminal por tempo limitado, forçando um limite de tempo para um "read_lock" (bloqueio de leitura) e para sincronizar aplicativos.

Sintaxe

Embora o comando verdadeiro varie de acordo com a opção selecionada, a sintaxe geral para um procedimento "sleep" começa criando o procedimento através da sentença "CREATE PROCEDURE_sleep [(sleepTime IN INTEGER)] IS". A parte inicial da mesma cria o procedimento, e a informação entre colchetes identifica os parâmetros, que neste caso correspondem ao nome do procedimento, o "IN" que indica ao Oracle que o procedimento pode ser usado em uma função, e o "INTEGER", que define o tipo de dados. Inicie o procedimento com uma sentença "BEGIN", e na linha seguinte, identifique a opção e os parâmetros, como por exemplo "SYS.DBMS_BACKUP_RESTORE.SLEEP(sleepTime_in_seconds = 5.01)", e finalize o procedimento com a sentença END:

CREATE PROCEDURE_sleep [(sleepTime_in_minutes IN INTEGER)] IS BEGIN SYS.DBMS_BACKUP_RESTORE.SLEEP(sleepTime_in_minutes = 15.01); END; /

Considerações

Na hora de outorgar privilégios "EXECUTE" (de execução) aos usuários finais do comando "user_lock.sleep", entenda que eles não poderão apenas escrever um procedimento "sleep", mas também todos os procedimentos de bloqueio associados a ele. Além disso, o tamanho e configuração do seu banco de dados da Oracle pode impedi-lo de outorgar os privilégios a todos os usuários finais. Por causa disso, a Oracle recomenda outorgar privilégios bloqueantes de acordo com as necessidades ou funções dentro da empresa.

Não perca

Filtro:
  • Geral
  • Artigos
  • Slides
  • Vídeos
Mostrar:
  • Mais relevantes
  • Mais lidos
  • Mais recentes

Nenhum artigo disponível

Nenhum slide disponível

Nenhum vídeo disponível