Categorias
Azure SQL Database How To Virtual PASS BR

Azure SQL Database – Migration tools – part 2

[bing_translator]

Existem algumas ferramentas que ajudam a migrar seu database para o Azure SQL Database e eu já falei de algumas:

Export e Import manualmente

Mais uma vez o SQL Server Management Studio (SSMS) é a ferramenta que pode ser usada através do Export Data-tier Application.
Esse processo tem algumas diferenças quando comparado com o Migration Wizard

  • Suporta qualquer database a partir da versão SQL Server 2005
  • Excelente para database de tamanho pequeno, médio ou grande
  • .bacpad pode ser armazenado no Azure Storage ou localmente
  • Processo em múltiplos passos independentes
  • Maior controle sobre o export e import
  • Downtime é grande

Não esquece de validar se seu database está pronto para o Azure SQL Database através do Data Migration Assistant – Assessment

Para iniciar o seu processo de migração acesse o wizard através do SSMS.

Acesse Object Explorer –> Instance –> Database –> Botão direito –> Task –> Export Data-tier Application. Uma primeira janela de introdução será mostrada, avance para a próxima.

Nesse ponto você pode escolher entre salvar o .bacpac localmente ou no Azure Storage Account

  1.  Connect a sua storage account
  2. Indique o container onde o arquivo bacpac deverá ficar
  3. Nome do arquivo
  4. Um caminho local temporário deve ser indicado para que o processo tenha sucesso

Revise as informações, principalmente o espaço temporário disponível, e inicie a exportação do database. Através da janela de progresso podemos verificar o que o wizard está fazendo.

  1. Extrai o schema
  2. Valida o schema
  3. Exporta os dados (tabela por tabela)
  4. Upload do arquivo bacpac para o Azure Storage

Uma vez que o wizard terminou com sucesso não existe mais nada para fazer no SSMS e agora você tem o controle de quando e onde realizar o import. Acesse o Azure Portal e navegue até o seu servidor logico do SQL servers.

Acesse o item Overview e a opção Import database

 

 

  1. Indique sua subscription
  2. Local onde você fez o upload do arquivo bacpac

  1. Defina o service tier do database
  2. Escolha um nome para o database
  3. Collation que deseja utilizar
  4. Método de autenticação
  5. Login do administrador do servidor logico

 

 

 

 

Após revisar as informações e confirmar, o deploy deverá iniciar e uma notificação será apresentada no portal. Uma vez que sua requisição tenha sido completada seu database estará disponível para uso. Você pode verificar através do SSMS ou do Azure Portal.

O tempo total de deploy depende de alguns fatores como tamanho do seu database e service tier escolhido. Outra possibilidade é utilizar powershell para fazer o import do bacpac ao invés de usar o portal do Azure.

O código abaixo é um exemplo estático de como utilizar powershell.

#region connect to Azure
Login-AzureRmAccount
Get-AzureRmSubscription 
Select-AzureRmSubscription -SubscriptionName 'MSDN Platforms'

#list of commands 
Get-Command -Module AzureRM.Sql
#endregion

#region getting information and set variables

# Get the resource group name 
Get-AzureRmResourceGroup 
$resourcegroupname = "SQL-Database"

# Set an admin login and password for your server
$adminlogin = "admin"
$password = "yourpassword"

# Get server name - the logical server name has to be unique in the system
Get-AzureRmSqlServer -ResourceGroupName $resourcegroupname #| Select ServerName
$servername = "balabuchsqldb"

# The sample database name
$databasename = "AdventureWorks_Bacpac_PS"

# The storage account name and storage container name
Get-AzureRmStorageAccount -ResourceGroupName $resourcegroupname #| Select StorageAccountName
$storageaccountname = "sqldatabasemigration"

Get-AzureRmStorageAccount -ResourceGroupName $resourcegroupname | Get-AzureStorageContainer #| Select Name
$storagecontainername = "migration"

