31 março, 2014

MS SQL - listar todas tabelas

--Lista todas as tabelas dentro do banco conectado.

SELECT name, crdate
FROM sysobjects
WHERE xtype='U' order by name;

24 março, 2014

Microsoft SQL Server - Recriar LDF - erro 1813

Esse é um compilado de vários sites que peguei, as fontes originais não tenho mais. Desculpa aos que me ajudaram.

DBCC REBUILD_LOG

MS SQL - Recriar LDF - erro 1813
1 - Criar um banco novo com o mesmo nome do antigo. Prestar atenção no nome físico dos arquivos, devem ser iguais aos antigos.


2 - Parar o serviço do MS SQL.


3 - Substituir o arquivo mdf novo pelo antigo.


4 - Eliminar o novo arquivo ldf.


5 - Iniciar o serviço do MS SQL.


O banco irá subir em modo suspeito, conectar na base master como administrador (sa) e executar o scrip abaixo, substituir o nome do banco nos locais em destaque obecendo as aspas.


EXEC sp_configure 'allow updates', 1
RECONFIGURE WITH OVERRIDE
GO
BEGIN TRAN
UPDATE master..sysdatabases SET status = status | 32768
WHERE name = 'Database'
IF (@@rowcount = 1)
BEGIN
    COMMIT TRAN
    RAISERROR ('You are in emergency sql mode', 0,1) WITH LOG
END
ELSE
BEGIN
    ROLLBACK
    RAISERROR ('Unable to set sql into emergency mode',0,1) WITH LOG
END
GO
EXEC sp_configure 'allow updates', 0
RECONFIGURE WITH OVERRIDE
GO


6 - Reiniciar o serviço do MS SQL.


7 - Executar o comando abaixo na base master como administrador (sa), substituir o nome do banco e o caminho onde deve ficar o log.


--restart sql server at this point
DBCC REBUILD_LOG ('Database', 'c:\sqldata\database.ldf')
--perform DBCC CHECKDB at this point.  If problems exist you may have to DTS good data out and rebuild database
--can also try REPAIR clauses to checkdb
ALTER DATABASE database SET MULTI_USER

17 março, 2014

Limpar cache do Microsoft SQL Server

Caso precise limpar o cache do banco para testar alguma consulta execute

-- Limpa cache de procedures
DBCC FREEPROCCACHE

-- Limpa buffers (comandos add-hoc)
DBCC DROPCLEANBUFFERS

10 março, 2014

Verificar versão do banco de dados Microsoft SQL Server

Para verificar a versão do banco de dados MS SQL executar a consulta abaixo:

select @@version;

03 março, 2014

Google Apps - Trocar senha proximo login


Abaixo segue um script para ser usado no Google Apps para forçar os usuários a trocarem a senha periodicamente. O link original está em fonte, o código abaixo sofreu algumas modificações para ficar mais adequado a minha necessidade.


fonte: https://sites.google.com/site/appsscripttutorial/home/force-google-apps-users-to-change-password-periodically


/*
Função seta o campo trocar senha no proximo login como verdadeiro
Seta uma senha padrão para todos os usuarios
Dispara email para quem executa o scrip com um relatorio de execução
Possibilidade de schedular para que a troca de senha ocorra periodicamente

*/

function invalidatePass() {

//Create logs
Logger.log('Incio de execução');
Logger.log('Lista de usuários que trocarão senha no proximo login');
Logger.log('=====================================================================');

var msgEmailAlterado = 'Lista emails que terão a senha trocada no próximo acesso' + '\n';
var mailSent = false;

 
try {
//pegar todos usuarios do dominio
var users = UserManager.getAllUsers();
 
 
//iterate for each user
for (var i = 0; i < users.length; i++){
//set the user to change password on next login
  //var userVerifica = users[i]
  //if (users[i].getIsAdmin()==false) {
    if (!users[i].getIsAdmin()) {
users[i].setPassword("init@123");
users[i].setChangePasswordAtNextLogin(true);
  Logger.log(users[i].getEmail())
  var msgEmailAlterado = msgEmailAlterado + '\n' + users[i].getEmail();
  }
//Put the email of the user in log

}
}
//Catch if any error occurs
catch(erro){
//Log the error
Logger.log('=====================================================================');
Logger.log('Ocorreu um erro: '+erro.message);
//Send an email to yourself with logs
GmailApp.sendEmail(Session.getEffectiveUser().getEmail(), 'Usuários que ocorreu erro na execução', Logger.getLog());
mailSent = true;
}

if(!mailSent){
//if execution successful
 var tituloEmail = 'Usuários que foram modificados com sucesso'
 var destinoEmail = Session.getEffectiveUser().getEmail()
 //var corpoEmail =
Logger.log('=====================================================================');
Logger.log('Fim da execução. Concluído com sucesso!!!');
//Send an email to yourself with logs
GmailApp.sendEmail(destinoEmail, tituloEmail, msgEmailAlterado);
}

}

24 fevereiro, 2014

Oracle - Indice



--índice oracle
--listar indice que estão fora da tablespace indice
SET LINESIZE 200
SET PAGES 100
COL segment_name FORMAT a30
SELECT tablespace_name,count(*) indices FROM dba_indexes
WHERE owner=’USUARIO’ GROUP BY tablespace_name;

--montar comando de migração de índice

SELECT ‘alter index ‘||owner||’.'||index_name||’ rebuild tablespace NomeDaTableSpaceDeIndices;’
FROM dba_indexes
WHERE tablespace_name = ‘TableSpaceDados’;



-- Alterar o tablespace de indice
ALTER INDEX . REBUILD TABLESPACE;



Detalhe caso a tabela contenha campos do tipo BLOB, você terá que mover também os indices LOB, mas o comando é um pouco diferente, abaixo o comando para mover os indices LOB:

-- Alterar o tablespace de indice

ALTER TABLE . MOVE LOB() STORE AS (TABLESPACE );



fonte: vou ficar devendo, copiei o script a muito tempo e não tenho mais a origem. Desculpas a quem escreveu.

17 fevereiro, 2014

Oracle - fechar sessão


--oracle fechar sessão

--Comando para gerar scripts para fechamento de sessõe:

select 'alter system kill session ''' ||
SID||','||serial# || ''';'
from v$session
where username like upper('NOME_USUARIO');




--Comando para gerar scripts para fechamento de sessões Inativas:

select 'alter system kill session ''' ||
SID||','||serial# || ''';'
from v$session

where username like upper('NOME_USUARIO') and status = 'INACTIVE';