SQL Skip Rules


As vezes entender os problemas de uma instalação ou remoção pode ser complicado.

Existem cenários em que um Reboot naquele momento não é uma opção, ou um host está totalmente degradado e você precisa forçar a remoção de um SQL já migrado e em estado Offline.

Se você executar o Setup normalmente ele vai fazer uma série de checagens como: necessidade de reboot, acesso ao registro remoto, WMI, .NET, etc.

Dependendo do que você precisa, algumas opções podem ser desconsideradas na instalação/remoção, vou colocar o arquivo onde contém todas as explicações de todas as opções possíveis.

ATENÇÃO, esta informação não é documentada, caso precise usar, faça por conta e risco.

Para usar qualquer uma das opções ou mais de uma opção:

  • SETUP /SkipRules=NoRebootPackage /Action=RemoveNode

Para ele não considerar mais de uma regra adicione um espaço entre elas.

  • SETUP /SkipRules=NoRebootPackage WmiServiceStateCheck /Action=RemoveNode

Abaixo vou listar todas as regras do documento para facilitar a pesquisa, mas aqui tem o documento para download com a explicação de cada uma delas.

Regra
ThreadHasAdminPrivilegeCheck
HasSecurityBackupAndDebugPrivilegesCheck
RebootRequiredCheck
WmiServiceStateCheck
AclPermissionsFacet
MediaPathLength
SetupCompatibilityCheck
NoRebootPackage
NoRebootPackageDownLevel
ServerCorePlatformCheck
ServerCore64BitCheck
ThreadHasAdminPrivilegeCheck
RebootRequiredCheck
WmiServiceStateCheck
AclPermissionsFacet
MediaPathLength
SetupCompatibilityCheck
NoRebootPackage
NoRebootPackageDownLevel
ServerCorePlatformCheck
ServerCore64BitCheck
Bids2008InstalledCheck
DenaliCTPbyCTPSxS
AclPermissionsFacet
FacetDomainControllerCheck
SSMS_IsInternetConnected
FacetWOW64PlatformCheck
FusionRebootCheck
Bids2008InstalledCheck
DenaliCTPbyCTPSxS
AclPermissionsFacet
FacetDomainControllerCheck
SSMS_IsInternetConnected
FacetWOW64PlatformCheck
IsFirewallEnabled
ServerCoreBlockUnsupportedSxSCheck
DEV10RTMDetected
ASSPIExistingFarmUnconfiguredWarningCheck
ASSPIInstanceNameNotInUseCheck
ASSPINewFarmConfiguredWarningCheck
ASSPIRequiresCompleteFarmCheck
ASSPIRequiresMossBitsCheck
ASSPIRequiresO14MossEnterpriseCheck
ASSPIRequiresO14MossSP1Check
SlipstreamMediaInfoCheck
PowerShellCheck
InternetConnectionToNETFX4DownloadSite
ServerCoreBlockUnsupportedFeaturesCheck
ServerCoreNetFxCheck
RS_IsDotNet3_5Installed
FAT32FileSystemCheck
InstanceClashRule
StandaloneInstall_HasClusteredOrPreparedInstanceCheck
BlockCrossLanguageInstall
BlockMixedArchitectureInstall
RS_DoesCatalogExist
RS_DoesCatalogTempDBExist
ASIsValidEditionForDeploymentModeCheck
FusionRebootCheck
Bids2008InstalledCheck
DenaliCTPtoCTPUpgrade
AclPermissionsFacet
FacetDomainControllerCheck
Cluster_IsOnlineIfClustered
SSMS_IsInternetConnected
FacetWOW64PlatformCheck
Cluster_DNS_Consistency_Rule
Cluster_IsWMIServiceOperational
ServerCoreBlockUnsupportedSxSCheck
YukonUpgradeSidRule
BlockCrossLanguageUpgrade
KatmiCTPupgradeToKilimanjaroBlockRule
KatmaiSlipstreamBuildToBuildUpgradeRule
RS_ValidDSN
RS_ValidDatabaseVersion
RS_ValidServerCollation
RS_NoCustomRenderingExtensions
RS_NoCustomSecurityExtensions
RS_NoCustomAuthExtensions
RS_ReportServerUnsupportedSecurityMode
RS_ReportManagerUnsupportedSecurityMode
RS_ReportServerClientCertificateRequired
RS_ReportManagerClientCertificateRequired
RS_RSServiceRunning
RSSHP_IsO12Installed
RSSHP_ReportServerVDirNotSupported
Engine_SqlServerServiceDisabled_Id
Engine_IsAweEnabledForX86
Engine_IsMinusHEnabledForX86
Engine_IsLPIMEnabledForX86
Engine_IsLPIMEnabledForX64
Engine_SqlEngineHealthCheck
Engine_AllSystemDatabasesAccessibleCheck
Engine_ResourceDLLUpdateRestartCheck
BlockMixedArchitectureUpgrade
Engine_ServiceAccountOnDomainCheck
Cluster_MultipleGroupsUpgradeRule
FeatureUpgradeMatrixCheck
IncompleteUpgradeCheck
FailedUpgradeCheck
LocalOnly_SqlFeatureStateCheck
LocalOnly_AsFeatureStateCheck
RsFeatureStateCheck
Cluster_FeatureDownGradeCheck
AS_IsServiceHealthy_Id
AS_UpgradeValidateMixedState
FAT32FileSystemCheck
DEV10RTMDetected
FacetWOW64ClusterUpgradeCheck
SlipstreamMediaInfoCheck
ServerCoreBlockUnsupportedFeaturesCheck
ServerCoreNetFxCheck
RSSHP_UpgradePreDenali
PowerShellCheck
RS_IsDotNet3_5Installed
KatmaiRTMUpgradeBlockRule
KJRTMUpgradeBlockRule
YukonSP3UpgradeBlockRule
SideBySideUninstallRule
BlockMismatchedArchitectureUninstall
UninstallClusterBlockCheck
SlipstreamMediaInfoCheck
Cluster_IsOnlineIfClustered
FacetWOW64PlatformCheck
Cluster_IsWMIServiceOperational
ServerCoreBlockUnsupportedSxSCheck
AS_IsClusterServiceOffline
Engine_SqlResourceIsOfflineIfCurrentNodeActive
SlipstreamMediaInfoCheck
ServerCoreNetFxCheck
PowerShellCheck
RS_IsDotNet3_5Installed
FacetDomainControllerCheck
Engine_SqlServerServiceDisabled_Id
Engine_IsAweEnabledForX86
Engine_IsMinusHEnabledForX86
Engine_IsLPIMEnabledForX86
Engine_IsLPIMEnabledForX64
Engine_SqlEngineHealthCheck
Engine_OnlySupportedFeaturesUsedCheckSystem
Engine_OnlySupportedFeaturesUsedCheckUser
ServerCoreBlockUnsupportedSxSCheck
EditionUpgradeMatrixCheck
EditionDownGradeCheck
Cluster_EditionDownGradeCheck
BlockMixedArchitectureUpgrade
SlipstreamMediaInfoCheck
UcpEditionDowngradeRule
Engine_IsAlwaysOnFeatureEnabled
MultiSubnetClusterUpgradeCheck
ServerCoreBlockUnsupportedFeaturesCheck
ServerCoreNetFxCheck
Engine_SqlServerServiceDisabled_RebuildDatabase
Engine_ResourceGroupIsActiveOnCurrentNode
Engine_SqlResourceIsOfflineIfCurrentNodeActive
FusionRebootCheck
Cluster_IsOnlineIfClustered
Cluster_IsWMIServiceOperational
Cluster_IsUserAdmin
Cluster_RemoteRegistryServiceFacet
Cluster_IsDomainController
SSMS_IsInternetConnected
IsDomainNetworkTopOfBindings
IsFirewallEnabled
Cluster_DNS_Consistency_Rule
FacetWOW64SetupCheck
ServerCoreBlockUnsupportedSxSCheck
ClusterPrepare_HasClusteredInstanceCheck
ClusterSupportCheck
ClusterFeaturesCheckForBI
Engine_FilestreamRequiredHotfixesCheck
Engine_ResourceDLLUpdateRestartCheck
FAT32FileSystemCheck
InstanceClashRule
SlipstreamMediaInfoCheck
ServerCoreBlockUnsupportedFeaturesCheck
ServerCorePlatformCheck
ServerCore64BitCheck
ServerCoreBlockUnsupportedSxSCheck
ServerCoreBlockUnsupportedFeaturesCheck
ServerCoreNetFxCheck
DEV10RTMDetected
PowerShellCheck
RS_IsDotNet3_5Installed
FusionRebootCheck
Cluster_IsMachineClustered
Cluster_IsWMIServiceOperational
Cluster_IsUserAdmin
Cluster_IsOnline
Cluster_IsDTCInstalled
Cluster_IsDTCRunning
Cluster_IsDTCClustered
Cluster_VerifyForErrors
Cluster_VerifyForWarnings
Cluster_Prepped_Instance
Cluster_RemoteRegistryServiceFacet
Cluster_IsDomainController
Cluster_DNS_Consistency_Rule
FacetWOW64SetupCheck
ServerCoreBlockUnsupportedSxSCheck
Cluster_NumberOfNodes
Cluster_FailedPreppedInstance
Cluster_ClusteredInstance
Cluster_IsDomainController
SqlFeatureStateCheck
AsFeatureStateCheck
IsSqlInstanceIdConsistentCheck
IsAsInstanceIdConsistentCheck
IsSqlVersionConsistentCheck
IsAsVersionConsistentCheck
IsSqlEditionConsistentCheck
IsAsEditionConsistentCheck
SlipstreamMediaInfoCheck
Cluster_SharedDiskFacet
ServerCoreBlockUnsupportedFeaturesCheck
ServerCoreNetFxCheck
Engine_FilestreamConfigurationCheck
MultiSubnetClusterOSCheck
MultiSubnetClusterSkuCheck
FusionRebootCheck
Cluster_IsMachineClustered
Cluster_IsWMIServiceOperational
Cluster_IsUserAdmin
Cluster_IsOnline
Cluster_IsDTCInstalled
Cluster_IsDTCRunning
Cluster_IsDTCClustered
Cluster_VerifyForErrors
Cluster_VerifyForWarnings
Cluster_RemoteRegistryServiceFacet
Cluster_IsDomainController
SSMS_IsInternetConnected
IsDomainNetworkTopOfBindings
IsFirewallEnabled
Cluster_DNS_Consistency_Rule
FacetWOW64SetupCheck
ServerCoreBlockUnsupportedSxSCheck
ClusterSupportCheck
ClusterFeaturesCheckForBI
Cluster_SharedDiskFacet
PowerShellCheck
DEV10RTMDetected
SlipstreamMediaInfoCheck
ServerCoreBlockUnsupportedFeaturesCheck
ServerCoreNetFxCheck
RS_IsDotNet3_5Installed
InstanceClashRule
FAT32FileSystemCheck
Engine_ResourceDLLUpdateRestartCheck
Engine_FilestreamRequiredHotfixesCheck
FusionRebootCheck
Cluster_IsMachineClustered
Cluster_IsWMIServiceOperational
Cluster_IsUserAdmin
Cluster_IsOnline
Cluster_IsDTCInstalled
Cluster_IsDTCRunning
Cluster_IsDTCClustered
Cluster_VerifyForErrors
Cluster_VerifyForWarnings
Cluster_RemoteRegistryServiceFacet
Cluster_IsDomainController
SSMS_IsInternetConnected
IsDomainNetworkTopOfBindings
IsFirewallEnabled
Cluster_DNS_Consistency_Rule
FacetWOW64SetupCheck
ServerCoreBlockUnsupportedSxSCheck
Cluster_NumberOfNodes
SqlFeatureStateCheck
AsFeatureStateCheck
AddNodeEditionBlock
Engine_FilestreamRequiredHotfixesCheck
Engine_ResourceDLLUpdateRestartCheck
FAT32FileSystemCheck
InstanceClashRule
DEV10RTMDetected
SlipstreamMediaInfoCheck
MultiSubnetClusterOSCheck
MultiSubnetClusterSkuCheck
ServerCoreBlockUnsupportedFeaturesCheck
ServerCoreNetFxCheck
PowerShellCheck
RS_IsDotNet3_5Installed
FusionRebootCheck
Cluster_IsMachineClustered
Cluster_IsWMIServiceOperational
Cluster_IsUserAdmin
Cluster_IsOnline
Cluster_RemoteRegistryServiceFacet
ServerCoreBlockUnsupportedSxSCheck
FusionRebootCheck
SysPrepFeatureCheck
Bids2008InstalledCheck
SSMS_IsInternetConnected
AclPermissionsFacet
FacetDomainControllerCheck
FacetWOW64PlatformCheck
ServerCoreBlockUnsupportedSxSCheck
BlockMixedArchitectureInstall
BlockCrossLanguageInstall
FAT32FileSystemCheck
Unconfigured_SqlFeatureStateCheck
Unconfigured_AsFeatureStateCheck
Unconfigured_RsFeatureStateCheck
PowerShellCheck
SlipstreamMediaInfoCheck
InternetConnectionToNETFX4DownloadSite
ServerCoreBlockUnsupportedFeaturesCheck
ServerCoreNetFxCheck
ServerCorePlatformCheck
ServerCore64BitCheck
ServerCoreBlockUnsupportedSxSCheck
ServerCoreBlockUnsupportedFeaturesCheck
ServerCoreNetFxCheck
PowerShellCheck
RS_IsDotNet3_5Installed
SSMS_IsInternetConnected
IsFirewallEnabled
AclPermissionsFacet
FacetDomainControllerCheck
FacetWOW64PlatformCheck
ServerCoreBlockUnsupportedSxSCheck
EditionUpgradeMatrixCheck
EditionDownGradeCheck
FAT32FileSystemCheck
InstanceClashRule
ServerCoreBlockUnsupportedFeaturesCheck
ServerCoreNetFxCheck
Anúncios

