Fala galera, boa noite.

Espero que estejam bem! No dia 18/06 aconteceu o SQL Saturday, evento que reuniu voluntários, palestrantes e é claro uma grande audiência – afinal, sem eles não tem evento!

Deixo aqui novamente meu agradecimento ao Dennes (https://www.facebook.com/Devsql/), organizador do evento pela oportunidade, a todos os que participaram do evento e aos patrocinadores.

Foi um sábado de muita troca de conhecimento e de muita conversa geek de SQL SERVER!

Espero ver todo mundo nos próximos! Não deixem de conferir nosso Blog para ficar por dentro dos eventos!

Ah, o material para download das palestras está no link: http://www.sqlsaturday.com/512/Sessions/Schedule.aspx

Confira algumas fotos abaixo (sim, roubei do Dennes mesmo!):

13428612_843609945744901_7757515728983653632_n 13432277_843606469078582_900090051418983517_n 13434682_843606265745269_1010800845492930995_n

 

Fala pessoal!

No próximo Sábado, dia 18 de Junho teremos mais um super evento! O SQL Saturday no Rio de Janeiro. Se você estiver por lá não deixe de participar! É free, na faixa, grátis, on the Vasco!

Teremos como sempre ótimos palestrantes e eu, falando mal de Oracle e bem de SQL SERVER, como já virou tradição, é claro!

Para saber mais acesse: http://www.sqlsaturday.com/512/eventhome.aspx

SQLSATRIO

Apareça para trocarmos ideias e experiências!

Abraço e nos vemos lá!

Fala pessoal, tudo bem com vocês?

Seguem alguns eventos da comunidade técnica de SQL SERVER que ocorrerão nos próximos dias/meses. Ah sim. Todos são de graça!

imgres

  • Dia 17/03/2016 (Quinta-feira): Encontro SQL Maniacs – São Paulo
    Das 19:00 às 23:00.
    Palestra com Diego Nogare (MVP) na Domore, avenida Paulista. O tema será: Cenários onde os problemas podem ser resolvidos com uso de ferramentas e tecnologias de Big Data e Data Science.
    Para saber mais acesse:
     https://groups.google.com/forum/#!topic/sqlmaniacs/WzJGaCXwLPU
  • Dia 19/03/2016 (Sábado): 4 horas de Microsoft – Rio de Janeiro
    Das 08:30 à 12:30.
    Diversas palestras de tecnologias Microsoft focando no SQL SERVER.
    Para saber mais: http://guiadba.com.br/evento/
  • Dia 07/04/2016 (Quinta-feira) Webcast:  SQL SERVER X ORACLE: Diferenças e Semelhanças para o Administrador – Online.
    Das 21:00 às 22:00.
    Para se inscrever: http://bufaloinfo.cloudapp.net/Eventos/Inscricao.aspx?cod=9
  • Dia 09/04/2016 (Sábado): SQL SATURDAY 488 – Joinville
    Das 08:00 às 18:00
    Diversas palestras focadas em SQL SERVER em diferentes trilhas de aprendizado.
    Para saber mais: http://www.sqlsaturday.com/488/eventhome.aspx#
  • Dia 16/04/2016 (Sábado): DBA Brasil 1.0 – São Paulo
    Das 09:00 às 19:00
    Palestras focadas em diversos Gerenciadores de Bancos de Dados de Mercado.
    Levar 1 Kg de alimento não perecível.
    Para saber mais: http://www.dbabr.com.br/blog/index.php/dba-brasil-1-0/
  • Dia 18/06/2016 (Sábado): SQL SATURDAY 512 – Rio de Janeiro
    Das 08:00 às 18:00.
    Diversas palestras focadas em SQL SERVER em diferentes trilhas de aprendizado.
    Para saber mais: http://www.sqlsaturday.com/512/eventhome.aspx

Consultem também o Blog do Fabrício Lima, que possui diversas dicas e próximos eventos: http://www.fabriciolima.net/blog/

Happy SQL SERVING!

Hoje fui abordado com uma questão interessante por um amigo:

“Tem um desenvolvedor aqui na empresa que mesmo que eu combine com ele que não é pra alterar uma procedure, ele vai lá e altera ela”

ps do Marcelo: dar poder pro DEV e pedir pra não alterar algo é que nem dar doce pra criança e pedir pra não comer!

Brincadeiras à parte, se não fossem Desenvolvedores não haveria a necessidade de banco de dados e eu morreria de fome! Sou amigo de vários inclusive.

A necessidade dele é simples:

  • O dev pode ver qualquer definição de PROC, VIEW, TABLE, etc.
  • O dev NÃO pode alterar absolutamente NADA!
  • Se um sistema criar uma procedure futuramente o dev precisa ter permissão automaticamente pra essa nova proc sem que eu (lazy) dba mova um dedo.

A solução: GRANT VIEW DEFINITION, caso precise permitir também que ele execute as procs no mesmo padrão, GRANT EXECUTE on schema::[schema]

No vídeo abaixo ilustro melhor e mostro o funcionamento com exemplos. Os scripts estão um pouco mais abaixo.

Espero que ajude!

Happy SQLSERVING!

facebooktwittergoogle_plusredditpinterestlinkedinmail

Scripts:

Para excutar como DBA logado:


--um usuario
--usuario pode VER definições de metadados (corpo de procedures, views, etc)
--não deve alterar nada
--10 procs as 16:00
--grant view definition on proc to user
--18:00 - sistema criou mais 5 procs
--GRANT VIEW DEFINITION TO user
--------------------------------
--10 procs
--grant execute on proc to user
--cria mais 5 procs
--grant execute on schema::[dbo] to user
---------------------------------------------------

--Script para teste de validação de grant:

create login pombo with password = 'Pa$$w0rd';
GO
create user pombo for login [pombo]
GO
--------------------------------------------
--cria procs:
--1
create procedure proc_teste_1
as
begin
print 'Hello proc 1'
end
GO
--2
create procedure proc_teste_2
as
begin
print 'Hello proc 2'
end
GO
--3
create procedure proc_teste_3
as
begin
print 'Hello proc 3'
end
GO

--------------------------------------------------------------------
--valida permissões:
sp_helprotect
----------------------
--grants:
GRANT VIEW DEFINITION to Pombo;

GRANT EXECUTE ON schema::[dbo] to Pombo;

Para excutar como usuário POMBO logado:

--ver metadados
sp_helptext 'proc_teste_1'

sp_helptext 'proc_teste_2'

--altera a definição
--nao funciona, não há permissão de ALTER
GO
alter procedure proc_teste_2
as
begin
print 'Hello proc 22'
end
GO

--execução das procs
exec proc_teste_1
go
exec proc_teste_2
--depois de criada
exec proc_teste_3

 

Fala galera,

Neste vídeo mostro como criar e pra que serve um snapshot de banco de dados, uma fotografia de um determinado momento de toda sua base.

Este recurso é particularmente interessante se em algum momento sua base sofrerá uma série de alterações (e você fica sabendo antes porque te avisaram) e você precisa reverter rapidamente toda sua base de dados para o estado original antes das alterações.

No vídeo mostro como criar um snapshot, como gerar o script pro mesmo e como reverter uma base com ele.

Atenção: O Snapshot NÃO é uma solução de backup!!! Nunca substitua um pelo outro, o Snap é apenas um complemento que pode te ajudar a ganhar tempo.

Use por sua própria conta e risco, testado em um SQL SERVER 2014.

Happy SQL SERVING!

facebooktwittergoogle_plusredditpinterestlinkedinmail

 

Cria a base de dados:


--USE [master]
GO

--cria a base de dados
CREATE DATABASE [snapteste]
CONTAINMENT = NONE
ON PRIMARY
( NAME = N'snapteste_1', FILENAME = N'F:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\snapteste_1.mdf' , SIZE = 3072KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ),
( NAME = N'snapteste_2', FILENAME = N'F:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\snapteste_2.ndf' , SIZE = 3072KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ),
( NAME = N'snapteste_3', FILENAME = N'F:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\snapteste_3.ndf' , SIZE = 3072KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )
LOG ON
( NAME = N'snapteste_log', FILENAME = N'F:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\snapteste_log.ldf' , SIZE = 1024KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)
GO

----------------------------------------------------------------------------------

Gera a estrutura de datafiles para o script:

--gera os caminhos de snapshot
select '( name = '+name+', filename = '''+'F:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\SShots\'+name+'.ss'''+'),'
from sys.master_files
where db_name(database_id) = 'snapteste' --nome da base
and type = 0 --somente arquivos de dados
GO
--------------------------------------------------------------------------------

Manipula o Snapshot:

--cria o snapshot
CREATE DATABASE snapteste_snap_2200
on
( name = snapteste_1, filename = 'F:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\SShots\snapteste_1.ss'),
( name = snapteste_2, filename = 'F:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\SShots\snapteste_2.ss'),
( name = snapteste_3, filename = 'F:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\SShots\snapteste_3.ss')
as snapshot of snapteste;
GO

--elimina o snapshot:
--nunca execute!
--drop database snapteste_snap_2200

--Sintaxe do comando de snapshot:
CREATE DATABASE database_snapshot_name
ON
(
NAME = logical_file_name,
FILENAME = 'os_file_name'
) [ ,...n ]
AS SNAPSHOT OF source_database_name

-------------------------------------------------------------------------------------------------
--cria tabela de teste
use snapteste
GO
create table baloon_dados
(id uniqueidentifier primary key,
mensagem varchar(500))

--loop de inserção
set nocount on
insert into baloon_dados(id,mensagem)values(newid(),'teste-mensagem'+cast(newid() as varchar(300)))
go 10000
--veja os dados
GO
use snapteste
GO
select * from baloon_dados
GO

GO
use snapteste_snap_2200;
GO
select * from baloon_dados

--1: 1000 linhas - no snapshot
--2: 11000 linhas

--limpa a tabela
--cuidado
--truncate table baloon_dados
-------------------------------------------------------------------------------------------

--reverter a base de dados:
restore database snapteste from database_snapshot = 'snapteste_snap_2200'

Referência: https://msdn.microsoft.com/en-us/library/ms175158.aspx


 

Fala galera, tudo bem?

Neste final de semana dia 26 aconteceu mais um SQL SATURDAY e tive o privilégio de ser um dos palestrantes. O evento estava show, muito bem organizado e muito bem estruturado!

12042931_1014529075257346_5315763647372675803_n
Pessoal que organizou e palestrou

12004019_897118407010231_8155663211432281071_n
Comparação de tecnologias In-Memory

Estou disponibilizando o material utilizado na apresentação sobre comparação de tecnologias In-Memory do SQL SERVER e ORACLE.

No ZIP vocês encontrarão tanto o powerpoint utilizado quanto os scripts!

apresentação_SQLSAT424_INMemory_Compare

Happy SQLSERVING!

Fala pessoal, boa tarde a todos!

Nesta série de posts vou exemplificar de maneira prática algumas das diferentes formas de construção de uma solução de alta disponibilidade utilizando o SQL SERVER 2014.

A ideia é iniciar a série com esta breve introdução e simular situações utilizando o Hyper-V (Microsoft only please! :-)) para montar uma infra virtual que represente dois datacenters distintos com link entre eles.

Vamos passar por alguns conceitos como:

  • O que esperar da alta disponibilidade e qual sua importância;
  • Cluster geográfico;
  • Cluster local;
  • Always On Failover Cluster Instances;
  • Always On Availability Groups

Para construirmos o ambiente virtual de dois datacenters utilizaremos os conceitos apresentados no site http://zeddylabs.com/2015/03/building-enterprise-environment-lab-for-development-with-windows-8-hyper-v/

É isso galera, espero que ajude bastante.

Até breve!

Fala galera,

Segue link do hangout fiz pelo site codificando – se você não conhece, acesse JÁ: http://codificando.net/.

Falei a respeito dos processos de T.I. na nossa vida de DBA: http://live.codificando.net/2015/05/edicao-48-dba-vs-itil-como-os-processos-podem-ajudar-e-atrapalhar-a-vida-do-dba/

A apresentação está neste link: sql-itil

O hangout:

Espero que gostem e aguardo feedbacks!

Abraços a todos!