A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

SQL Saturday #469 - Brasília Assumi o cargo de DBA. O que devo aprender para ontem? Fabrício Lima | FabricioLima Soluções em BD

Apresentações semelhantes


Apresentação em tema: "SQL Saturday #469 - Brasília Assumi o cargo de DBA. O que devo aprender para ontem? Fabrício Lima | FabricioLima Soluções em BD"— Transcrição da apresentação:

1 SQL Saturday #469 - Brasília Assumi o cargo de DBA. O que devo aprender para ontem? Fabrício Lima | FabricioLima Soluções em BD E-mail: fabricio@fabriciolima.net Site: http://www.fabriciolima.net/

2 Patrocinadores

3 Agenda  O que devo aprender para ontem sobre:  Instalação do SQL Server  Gerenciamento de Acessos  Tarefas diversas do Dia a Dia  Backup e Restore  SQL Agent  Tuning  Soluções de HA e DR

4 DBA acomodado diz: “Essa parte é fácil. Pode pular para o próximo tema” “Só dar next->next->finish” “Já instalei um monte de SQL e até hoje estão funcionando” AO NEXT->NEXT->FINISH!!! CAMPANHA : O que devo aprender para ontem sobre a instalação do SQL Server?

5  Escolher a versão mais adequada para sua empresa  Custo x Funcionalidades  Escolher a localização para as bases do SQL Server  Dados, Logs e TempDB  Definir a Collation que vai ser utilizada pela instância  Definir as contas de serviço do SQL Server  Contas de Domínio (uma por serviço)  Definir quais recursos e serviços serão instalados.  Precisa do SSRS e SSAS?  Instalação de Service Pack e Patches

6 O que devo aprender para ontem sobre a instalação do SQL Server?  Cost Threshlod for Parallelism  Max Degree of Parallelism  Instant File Initialization  Configuração do Database Mail  Configuração da memória do SQL Server  Deve conhecer para que serve as bases de sistema (Master, MSDB, MODEL e principalmente TEMPDB).

7 O que devo aprender para ontem sobre a instalação do SQL Server? Referências:  Versão e instalação:  http://www.microsoft.com/en-us/server-cloud/products/sql-server-editions/  http://msdn.microsoft.com/en-us/library/cc645993.aspx  http://www.mssqltips.com/sqlservertip/3244/quick-guide-to-installing-sql-server-2014/  http://blogs.msdn.com/b/pfebrasilsql/archive/2014/10/03/configurando-o-min-server-memory- e-max-server-memory-parte-1.aspx  http://blogs.msdn.com/b/pfebrasilsql/archive/2014/12/04/configurando-o-min-e-max-server- memory-parte-2.aspx  Virtualização:  http://sqlmag.com/sql-server/sql-server-virtualization-tips  Webcast sobre Instalação do SQL Server com Vitor Fava  Parte 1: https://vfava.wordpress.com/2015/03/25/webcast-guia-de-instalacao-do-sql-server- 2014-parte-1/  Parte 2: https://vfava.wordpress.com/2015/05/08/webcast-instalacao-e-configuracao-do-sql- server-parte-2-3/  IFI  http://www.sqlskills.com/blogs/kimberly/instant-initialization-what-why-and-how/  Collation  http://sqlmag.com/blog/forcing-collation-where-clause-22-jun-2011

8 O que preciso aprender para ontem sobre Gerenciamento de Acessos? DBA acomodado diz: “Esse negócio de acesso também é tranquilo” “Libero uma permissão que tem lá chamada de sysadmin e nunca mais ninguém vem me encher a paciência com acessos... Funciona de boa” “Acabou com aquela chatice de desenvolvedor toda hora pedindo acesso a uma base diferente” CAMPANHA: SYSADMIN AO DBA!!!

9 O que preciso aprender para ontem sobre Gerenciamento de Acessos?  Criação de Logins  Windows/SQL Server authentication  Senhas fortes por favor!!!

