quinta-feira, 29 de novembro de 2018

SQL Server on Linux Tuning Settings

Best Settings for SQL Server


• Use (PROCESS AFFINITY) afinidade por CPUs, mesmo em harwares de uma unica NUMA.
(NUMA - Soquetes únicos).

• Configure múltiplos arquivos de TEMPdb (para uso de benchmarks vve use 1 arquivo,
por processador lógico).

• Defina um limite de memória com mssql-conf.

• Por padrão, o SQL Server no Linux usa apenas 80% da RAM física por padrão.Para alguns datacenter's com grande quantidade de memoria RAM disponível,20% pode ser um número muito significativo;

Podemos configurar o limite de memória para um valor mais alto:

Configuração do sistema operacional Linux


• Configure o Kernel para Alto Desempenho (High Performance)

• Desabilite o balanceamento automático NUMA em sistemas NUMA com vários nós.

• Aumente as configurações do kernel para endereçamento virtual. (Virtual Address)

• Habilite (THP -  Transparent Huge Pages) páginas enormes e transparentes.
Com o THP habilitado, o sistema realiza automaticamente as requisições de alocação de memória do NUMA  para quantias contínuas grandes de memória, reduzindo a contenção de bloqueio e o número de operações  de gerenciamento de memória do translation lookaside buffer (TLB) necessárias e gerando um crescente desempenho de até 20%.

• Se estiver executando o SQL Server no Linux em uma máquina virtual, corrija a quantidade de memória reservada para a máquina virtual!



Em alguns números:

180 bilhões de linhas (tabela única) digitalizadas em menos de 20 segundos!
Utilizados 480 CPUs, todos funcionando com 100% de utilização

Benchmarks Padrão da Indústria no Linux
• HPE DL380 Gen9 1 TB TPC-H1 no Red Hat Enterprise Linux
• Publicado em outubro de 2017
• 717,101 QphH @ 1.000 GB / US $ 61 US $ por QphH em 1.000 GB
• HPE DL380 Gen10 1 TB TPC-H2 no SUSE Linux Enterprise Server
• Utilizou a Tecnologia de Memória Persistente da HPE - Primeiro banco de dados sem disco!
• 1,009,065 QphH @ 1,000 GB / US $ 47 US $ por QphH em 1.000 GB
• Resultou em um aumento de 45% no desempenho, uma redução de 50% nos custos de hardware e uma redução de até 85% no espaço em rack,
quando comparado a um sistema similar baseado em SSD
E mais no pipeline para 2018 ...

quarta-feira, 26 de setembro de 2018

Microsoft anuncia o SQL Server 2019 beta

Hoje, no Ignite, a Microsoft anunciou a prévia do SQL Server 2019 . Por 25 anos, o SQL Server ajudou as empresas a gerenciar todas as facetas de seus dados relacionais. Em versões recentes, o SQL Server foi além da consulta de dados relacionais, unificando dados relacionais e de gráficos e levando o aprendizado de máquina para onde os dados estão com o treinamento e a pontuação do modelo R e Python. À medida que o volume e a variedade de dados aumentam, os clientes precisam integrar e analisar facilmente os dados em todos os tipos de dados.
Agora, pela primeira vez, o SQL Server 2019 cria uma plataforma de dados unificada com o Apache Spark TM e o Hadoop Distributed File System (HDFS) junto com o SQL Server como uma solução única e integrada.Com a capacidade de criar clusters de big data, o SQL Server 2019 oferece uma incrível expansão dos recursos de gerenciamento de banco de dados, redefinindo ainda mais o SQL Server além de um banco de dados relacional tradicional. E, como em todas as versões, o SQL Server 2019 continua a ampliar os limites de segurança, disponibilidade e desempenho para cada carga de trabalho com o Intelligent Query Processing, ferramentas de conformidade de dados e suporte para memória persistente. Com o SQL Server 2019, você pode executar qualquer projeto de dados, desde cargas de trabalho tradicionais do SQL Server, como OLTP, Data Warehousing e BI, até IA e análise avançada em big data.
O SQL Server fornece uma verdadeira plataforma híbrida, com uma área de superfície consistente do SQL Server do data center para a nuvem pública, facilitando a execução no local de sua escolha. Como os clusters de big data do SQL Server 2019 são implantados como contêineres no Kubernetes com um serviço de gerenciamento integrado, os clientes podem obter uma experiência consistente de gerenciamento e implantação em uma variedade de plataformas suportadas no local e na nuvem: OpenShift ou Kubernetes local Serviço do Azure Kubernetes (AKS), Azure Stack (no AKS) e OpenShift no Azure. Com a portabilidade de licença do Azure Hybrid Benefit, você pode optar por executar cargas de trabalho do SQL Server no local ou no Azure, por uma fração do custo de qualquer outro provedor de nuvem.

