23 dezembro, 2014

MS SQL - Trunk log

Quando os arquivos de log, extensão ldf, de um base de dados estiver muito grande, e tiver precisão de eliminar, segue comando para eliminar seu arquivo.

--eliminar deletar apagar trunk log, arquivos ldf

BACKUP LOG databasename WITH TRUNCATE_ONLY;
DBCC SHRINKFILE ( databasename_Log, 1)

<<< Comando testado no RDS da Amazon, funcionou legal. >>>

fonte: http://stackoverflow.com/questions/40402/what-is-the-command-to-truncate-a-sql-server-log-file

25 agosto, 2014

Criar / Gerar Certificado digital auto assinado


Criar certificado digital auto-assinado



Gerar um certificado digital sem validade e que pode ser utilizado para testes de software é uma tarefa relativamente fácil.
Pode-se usar a ferramenta keytool da JDK para essa tarefa:
Para gerar o certificado acesse o prompt do windows (ou console do linux) e dentro da pasta \bin da JDK execute o seguinte comando:

keytool -keystore MeukeyStore.jks -genkey -keyalg rsa -alias aliasDaMinhaChave

- esse comando cria o keystore MeuKeyStore.jks e solicita a senha para o keystore
- é solicitado dados pessoais para o certificado
- ao final é solicitado a senha para a chave privada
Para que o certificado seja ‘auto-assinado’, use o seguinte comando:

keytool -keystore MeukeyStore.jks -selfcert -alias aliasDaMinhaChave

- gera uma 'auto-assinatura' para o certificado
- é solicitado a senha do keystore e também a senha da chave privada
Para exportar o certificado para um arquivo:

keytool -keystore MeukeyStore.jks -exportcert -alias aliasDaMinhaChave -file Certificado_digital.cer

- faz o export do certificado (contendo a chave publica) para arquivo Certificado_digital.cer
- lembre-se que a ferramenta keytool não possui (ainda) a funcionalidade de extrair a chave privada do keystore

Fonte: http://crestaniblog.wordpress.com/2013/03/28/criar-certificado-digital/

18 agosto, 2014

CMD - Limpeza Public



Rem script para limpeza de diretorio public
Rem apaga todo conteúdo de uma determinada pasta incluindo subpastas
Rem ***************** Limpeza Public **************************
Rem ***************** Configuração das variáveis de ambiente ***********
Set TEMP=C:\Temp
Set TMP=C:\Temp

FOR /D %%i IN (E:\public\*) DO RD /S /Q "%%i"
DEL /Q E:\public\*.*

11 agosto, 2014

Lotus Notes - Remover Keep Private



@if(@IsAvailable($KeepPrivate);FIELD $KeepPrivate:=@DeleteField; @Success);

04 agosto, 2014

MS SQL - Ver query corrente - BD acima do 2005



-- Mostrar a query corrente, bd acima do 2005
SELECT sqltext.TEXT,
req.session_id,
req.status,
req.command,
req.cpu_time,
req.total_elapsed_time
FROM sys.dm_exec_requests req
CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS sqltext

28 julho, 2014

Oracle - ver versão do banco de dados



--consultar versão do banco de dados oracle
select * from v$version

21 julho, 2014

Oracle - Sequence



--lista  todas as sequencias e o ultimo valor
select Sequence_Name, Last_Number from user_sequences;

-- mostra próximo valor da sequência (sequence)
select nome_sequencia.nextval from dual;

-- mostra valor atual,corrente da sequência (sequence)
select hibernate_sequence.currval from dual;

--modifca tabela adicionando sequencia add sequence
alter table minha_tabela modify id_tabela default nome_sequence.nextval;

17 julho, 2014

Oracle - Pesquisar objeto no banco de dados (BD)



--Pesquisar coluna em todos os schemas do banco
SELECT COLUMN_NAME, DATA_TYPE, OWNER, TABLE_NAME FROM ALL_TAB_COLS where column_name = 'ID_INDICE_V_DOCUMENTO' order by 4;

-- Pesquisa objeto em todos os schemas do banco
SELECT OWNER, OBJECT_NAME, OBJECT_TYPE,CREATED, LAST_DDL_TIME, STATUS FROM ALL_OBJECTS WHERE OWNER LIKE 'USER%' AND OBJECT_NAME = 'MXD_INDICE_V_DOCUMENTO';


fonte: vou ficar devendo não tenho mais.

14 julho, 2014

Oracle - open cursor oracle



--open cursor oracle

--mostra sql executando e numero de cursores
select  sql_text, count(*) as "OPEN CURSORS", user_name from v$open_cursor
group by sql_text, user_name order by count(*) desc;


--Check current open cursor in database:
select max(a.value) as highest_open_cur, p.value as max_open_cur
from gv$sesstat a, gv$statname b, gv$parameter p
where a.statistic# = b.statistic#
and b.name = 'opened cursors current'
and p.name = 'open_cursors'
group by p.value;

-- seleciona linha completa de parametros do open_cursor
select * from gv$parameter where name='open_cursors';