# BACPAC file name
Get-AzureRmStorageAccount -ResourceGroupName $resourcegroupname | Get-AzureStorageBlob -Container $storagecontainername #| Select Name
$bacpacfilename = "AdventureWorks.bacpac"

#endregion


#region importing bacpac

# Import bacpac to database with an S3 performance level
$importRequest = New-AzureRmSqlDatabaseImport -ResourceGroupName $resourcegroupname `
    -ServerName $servername `
    -DatabaseName $databasename `
    -AdministratorLogin $adminlogin `
    -AdministratorLoginPassword  (ConvertTo-SecureString -String $password -AsPlainText -Force)`
    -DatabaseMaxSizeBytes "5000000" `
    -StorageKeyType "StorageAccessKey" `
    -StorageKey (Get-AzureRmStorageAccountKey -ResourceGroupName $resourcegroupname -StorageAccountName $storageaccountname).Value[0] `
    -StorageUri "https://$storageaccountname.blob.core.windows.net/$storagecontainername/$bacpacfilename" `
    -Edition "Standard" `
    -ServiceObjectiveName "S3"


# Check import status and wait for the import to complete
$importStatus = Get-AzureRmSqlDatabaseImportExportStatus -OperationStatusLink $importRequest.OperationStatusLink
[Console]::Write("Importing")
while ($importStatus.Status -eq "InProgress")
{
    $importStatus = Get-AzureRmSqlDatabaseImportExportStatus -OperationStatusLink $importRequest.OperationStatusLink
    [Console]::Write(".")
    Start-Sleep -s 10
}
[Console]::WriteLine("")
$importStatus

#endregion

#region scale down database

# Scale down to Basic after import is completed
Set-AzureRmSqlDatabase -ResourceGroupName $resourcegroupname `
    -ServerName $servername `
    -DatabaseName $databasename  `
    -Edition "Basic" `
    -RequestedServiceObjectiveName "Basic"

#endregion

Referências:

https://docs.microsoft.com/en-us/azure/sql-database/scripts/sql-database-import-from-bacpac-powershell

https://docs.microsoft.com/en-us/azure/sql-database/sql-database-import

Categorias
Azure SQL Database How To Virtual PASS BR

Azure SQL Database – Migration tools – part 1

[bing_translator]

Escolher a ferramenta de migração nem sempre é uma tarefa fácil uma vez que devemos levar em conta todos os pré-requisitos estabelecidos pelo cliente. Por esse motivo temos que conhecer os principais métodos/ferramentas de migração e suas diferenças para fornecer uma melhor solução e é necessário uma preparação antes de iniciar sua migração. No post Azure SQL Database – Before you migrate você pode encontrar o que deve ser considerado para ter uma migração de sucesso.

A primeira ferramenta que podemos utilizar é o Data Migration Assistant e você pode verificar como utilizar essa ferramenta aqui!

Migration Wizard no SSMS

O SQL Server Management Studio (SSMS) é a ferramenta que pode ser usada através do Migration Wizard e é o método mais comum para migração de um database.

Por ser um método bastante comum, algumas características dessa ferramenta:

  • Suporta database a partir da versão SQL Server 2005
  • Excelente para database de tamanho pequeno e médio
  • .bacpac é criado apenas localmente
  • É um processo único – ou toda a migração é realizada com sucesso ou nada é feito
  • Manipula o export e import automaticamente
  • Downtime é grande

Não esquece de validar se seu database está pronto para o Azure SQL Database através do Data Migration Assistant – Assessment

Para iniciar o seu processo de migração acesse o wizard através do SSMS.

Acesse: Object Explorer –> Instance –> Databases –> Botão direito –> Task –> Deploy Database to Microsoft Azure SQL Database.