SQL Server - Insights sobre todos os seus dados

O SQL Server continua a adotar o código aberto, desde o suporte do SQL Server 2017 para Linux e contêineres ao SQL Server 2019, agora abrangendo o Spark e o HDFS para oferecer uma plataforma de dados unificada. Com o SQL Server 2019, todos os componentes necessários para realizar análises sobre seus dados são incorporados em um cluster gerenciado, que é fácil de implantar e pode ser dimensionado de acordo com as necessidades do seu negócio. HDFS, Spark, Knox, Ranger, Livy, todos vêm empacotados junto com o SQL Server e são rapidamente e facilmente implantados como containers Linux no Kubernetes. O SQL Server simplifica o gerenciamento de todos os seus dados corporativos removendo quaisquer barreiras que existam atualmente entre dados estruturados e não estruturados.
Veja como podemos facilitar a eliminação de barreiras para a percepção de todos os seus dados, fornecendo uma visão dos seus dados em toda a organização:
  • Simplifique a análise de big data para usuários do SQL Server. O SQL Server 2019 facilita o gerenciamento de ambientes de big data. Ele vem com tudo o que você precisa para criar um data lake, incluindo HDFS e Spark fornecidos pela Microsoft e ferramentas de análise, todos profundamente integrados ao SQL Server e totalmente suportados pela Microsoft. Agora, você pode executar aplicativos, análises e IA sobre dados estruturados e não estruturados - usando consultas T-SQL familiares ou pessoas familiarizadas com o Spark podem usar Python, R, Scala ou Java para executar tarefas do Spark para preparação ou análise de dados. o mesmo cluster integrado.
  • Ofereça aos desenvolvedores, analistas de dados e engenheiros de dados uma única fonte para todos os seus dados - estruturados e não estruturados - usando suas ferramentas favoritas. Com o SQL Server 2019, os cientistas de dados podem analisar facilmente os dados no SQL Server e no HDFS por meio dos trabalhos do Spark. Os analistas podem executar análises avançadas sobre big data usando o SQL Server Machine Learning Services: treinar grandes conjuntos de dados no Hadoop e operacionalizar no SQL Server. Os cientistas de dados podem usar uma nova experiência de notebook em execução no mecanismo de notebooks Jupyter em uma nova extensão do Azure Data Studio para realizar interativamente análises avançadas de dados e compartilhar facilmente a análise com seus colegas.
  • Divida os silos de dados e forneça uma visualização em todos os seus dados usando a virtualização de dados.A partir do SQL Server 2016, o PolyBase permitiu que você executasse uma consulta T-SQL dentro do SQL Server para extrair dados de seu lago de dados e retorná-los em um formato estruturado - tudo sem mover ou copiar os dados. Agora, no SQL Server 2019, estamos expandindo esse conceito de virtualização de dados para fontes de dados adicionais, incluindo Oracle, Teradata, MongoDB, PostgreSQL e outras. Usando o novo PolyBase, você pode dividir silos de dados e combinar facilmente dados de várias fontes usando a virtualização para evitar o tempo, esforço, riscos de segurança e dados duplicados criados pela movimentação e replicação de dados. Novos “pools de dados” e “pools de dados” elasticamente escalonáveis ​​tornam a consulta de dados virtualizados mais rápida, armazenando dados em cache e distribuindo a execução de consultas em muitas instâncias do SQL Server.
“Desde o início, o banco de dados do Sloan Digital Sky Survey foi executado no SQL Server e o SQL Server também armazena catálogos de objetos de grandes simulações cosmológicas.Estamos muito satisfeitos com a promessa dos clusters de big data do SQL Server 2019, o que nos permitirá aprimorar nossos bancos de dados para incluir todos os nossos grandes conjuntos de dados. A natureza distribuída do SQL Server 2019 nos permite expandir nossos esforços para novos tipos de simulações e para a próxima geração de pesquisas astronômicas com conjuntos de dados de até 10 PB ou mais, muito além dos limites de nossas soluções atuais de banco de dados. ”- Dr. Gerard Lemson Instituto de Engenharia Intensiva de Dados e Ciências, Universidade Johns Hopkins.