10 O que preciso aprender para ontem sobre Gerenciamento de Acessos?  Permissões serão dadas em 3 níveis:  Servidor (Server Roles)  sysadmin  Database (Database Roles)  db_Owner, db_datareader e db_datawriter  Objeto (Table, View, Function ou Procedure)  Grant  Deny  Revoke

11 O que preciso aprender para ontem sobre Gerenciamento de Acessos? Referências: http://www.mssqltips.com/sqlservertip/1887/understanding-sql-server-fixed- server-roles/ http://www.mssqltips.com/sqlservertip/1900/understanding-sql-server-fixed- database-roles/ http://www.mssqltips.com/sqlservertip/1138/giving-and-removing-permissions- in-sql-server/

12 O que preciso aprender para ontem sobre algumas Tarefas do Dia a Dia do DBA?  Criação de Tabelas  Tipos de Dados  Números: Bigint, Int, Smallint, Tinyint, Numeric, Bit  Data e Hora: Datetime, Date, Time  Cadeias de caracteres: Char, Varchar, NVarchar e Text  Constraints  Primary Key  Foreign Key  Unique  Check  Default

13 O que preciso aprender para ontem sobre algumas Tarefas do Dia a Dia do DBA?  Detach e Attach  DBCC CHECKDB  http://www.sqlskills.com/blogs/paul/cat egory/checkdb-from-every-angle/

14 O que preciso aprender para ontem sobre algumas Tarefas do Dia a Dia do DBA?  Shrink

15 O que preciso aprender para ontem sobre algumas Tarefas do Dia a Dia do DBA? Referências:  Page Verify:  http://www.littlekendra.com/2011/01/25/pageverify/  Criação de Tabelas:  Sintaxe CREATE TABLE - http://msdn.microsoft.com/pt-br/library/ms174979.aspx  Tipos de Dados - http://msdn.microsoft.com/pt-br/library/ms187752.aspx  http://sqlhints.com/2011/12/23/difference-between-varchar-and-nvarchar/  Constraints  Primary key: http://www.techonthenet.com/sql_server/primary_keys.php  Foreign Key: http://www.techonthenet.com/sql_server/foreign_keys/foreign_keys.php  Unique: http://sqlhints.com/2013/06/02/difference-between-primary-key-and-unique-key-in-sql-server/  Check: http://www.techonthenet.com/sql_server/check.php  Default: http://www.mssqltips.com/sqlservertip/1425/working-with-default-constraints-in-sql-server/  Import e Export:  http://www.mssqltips.com/sql-server-tip-category/115/import-and-export/  Linked Server:  http://www.mssqltips.com/sql-server-tip-category/56/linked-servers/  Detach e Attach:  https://msdn.microsoft.com/en-us/library/ms190794.aspx  Shink:  http://www.sqlskills.com/blogs/paul/category/shrink/

16  Recovery Model  Simple, Bulk-Logged e FULL  Tipos de Backup:  FULL  Diferencial  Log  File\Filegroup O que preciso aprender para ontem sobre Backup?  Para pensar: “Quem tem 2 backups tem 1 e quem tem 1 não tem nenhum”

17 O que preciso aprender para ontem sobre Restore?  Restore Full da base: Backup Full  Restore Diferencial: Backup Full + Backup Differential  Restore do Log: Backup Full + Backup Differential + Bkp dos Logs  Restore até uma hora específica: Bkp Full + Bkp Differential + Bks dos Logs com STOP AT  Também pode ser realizado um restore de página  Teste seu backup!!! “Se alguma coisa pode dar errado, dará. E mais, dará errado da pior maneira, no pior momento e de modo que cause o maior dano possível” by Edward Murphy