Uma primeira janela de introdução será mostrada, avance para a próxima.

  1. Conecte no seu servidor Azure SQL (link)
  2. Escolha um nome para o seu database, originalmente o wizard mantem o mesmo nome.
  3. Configurações do seu Azure SQL Database
    1. Escolha o nível de serviço (service tiers): Basic, Standard, Premium ou PremiumRS (no momento apenas essas estão disponíveis)
    2. Tamanho máximo do database depende de cada nível de serviço.
    3. Service Objective: Dentro de cada service tier temos diferentes níveis de performance e limite de storage, as DTU
  4. Local de armazenamento do arquivo .bacpac

 

Revise as informações, principalmente o espaço temporário disponível, e inicie a migração.

Através da janela de progresso podemos verificar o que o wizard está fazendo e posso citar alguns passos:

  1. Extrai o schema
  2. Valida o schema
  3. Exporta os dados (tabela por tabela)
  4. Cria o database no Azure
  5. Verifica e analisa o deploy do novo database
  6. Inicia o processo de importação do pacote (schema e dados)
  7. Desabilita os índices
  8. Importa os dados (tabela por tabela)
  9. Habilita os índices

Uma vez que o wizard tenha completado a tarefa seu database estará disponível para uso. Você pode verificar através do SSMS ou do Azure Portal.

Algumas configurações que eu sento falta no wizard que e que por sua vez utiliza a opção default:

  • Location
  • Resource Group
  • Subscription

Apenas a configuração da região não é possível alterar depois que o database é criado.
O tempo total de deploy depende de alguns fatores como tamanho do seu database e service tier escolhido.

Concluindo, esse é o metodo mais utilizado e mais facil porem é demorado. Recomendo que teste esse metodos assim como marque o tempo total gasto e verifique se é aceitavel para sua migração. Duvidas do que fazer antes de migrar seu database? Não deixe de ler o post Azure SQL Database – Before you migrate

Referencia:
https://docs.microsoft.com/en-us/azure/sql-database/sql-database-migrate-your-sql-server-database

Pluralsight – Azure SQL Database for the SQL Server DBA

Categorias
SQL Server Troubleshooting Virtual PASS BR

SQL SERVER MANAGEMENT STUDIO – Crashes quando inicia

[bing_translator]