CR/LF no SSMS 2016


Algumas vezes gosto de montar querys baseadas em resultados de outras querys e costumo adicionar um GO no final, principalmente quando vai ter muita transação e a solução permite,,, 

Estou testando o SSMS 2016 e percebi que ele não adiciona a quebra de linha na cópia do resultado da grade para o editor,,, o bom é velho CHAR(10)+CHAR(13),,,

Olhando em Tools>Options>Query Results>SQL Server>Results to Grid Achei a opção “Retain CR/LF on copy or save” 

Mas não basta só marcar,  tem que fechar e abrir novamente o SSMS…

Habilitar o Dark Theme no SSMS 2016


Para quem já baixou o SSMS 2016/2017 deste a versão de julho o pessoal da Microsoft liberou os temas Blue e Light.

Como o SSMS é baseado no Visual Studio essa possibilidade cosmética já estava demorando para aparecer.

O problema é já que liberaram esses 2 temas por que não liberar o Dark?

Abri um connect a alguns meses pedindo esse tema (se você ainda não votou, aproveita e acessa o link e vote) de acordo com a resposta inicial o tema existe mas está desativado pois ainda estão trabalhando nele.

Caso você esteja interessado em saber como está o andamento do que eles tem até agora você pode habilitar o tema Dark para o SSMS 2016 (13.0.16000.28)

  1. Abra o notepad em modo de administração;
  2. Navegue até o diretório c:\program files (x86)\Microsoft SQL Server\130\tools\binn\managementstudio
  3. Abra o arquivo SSMS.pkgundef
  4. Dentro do arquivo localize a entrada “Remove Dark theme”
  5. Comente com // todas as linhas abaixo dessa entrada até o “Remove dacfx…” Atualização!!! Não precisam ser todas as linhas, apenas a linha diretamente abaixo do “Remove Dark theme”
  6. Salve o arquivo e reinicie o SSMS 2016