Melhor desempenho, segurança e disponibilidade

O mecanismo relacional do SQL Server 2019 fornecerá recursos novos e aprimorados nas áreas de desempenho de missão crítica, segurança e conformidade e disponibilidade do banco de dados, além de recursos adicionais para desenvolvedores, SQL Server no Linux e contêineres e aprimoramentos gerais do mecanismo.

Desempenho líder do setor - o banco de dados inteligente

  • família de recursos do Intelligent Query Processing se baseia em recursos de ajuste de desempenho sem uso de mãos do Processamento de Consulta Adaptável no SQL Server 2017, incluindo feedback de concessão de memória no modo Row, COUNT DISTINCT aproximado, modo Lote no rowstore e compilação adiada de variável de tabela.
  • O suporte a memória persistente foi aprimorado nesta versão com um novo caminho de E / S otimizado disponível para interação com o armazenamento de memória persistente.
  • A infra - estrutura de perfis de consulta Lightweight agora está habilitada por padrão para fornecer estatísticas do operador por consulta a qualquer momento e em qualquer lugar que você precisar.

Segurança Avançada - Computação Confidencial

  • Sempre criptografado com enclaves seguros estende a tecnologia de criptografia do lado do cliente introduzida no SQL Server 2016. Os enclaves seguros protegem dados confidenciais em um enclave criado por hardware ou software dentro do banco de dados, protegendo-o contra malware e usuários privilegiados, permitindo operações avançadas em dados criptografados.
  • A Descoberta e Classificação de Dados SQL agora está incorporada ao mecanismo do SQL Server com novos metadados e suporte de auditoria para ajudar no GDPR e em outras necessidades de conformidade.
  • Agora, o gerenciamento de certificação é mais fácil usando o SQL Server Configuration Manager.

Disponibilidade de missão crítica - alto tempo de atividade

  • Always On Availability Groups foram aprimorados para incluir o redirecionamento automático de conexões para o principal, com base na intenção de leitura / gravação.
  • As configurações de alta disponibilidade para o SQL Server em execução em contêineres podem ser ativadas com Grupos de disponibilidade sempre ativos usando o Kubernetes.
  • Índices online retomáveis agora suportam operações de criação e incluem padrões de escopo de banco de dados.

Experiência do desenvolvedor

  • Os aprimoramentos no SQL Graph incluem suporte de correspondência com o T-SQL MERGE e restrições de borda.
  • O novo suporte a UTF-8 oferece aos clientes a capacidade de reduzir o espaço de armazenamento do SQL Server para dados de caracteres.
  • A nova extensão de linguagem Java permitirá que você chame um programa Java pré-compilado e execute com segurança o código Java no mesmo servidor com o SQL Server. Isso reduz a necessidade de mover dados e melhora o desempenho do aplicativo, aproximando suas cargas de trabalho de seus dados.
  • O Machine Learning Services tem vários aprimoramentos, incluindo suporte a cluster de failover do Windows, modelos particionados e suporte para SQL Server no Linux.

Plataforma de escolha

  • Recursos adicionais para o SQL Server no Linux incluem transações distribuídas, replicação, Polybase, Machine Learning Services, notificações de memória e suporte OpenLDAP.
  • Os contêineres têm novos aprimoramentos, incluindo o uso do novo Microsoft Container Registry, com suporte para imagens RedHat Enterprise Linux e Always On Availability Groups para Kubernetes. 
    Você pode ler mais sobre o que há de novo no SQL Server 2019 em nossa documentação.

Suporte do SQL Server 2019 no Azure Data Studio

