Erro informando path string no SSIS

Um problema muito comum em aplicações, e digo isso porque não se trata apenas de um problema restrito a ferramenta Sql Server Integration Service (SSIS), mas também lembro-me de me deparar com o mesmo problema quando programava em Delphi e PHP  para ambientes Windows Servers, diferentemente dos outros windows, sempre que se desejava informar um caminho físico de uma pasta no Servidor, não bastava informar algo do tipo

c:\pasta\arquivo.txt

Para ambientes windows server o correto seria:

c:\\pasta\\arquivo.txt

Hoje tentando atribuir um caminho a uma variável no SSIS, tive um erro conforme  conforme a imagem:

Por intuição descrobri que a composição de strings é semelhante no SSIS dentro de expressions, a diversas linguagens de programação. E é simplesmente resolvido passando a colocar 2 barras invertidas ao invés de uma única barra invertida. No SSIS sempre que se deseja passar um caracter que funcionaria como um caracter de fechamento, utiliza-se barra invertida (\) exemplo se eu quiser atribuir a string:  ela disse:- Ele é “forte”:

@str = “ela disse: – Ele é \”forte\”

Observe que sem a barra invertida, as aspas duplas funcionariam como final de string. Eis o porque da diferenciação da barra invertida dentro de strings, ela tem um tratamento deferenciado dos demais caracteres, ela funciona como um caracter de controle dentro de strings, para validar qualquer caracter seguinte como texto e não um modificador seja ele aspas duplas(“) ou a própria barra invertida (\), assim sendo se vc quiser passar uma barra invertida dentro de um string, deverá colocar 2 barras inverdidas ao invés de uma única, pois a primeira barra invertida irá funcionar como caracter de controle para dizer que a próxima barra invertida deve ser considerada como texto.

 

Disco adicionado ao cluster Sql após a instalação

Por padrão o Sql Server não reconhece um disco adicionado ao cluster após a instalação do cluster, por default ele irá reconhecer apenas aqueles discos que foram informados como discos pertencentes ao cluster no ato da instalação do Sql Server.

Aí você adiciona um novo disco ao cluster:untitled

e até atribuí este disco como pertencente a Role do Sql Serveruntitled1

Mas ainda assim, o disco não fica disponível para ser utilizado no Sql Server. Abrindo as propriedades da instancia para alterar o disco de dados padrão, percebe-se que a unidade D: ainda não está visível no SQL SERVER, embora esteja visível para o S.O.

untitled2

Para torna-lo visível e disponível ao Sql Server, é necessário localizar o serviço do Sql Server, e incluir o novo disco como dependência. Agora observe que se eu adicionar o novo disco como dependência da minha role, o diagrama de dependência irá me mostrar que tem algo errado e o meu disco ainda não irá para o sql server.

untitleduntitled4

untitled3 untitled5

Observe no gráfico de dependências, que o novo disco de dados ainda está fora da hierarquia de dependências do Sql Server

para resolver este problema basta adicionar os discos dependentes do sql server não a Role mas ao serviço do Sql Server untitled6

Incluindo todos os discos como dependências do serviço do Sql Server, pronto, sem paradas e sem indisponibilidade o novo disco já estará disponível para o Sql Server.

 

No disks suitable for cluster disks were found.

Depois de tanto tempo sem escrever, mas já que tenho me deparado com tantos troubleshooting ultimamente, que acredito que o de hoje  merece a escrita de um artigos. Pois certamente muitos de vocês cedo ou tarde passaram ou passarão pele mesmo problema.

Brincando em um lab de clusterização sql server, me deparei com este problema: um disco que embora estivesse disponível e apresentado para o SO, uma vez removido do cluster por alguma razão qualquer, já não era mais possível adiciona-lo novamente ao cluster. Todas as vezes em que se tentava adicionar um novo disco recebia-se a mensagem que nenhum disco foi encontrado e apto para ser adicionado ao cluster.

No disks suitable for cluster disks were found.

Aí pesquisando um pouco encontrei este artigo:

Windows Server 2012 (R2) – Failover Cluster can’t access disks after outage

Powershell clean disk on cluster

Clear-ClusterDiskReservation -disk 1

Onde rodando o comando em powershell como administrador para limpar as referências do disco no cluster, e via Disks  Management do windows, colocando o disco offline e online (em alguns casos é necessário recriar) o disco volta a ficar disponível para ser adicionado ao cluster. A atenção no comando powershell é quanto a número do disco, que você consegue pegar através do Disk Management do windows, que aparece através do atalho Win + X.

untitled1

untitled2

#troubleshotted

 

Database em recovery pending mode