Até agora eles só trocaram as cores das barras de menu e do editor de query…

É perceptível que falta muita coisa como “Object Explorer”, “Grid Result”, etc.

SQL Server no Linux


Todos já devem estar sabendo dessa “novidade”

O link para o blog: https://blogs.microsoft.com/blog/2016/03/07/announcing-sql-server-on-linux

Se você quiser se cadastrar para “testar” o preview o link é: https://www.microsoft.com/en-us/server-cloud/sql-server-on-linux.aspx

Honestamente não sei se isso vai ser bom ou ruim,,, vejo muitas aplicações interessantes, mas também vejo muita dor de cabeça pela frente…

pode ser que eles usem isso para acabar com a versão Enterprise, forçando as empresas a usarem a nuvem caso queiram HA ou features avançadas? ou é uma forma de baratear o produto já que “em teoria” existem versões gratuitas de Linux? ainda mais pensando que ele vai ser distribuído por Docker,,,

Bom,,, de qualquer forma, mais uma coisa para relembrar,,, como faz tempo que não trabalho com linux… 😦

Conversor de RPT para CSV


Mais um para a minha lista de programas inúteis,,,

Esse programa é um command line que vai converter o arquivo de saída do SSMS quando você escolhe ter o resultado em arquivo (.RPT) para arquivo separado por vírgula (.CSV)

