Migrando de Ambiente (literalmente)

Desta vez o post não é nada técnico. Vou contar um pouco o que aconteceu na minha carreira no primeiro semestre de 2017.

Em novembro de 2016, recebi um telefonema de um conhecido com uma oportunidade para trabalhar em outra empresa. De imediato não me interessei muito, pois estava em um emprego que gostava muito e tinha muito orgulho do ambiente que eu trabalhava. Mas esse interesse mudou quando escutei a proposta do projeto que era a migração de TODO ambiente para o Azure. Que sonho!

Na primeira conversa, foi informado que um dos motivos da minha contratação era para ajudar na migração. Já fui logo avisando que eu não tinha experiência NENHUMA com nuvem e que era um mundo totalmente novo. Sempre fui DBA de Infra, já havia participado de migrações de servidores de SQL Server, mas nunca para o Azure. Então ao entrar nessa nova empresa eu teria o seguinte desafio: Migrar as bases de SQL Server para o Azure (Iaas) e migrar a versão do SQL Server de 2012 para 2016.

  • Motivação

Muitas pessoas trocam de empregos por basicamente um motivo: Salário. Mas neste meu caso, salário não era o “incentivo”, pois fui para ganhar menos ainda, então antes de tomar a decisão, tive que colocar na balança se os benefícios iriam ao menos equalizar as finanças, pois eu estava de mudança (saindo da casa dos pais para morar sozinha) e todo planejamento eu havia feito com o salário anterior. Sim, neste momento das contas, eu queria muito ir para esta empresa com o intuito aprender novas coisas (AZURE) e participar desse projeto.

  • Zona de conforto

Eu estava há mais de três anos em meu antigo emprego, já conhecia bastante o ambiente que era super estável e crítico, já tinha domínio das atividades então é claro que havia um risco. É difícil sair de um emprego no qual você gosta, tem amigos e um ótimo ambiente de trabalho e profissionais excelentes para outro emprego cuja motivação foi o projeto. E se esse projeto não saísse do papel?

  • Desafio

Acredito que todo profissional de T.I. deve procurar novos conhecimentos e nesse momento estava batendo na minha porta uma excelente oportunidade, então eu tive que agarrar essa oportunidade. Confiei nas propostas oferecidas e fui empolgada para estes novos desafios.

Em dezembro de 2016 aceitei a oferta e combinei meu início para 18/01/2017. Foi uma boa data, pois já estava com minhas férias marcadas para início de jan/2017 e o bom é que comecei no novo emprego com as baterias todas carregadas!

  • Ambiente diferente

Nos primeiros contados com o novo ambiente, percebi uma realidade totalmente diferente. Antigamente eu trabalhava em um ambiente totalmente transacional e neste novo ambiente a maior característica é processamento de dados e análises de dados. No ambiente antigo era tudo muito segregado e eu não escrevia uma linha de código de negócios (nem tinha contato), já no ambiente novo a equipe de banco está diretamente envolvida com programação em T-SQL na parte negocial. Fora a diferença de infra que antigamente trabalhava em um local com um datacenter com equipamentos TOP de linha e neste ambiente novo eu iria administrar bases de dados em um datacenter de terceiro, onde toda alteração deveria atender à regras do parceiro. Enfim, mundos totalmente diferentes que eu deveria me adaptar para trabalhar.

Fui me acostumando com este novo ambiente, estranhando algumas coisas, apanhando com outras, mas o que eu mais estranhava era a falta de “liberdade” com os nossos servidores. Logo eu que era acostumada a estar na equipe de infra, troquei de empresa e, além de não ficar na equipe de infra desta empresa, a infra não era de domínio nosso.

Então vamos direto ao que interessa. Neste ambiente tinha muita coisa para mudar, muita coisa para colocar nos padrões, nas melhoras práticas, mas para fazer isso no ambiente em que estávamos era muito custoso, demorado e difícil. A impressão que eu tinha é que era muito engessado. Não tinha flexibilidade de criar um disco para fazer alguma manobra ou até mesmo de criar uma máquina temporária para realizar mais manobras e adequações.