18 O que preciso aprender para ontem sobre Backup e Restore?  Backup  http://edvaldocastro.com/recovery-model/  http://edvaldocastro.com/backup01/  http://edvaldocastro.com/bkps-full-diff-log/  http://edvaldocastro.com/pt-br-sql-server-backup-internals-backup-full/  http://www.travisgan.com/2013/04/got-checksum-on-backup-check- again.html  http://msdn.microsoft.com/pt-br/library/ms179355.aspx  https://edvaldocastro.wordpress.com/2012/01/19/politicabkp/  https://www.simple-talk.com/sql/database-administration/sql-server-backup- and-restore-for-the-accidental-dba/  Restore:  http://www.edvaldocastro.com/restore/

19 O que preciso aprender para ontem sobre o SQL Server Agent?  Criar Alertas  Você precisa aprender a criar e gerenciar Jobs no SQL Server!

20 O que preciso aprender para ontem sobre o SQL Server Agent?  Configurar o envio de e-mail

21 O que preciso aprender para ontem sobre o SQL Server Agent? https://www.simple-talk.com/sql/database- administration/setting-up-your-sql-server-agent-correctly/ http://www.mssqltips.com/sql-server-tip-category/27/sql- server-agent/ Referências:

22 O que preciso aprender para ontem sobre TUNING? Procedure sp_WhoisActive  Link para Download do código dessa procedure:  http://sqlblog.com/blogs/adam_ machanic/archive/2012/03/22/r eleased-who-is-active-v11- 11.aspx http://sqlblog.com/blogs/adam_ machanic/archive/2012/03/22/r eleased-who-is-active-v11- 11.aspx  São quase 5 mil linhas de código Adam Machanic

23 O que preciso aprender para ontem sobre TUNING? História Real  Usuário: Meu relatório esta Lento!  DBA: Lento Quanto?  Usuário: Está demorando uns 15 minutos  DBA: Eu conferi no meu log e ele está demorando 1 minuto. Mas pode deixar que vou tentar melhorar mais.  Usuário: É isso mesmo. Não são 15 minutos não, é 1 minuto, me confundi!  Mas está lento!!!  DBA: Pronto. Agora está rodando em 2 segundos.

24  Que Log é esse que tem o poder de desmascarar um usuário?  Server Side Trace (Profile) ou Extended Events  Passo a passo para a criação de um Trace de queries demoradas no BD:  http://www.fabriciolima.net/blog/2010/06/05/passo-a-passo-para- encontrar-as-querys-mais-demoradas-do-banco-de-dados-parte-1/  http://fabriciolima.net/blog/2010/06/05/passo-a-passo-para-encontrar- as-querys-mais-demoradas-do-banco-de-dados-parte-2/  Se usado de forma errada, o profile e até mesmo o XEvents pode parar seu banco de dados. O que preciso aprender para ontem sobre TUNING?

25  Índice Clustered  Índice Nonclustered  Heap (tabela sem um índice clustered)  Índice com INCLUDE  Page Split  FillFactor  Fragmentação de Índices  REBUILD\REORGANIZE  Índices no SQL Server Obs.: Nas anotações desse Slide tem um link com um script do Ola Hallengren para desfragmentar índices

26  DMV’s de índices  dm_db_index_usage_stats – Essa dmv informa quantas vezes um índice foi utilizado desde a última vez que o SQL Server foi reiniciado (Informação valiosa). Obs.: A query está nas anotações do Slide O que preciso aprender para ontem sobre TUNING

27 O que preciso aprender para ontem sobre TUNING?  DMV de índices  sys.dm_db_missing_index_* – Esse conjunto de dmvs informam alguns índices que poderiam ser criados no banco de dados.  Obs.: A query está nas anotações do Slide

28 O que preciso aprender para ontem sobre TUNING?  Considerações para utilização:  Analisar a quantidade de colunas do índice que está sendo sugerido  Analisar o tamanho da tabela e a quantidade de vezes que o índice seria utilizado  Analisar se já não existe um índice parecido com o que foi sugerido  Após criar o índice, acompanhar com a DMV de utilização se esse índice foi utilizado ou não  Em caso de pouca utilização, exclua o índice  As vezes essa dmv indica índices que já existem (não é 100% confiável)  NUNCA CRIE TODOS OS ÍNDICES INDICADOS POR ESSA DMV! sys.dm_db_missing_index_* (continuação)