Ele tem uma limitação que é pegar apenas uma saída do arquivo de resultado. O que isso significa? Se você executar mais de uma query no SSMS e isso gerar mais de um resultado dentro do arquivo RPT ele só vai converter o primeiro resultado.

Essa limitação não é do programa em si, mas da limitação do CSV, já que ele vai usar a primeira linha do arquivo como coluna e remover os traços da segunda linha você acaba tendo apenas um resultado dentro de um arquivo CSV pois não dá para ter mais de uma linha com nome de coluna.

Não entendeu nada? imaginei…

Conversor de arquivo rpt para csv

A execução dele é bem simples:

  • Para um arquivo: rpt2csv nome_do_arquivo.RPT
  • Para mais arquivos: rpt2csv nome_do_arquivo.RPT nome_do_arquivo2.RPT nome_do_arquivo3.RPT …

Percebeu que NÃO tem o nome_do_arquivo.CSV ? Ele vai gerar no mesmo local onde está o RPT o arquivo CSV com o mesmo nome.

Se você digitar apenas rpt2csv ele vai mostrar um pequeno help, já se você adicionar o /? ele vai mostrar um exemplo…

O download do projeto está aqui, caso queira apenas o executável baixe o projeto, descompacte e vá até o diretório “rpt2csv\rpt2csv\bin\Debug” lá você vai encontrar o rpt2csv.