Entrei em 18/01/2017 e o projeto começou a ser desenhado desde então, mas começou de fato a ser planejado em março de 2017. Como eu havia dito, eu não tinha domínio e nem estudo suficiente para “comandar” uma migração de todo o ambiente para o Azure. Para minha sorte, esta empresa realmente é especial. Fui informada que havíamos um consultor para nos ajudar neste trabalho e para maior sorte ainda este consultor era um conhecido. Uma pessoa que domina do assunto e que eu já havia uma confiança muito grande, ainda mais pelas suas contribuições na comunidade de SQL Server. Acho que alguns de vocês já devem ter ouvido falar do Luan Moreno (hahahahahaha MAS É CLARO QUE SIM! ). Cara! Consultoria maravilhosa. Desde o início foi uma ótima parceria, tanto na empolgação pelo projeto, quanto na organização e conhecimento. Já nos primeiros dias foi me despejando um monte de materiais e ferramentas novas para que eu estudasse e que essa migração desse certo. Enfim, acho importante pontuar isso aqui, pois se não fosse uma empresa tão especial quanto esta é, eles poderiam muito bem não contratar uma consultoria e fazer com que eu me virasse nessa migração.

Foram três meses intensos, de muito estudo e planejamento para logo que tivéssemos alguma oportunidade essa migração acontecesse. E essa oportunidade foi exatamente no feriado do dia 15/06/2017. Tínhamos 5 instâncias a serem migradas com um total de 200 bases mais ou menos. A nossa proposta foi migrar do jeito que estava, mas claro que aproveitei para padronizar algumas coisas já que criamos os servidores na nuvem do zero.

A migração de fato iria começar dia 15/06, mas aproveitamos e pegamos uma instância menor e menos crítica e a migramos no dia 09/06, já para saber onde estávamos pisando e começar a explorar o mundo novo. Nossa maior preocupação era o link e a taxa de transferência dos dados para a nuvem e por isso começamos a transferi-los no dia 12/06 com backups full das bases maiores e depois enviar os diferenciais. Não pensem que essa estratégia de migração foi decidida de um dia para o outro. Foram muitas discussões com a equipe de infra e com os consultores para ver qual era a melhor forma de migração para o nosso ambiente.

A migração de fato começou dia 14/06 após às 19h. Então foram três dias intensos para fazer tudo acontecer e dar certo. No primeiro dia trabalhamos da tarde do dia 14 até após as 03h da manhã do dia 15/06. Voltamos para casa, descansamos e antes das 13h do dia 15/06 já estávamos de volta continuando a migração saindo somente as 04h da manhã do dia 16/06 com tudo migrado, faltando vários ajustes a ser realizados para o dia seguinte (entende-se em algumas horas seguintes), mas já tínhamos todas as instâncias, bases e dados migrados. Agora era fazer tudo funcionar no novo ambiente. Tivemos o cuidado de deixar os servidores com os mesmos nomes, mas a maioria das aplicações apontavam pelo IP fazendo necessário realizar a configuração de quase todos os apontamentos.

Quando se tem uma equipe foda, o resultado só pode ser mais foda ainda. No dia 18/06 nosso ambiente todo já estava na nuvem. Este trabalho foi um trabalho de parceria com todos da equipe de tecnologia. Desde os consultores, equipe de infra que foi o tempo todo atenciosa e solícita, equipe de dev nos ajudando a testar e reapontar as aplicações e claro, toda a equipe de banco que desde o início passou todas as informações necessárias, deu todo suporte que precisei já que era nova no ambiente e fazendo com que todas as rotinas funcionassem corretamente.

Tem um pouco mais de um mês que estamos na nuvem, hoje já está tudo mais estável, temos maior liberdade com o nosso ambiente. Agora podemos dizer que o ambiente é nosso (my precious). Tudo que eu preciso hoje, basta pedir para nossa equipe de infra que ela tem liberdade de fazer.

Gollum

Uma coisa que levo nessa mudança toda é: Vale a pena arriscar, vale a pena sair da zona de conforto, vale a pena estudar. O que eu sei hoje é muito maior do que eu sabia em Jan/2017. A curva de aprendizagem foi enorme para um curto período de tempo.

Temos muito ainda que melhorar, que ajustar, temos muitos projetos a implementar e sei que se depender de mim, ficarei muito tempo nesta empresa, pois agora vejo que não foi apenas um projeto de migração para o azure e fim. Foi um projeto de migração para o azure para que possamos realizar muitos outros projetos com o poder que a nuvem nos oferece!

 

Troubleshooting Kerberos Configuration

Galera, venho compartilhar com vocês uma ferramenta que eu descobri esse semana… “Microsoft Kerberos Configuration Manager for SQL Server” . Eu não sei vocês, mas eu não sabia de sua existência. Fiquei feliz demais por descobrir isso, pois fazer troubleshooting de falha de autenticação Kerberos é horrível!!!! Já sofri muito com isso, já perdi muito tempo com isso até identificar onde está o erro e esta ferramenta é MARAVILHOSA!!! Super intuitiva, caso seja algum SPN que não está cadastrado, ela gera o script para você cadastrar.