O suporte expandido para mais cargas de trabalho de dados no SQL Server requer ferramentas expandidas. Como a Microsoft trabalhou com usuários de sua plataforma de dados, vimos a união de personas anteriormente díspares: administradores de banco de dados, cientistas de dados, desenvolvedores de dados, analistas de dados e novas funções ainda em definição. Cada vez mais, esses usuários desejam usar as mesmas ferramentas para trabalhar juntos, sem interrupções, no local e na nuvem, usando dados relacionais e não estruturados, trabalhando com cargas de trabalho OLTP, ETL, analíticas e de fluxo contínuo.
O Azure Data Studio oferece uma experiência de editor moderna com IntelliSense ultrarrápido, trechos de código, integração de controle de origem e um terminal integrado. Ele é projetado com o usuário da plataforma de dados em mente, com gráficos integrados de conjuntos de resultados de consulta, um bloco de anotações integrado e painéis personalizáveis. O Azure Data Studio atualmente oferece suporte interno para o SQL Server no local e o Banco de Dados SQL do Azure, além do suporte de visualização para a Instância Gerenciada do Azure SQL e o Azure SQL Data Warehouse.
O Azure Data Studio está enviando uma nova extensão de visualização do SQL Server 2019 para adicionar suporte a alguns recursos do SQL Server 2019. A extensão oferece conectividade e ferramentas para clusters de big data do SQL Server, incluindo uma prévia da primeira experiência de notebook no conjunto de ferramentas do SQL Server e um novo assistente PolyBase Create External Table que facilita o acesso a dados de instâncias remotas do SQL Server e do Oracle .

Começando

Encontre recursos adicionais e comece hoje mesmo visitando os links abaixo:
Por: 
Principal PM Manager, SQL Server

Microsoft libera preview do Windows Server 2019

Nos últimos anos, a Microsoft investiu pesado no Windows 10 e na plataforma Azure, mas isso não quer dizer que a companhia colocou o seu sistema operacional para servidores em segundo plano: a primeira prévia oficial do Windows Server 2019 (build 17623) já está disponível para empresas e profissionais de TI dispostos a testá-la.


Um dos focos da nova versão é a segurança, detalhe um tanto óbvio: um sistema operacional voltado a servidores ou gerenciamento de redes internas, por exemplo, requer proteção constante. Para tanto, um dos recursos implementados no Windows Server 2019 é o Windows Defender Advanced Threat Protection (ATP), conjunto de mecanismos capaz de identificar e mitigar ações de malwares ou outras ameaças.

Dentro do ATP é possível encontrar, por exemplo, o Exploit Guard, que consiste em instruções em nível de kernel criadas para, entre outros perigos, evitar que o sistema operacional seja explorado por meio de vulnerabilidades

Ferramentas voltadas a aplicações nas nuvens também fazem parte do pacote. O Windows Server 2019 permite que o servidor seja integrado a serviços como Azure Backup e Azure File Sync rapidamente, sem que as aplicações rodando no servidor tenham que ser interrompidas. A Microsoft também cita o suporte aos Cluster Sets, ferramentas que permitem escalar determinadas aplicações nas nuvens.


Outros recursos incluem o Storage Spaces Direct, que possibilita a um administrador gerenciar com relativa facilidade as unidades de armazenamento vinculadas ao servidor (é possível verificar o estado funcional de um HD, por exemplo), e, como não poderia deixar de ser, suporte a máquinas virtuais, incluindo aquelas baseadas em distribuições Linux.

Para baixar a prévia do Windows Server 2019 é necessário ter cadastro no programa de testes do Windows Insider. A versão final do sistema operacional ainda não tem data definida de lançamento, mas, de acordo com a Microsoft, será disponibilizada no segundo semestre. Os detalhes estão no blog do Windows.

Com informações: VentureBeat.

segunda-feira, 17 de setembro de 2018

Como transferir logins para outro servidor SQL ou instância

Com qualquer migração de servidor, o ideal é que você queira que as coisas sejam executadas sem problemas e recriar os logins e senhas do SQL Server do zero não é algo que você realmente queira ou deveria estar fazendo.
Atualmente, estou envolvido em uma substituição completa de servidor para um dos nossos clusters do SQL Server. Nesse ambiente, a autenticação mista está ativada.
No passado, quando eu estava aprendendo sobre a transferência de bancos de dados de um servidor, descobri rapidamente que a restauração de um banco de dados de um servidor para outro não era tão simples quanto eu esperava. Eu me deparei com um obstáculo que eu precisava superar na forma do SID.
Então, primeiro vou falar sobre as maneiras pelas quais você pode transferir logins de um SQL Server para outro e explicar sobre o SID mais abaixo no post.
Formas de transferir logins e senhas SQL entre instâncias do SQL Server
Agora você pode fazer isso da maneira mais fácil ou mais difícil!
Você pode configurar manualmente cópias de seus logins em seu novo servidor com senhas (se as conhecer) ou automatizar essa tarefa com a ajuda de um script T-SQL ou SSIS.
Eu não sei sobre você, mas eu não gosto de manual e eu recomendo que você automatize isso a cada vez.