Se isso for útil comente e responta a enquete,,, se não foi útil responda a enquete,,,

Se você fizer uma análise mais a fundo, vai perceber que ele converte qualquer coisa que se pareça com o RPT e não apenas RPT para o CSV.

ATUALIZAÇÃO !!!

Adicionei o projeto ao GitHub, quem quiser ajudar ou alterar o projeto pode acessar o endereço https://github.com/bigleka/rpt2csv

SQL Saturday #469 – Brasilia


E aí pessoal !!!

O conteúdo da palesta sobre backup parcial e restauração parcial e online está disponível.

O Slide está disponível para download ou visualização abaixo

O link para o download dos scripts e da apresentação está aqui.

Quero, novamente, agradecer pela oportunidade de ter palestrado no evento e agradecer a todos que tiveram paciência de assistir minha palestra.

O link para o acesso a agenda do evento é:

https://www.sqlsaturday.com/469/schedule.aspx

A ideia é a evolução contínua, gostaria que vocês avaliassem como foi a apresentação:

Gerar DACPAC versão c#


Já faz um tempo desde a versão em powershell do gerador de DacPac,,, visto alguns bugs e limitações que alguém poderia ter em utilizá-lo resolvi montar uma versão mais adaptável do App.

Essa versão foi feita em Visual Studio 2013 e usa C#, o fonte ficará disponível no github (assim que conseguir fazer upload) e aqui junto com a versão compilada e com instalador e fonte.

Essa versão utiliza .Net Framework 4 e está o mais enxuta possível (pelo meu nível de conhecimento em programação)

O instalador gera um atalho na área de trabalho e uma entrada no “adicionar/remover programas”.

dacpac c

  • Bugs conhecidos:
  1. Ele não aceita utilizar um diretório que possua espaço no nome, pelo que consegui entender na exceção a culpa não é da forma que eu estou chamando o app para a extração mas do próprio extrator.
  2. Se clicar 2x na caixa de texto onde está a localização do SqlPackage ele vai exibir um diretório padrão onde deve estar o executável, se você não selecionar o arquivo e clicar em cancelar ou ok, a caixa de texto vai ser preenchida pelo SqlPackage.exe sem o path completo, o que vai gerar um erro na execução da extração.

Se alguém se interessar em usar, gostaria de feedbacks sobre o app.

ATUALIZAÇÃO !!!

Adicionei o projeto ao GitHub, quem quiser ajudar ou alterar o projeto pode acessar o endereço https://github.com/bigleka/SQL-Server-Gerador-de-DACPAC