segunda-feira, 17 de dezembro de 2012

Alterar chave de instalação do SQL2008R2

Sempre que desejamos conhecer um novo software, instalamos a versão de demonstração ( trial ). Em determinado tempo essa versão de demonstração expira e o software é bloqueado ou tem suas funções limitadas.

No caso abaixo tenho uma versão do Microsoft SQL Server 2008 R2 Trial que foi bloqueada.
a1
Após comprar do produto, temos em mãos a chave de instalação ( Product Key ou Serial Number ) que libera novamente o software.

Como instalar a nova chave?
1. Execute novamente o setup.exe
2. No SQL Server Installation Center, selecione Maintenance, depois Edition Upgrade
a2
3. Clique Next duas vezes, então informe a nova chave
a3
4. Continue com Next e Install, aguarde alguns minutos até concluir.

sexta-feira, 14 de dezembro de 2012

Identity e Truncate


Esticando um pouco a prosa sobre IDENTITY, a dica do dia é a seguinte:
Quando precisar limpar uma tabela, excluindo todos seus registros, lembre-se:
O TRUNCATE TABLE (apesar de ser extremamente mais rápido que o DELETE) pode lhe gerar problemas caso sua tabela tenha uma coluna com o IDENTITY, isto porque sempre que “truncamos” uma tabela, o IDENTITY da mesma é reiniciado; ou seja, ao fim da operação  o retorno do comando abaixo será 1:
1
select IDENT_CURRENT('suaTabela');
Se desejar retomar a sequencia anterior, utilize o comando abaixo logo após o TRUNCATE TABLE:
1
DBCC CHECKIDENT (<suaTabela>, RESEED, <X*>);
* onde, X representa o ID inicial da sua sequencia
Se sua opção for o DELETE não há necessidade em se preocupar com a sequência do IDENTITY. Esta será preservada.

terça-feira, 11 de dezembro de 2012

Verifica Tempo restante de Backup /restore

FUNCIONA NO SQLSEVER 2005, 2008 e 2008 R2

SELECT start_time,
       (total_elapsed_time/1000/60) AS MinutesRunning,
       percent_complete,
       command,
       b.name AS DatabaseName,
              -- MASTER will appear here because the database is not accesible yet.
       DATEADD(ms,estimated_completion_time,GETDATE()) AS StimatedCompletionTime,
      (estimated_completion_time/1000/60) AS MinutesToFinish
FROM  sys.dm_exec_requests a
          INNER JOIN sys.DATABASES b ON a.database_id = b.database_id
WHERE command LIKE '%restore%'
          OR command LIKE '%backup%'
          AND estimated_completion_time > 0

Uso de memória por Banco da Instância

DECLARE @total_buffer INT;

SELECT @total_buffer = cntr_value
   FROM sys.dm_os_performance_counters
   WHERE RTRIM([object_name]) LIKE '%Buffer Manager'
   AND counter_name = 'Total Pages';

;WITH src AS
(
   SELECT
       database_id, db_buffer_pages = COUNT_BIG(*)
       FROM sys.dm_os_buffer_descriptors
       --WHERE database_id BETWEEN 5 AND 32766
       GROUP BY database_id
)
SELECT
   [db_name] = CASE [database_id] WHEN 32767
       THEN 'Resource DB'
       ELSE DB_NAME([database_id]) END,
   db_buffer_pages,
   db_buffer_MB = db_buffer_pages / 128,
   db_buffer_percent = CONVERT(DECIMAL(6,3),
       db_buffer_pages * 100.0 / @total_buffer)
FROM src
ORDER BY db_buffer_MB DESC;
Go

Verificar qual a porta que o SQLSERVER esta utilizando

DECLARE @TcpPort VARCHAR(5)
        ,@RegKey VARCHAR(100)

IF @@SERVICENAME !='MSSQLSERVER'
    BEGIN
        SET @RegKey = 'SOFTWARE\Microsoft\Microsoft SQL Server\' + @@SERVICENAME + '\MSSQLServer\SuperSocketNetLib\Tcp'
    END
    ELSE
    BEGIN
        SET @RegKey = 'SOFTWARE\MICROSOFT\MSSQLSERVER\MSSQLSERVER\SUPERSOCKETNETLIB\TCP'
    END