Usando o T-SQL para transferir logins e senhas entre instâncias do SQL Server

Você pode obter um script da Microsoft aqui . Você executa o script, ele cria um procedimento armazenado chamado sp_help_revlogin no seu SQL Server. Quando você executa o procedimento armazenado, ele gera instruções CREATE LOGIN para todos os logons de seu servidor, incluindo suas senhas e “sids”.
Você pode então pegar esse script, executá-lo no seu novo SQL Server para configurar os logins do servidor lá. Obviamente, tome cuidado para examiná-lo antes de executá-lo, para ter certeza de que ele capturou tudo e para garantir que você não esteja copiando nada que não seja necessário em sua nova instância.
O script configurará os logins em seu novo servidor usando o idioma padrão configurado para esse servidor, portanto, verifique se ele está configurado corretamente primeiro.

Usando a tarefa de transferência de logins no SSIS para copiar logins e senhas entre instâncias do SQL Server

Há uma tarefa de logons de transferência no SSIS que também fará o trabalho. Na imagem em anexo, estou usando a nova versão do SSIS que é fornecido com o SQL Server 2012. A tarefa logins de transferência cai sob a rubrica “outras tarefas” na caixa de ferramentas SSIS e está disponível em versões antigas do SSIS.

Então, você pode ver na captura de tela que a tarefa de logins de transferência é bastante autoexplicativa. O melhor do SSIS é que ele segura a sua mão de várias maneiras e torna as coisas o mais fáceis possíveis.
Você pode criar conexões a partir desta tarefa, inserir os detalhes de login para sua origem e destino, escolher quais logins copiar e configurar a tarefa para se comportar de maneiras diferentes quando o login existir.
Como você pode ver, circulei “CopySids”, então agora é um bom momento para escrever sobre eles em mais detalhes.

Então, o que é um SID?

SID é abreviação de “identificador de segurança” Um SID é um id interno que é atribuído a um login de servidor quando o login é criado.
O SID pode ser visualizado consultando a visualização do sistema sys.server_principals ou você também pode visualizá-lo observando sys.syslogins
1SELECT principal_id, sid, name
2FROM sys.server_principals
1SELECT sid, name
2FROM sys.syslogins
Cada login do servidor, seja um logon do SQL, login do Windows ou um que tenha sido criado usando um certificado ou uma chave assimétrica, é atribuído a um SID. Então vamos imaginar um cenário de exemplo onde um novo login é criado e por acaso é um login do SQL Server, esse login é chamado “server_login1”.
Em seguida, você cria um login do banco de dados dentro do banco de dados AdventureWorks2012 usando o login do servidor recém-criado. Vamos chamar isso de "db_login1".
Agora veja o SID em sys.server_principals e sys.database_principals em AdventureWorks2012 e o SID será do mesmo valor.
1SELECT sid
2FROM sys.server_principals
3WHERE name 'server_login1'
4
5USE AdventureWorks2012
6GO
7SELECT sid
8FROM sys.database_principals
9WHERE name 'db_login1'
A menos que você crie seus logins em seu novo servidor usando um método como o sp_help_revlogin ou a tarefa de logons de transferência do SSIS com “CopySids” habilitado, seus logins serão criados com novos SIDs.
Não tenho certeza se é possível que seu novo servidor atribua o mesmo SID, mas sei que é muito improvável. Talvez você tenha mais chances de ganhar o prêmio da loteria 🙂

Então, que problemas isso causa?

Como os SIDs são diferentes, quando você copia / restaura os bancos de dados do servidor antigo, os logins do banco de dados simplesmente não funcionarão, pois ficarão órfãos de seu SID original.
Você pode encontrar esse erro, por exemplo, se tentar adicionar um login de servidor a um banco de dados que acabou de ser copiado.
Erro 15023: o usuário já existe no banco de dados atual
Isso precisará ser corrigido.
Existe um procedimento que você pode executar para fazer isso e, basicamente, leva o login do servidor e o login do banco de dados e os associa ao nome com o mesmo SID.
Este procedimento é chamado de  sp_change_users_login  e eu vou falar sobre isso nos próximos posts.

Gustavo Damatto
MCSD - Microsoft Certified Solutions Developer

linkedin.com/in/damatto

Ribeirão Preto-SP