Se o seu banco foi atachado ou recuperado de maneira parcial, e no instante da reinicialização está faltando algum data file  e por esta razão o banco não inicializa e fica sempre em recovery pending mode. Observei que isso ocorreu comigo em um cenário de restore parcial, de um banco que contem mais 100 filegroups, na hora do restore o banco ficou on-line sem problemas. Porém como ele foi restaurado parcialmente, isso é, faltam um ou mais filegroups em relação ao banco original. Sempre que a instância sofrer uma reinicialização, o banco não ficará on-line, ficará inacessível com o status “recovery pending”. Aí você pode pensar que é o fim da linha, e terá que realizar todo o processo de restore parcial desde o inicio. Só que não. não entre em desespero.

Para este cenário, fazendo os passos seguintes você poderá deixar o banco on-line com os filegroups que você possui, ainda que parcialmente, sem a necessidade de esperar um  processo de restore demorado.

Primeiro esteja atendo e identifique todos os datafiles que estão com o status recovery pending, observando os registros da tabela sys.master_files.

select * from master_files
where
database_id = db_id("nome_do_banco");

Antes de atachar, esteja seguro que o usuário que está executando o script tenham permissão nos diretórios dos datafiles, além é claro do user da instancia no configuration manager.

Basta seguir os passos:


  1. Coloque o banco em modo off-line
  2. Detach o banco
  3. e gere um novo script de attachar referenciando apenas os datafiles que você possuí e que estejam íntegros e pronto.

Um ponto de atenção é que o script wizard do management studio para atachar um banco com filegroups com filestream, em algumas situações é bugado, então você pode se basear no modelo do script abaixo e executar manualmente. No caso, você terá que indicar todos os datafiles individualmente, em caso de filestream terá que apontar o diretório do filestream. Desta maneira você montando e guardando este script em mãos, você poderá manter um banco parcialmente restaurado com o status on-line, sem medo de ser feliz. E isso pode acreditar, é um recurso muito útil quando se tem pouco recurso de storage.

USE [master]
GO
CREATE DATABASE [teste] ON 
( FILENAME = N'F:\data\testePrimary.MDF' ),
( FILENAME = N'F:\data\teste1.NDF' ),
( FILENAME = N'F:\data\teste02.NDF' ),
( FILENAME = N'F:\data\teste03.NDF' ),
( FILENAME = N'F:\data\teste04.NDF' ),
( FILENAME = N'F:\data\teste05.NDF' ),
( FILENAME = N'C:\data\teste06.NDF' )
 FOR ATTACH
GO

 

Atachar banco Sql server com filestream em caminho diferente

Sim é possível, mas sempre que estiver trabalhando com uma base de multiplos datafile e deseja atachar mudando os caminhos físicos esqueça tentar utilizar o wizard do managment studio. Você deve especificar um a um dos arquivos que deseja atachar. Pode utilizar o wizard apenas para gerar o script ao invés de executar, pelo menos até a versão 2012 do sql server eu tenho certeza que este wizard não lista o diretório de filestream que deseja atachar. Mas quando for atachar o banco, se o diretório de filestream estiver no mesmo caminho físico, não terá problemas, se deseja move-lo para outro local, vc deverá informar manualmente este diretório no script de atachamento, com a seguinte sintaxe:

Ler maisAtachar banco Sql server com filestream em caminho diferente

Smart Watch U8

SMART WATCH
U8

Recetemente adquiri um smart watch U8 de 15 dolares, no aliexpress

http://pt.aliexpress.com/item/Original-Gooweel-Bluetooth-Smart-Watch-Sport-for-iPhone-4-4S-5-5S-6-6-Samsung-S4/32450271833.html?adminSeq=222001992&shopNumber=1628020

Mas estava encontrando muita dificuldade de habilitar as funcionalidades de notificações, pois a aplicação original estava em chines,  mergulhei e uma busca profunda na internet e nada encontrei, e quando resolvi dar o relógio para o meu filho, descobri em um blog espanhol quais os aplicativos necessários para as notificações funcionem e são.

https://play.google.com/store/apps/details?id=com.along02.btnotification

https://play.google.com/store/apps/details?id=com.mtk.btnotification

 

Parabéns FredVerdade Gospel – Batismo jogador Fred

O jogador de futebol, Fred, foi batizado em uma igreja evangélica neste último domingo (27). O momento foi filmado e postado em uma rede social pelo jogador chinês Bing ChagBao, que chegou a integrar o elenco do Botafogo este ano. “Parabéns irmão @fredguedes9 pelo seu batismo, que você seja grande exemplo e testemunho de um Deus […]

Fonte: Verdade Gospel – Portal gospel de notícias do Brasil

Bug hd em 100%

Muita gente inclusive eu sofri muito com um bug a partir do windows 7, win 8 e também win 10 que deixava o hd em 100%, ocasionando lentidão e transtornos… alguns falavam que teria que desabilitar o o serviço de indexação do windows, outros diziam que era necessário desabilitação a paginação virtual do disco, e nada resolvia definitivamente o problema, até que depois de 1 ano, eis a solução.

Ler maisBug hd em 100%

Translate »