quinta-feira, 1 de abril de 2010

Dica Oracle: recuperando senha

Ontem me deparei com um pequeno desafio: efetuar backup de uma instância Oracle em um servidor Windows Server 2003.
Até aí, nada de mais, porém, as contas sys e system estavam bloqueadas:
ORA-28000: the account is locked
Muito legal. Comecei uma busca que me levou a algumas informações interessantes que valem a pena ser registradas, uma vez que resolveu meu problema.

  1. Conectar à instância sem senha alguma.
    Tive que garantir no arquivo SQLNET.ORA a linha com este parâmetro SQLNET.AUTHENTICATION_SERVICES = (NTS). Como eu estava logado como o Administrador local, que fazia parte do grupo ORA_DBA, pude conectar à instância com o seguinte comando:

    C:\> sqlplus /nolog

    sql> connect / @ as sysdba;

  2. Desbloqueando a conta.
    Agora as coisas começam a melhorar, porque sofri um pouco até chegar neste ponto. Foi só executar o comando para permitir o acesso da conta:

    sql> alter user system account unlock;

    sql> alter user sys account unlock;

  3. Definindo a senha.
    E como eu já estava com a faca e o queijo na mão, restou definir uma senha para as contas:

    sql> alter user system identified by sua_senha;

    sql> alter user sys identified by sua_senha;

Assim pude executar as rotinas de backup, acessar o Enterprise Manager e tudo mais.