Enfim, meu objetivo aqui não é explicar como que a ferramenta trabalha, mas divulgar (para quem ainda não sabia) a sua existência. Fiquei feliz demais ao descobri-la.

Estou meio que me sentindo o Rubinho Barrichello, pois vi que essa ferramenta foi lançada em 2013, mas antes tarde do que nunca rsrsrs.

 

Alguém aqui sabia de sua existência?

 

Para mais detalhes do funcionamento dessa ferramenta, é só acessar o seguinte link.

 

Para fazer download da ferramenta é só clicar no link.

 

Mulheres na TI: quantas você conhece?

WebCast

Estou aqui, às 23:30 de um domingo para lembrar que o nosso WebCast está chegando!!!

EU(Nane Flores – DBA), juntamente com Sulamita Dantas(DBA), Dani Marinho(Desenvolvedora) e Suh Moraes(DBA) resolvemos nos juntar para realizar um bate-papo que  irá ocorrer no dia 06/06/2017 (Terça-Feira) sobre as mulheres no mercado de trabalho de TI. Falar sobre os nossos desafios, dia a dia, contar como que chegamos onde estamos e desenvolver uma conversa descontraída de forma a encorajar cada vez mais as mulheres virem para esta área. É mostrar que temos um belo espaço nesta área linda!

Segue um pouco da descrição do nosso WebCast:

“Este WebCast tem o objetivo de mostrar para as mulheres, que esta área não é um bicho de sete cabeças, fazendo da TI uma opção a mais na escolha de sua profissão. Vamos mostrar como começou nossas carreiras, o nosso dia-a-dia no trabalho, de forma a incentivar/inspirar outras mulheres. Mostrar que, cada um tem um espacinho nessa área, que cresce cada vez mais, mas que a participação feminina ainda é muito pequena. Lembrando sempre, que todas (e todos, é claro) são muito bem vindos! Vai perder?

Link do evento aqui .

Esperamos todos vocês para este bate-papo, com o objetivo de enriquecê-lo cada vez mais.

NoLock – Remote table-valued function calls

Olá pessoas. Estou participando de uma migração e achei interessante compartilhar um caso com vocês.

O Post é bem pequenino somente a título de curiosidade mesmo.

Nessa migração estamos retirando as bases de dados do ambiente de produção SQL Server 2008 R2 com modo de compatibilidade 80 para SQL Server 2014 com modo de compatibilidade 120.

A maior dificuldade dessa migração é sair do modo de compatibilidade 80, pois a partir dele muita sintaxe deixou de funcionar como o * = / = * substituído pelo Left join / Right Join e a sintaxe do Raiserror sendo exigido colocar os parâmetros entre parênteses, porém uma coisa que deixou a equipe mais “encucada”  foi o NoLock .

Sabemos que os desenvolvedores quase nunca usam o NoLock, né? (sarcasmo). Então tivemos uma amostra legal do erro.

Na documentação do SQL Server 2016 está dizendo que em versões futuras não será mais permitido a utilização de Hints sem a clausula “With”, porém EM VERSÕES FUTURAS, ou seja, ainda conseguimos usar o NoLock sem o With.

hintssqlserver

Porém quando executamos uma consulta via linked server sem a clausula with, é retornado o seguinte erro:

SELECT *
FROM [sqlh110].master.sys.databases (NOLOCK)

Msg 4122, Level 16, State 1, Line 2
Remote table-valued function calls are not allowed.

Obs.: A consulta foi realizada em um SQL Server 2014 (SP2).

Agora vocês pensam: “O quê é que tem a ver erro de Remote table-value function com o NoLock? “.

Tudo indica que o parse do SQL Server entende aqui que ao colocar o NoLock entre parênteses (NOLOCK) na verdade está chamando uma função remotamente e que não é uma Hint. Vi essa explicação no seguinte link:

(http://stackoverflow.com/questions/17242733/why-is-with-required-when-using-nolock-on-a-remote-table-call)

Podemos provar isso com a seguinte consulta:

SELECT *
FROM [sqlh110].master.sys.databases NOLOCK

resultadoselectnolock

Ao retirar o parênteses a consulta retorna o resultado normalmente, mesmo sem a clausula “With”.

Identificamos que para o código voltar a funcionar basta retirar os parênteses, porém já que o mesmo será editado para corrigir o erro recomendo que editem da forma “completa”, pois, como olhamos na documentação, isso será descontinuado, então não custa nada sempre que forem utilizar a Hint “NoLock”, que a mesma seja precedida pela clausula “With”, evitando assim, erros em versões futuras.

Editado em 28/12/2016

Conforme observado pelo Reginaldo Silva o nolock sem os parênteses funciona, pois na verdade o SQL Server entende que a palavra “NoLock” é um alias e não uma Hint para realizar a leitura suja, ou seja, para consertar de fato o erro citado no post é colocando o with antes do (nolock).

Minha primeira palestra

08f4ad19-7b49-4b0c-b4de-14722d6337d3

No dia 26/11/2016 aconteceu o SQL Saturday 573 aqui em Brasília conforme já havia falado no post de divulgação do evento , mas o quê eu não tinha falado é que eu ia palestrar. De fato, até a data que lancei o post, eu não havia decidido bem se ia palestrar ou não, mas com muito incentivo dos meus colegas/amigos de trabalho e SQL decidi palestrar juntamente com o Gustavo (também colaborador do blog) .

Então aproveitando a oportunidade que me foi concedida de palestrar no Sat de Brasília (que já me sentiria a vontade por ser a minha cidade), juntando em ter meu parceiro de algum tempo de SQL Server (Gustavo) palestrando do meu lado e um tema que gosto muito (índices) tive a coragem e encaminhei minha palestra.

A palestra foi voltada para os alunos da faculdade e para todos os DBA’s iniciantes que querem entender melhor para que serve um índice. Como o próprio tema deixa bem claro, “Indexação para iniciantes” foi bem básica mesmo, expliquei para que servia um índice, suas vantagens, melhores práticas e desvantagens seguidos de exemplos. Apesar da palestra ser bem básica, tive a presença de colegas DBA’s, que já entendem bastante do assunto, assistindo a nossa palestra. Todo esse apoio me deixou mais segura e confiante para passar um pouco do meu conhecimento.

Sou muito grata por ter essa oportunidade de poder contribuir um pouco com a comunidade. Essa gratidão é grande, pois a comunidade SQL Server é muito forte, cada um apoia o outro, passam o conhecimento sem nenhum interesse e sem nenhuma cobrança e posso dizer que minha carreira de DBA teve muita ajuda dela, então poder devolver um pouco do conhecimento adquirido é uma felicidade enorme. Agradecimento mais que especial para o Gustavo parceiro do blog e por ter palestrado comigo , Edvaldo pelo evento incrível e pela oportunidade de palestrar nele e Renato por ter assistido minha palestra e pelo feedback.

Espero que essa seja a primeira palestra de muitas que estão por vir (realmente espero não parar por aqui), aperfeiçoando cada vez mais a forma de passar o conhecimento.

Enfim, o material estará disponível no site do sql sat em alguns dias.

Seguem algumas fotos do evento para que quem não foi, não perder o próximo!

 

SQL Saturday #573 Brasília!!!!!

sat2

Dia 26 de Novembro de 2016 acontecerá a edição de número 573 do Sat e a terceira que acontece em Brasília. Será um sábado inteiro de palestras e networking, onde você aprenderá muita coisa e vai sair com aquele pensamento e vontade de “tenho que estudar muito, pois não sei de NADA”, mesmo você se achando que é um DBA cabuloso!  E o melhor de tudo que o evento é GRATUITO, 0800, FREE!

O evento será na faculdade Projeção em Taguatinga Norte.

Para mais informações do local, palestras e inscrição acessar o site do evento: http://www.sqlsaturday.com/573/eventhome.aspx ;

Aqui deixo algumas fotos das duas edições anteriores do Sat de Brasília ( #253 e #469) já para ir entrando no ritmo.

fb_img_1475238931463

Sat 253 Brasília – Setembro 2013

fb_img_1475238943359

Sat 253 Brasília – Setembro 2013

 

fb_img_1475239035590

Sat 469 Brasília – Novembro 2015

fb_img_1475239040856

Sat 469 Brasília – Novembro 2015

Segue o link do Post do Gustavo (Autor do Blog Também) falando sua impressão ao ministrar sua primeira palestra em um SAT (tem mais fotos aqui também)! https://comunidadesqlserver.wordpress.com/2015/11/24/sql-family-e-minha-primeira-palestra/

Então não percam tempo, aproveitem esse oportunidade maravilhosa e VAMOS APRENDER!!!!