Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá Pessoal.
Gostaria de saber se alguém conhece alguma forma de colocar o banco em modo de manutenção, ou seja que ninguém conseguisse se logar no BD senão os usuários que fossem DBA ou um usuário especifico, até que terminasse a manutenção e liberasse. Poderia ser até bloqueado por um script, trigger ou procedure de login.
Obrigado.
Nilson.
Ola Motta, obrigado pela resposta. Coloquei o banco em restrict "startup force restrict", porém em nenhuma das ferramentas que uso para manutenção do banco aceitou me logar, mesmo depois de executar o commando "grant restricted session to SYS with admin option;" e tentar entrar como SYSDBA. Todos retornam a mensagem "ORA-12526 : TNS:Listener : Todas as instancias apropriadas estão no modo restrito", o falta fazer?.
Obrigado pela atenção dispensada em minhas duvidas.
Oi Motta, deu certo aqui, como uso o listener para conectar, precisa especificar dentro tnsnames.ora quais as conexões que devem aceitar abrir quando estiver em RESTRICT MODE. Deve ser colocado o argumento (UR = A) logo após o "(CONNECT_DATA =", exemplo :
XE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(UR = A)
(SERVER = DEDICATED)
(SERVICE_NAME = XE)
)
)
Mais uma vez, obrigado!
Achei esta explicação.
Você está conectado localmente ao Banco ?
Que operação exatamente quer fazer ?
Motta, o que preciso é fazer algumas manutenções (alterar trigger, rodar script) no banco sem que algum usuario se conecte para garantir a integridade. Fazendo aquela alteração no tnsnames como mostrado aqui funcionou bem pra mim, eu acho que é basicamente o mesmo que o artigo que você postou fala.
Eu sou usuário Oracle, não DBA, já vi dar manutenção mas nunca a fiz sozinho.
"startup force restrict"
É praticamente a mesma coisa que um SHUTDOWN ABORT e STARTUP RESTRICT.
Que pode te dar muita dor de cabeça um dia...
Como o Motta relatou.
Em modo restrict voce só pode acessar localmente.
Qual o seu ambiente?
Não tem como acessar o host via SSH/Acesso remoto?
Tenta usar o STARTUP MOUNT EXCLUSIVE...
(só estou em duvida se se vai ter o mesmo caso do restrict, eu deveria lembrar mas sou filho de deus... =P)
Tenta ae...
Ola Supernoi, tenho acesso sim direto no servidor. É que uso algumas ferramentas para aplicar scripts e fazer manutenções, e com essa mudança no listener usando o "startup force restrict" irá funcionar pra mim, por que você acha que pode dar muita dor de cabeça um dia? você. acha melhor usar o "startup mount exclusive"?
Bom dia,
Startup Force, o que voce acha que é? rs
Na pratica eh um RESET...
É que nem da um reset no dedão no pc... fazer isso direto ainda mais com transação rolando pode ter certeza que a base uma hora vai dar M...
Usa o startup mount exclusive e tenta fazer o que voce precisa...
Voce pode tambem:
1 Dar um shutdown
2 Dar um Stop no listener
3 Start no banco normal
4 Fazer o que voce tem o que fazer
5 Levantar o listener
É uma alternativa... Ja que o listener estara off, so quem tem acesso local no banco poderá conectar...
Bom dia, entendi o que quis dizer.
Claro que não sou louco de ir chegando nos servidores e dando "startup force", a idéia é tirar todos os usuários antes, tirar o banco, e ai sim colocar o banco no ar e claro garantir que ninguém (startup force restrict) sem autoridade acesse o banco até que os procedimentos de manutenção terminem, neste caso o "startup mount exclusive" me garante?, lembrando que para fazer manutenção uso ferramentas de terceiros instaladas as vezes no servidor as vezes no meu notebook.
Obrigado pela ajuda.
* STARTUP RESTRICT OPEN dbname PFILE=filename This command starts the instance, and opens the database named dbname using the parameter file specified by the filename following the PFILE= clause. This starts up the database in the restricted only mode (only users with RESTRICTED SESSION privilege can log in).
Perfeito Motta, vai resolver pra mim.
Obrigado.
Startup restrict