29  Estatísticas no SQL Server  Dica de Leitura:  http://www.fabriciolima.net/blog/2011/06/29/rotina-para-atualizar-as- estatisticas-do-seu-banco-de-dados/  Dicas para analisar uma query:  Plano de Execução  SET STATISTICS IO ON O que preciso aprender para ontem sobre TUNING?

30 Que tal analisar esse execution Plan?

31 O que preciso aprender para ontem sobre TUNING Referências: Estatísticas: http://www.pythian.com/blog/sql-server-statistics-maintenance-and-best-practices/ http://www.red-gate.com/community/books/sql-server-statistics (Livro gratuito) http://www.fabriciolima.net/blog/2011/06/29/rotina-para-atualizar-as-estatisticas-do-seu-banco-de-dados/ Índices: https://www.simple-talk.com/sql/learn-sql-server/sql-server-index-basics/ http://www.sql-server-performance.com/2007/clustered-indexes/ http://www.mssqltips.com/sqlservertip/1206/understanding-sql-server-indexing/ http://www.mssqltips.com/sql-server-tip-category/38/indexing/ http://blogs.msdn.com/b/timchapman/archive/2012/09/28/index-rebuild-vs-reorganize-the-transaction-log-edition.aspx https://www.youtube.com/watch?v=p9FlnOPltA8 http://blogs.msdn.com/b/bartd/archive/2007/07/19/are-you-using-sql-s-missing-index-dmvs.aspx http://www.sql-server-performance.com/2009/identify-missing-indexes-using-sql-server-dmvs/ http://www.mssqltips.com/sqlservertip/1634/using-sql-server-dmvs-to-identify-missing-indexes/ Livro: http://www.amazon.com/Expert-Performance-Indexing-Server-2012/dp/1430237414 PAGE Split: http://www.sqlskills.com/blogs/paul/tracking-page-splits-using-the-transaction-log/ http://sqlblogcasts.com/blogs/tonyrogerson/archive/2007/06/28/what-is-a-page-split-what-happens-why-does-it-happen-why-worry.aspx Execution Plan: http://www.brentozar.com/archive/2012/01/art-of-execution-plan/ Livro Grátis: http://www.red-gate.com/community/books/sql-server-execution-plans-ed- 2?utm_term=executionplans&utm_content=buffer4a0ec&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer https://www.simple-talk.com/books/sql-books/complete-showplan-operators/ SQL Server Performance Tuning Using Wait Statistics: A Beginner’s Guide: https://www.sqlskills.com/help/sql-server-performance-tuning-using-wait-statistics/ Estatísticas: http://www.pythian.com/blog/sql-server-statistics-maintenance-and-best-practices/ http://www.red-gate.com/community/books/sql-server-statistics (Livro gratuito) http://www.fabriciolima.net/blog/2011/06/29/rotina-para-atualizar-as-estatisticas-do-seu-banco- de-dados/ Índices: https://www.simple-talk.com/sql/learn-sql-server/sql-server-index-basics/ http://www.sql-server-performance.com/2007/clustered-indexes/ http://www.mssqltips.com/sqlservertip/1206/understanding-sql-server-indexing/ http://www.mssqltips.com/sql-server-tip-category/38/indexing/ http://blogs.msdn.com/b/timchapman/archive/2012/09/28/index-rebuild-vs-reorganize-the- transaction-log-edition.aspx https://www.youtube.com/watch?v=p9FlnOPltA8 http://blogs.msdn.com/b/bartd/archive/2007/07/19/are-you-using-sql-s-missing-index-dmvs.aspx http://www.sql-server-performance.com/2009/identify-missing-indexes-using-sql-server-dmvs/ http://www.mssqltips.com/sqlservertip/1634/using-sql-server-dmvs-to-identify-missing-indexes/ Livro: http://www.amazon.com/Expert-Performance-Indexing-Server-2012/dp/1430237414 PAGE Split: http://www.sqlskills.com/blogs/paul/tracking-page-splits-using-the-transaction-log/ http://sqlblogcasts.com/blogs/tonyrogerson/archive/2007/06/28/what-is-a-page-split-what- happens-why-does-it-happen-why-worry.aspx Execution Plan: http://www.brentozar.com/archive/2012/01/art-of-execution-plan/ Livro Grátis: http://www.red-gate.com/community/books/sql-server-execution-plans-ed- 2?utm_term=executionplans&utm_content=buffer4a0ec&utm_medium=social&utm_source=twitt er.com&utm_campaign=buffer https://www.simple-talk.com/books/sql-books/complete-showplan-operators/ WAITS STATS: http://www.sqlskills.com/blogs/paul/wait-statistics-or-please-tell-me-where-it-hurts/ http://blogs.msdn.com/b/sqlsakthi/archive/2011/02/08/different-status-of-a-spid-in-sql-server-and- what-do-they-mean.aspx SQL Server Performance Tuning Using Wait Statistics: A Beginner’s Guide: https://www.sqlskills.com/help/sql-server-performance-tuning-using-wait-statistics/ Download White Paper WaitStats: https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&cad=rja&uact=8&ved=0 CCQQFjAB&url=http%3A%2F%2Fdownload.microsoft.com%2Fdownload%2F4%2F7%2Fa%2F4 7a548b9-249e-484c-abd7-29f31282b04d%2FPerformance_Tuning_Waits_Queues.doc&ei=L- zEVM3uPPaHsQT75oBg&usg=AFQjCNFRIebSlMLnry8gH99CQklhdmokJw&sig2=KjKuBRKVN WjcUv9Q8PG7uQ&bvm=bv.84349003,d.cWc