EXEC master..xp_regread
    @rootkey = 'HKEY_LOCAL_MACHINE'
    ,@key = @RegKey
    ,@value_name = 'TcpPort'
    ,@value = @TcpPort OUTPUT

SELECT @TcpPort AS PortNumber
        ,@@SERVERNAME AS ServerName
        ,@@SERVICENAME AS ServiceName

Tamanho de tabelas no SQL Server

SELECT OBJECT_NAME(ID) TABELA, CONVERT(DEC(15),SUM(RESERVED)) RESERVED
INTO #X
FROM SYSINDEXES
WHERE indid in (0, 1, 255)
GROUP BY ID

SELECT TABELA, LTRIM(STR(RESERVED * D.LOW / 1024., 15, 0)) + ' KB'
FROM #X, master.dbo.spt_values d
where d.number = 1
and d.type = 'E'
ORDER BY RESERVED DESC

Como descobrir/exibir as instâncias do SQL Server instaladas

Recentemente precisei descobrir o nome da instância do SQL Server que estava instalada no meu servidor, como já conhecia o utilitário de linha de comando do SQL Server (sqlcmd), executei no prompt de comando o seguinte: SQLCMD -L e obtive o resultado abaixo:

terça-feira, 4 de dezembro de 2012

Reset de senha no MySQL

Dica rápida para resetar a senha do MySQL. 

Digite no prompt: 

# mysqld_safe --skip-grant-tables & 

Agora que iniciou o MySQL, digite: 

# mysql 

Já logado no MySQL, digite: 

mysql> use mysql; 

Agora vamos resetar a senha: 

mysql> update user SET password=password('NOVA SENHA') WHERE user='root'; 

Agora saia do MySQL: 

mysql> quit 

Reinicie o serviço do MySQL e pronto.

Recuperando a senha SYS do Oracle

Essa dica é para aqueles que estão assumindo uma empresa que já trabalhava com Oracle e precisam fazer uma alteração no Banco de Dados com privilégios de usuário sys. 

Foi isso que me motivou a realizar esta pesquisa bem sucedida. 

Abaixo está a infinita lista de "DOIS" comandos. :) 

No prompt (tanto no servidor Linux quanto no servidor Windows)... 

Entre no Oracle da seguinte forma: 

sqlplus / as sysdba 

Digite a seguinte linha de comando dentro do Oracle para alterar a senha do user SYS: 

alter user sys identified by NOVASENHA; 

Oracle + SQLPlus: Como aumentar tablespace

Primeiramente certifique-se que já fez um backup do banco de dados. Qualquer "caca" que fizer poderá ser recuperada posteriormente. 

Vamos expor um programa que é nativo da Oracle. O mesmo é instalado juntamente com o Oracle: SQL*PLUS . 

SQLPlus é um programa que fornece um ambiente interativo, em que comandos do SQL e comandos do SQL*PLUS são digitados diretamente ou através de um arquivo de comandos, para formatar resultados de pesquisa, para ajustar o ambiente, para editar e para armazenar comandos SQL. 

Logue-se ao sqlplus como sys: 

sqlplus sys/senha 

Entre com o comando a seguir: 

ALTER DATABASE DATAFILE '/diretório/onde/se/localiza/o/banco/de/dados/exemplo.DBF' RESIZE 23M 

Este comando vale para qualquer tablespace criada, porém tem que ser um comando para cada tablespace. 

Oracle - Criar usuário com privilégio de DBA

CREATE USER nome IDENTIFIED BY senha
GRANT DBA TO nome
 

Logo que comecei a usar o banco de dados Oracle uma dúvida que surgiu logo de início é como criar um usuário com privilégios de DBA. Para isto é necessário seguir dois passos. 

1º passo: Criar um usuário no banco de dados. 

Sintaxe: 

CREATE USER nome IDENTIFIED BY senha
  • nome - Consiste no nome que o seu usúario terá.
  • senha - Consiste na senha que o usuário utilizará para logar no sistema.

Exemplo: 

CREATE USER MAGUSCODE IDENTIFIED BY MAGUSCODE 

Neste exemplo será criado um usuário com o nome de MAGUSCODE com a senha de acesso MAGUSCODE. 

2º passo: Atribuir privilégio de DBA. 

Sintaxe: 

GRANT DBA TO nome
  • nome - Nome do usuário que será atribuído o privilégio de DBA.

Exemplo: 

GRANT DBA TO MAGUSCODE