Ao realizar um backup no Msql 2000 e restaurar no Msql 2008 você descobrirá que dará erro de conexão no banco se tentar utilizar o mesmo usuário de conexão do 2000, desde que ele, claro, não seja o sa.
"A plenitude da atividade humana é alcançada somente quando nela coincidem, se acumulam, se exaltam e se mesclam o trabalho, o estudo e o jogo; isto é, quando nós trabalhamos, aprendemos e nos divertimos, tudo ao mesmo tempo. (...) É o que eu chamo de 'ócio criativo', uma situação que, segundo eu [penso], se tornará cada vez mais difundida no futuro." (Domenico de Masi)
Mostrando postagens com marcador Banco de dados. Mostrar todas as postagens
Mostrando postagens com marcador Banco de dados. Mostrar todas as postagens
11 julho, 2016
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)
fonte: http://stackoverflow.com/questions/40402/what-is-the-command-to-truncate-a-sql-server-log-file
Marcadores:
Banco de dados,
MSSQL,
Utilidades
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';
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';
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 lobsSTORE AS (nome_do_novo_tablespace);
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
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
-- 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;
select @@version;
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.
Assinar:
Postagens (Atom)