32 O que preciso aprender para ontem sobre HA e DR  Log Shipping  Replicação  Database Mirroring  Cluster  AlwaysOn Avalaibility Groups (2012)  AlwaysOn Failover Cluster (2012)

33 O que preciso aprender para ontem sobre HA e DR Log Shipping http://www.sqlshack.com/sql-server-log-shipping/ http://www.mssqltips.com/sql-server-tip-category/100/log-shipping/ http://www.mssqltips.com/sqlservertip/2301/step-by-step-sql-server-log-shipping/ http://www.sql-server-performance.com/2002/log-shipping-70/ Replicação: http://www.sqlservercentral.com/stairway/72401/ http://www.codeproject.com/Articles/715550/SQL-Server-Replication-Step-by-Step http://download.red-gate.com/ebooks/SQL/fundamentals-of-sql-server-2012-replication.pdf (livro grátis) Database Mirroring: http://www.sqlshack.com/sql-server-database-mirroring/ http://www.mssqltips.com/sql-server-tip-category/64/database-mirroring/ http://www.codeproject.com/Articles/109236/Mirroring-a-SQL-Server-Database-is-not-as-hard-as http://fabriciolima.net/blog/2013/01/20/database-mirroring-como-fica-o-backup-do-log-quando-ocorre-um-failover-no-mirror/ (nesse link tem vários outros links para os outros artigos que fiz em uma série sobre o database mirroring) http://www.sqlservercentral.com/blogs/mssqlfun/2014/11/17/interview-questions-on-sql-server-database-mirroring/ AlwaysOn: Leituras Complementares: http://www.brentozar.com/sql/sql-server-alwayson-availability-groups/ http://blogs.technet.com/b/canitpro/archive/2013/08/20/step-by-step-creating-a-sql-server-2012-alwayson-availability-group.aspx https://www.simple-talk.com/sql/database-administration/sql-server-2012-alwayson/ Whitepaper: http://www.sqlskills.com/blogs/joe/alwayson-architecture-guide-building-a-high-availability-and-disaster-recovery-solution-by-using-alwayson-availability- groups/ http://blogs.msdn.com/b/sqlcat/archive/2013/11/20/sql-server-2012-alwayson-high-availability-and-disaster-recovery-design-patterns.aspx