--Opened cursor by session:
select a.value, s.username, s.sid, s.serial#
from v$sesstat a, v$statname b, v$session s
where a.statistic# = b.statistic#
and s.sid = a.sid
and b.name = 'opened cursors current'
and s.username is not null;


--para alterar o valor do open_cursors

--ALTER SYSTEM SET open_cursors=1000 SCOPE=BOTH


Fonte: vou ficar devendo, copiei o script tem tempo e perdi a fonte.

07 julho, 2014

Oracle - Migrar Objeto



--migrar tabela de schema
--uma tabela
ALTER TABLE nome_da_tabela MOVE TABLESPACE nome_do_novo_tablespace;
--todas as tabelas
SELECT 'ALTER TABLE nome_do_esquema.' || table_name || ' MOVE TABLESPACE nome_do_novo_tablespace;'
 FROM dba_tables
 WHERE
   owner = 'nome_do_esquema';
--migrar indice de schema
--um indice
ALTER INDEX nome_do_indice REBUILD TABLESPACE nome_do_novo_tablespace;
--todos os indices
SELECT 'ALTER INDEX nome_do_esquema.' || index_name || ' REBUILD TABLESPACE nome_do_novo_tablespace;'
 FROM dba_indexes
 WHERE
   owner = 'nome_do_esquema' AND
   index_type != 'LOB';
--migrar lob de schema
--um lob
ALTER TABLE nome_da_tabela MOVE LOB(nome_da_coluna_lob)
   STORE AS (nome_do_novo_tablespace);
--todos os lobs
SELECT
 'ALTER TABLE nome_do_esquema.' || table_name ||
 ' MOVE LOB( ' || COLUMN_NAME ||
 ' ) STORE AS (TABLESPACE nome_do_novo_tablespace);'
 FROM dba_tab_columns
 WHERE
   owner = 'nome_do_esquema' AND
   data_type LIKE '%LOB';




Fonte: vou ficar devendo tem um bom tempo que copiei o script e não tenho a fonte.

30 junho, 2014

Oracle - listar tabelas oracle vinculado por schema


-- listar tabelas oracle vinculado por schema
SELECT
   OWNER,
   TABLE_NAME,
   TABLESPACE_NAME
FROM
   ALL_TABLES

23 junho, 2014

Oracle - Lista Usuarios Permissão Diretorio Mapeado



-- SABER QUAL USUÁRIO TEM PERMISSÃO NO DIRETÓRIO MAPEADO
SELECT grantor, grantee, table_schema, table_name, privilege FROM all_tab_privs where table_name='NOME_DIRETORIO_MAPEADO';


fonte: http://psoug.org/reference/directories.html

20 junho, 2014

Oracle - Listar / Apagar Diretórios Mapeados


-- LISTAR DIRETÓRIO MAPEADO NO ORACLE
select * from dba_directories;
--Apagar diretorio mapeado
DROP DIRECTORY nome_diretorio;

28 abril, 2014

MSSQL - Ver a consulta que está sendo executado pelo pid

--MSSQL - Ver a consulta que está sendo executado pelo pid
--Consulta query pelo pid

declare
   @spid int
,   @stmt_start int
,   @stmt_end int
,   @sql_handle binary(20)

set @spid = 1 -- Valor do pid

select  top 1
   @sql_handle = sql_handle
,   @stmt_start = case stmt_start when 0 then 0 else stmt_start / 2 end
,   @stmt_end = case stmt_end when -1 then -1 else stmt_end / 2 end
from    master.dbo.sysprocesses
where   spid = @spid
order by ecid

SELECT
   SUBSTRING( text,
    COALESCE(NULLIF(@stmt_start, 0), 1),
    CASE @stmt_end
    WHEN -1
    THEN DATALENGTH(text)
    ELSE
    (@stmt_end - @stmt_start)
    END
    )
FROM ::fn_get_sql(@sql_handle)

Fonte: http://stackoverflow.com/questions/941763/list-the-queries-running-on-sql-server

24 abril, 2014

MS SQL - Consultar pid que esta mais tempo rodando

--Consultar pid que esta mais tempo rodando

select
   p.spid
,   right(convert(varchar,
           dateadd(ms, datediff(ms, P.last_batch, getdate()), '1900-01-01'),
           121), 12) as 'batch_duration'
,   P.program_name
,   P.hostname
,   P.loginame
from master.dbo.sysprocesses P
where P.spid > 50
and      P.status not in ('background', 'sleeping')
and      P.cmd not in ('AWAITING COMMAND'
                   ,'MIRROR HANDLER'
                   ,'LAZY WRITER'
                   ,'CHECKPOINT SLEEP'
                   ,'RA MANAGER')
order by batch_duration desc


fonte: http://stackoverflow.com/questions/941763/list-the-queries-running-on-sql-server

07 abril, 2014

MS SQL - Dropar todas as conexões abertas

--dropar todas as conexões abertas
ALTER DATABASE dbName SET SINGLE_USER WITH ROLLBACK IMMEDIATE

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