Recentemente eu troquei meu notebook e comecei aquela velha rotina de instalar todos os softwares que utilizamos no dia. A expectativa era grande pois a máquina tem um hardware melhor. Assim que recebi o equipamento o primeiro software que instalei foi o SQL Server Management Studio 2014, a ferramenta que mais utilizo no dia a dia.  Após fazer a instalação (https://tiagobalabuch.com/erro-ao-instalar-sql-server-management-studio-setup-account-privileges/) com sucesso tive uma surpresa ao tentar abrir o programa, simplesmente não abria e gerava a mensagem dizendo que parou de funcionar!

ErroSSMS-01
Imagem 1

Analisando o event viewer consegui encontrar as seguintes mensagens:

ErroSSMS-02
Imagem 2

ErroSSMS-03

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Imagem 3

Pesquisando um pouco cheguei a dois

https://connect.microsoft.com/SQLServer/feedback/details/774317/sql-server-management-studio-2012-crashes-when-closing
https://connect.microsoft.com/SQLServer/feedback/details/770754/sql-server-2012-management-studio-crashes

Não ajudou muito meu problema, porém eu atualizei para o último Cumulative Update para ver se o problema seria resolvido e não tive sucesso.
Iniciamos uma investigação pensando que poderia ser algum problema com a versão do .NET Framework e nesse momento uma equipe que utiliza o Visual Studio reportou o mesmo problema ao tentar abrir o programa, mais um indicio que poderia ser algum problema com .NET Framework.
Desabilitei o .NET Framework 4.5, que vem por padrão habilitado no Windows 8.1, para verificar se poderia ser algum problema mas não tive sucesso.
Reinstalei o .NET Framework 3.5 sem sucesso novamente.

Um amigo, Rafael Machado, criou um script para apagar alguns registros e caches de informações do Windows para resolver o problema e funcionou em uma máquina que ele testou.

del /F /Q “%userprofile%\appdata\local\Microsoft\SQL Server Management Studio\*.*”

del /F /Q “%userprofile%\AppData\Local\Microsoft_Corporation\LandingPage.exe_StrongName_ryspccglaxmt4nhllj5z3thycltsvyyx\*.*”

del /F /Q “%userprofile%\appdata\local\Microsoft_Corporation\*.*”

 del /F /Q “%userprofile%\appdata\locallow\Microsoft\SQL Server Management Studio\*.*”

del /F /Q “%userprofile%\appdata\locallow\Microsoft\Visual Studio\*.*”

del /F /Q “%userprofile%\appdata\locallow\Microsoft_Corporation\*.*”

 del /F /Q “%userprofile%\appdata\roaming\Microsoft\SQL Server Management Studio\*.*”

del /F /Q “%userprofile%\appdata\roaming\Microsoft\Visual Studio\*.*”

del /F /Q “%userprofile%\appdata\roaming\Microsoft_Corporation\*.*”

 reg delete “HKEY_CURRENT_USER\Software\Microsoft\VisualStudio” /f

reg delete “HKEY_CURRENT_USER\Software\Microsoft\SQL Server Management Studio” /f

Porem para mim não funcionou e continuei investigando o problema.

Conversando com alguns amigos tive algumas dicas de como tentar identificar ou solucionar o meu problema.

O Edvaldo Castro (blog | twitter) comentou sobre um problema que ele reportou com o .NET Framework (http://edvaldocastro.com/error-netfx3/) e muito provavelmente eu poderia estar passando, porem após realizar os procedimentos indicados de remover os KB2966828 e KB2966827 e habilitar o  .NET Framework 3.5 novamente o meu problema persistia.

O Alex Rosa (blog) deu a dica de usar o log do SSMS para verificar o que estava acontecendo.
Esse procedimento é realizado incluindo a opção [-log filename] no executável do SSMS:
“C:\Program Files (x86)\Microsoft SQL Server\120\Tools\Binn\ManagementStudio\Ssms.exe” -log “C:\SSMS_log.txt”

ErroSSMS-04ErroSSMS-05
Imagem 4

Analisando encontrei algumas mensagens suspeitas:

<entry>

    <record>1077</record>

    <time>2014/11/27 12:46:58.516</time>

    <type>Error</type>

    <source>Microsoft.VisualStudio.CommonIDE.ExtensibilityHosting.VsShellComponentModelHost</source>

    <description>Could not load file or assembly &apos;Microsoft.Data.Entity.Design.DataSourceWizardExtension.dll&apos; or one of its dependencies. O sistema n&#x00E3;o pode encontrar o arquivo especificado.</description>

    <path>C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\CommonExtensions\DataDesign\Microsoft.Data.Entity.Design.DataSourceWizardExtension.dll</path>

  </entry>

 O Zavaschi (blog|twitter) me ajudou a analisar o log e encontrou mais algumas mensagens que poderia estar gerando o problema:

<entry>

    <record>366</record>

    <time>2014/11/28 10:27:58.575</time>

    <type>Warning</type>

    <source>VisualStudio</source>

    <description>PkgDef encountered data collision in section &apos;HKEY_CURRENT_USER\Software\Microsoft\SQL Server Management Studio\12.0_Config\OutputWindow\{FC076020-078A-11D1-A7DF-00A0C9110051}&apos; for value &apos;Name&apos;</description>

  </entry>

  <entry>

    <record>367</record>

    <time>2014/11/28 10:27:58.575</time>

    <type>Warning</type>

    <source>VisualStudio</source>

    <description>PkgDef encountered data collision in section &apos;HKEY_CURRENT_USER\Software\Microsoft\SQL Server Management Studio\12.0_Config\OutputWindow\{FC076020-078A-11D1-A7DF-00A0C9110051}&apos; for value &apos;Package&apos;</description>

</entry>

 <entry>

    <record>618</record>

    <time>2014/11/28 10:27:59.024</time>

    <type>Information</type>

    <source>VisualStudio</source>

    <description>PkgUnDef: Deleted key</description>

    <path>Software\Microsoft\SQL Server Management Studio\12.0_Config\Services\{5C164B27-EEC2-4b9f-B3D6-60C2EFF8C800}</path>

  </entry>

 <entry>

    <record>620</record>

    <time>2014/11/28 10:27:59.026</time>

    <type>Warning</type>

    <source>VisualStudio</source>

    <description>PkgUnDef: Did not find key to open. Skipping</description>

    <path>Software\Microsoft\SQL Server Management Studio\12.0_Config\Services\{8EEF7DE4-FC78-421A-892E-52956C035F5C}</path>

  </entry>

Agora eu precisava saber o que o processo realmente estava fazendo e comecei a utilizar o PROCMON (systernals http://technet.microsoft.com/en-us/sysinternals/bb545021.aspx) e o João Polisel me deu algumas dicas do que procurar para tentar identificar o problema.

Infelizmente, na minha opinião, eu não precisei analisar o PROCMON pois a equipe responsável pela homologação do notebook e do S.O. identificou o problema e solução.

Eles chegaram a esse link (https://social.msdn.microsoft.com/Forums/vstudio/en-US/8b3b39a8-eee6-4d43-b7e6-d9a38be2ee90/installation-of-vs-2012-rtm-invisible-dialog-box?forum=vssetup) onde uma das soluções propostas era atualizar o driver de vídeo. Nesse momento fiquei sabendo que problemas com vídeo conferencia estão ocorrendo e que deveríamos atualizar o drive de vídeo.

Pronto, após a atualização desse driver o problema se foi! Eu não sei explicar o motivo disso, mas atualizar o driver de vídeo era uma coisa que jamais imaginaria que resolveria meu problema. Obrigado a todos que ajudaram!!!

Nem sempre a solução é a que esperamos.

 

Categorias
SQL Server Troubleshooting Virtual PASS BR

Erro ao instalar SQL Server Management Studio – Setup account Privileges

O SQL Server Management Studio (SSMS) é uma das principais ferramentas de um DBA SQL Server e sem ela, na minha opniao, é praticamente impossível de trabalhar, a não ser que você goste de utilizar a famosa linha de comando para tudo (SQLCMD ou SQLPS), mas esse não é meu caso. Eu estava instalando o SSMS em meu novo notebook da empresa e me deparei com o seguinte erro:

SetupAccountPrivileges-01

Figura 01

Visualizando o relatório com detalhes, tenho a mensagem:

SetupAccountPrivileges-02

Figura 02

Verificando o erro encontrei um KB relacionado ao mesmo: http://support.microsoft.com/kb/2000257

Simples e fácil de resolver. O que falta é permissão nos seguintes objetos:

Local Policy Object Display Name   User Right
Backup files and directories SeBackupPrivilege
Debug Programs SeDebugPrivilege
Manage auditing and security log SeSecurityPrivilege

Para listar as permissões, você pode utilizar o seguinte comamdo a partir de um Prompt ou PowerShell:

whoami /priv

Fácil seria se uma politica de GPO permitisse adicionar permissões nesses objetos. No meu caso o que estava faltando era permissão no “Debug Programs”.  Conversando com a equipe que definiu as GPO chegamos ao veredito que não seria mudado a GPO por varias questões de seguranças.

Corrigir essas permissões é a melhor maneira de solucionar o problema.

E agora, eu apenas queria instalar o SSMS na minha estação de trabalho! Nem tudo está perdido. Uma outra pessoal da minha equipe descobriu que é possível contornar essa verificação através da linha de comando:

Setup /Action=Install /SkipRules=HasSecurityBackupAndDebugPrivilegesCheck

Obrigado Rene pelo comando!!!

Dessa maneira foi possível instalar o SSMS no meu notebook.