34 Próximos passos Após aprenderem sobre todos os assuntos que passei, agora só falta esses:  Resource Governor  Query Processor  Operating System Configurations  Protocols  The Storage Engine  Trace Flags  SQLOS  NUMA architecture  The Scheduler  DAC  Buffer Pool  In-Memory  etc...  Cursores  T-SQL  Filegroup  Partitioning  Spatial Index  LSN  Data Pages  Indexed View  Filtered Index  Lock  Deadlock  Online Index Rebuild  etc...  Data Compression  Resource Database  Database Snapshot  Phases of Recovery  Scans  Seeks  Aggregations  Parallelism  Filtered Statistics  Cardinality Estimation  OPTIMIZE FOR  MAXDOP  Ad hoc Query Caching  etc...  Plan Guide  ACID  Isolation Levels  Corruption  Service Broker  Schemas  XML  Full-text  Compilation  Recompilations  Checkpoints  FORCESEEK  Filestream  etc...

35 Dicas de Materiais Grátis  Livros:  http://www.microsoftvirtualacademy.com/ebooks  http://www.fabriciolima.net/blog/2010/12/03/free-ebooks-sobre-sql-server-para-download/  http://www.johnsansom.com/dba-jumpstart/  http://www.red-gate.com/products/dba/dba-bundle/entrypage/2012-how-to-become-an-exceptional- dba?utm_source=simpletalk&utm_medium=weblink&utm_content=st_bradbook200907&utm_campaign=sqlbac kupbundle&__hstc=81186632.bdbc59f5f888a85d2c87a85f9b4a38d9.1441479079284.1441479079284.1441479 079284.1&__hssc=81186632.1.1441479079284&__hsfp=2767783758  http://www.red-gate.com/community/books/accidental-dba  Vídeo Aulas:  http://www.microsoftvirtualacademy.com/product-training/sql-server  http://www.microsoftvirtualacademy.com/product-training/product-sql-server-pt  https://technet.microsoft.com/en-us/dn912438  Whitepaper SQL  https://technet.microsoft.com/en-us/sqlserver/bb671430  Blogs  http://sqlmag.com/blog/sql-server-basics  http://www.sqlservercentral.com/  https://www.mssqltips.com/index.asp  http://blog.sqlauthority.com/  http://www.brentozar.com/sql/becoming-a-dba/  https://www.sqlskills.com/help/accidental-dba/  https://technet.microsoft.com/en-us/dn912438  http://fundamentals.sqlpass.org/MeetingArchive.aspx  http://www.virtualpass.com.br/  Música Hoje eu sou um DBA  https://www.youtube.com/watch?v=vUR3J7btj3M

36 Conclusão  Livros, Artigos, Vídeos e Treinamentos de SQL Server tem aos montes por ai…  Acompanhe o máximo de Blogs de SQL Server que conseguirem…  Acompanhem as referências de SQL Server nas redes sociais (Twitter, LinkedIn e Facebook)  Aumentem o Networking nessa área  Fórmula para crescer: Praticar, Estudar, Estudar, Praticar, Estudar, Estudar e Praticar

37 DÚVIDAS? FABRICIO@FABRICIOLIMA.NET HTTP://WWW.FABRICIOLIMA.NET OBRIGADO!


Carregar ppt "SQL Saturday #469 - Brasília Assumi o cargo de DBA. O que devo aprender para ontem? Fabrício Lima | FabricioLima Soluções em BD"

Apresentações semelhantes


Anúncios Google