Dicas de ouro para estudar e passar em suas certificações!

Olá, meus amigos.

Em diversas conversas que tenho com amigos que estão na mesma situação de conseguir sua primeira certificação, seja ela Microsoft ou ITIL (por exemplo) sempre ouço a mesma conversa e dizem “no próximo mês, eu vou começar a estudar e lá pelo meio do ano vou marcar o dia da prova e tentar tirar a certificação”.

Engraçado que quando ele (a) termina de falar eu sempre digo “desculpe, mas você não vai tirar sua certificação!”. Começa certo debate e alguns risos, mas insisto que ele (a) não vai conseguir tirar a certificação que tanto quer. E sabem o porquê? Vou explicar aqui neste post agora e peço que lei com atenção, pois isso simplesmente vai te ajudar e muito.

Eu já participei de algumas palestras, li diversos blogs falando sobre certificações, assistir também alguns webcasts da Microsoft e vendo tudo isso eu conseguir chegar nas seguintes conclusões e depois que adotei isso na minha vida, pode ter certeza que mudou muito o que pensava em relação a certificação.

Siga os itens abaixo para sua certificação:

  1. Decidir tirar a certificação
  2. Entrar no site da Prometric (ou em outro site de compras de cerificações) e agendar a data da prova para se certificar.
  3. Comprar a prova
  4. Não contar a ninguém (exceto ao seu chefe), pois ele precisa saber que você ficará fora do escritório por algumas horas fazendo a prova.
  5. Estudar

Mas ai você me pergunta, “nossa Clayton, são poucas dicas, mas não são tão simples quanto parece. Você quer que eu compre a prova sem menos ter estudado? Por que os estudos não vêm antes de você comprar a prova? E por que não posso contar a ninguém?”.

Ai está a grande jogada das pessoas que dizem que vão se certificar e acaba não se certificando, isso eu tiro até por mim mesmo que antes fazia isso e tive alguns anos perdido pensando que ia tira em um dia e nunca tirava.

Quando você decide em tirar uma certificação, você tem que ter consciência de que está certo do que você quer. Tirar uma certificação significar ser apto ao conhecimento e domínio da tecnologia, pois as empresas vão exigir isso de você. Não é apenas ter um certificado, você mostra ao mundo que você tem o conhecimento necessário da tecnologia. Mas para isso você não precisa estudar agora pra marcar a prova quando se sentir seguro, pois bem meu amigo, se você pensa assim, então voltamos a conversar no inicio do post e digo a você que não irá tirar sua tão sonhada certificação. Todas as pessoas que me falam que vai estudar antes e depois vai marcar a prova elas chegam ao mês ou dia que disseram que iam marcar e não marcam, por que ainda não estão preparadas e seguras para fazer e mais uma vez acabam adiando seu sonho, e isso vai por tempos e tempos.

Decida que quer tirar e entre no site, compre a prova, agendando uma data que você acredite que seja bom para seus estudos, por exemplo, 3 a 4 meses eu acredito que é mais do que o suficiente. “Poxa, Clayton. Mas é caro pra eu arriscar assim”. Sim, tirar certificação é caro e isso nos faz ter mais disciplina nos estudos. Após você agendar sua prova, cada dia que passar será menos um dia de estudos e preparação, isso entra no seu consciente e deixa você mais preocupado sabendo que o dia e hora do exame estão chegando. Se você só estudar e não marcar a prova, você sempre deixará para depois seus estudos. Por mais disciplinado (a) que seja sempre haverá algo no dia que você falará “Ah, hoje eu preciso fazer tal coisa e amanhã eu estudo”. Agora com os dias contados, você dirá “Putz, está chegando o dia e eu preciso ler isso se não vou jogar dinheiro no lixo”.

Bom, acredito que a parte mais complicada dos itens para tirar a certificação foi dita e se você fizer isso vai ter sucesso na sua certificação.

“Mas, Clayton e o papo que você disse sobre não contar a ninguém?” Sim, pessoal. Certificação não é simples tirar. Eu mesmo já reprovei algumas vezes e tive sucesso em outras e quando você conta a algum amigo, família, namorada que vai fazer, você cria expectativa nas outras pessoas sobre você. Caso você ainda não esteja 100% enterrado no assunto para se certificar e tiver uma decepção de reprovar, todas as pessoas que você contou iram perguntar e você certamente se sentira ainda pior, acredite em mim, E no momento do exame, você ainda terá a preocupação de passar para não voltar pra casa com a noticia triste da reprovação e ainda vai te atrapalhar no seu exame. O sigilo de sua certificação é fundamental para seus estudos, concentração e dedicação.

Outro item importante que eu não listei é a reprovação. Não pense que você reprovou por que você é ruim ou incapaz. Não, você apenas não se preparou o suficiente. E o dinheiro gasto foi uma tentativa para o sucesso. Você já é um vencedor por ter tido a coragem de tentar fazer a prova. Agora estude mais e remarque sua prova. Sua certificação está por vir!

Um forte abraço, amigos!

Clayton Santos
Database Administrator
MCTS | MCITP | ITIL

Livro MS SQL Server 2008 – Database Development – Training Kit Exam 70-433 and Livro MS SQL Server 2008 – Database Administrator – Training Kit Exam 70-432

Ola amigos

Alguns amigos no linkedin solicitaram um material para estudos da prova 070-433 e hoje para facilitar estou publicando no meu site sobre o material.

Espero que ajude nos estudos.

Livro MS SQL Server 2008 – Database Development – Training Kit Exam 70-433

Livro MS SQL Server 2008 – Database Administrator – Training Kit Exam 70-432

Um forte abraço

MOC / Livros de graça Microsoft SQL Server

Olá amigos amantes de MS SQL Server

Hoje a dica é para quem está procurando aperfeiçoamento e dedicação a estudos! Os livros oficiais da Microsoft estão disponíveis gratuitamente na internet. Isso mesmo, os livros que são fornecidos nos cursos oficiais estão disponíveis para download no site da Microsoft.

Há diversos títulos como:

2779B: Implementing a Microsoft SQL Server 2005 Database

2780B: Maintaining a Microsoft SQL Server 2005 Database

2778A: Writing Queries Using Microsoft SQL Server 2008 Transact-SQL

(…)

Entre outros e mais… até o MS SQL Server 2012 já está disponível.

Vamos aproveitar e bons estudos a todos!!!

Fonte: http://www.microsoft.com/learning/en/us/training/companionmoc.aspx

Um forte abraço

Clayton Abreu Santos
Administrador de Banco de dados MS SQL Server
TS: Microsoft® SQL Server™ 2005 – Implementation and Maintenance
TS: Microsoft SQL Server 2008 – Implementation and Maintenance
PRO: Designing, Optimizing and Maintaining a Database Administrative Solution Using Microsoft SQL Server 2008
ITIL Foundation V2
casclayton@gmail.com 

Check list na identificação dos problemas – SQL Server

Passos para identificar possíveis problemas de performance no banco de dados

Encontrei no site http://www.sqlserver-traning.com um conceito interessante sobre tunning de banco de dados. Essa imagens mostra o conceito de investigação quando surge um problema de performance no ambiente.

Muitas vezes é complicado, no primeiro momento, identificar o problema e informar que é um problema relacionado a banco de dados. Nem sempre o motivo de um banco de dados está lento significa que é o banco de dados.

A algumas possíbilidades antes de chegar ao SQL Server para ser checadas.

Vamos a imagem:

Passos para identificação do problema

Um forte abraço a todos

Clayton Santos
Administrador de Banco de Dados
MCTS | ITIL
Email: cas.clayton@gmail.com
Site: https://casclayton.wordpress.com

A partir de 9 de Janeiro de 2012, os candidatos da Argentina, Brasil, Colômbia, México e Peru serão capazes de pagar em moeda local para fazer Certificações Microsoft.

Olá amigos!

Saiu uma informação importante sobre pagamentos das provas de certificação que a Prometric colocou em seu site. Agora, é possível realizar os pagamentos das provas em nossa moeda, ou seja, em R$.

Prometric está tornando mais fácil para os candidatos Microsoft se registrarem e pagarem para fazer Certificações de TI da Microsoft. A partir de 9/1/2012 Prometric aceitará pagamento de inscrições de Exames Microsoft em moeda local na Argentina, Brasil, Colômbia, México e Peru.

Agora você pode pagar em Pesos Argentinos, Peso Colombianos, Reais Brasileiros, Pesos Mexicanos e Nuevos Soles Peruanos, com um cartão de crédito ou débito VISA ou Mastercard nacional e até mesmo dinheiro em alguns centros autorizados Prometric. Atualmente, pagamentos com American Express serão processados somente em Dólares Americano (USD $). Você ainda pode pagar a sua inscrição em USD $ se essa for a sua escolha. Se você não tiver um cartão de crédito e quiser usar dinheiro, você pode entrar em contato com um dos bancos listados nasPerguntas Frequentes e obter um cartão pré-pago recarregável ou um cartão presente ou pode visitar um dos Centros Autorizado Prometric mais próximos para saber sobre a possibilidade de se registar com dinheiro.

Como funciona o registro dos exames com um cartão pré-pago recarregável, cartão de crédito ou de débito em moeda local?:

Registro On-line: Visite www.Prometric.com/Microsoft e complete o seu registro.
Registro em Pessoa: Visite o Centro Autorizado Prometric mais próximo depois de encontrar-lo através do Localizador de Centros Prometric (Clique aqui para utilizar o Localizador de Centros Prometric)
Registro por Telefone: Ligue para +1 443-751-4300 nos Estados Unidos para ser registrado por um representante do Departamento de Registros da Prometric ou ligue para o Centro Autorizado Prometric mais próximo depois de encontrar-lo através do Localizador de Centros Prometric (Clique aqui para utilizar o Localizador de Centros Prometric)

Como funciona o registro dos exames em dinheiro e moeda local?

Você deve primeiro encontrar o Centro Autorizado Prometric mais próximo através do Localizador de Centros Prometric e contatar o centro diretamente para saber sobre a disponibilidade de pagamentos em dinheiro. Depois de encontrar o Centro Autorizado Prometric mais próximo que aceita pagamento em dinheiro, você pode visitar o centro em pessoa, apresentar o pagamento em dinheiro ao pessoal do centro de provas e se inscrever para o exame Microsoft da sua escolha. O pessoal do centro de provas deve cobrar apenas o preço do exame, bem como os impostos nacionais ou locais, se forem aplicáveis. Os recibos de pagamento para o preço da prova e impostos aplicáveis serão independentes.

Fonte: https://www.register.prometric.com/Payment.asp

Um forte abraço a todos

Clayton Santos
Administrador de Banco de Dados
MCTS | ITIL
Email: cas.clayton@gmail.com
Site: https://casclayton.wordpress.com

Migração de MS SQL Server 2005 para MS SQL Server 2008

Tipo: Administração de banco de dados

Migração de MS SQL Server 2005 para MS SQL Server 2008

Realizar migração com conhecimento e eficiência

O objetivo deste artigo é apresentar a migração do SGBD (sistema de gerenciamento de banco de dados) MS SQL Server 2005 para a versão MS SQL Server 2008. Falaremos sobre as vantagens e melhorias da nova versão, entendimento do ambiente, estratégia de rollback, ambiente de testes e prevenção dos possíveis impactos para o negócio.

Vantagens e melhorias do MS SQL Server 2008

O MS SQL Server 2008 teve grandes melhorias em comparação a versão do MS SQL Server 2005. Foram implementados recursos para plataforma de dados corporativos como gerenciamento baseado em diretivas, compactação de dados e backup, FILESTREAM e diversos outras. Vamos ver algumas delas:

  • Gerenciamento baseado em diretivas: recurso que faz o gerenciamento de várias instâncias em um único local. Permitir o controle de segurança, nomenclatura de objetos, opções de bancos de dados. Exemplo: Podemos evitar que bancos de dados não sejam configurados com a opção “AUTO_SHIRINK”.
  • Compactação dos backups: evita que seja realizado a compactação na base de dados e seja executado no momento da criação do backup. Poupa espaço de armazenamento e configuração simples.
  • FILESTREAM: armazena os dados do tipo (BLOB) Binary Large Objects no sistema NTFS do Microsoft Windows e não no banco de dados. Sua manipulação é realizada com instruções T-SQL.
  • Resource Governor (administrador de recursos): gerencia CPU e memória para determinar o consumo para cada aplicação de alta prioridade. Determina a utilização correta e administração dos recursos para cada processo.
  • Compactação de dados: permite a redução de espaços dentro de tabelas e índices no banco de dados poupando assim, espaço em disco.
  • SQL Server Audit: recurso que permite realizar auditoria personalizada de eventos dentro do banco de dados.

Entre outros recursos que a Microsoft implementou dentro do MS SQL Server 2008, havendo diversas melhorias fazendo com que se torne um ambiente ainda mais robusto e completo.

Entender o ambiente

Antes de realizar a migração é preciso entender todo o ambiente para saber o que realmente deverá ser migrado e talvez descartar o que não há a necessidade. Por exemplo, existem muitas empresas que seus DBA’s, programadores e desenvolvedores de sistemas criam bancos de dados de testes em ambientes de produção, onde o ideal seria criar em ambientes de testes e homologação. Ambientes específicos e apropriados para essa tarefa. A primeira tarefa antes da migração é saber o que deve ser migrado e o que não deve ser migrado. Além dos bancos de dados, também existem os usuários/logins que são criados por fins de testes e acabam não sendo excluídos, fazendo com que fique armazenado no MS SQL Server ocasionando itens desnecessários.

Verificar tudo que é utilizado dentro do ambiente como funcionalidades do MS SQL Server 2005 que é utilizado e devem ser manter no novo ambiente do MS SQL Server 2008 como Mirroring, Transaction Log Shipping, Cluster, etc.

Pontos de atenção

Devemos nos atentar antes de realizar uma atividade de migração que após migrar um banco de dados para de uma versão para a outra (MS SQL Server 2005 para MS SQL Server 2008) não conseguimos realizar a inversão, ou seja, fazer o rollback deste banco de dados voltando para a versão antiga. Após migrar um banco de dados do MS SQL Server 2005 para o MS SQL Server 2008 por meio de Attach / Detach ou Backup / Restore, não é possível voltar o banco de dados gerando a seguinte mensagem demonstrada na Figura 01 com um banco de dados chamado db_contabilidade. Esse banco de teste foi migrado para o MS SQL Server 2008 e agora está tentando voltar para o ambiente antigo por meio de restore no MS SQL Server 2005.

Figura 01. Mensagem de incompatibilidade entre versões

Antes de realizar a migração deve-se atentar sobre a estratégia de rollback que deve ser bem elaborada antes que os usuários comecem a utilizar e inserir informações no banco de dados que foi migrado para o MS SQL Server 2008.

Existe a possibilidade de carregar os dados do banco de dados migrado para o MS SQL Server 2008 na versão antiga MS SQL Server 2005 por meio da ferramenta Import / Export do SSIS.

Ambiente de testes / homologação

Visando as melhores práticas é viável simular um ambiente de teste / homologação idêntico ao ambiente de produção e efetuar a migração dos bancos de dados antes de envia-los para produção. É muito importante que os usuários testem cada banco de dados migrado para garantir que a migração está perfeitamente funcional. Os testes dos usuários que utilizam o sistema tem total influência no resultado final da migração. Sem esses testes não conseguimos ter uma visão se o sistema que o banco de dados está funcionando com a nova conexão e os novos recursos que o MS SQL Server 2008 oferece. Cada usuário de sistema deve realizar a conexão apontando para o novo servidor com o MS SQL Server 2008 instalado e verificar se seu sistema está realizando a comunicação com o banco de dados. Após esse primeiro teste, realizar as atividades diárias de trabalho para garantir que todos os recursos estejam funcionais.

Portanto, é primordial haver essa simulação e garantir testes antes da migração final do ambiente.

Plano de migração

Para ter uma visão geral do ambiente proposto para essa migração, veja o esquema da Figura 2.

Figura 02. Ambiente de migração

A migração será realizada seguindo algumas etapas propostas a seguir, onde iremos migrar primeiramente os bancos de dados da versão MS SQL Server 2005 do servidor SRVDBSQL2005 para o MS SQL Server 2008 no servidor SRVDBSQL20008.

  1. Banco de dados de usuários
  • Backup / Restore
  • Attach / Detach
  1. Logins
  • Script
  • SSIS
  1. Backup Devices, Linked Servers e Jobs
  • Script
  1. Outras migrações

De acordo com o cenário citado, temos algumas formas de realizar a migração, por exemplo, no caso da migração dos bancos de dados de usuário, podemos realizar o backup e o restore de um servidor para o outro, ou simplesmente realizar o attach e detach das bases de dados. Foram expostas as duas opções para explicar cada uma e escolher uma alternativa mais adequada para cada caso.

Migração do MS SQL Server 2005 para MS SQL Server 2008

Seguindo o plano de migração, vamos migrar os bancos de dados de usuários que estão hospedados na versão do MS SQL Server 2005. Na figura do ambiente, estão localizados no servidor SRVDBSQL2005 e deverá ser migrado para o servidor SRVDBSQL2008 onde se encontra o MS SQL Server 2008 já instalado.

Para migrar os bancos de dados podemos seguir realizando:

  1. Detach dos bancos de dados da base de usuário do servidor (SRVDBSQL2005) e attach no servidor de destino (SRVDBSQL2008);
  2. Backup do banco de dados de usuário do servidor (SRVDBSQL2005) e restaurá-la no servidor de destino (SRVDBSQL2008);

Se a migração for realizada escolhendo a primeira opção, não será possível reverter à ação depois do banco ser migrado para o MS SQL Server 2008, ou seja, caso ocorra algum erro e precisar voltar para a versão de origem. Adotando a melhor prática o backup e Restore que a qualquer momento possa realizar o retorno para o estado original. Após realizar o backup dos bancos de dados de produção do MS SQL Server 2005, é importante deixar todos os bancos de dados com seus status off-line. Assim nenhum usuário realizará alterações no momento que da migração, garantindo que não haverá nenhuma informação perdida.

A sintaxe do comando de backup é informada no template da Listagem 01.

Listagem 01. Código T-SQL

– ===========================

– Backup Database Exemple

– ===========================

BACKUP DATABASE <Database_Name, sysname, Database_Name>

TO  DISK = N'<Backup_Path,,C:\Backup\><Database_Name, sysname, Database_Name>.bak’

WITH

NOFORMAT,

NOINIT,

NAME = N'<Database_Name, sysname, Database_Name>-Full Database Backup’,

SKIP,

STATS = 10;

GO

Essa opção de executar o backup por meio de TRANSACT-SQL pode ser opcional devido à escolha de backup em fita. Após a realização do backup dos bancos de dados, deverá executar a TRANSACT-SQL para alterar o status dos bancos de dados de online para off-line. Veja template na listagem 02.

Listagem 02. Código T-SQL

–==================================

– Bring database online template

–==================================

ALTER DATABASE <Database_Name, sysname, Database_Name>

SET ONLINE

GO

Após a primeira etapa já concluída (backup e alteração de status dos bancos de dados), deverá executar a restauração para o servidor de destino via restore. Na listagem 03 demonstra um template de restore via TRANSACT-SQL.

Listagem 03. Código T-SQL

– ============================

– Restore Database Template

– ============================

USE master

GO

RESTORE DATABASE <Database_Name, sysname, Database_Name>

FROM  DISK = N'<Backup_Path,,C:\Backup\><Database_Name, sysname, Database_Name>.bak’

WITH

FILE = 1,

NOUNLOAD,

REPLACE,

STATS = 10

GO

Se for utilizado um software de terceiros que realizam backup em fita, o mesmo software haverá a opção para restaurar os bancos de dados no servidor de destino.

Após a restauração é importante verificar as propriedades de cada banco de dados migrado. Nas opções do banco de dados uma das alterações que devem ser realizada é a mudança do nível de compatibilidade. No exemplo demonstrado, temos um banco de dados chamado db_contabilidade. Na figura 03 mostra a alteração do “Compatibility Level” de 90 para o nível 100.

Figura 03. Propriedades do banco de dados

Um backup de um banco de dados da versão MS SQL Server 2005 e restaurado na versão MS SQL Server 2008 não se altera automaticamente o nível de compatibilidade. É necessária a alteração manual nesta atividade. Na tabela 01 mostra os níveis de compatibilidade que o banco de dados pode ser alterado.

Tabela 01. Níveis de Compatibilidade

Nível de Compatibilidade Descrição

80

SQL Server 2000

90

SQL Server 2005

100

SQL Server 2008

Os níveis de compatibilidade definem os comportamentos do banco de dados em relação à versão especificada do SQL Server. Para alteração deste nível, é recomendada a utilização da ferramenta Upgrade Advisor. Com ela, é possível analisar a estrutura do banco de dados em relação à nova versão do MS SQL Server 2008. O Upgrade Advisor foi incorporado no pacote de instalação do MS SQL Server 2005 e MS SQL Server 2008, pode ser baixada gratuitamente no site oficial da Microsoft. Com ela, conseguimos realizar a conexão com o(s) servidor(es) de banco de dados e listar todas as incompatibilidades da versão antiga para a nova versão. Assim, o upgrade advisor cria um relatório listando tudo que devemos alterar antes de realizar a migração. Com essa ferramenta, é possível executar nas instâncias dos servidores de bancos de dados MS SQL Server garantindo a verificação banco por banco e oferecendo detalhamento de cada impasse encontrado antes da migração. É uma forma de prevenção contra erros após migrar de uma versão para a outra devido à estrutura de cada banco de dados.

Ainda nas propriedades/opções do banco de dados, temos a opção de “Recovery” onde, deve está configurado como “CHECKSUM” e não como “TORN_PAGE_DETECTION”. Os bancos de dados novos que são criados no MS SQL Server 2005 e versões posteriores já estão nesta nova configuração, porém os bancos de dados que foram migrados do MS SQL Server 2000 ainda possuem a configuração antiga. É importante que seja alterado essa opção para “CHECKSUM”. A opção “TORN_PAGE_DETECTION” foi mantida no MS SQL Server por causa das versões anteriores do MS SQL Server. Ela determina como é efetuada a gravação da página no disco por forma de uma soma de verificação da página inteira que é gravado no cabeçalho da página.

Migrando logins do MS SQL Server 2005 para MS SQL Server 2008

Em cada banco de dados que será migrado para o MS SQL Server 2008 é interessante verificar os usuários que tem ou não acesso às conexões dos bancos de dados. Assim, é possível verificar quais logins que estão criados e não necessitam ser migrados. Visualmente, é possível verificar os logins criados no MS SQL Server expandindo as pastas conforme Figura 04, dentro de Database Engine -> Security -> logins no Microsoft SQL Server Management Studio.

Figura 04. Logins da instância MS SQL Server 2005

Com essa lista dos logins, abrimos cada um dos bancos de dados de usuário. Dentro das pastas Security -> Users visualizamos os logins. Com isso conseguimos identificamos quais logins do MS SQL Server estão com permissão de acesso nos banco de dados de usuários e assim realizar uma eliminatória dos logins que serão ou não migrados como mostra a Figura 05.

Figura 05. Usuários dentro do banco de dados

Existe também a stored procedure de sistema chamada SP_HELPLOGINS. Essa stored procedure lista dos logins que estão apenas criados no MS SQL Server e não fazem mais nenhuma referência com os bancos de dados de usuários.

Após definido os usuários/ logins que serão migrados para a nova versão, temos duas formas para migrar os logins:

  1. Migrar os logins via T-SQL;
  2. Migrar os logins via SSIS;

Na primeira opção, migrar os logins via T-SQL, existe um artigo publicado pela Microsoft que explica sobre a criação de uma stored procedrure no banco de dados de sistema no banco de dados Master de seu MS SQL Server. O ID do artigo é: 918992.

Para migrar os logins vamos seguir as seguintes etapas para migração. Iremos criar essa stored procedure no nosso servidor de produção MS SQL Server 2005 executando a seguinte T-SQL na Listagem 04 e Listagem 04-B:

Listagem 04. Código T-SQL

– Inicio do código –

USE master

GO

IF OBJECT_ID (‘sp_hexadecimal’) IS NOT NULL

DROP PROCEDURE sp_hexadecimal

GO

CREATE PROCEDURE sp_hexadecimal

@binvalue varbinary(256),

@hexvalue varchar (514) OUTPUT

AS

DECLARE @charvalue varchar (514)

DECLARE @i int

DECLARE @length int

DECLARE @hexstring char(16)

SELECT @charvalue = ‘0x’

SELECT @i = 1

SELECT @length = DATALENGTH (@binvalue)

SELECT @hexstring = ‘0123456789ABCDEF’

WHILE (@i <= @length)

BEGIN

DECLARE @tempint int

DECLARE @firstint int

DECLARE @secondint int

SELECT @tempint = CONVERT(int, SUBSTRING(@binvalue,@i,1))

SELECT @firstint = FLOOR(@tempint/16)

SELECT @secondint = @tempint – (@firstint*16)

SELECT @charvalue = @charvalue +

SUBSTRING(@hexstring, @firstint+1, 1) +

SUBSTRING(@hexstring, @secondint+1, 1)

SELECT @i = @i + 1

END

SELECT @hexvalue = @charvalue

GO

IF OBJECT_ID (‘sp_help_revlogin’) IS NOT NULL

DROP PROCEDURE sp_help_revlogin

GO

CREATE PROCEDURE sp_help_revlogin @login_name sysname = NULL AS

DECLARE @name sysname

DECLARE @type varchar (1)

DECLARE @hasaccess int

DECLARE @denylogin int

DECLARE @is_disabled int

DECLARE @PWD_varbinary  varbinary (256)

DECLARE @PWD_string  varchar (514)

DECLARE @SID_varbinary varbinary (85)

DECLARE @SID_string varchar (514)

DECLARE @tmpstr  varchar (1024)

DECLARE @is_policy_checked varchar (3)

DECLARE @is_expiration_checked varchar (3)

DECLARE @defaultdb sysname

IF (@login_name IS NULL)

DECLARE login_curs CURSOR FOR

SELECT p.sid, p.name, p.type, p.is_disabled, p.default_database_name, l.hasaccess, l.denylogin FROM

sys.server_principals p LEFT JOIN sys.syslogins l

ON ( l.name = p.name ) WHERE p.type IN ( ‘S’, ‘G’, ‘U’ ) AND p.name <> ‘sa’

ELSE

DECLARE login_curs CURSOR FOR

SELECT p.sid, p.name, p.type, p.is_disabled, p.default_database_name, l.hasaccess, l.denylogin FROM

sys.server_principals p LEFT JOIN sys.syslogins l

ON ( l.name = p.name ) WHERE p.type IN ( ‘S’, ‘G’, ‘U’ ) AND p.name = @login_name

OPEN login_curs

FETCH NEXT FROM login_curs INTO @SID_varbinary, @name, @type, @is_disabled, @defaultdb, @hasaccess, @denylogin

Listagem 04 – B. Código T-SQL (Continuação…)

IF (@@fetch_status = -1)

BEGIN

PRINT ‘No login(s) found.’

CLOSE login_curs

DEALLOCATE login_curs

RETURN -1

END

SET @tmpstr = ‘/* sp_help_revlogin script ‘

PRINT @tmpstr

SET @tmpstr = ‘** Generated ‘ + CONVERT (varchar, GETDATE()) + ‘ on ‘ + @@SERVERNAME + ‘ */’

PRINT @tmpstr

PRINT ”

WHILE (@@fetch_status <> -1)

BEGIN

IF (@@fetch_status <> -2)

BEGIN

PRINT ”

SET @tmpstr = ‘– Login: ‘ + @name

PRINT @tmpstr

IF (@type IN ( ‘G’, ‘U’))

BEGIN — NT authenticated account/group

SET @tmpstr = ‘CREATE LOGIN ‘ + QUOTENAME( @name ) + ‘ FROM WINDOWS WITH DEFAULT_DATABASE = [' + @defaultdb + ']‘

END

ELSE BEGIN — SQL Server authentication

– obtain password and sid

SET @PWD_varbinary = CAST( LOGINPROPERTY( @name, ‘PasswordHash’ ) AS varbinary (256) )

EXEC sp_hexadecimal @PWD_varbinary, @PWD_string OUT

EXEC sp_hexadecimal @SID_varbinary,@SID_string OUT

– obtain password policy state

SELECT @is_policy_checked = CASE is_policy_checked WHEN 1 THEN ‘ON’ WHEN 0 THEN ‘OFF’ ELSE NULL END FROM sys.sql_logins WHERE name = @name

SELECT @is_expiration_checked = CASE is_expiration_checked WHEN 1 THEN ‘ON’ WHEN 0 THEN ‘OFF’ ELSE NULL END FROM sys.sql_logins WHERE name = @name

SET @tmpstr = ‘CREATE LOGIN ‘ + QUOTENAME( @name ) + ‘ WITH PASSWORD = ‘ + @PWD_string + ‘ HASHED, SID = ‘ + @SID_string + ‘, DEFAULT_DATABASE = [' + @defaultdb + ']‘

IF ( @is_policy_checked IS NOT NULL )

BEGIN

SET @tmpstr = @tmpstr + ‘, CHECK_POLICY = ‘ + @is_policy_checked

END

IF ( @is_expiration_checked IS NOT NULL )

BEGIN

SET @tmpstr = @tmpstr + ‘, CHECK_EXPIRATION = ‘ + @is_expiration_checked

END

END

IF (@denylogin = 1)

BEGIN — login is denied access

SET @tmpstr = @tmpstr + ‘; DENY CONNECT SQL TO ‘ + QUOTENAME( @name )

END

ELSE IF (@hasaccess = 0)

BEGIN — login exists but does not have access

SET @tmpstr = @tmpstr + ‘; REVOKE CONNECT SQL TO ‘ + QUOTENAME( @name )

END

IF (@is_disabled = 1)

BEGIN — login is disabled

SET @tmpstr = @tmpstr + ‘; ALTER LOGIN ‘ + QUOTENAME( @name ) + ‘ DISABLE’

END

PRINT @tmpstr

END

FETCH NEXT FROM login_curs INTO @SID_varbinary, @name, @type, @is_disabled, @defaultdb, @hasaccess, @denylogin

END

CLOSE login_curs

DEALLOCATE login_curs

RETURN 0

GO

– Fim –

Essa stored procedure fica armazenada dentro do banco de dados master. Após criar o script acima no banco de dados, iremos executar essa stored procedure e verificar o resultado conforme Figura 06.

Figura 06. Tela de Script

Copiamos o resultado e colamos no MS SQL Server 2008 e executamos o comando. Lembrando que devemos pegar somente os logins que realmente precisam ser migrados, pois essa stored procedure lista todos os logins criados no MS SQL Server 2005. Esse script cria o usuário e leva sua senha juntamente com seu ID. Vincula o login ao seu usuário do banco de dados e aplica as regras de permissões que existia no servidor antigo para o novo servidor. Essa é uma das formas de migrar os logins do MS SQL Server entre diferentes instâncias do MS SQL Server. Uma forma rápida, prática e segura de migração. Essa stored procedure pode ficar armazenada no banco de dados de sistema sem a necessidade de apaga-la, pois a mesma só lista os logins deste servidor.

Existe a forma de migrar por meio de pacote SSIS que também consegue transferir os logins entre as instâncias. Porém essa forma de migração não transfere as senhas e deixa os logins desabilitados, onde não seria tão eficaz quanto a T-SQL da listagem 04.

Migrando os Backups Devices

Encontramos os backups devices dentro da pasta Server Objects do SSMS (Microsoft SQL Server Management Studio). Os backups devices são possíveis apenas gerar um script de create e criá-lo no novo ambiente.

Clicando em cima dos backups devices criados no MS SQL Server 2005, e selecionando a opção “Script backup device as” temos o item “Create To” e definiremos onde iremos realizar a criação do script. São dadas as seguintes opções:

  1. New Query Editor Windows
  2. File
  3. Clipboard

A primeira opção criar a T-SQL em uma nova janela de query para edição. Vamos gerar o script e copiá-lo para o servidor onde está criado o MS SQL Server 2008 apenas executando como uma new query. “Também é possível salvar como um arquivo de extensão “.sql” e abrir no MS SQL Server 2008.

Esse passo de criação de script também servirá para os itens de nosso check list informado no plano de migração, pois são itens que não tem impacto de compatibilidade de versões, visto que, o SQL Server 2008 não sofreu tantas alterações comparando com a estrutura do MS SQL Server 2000 que sofreu para o MS SQL Server 2005.

Como os backups devices são arquivos de backup, provavelmente ele esteja apontando para um local físico do servidor que está sendo migrando, e agora no ambiente novo não terá mais funcionalidade, ou seja, ele provavelmente não terá os mesmos caminhos que o servidor antigo havia. Uma opção seria recriar esses backups device manualmente, pois eles não têm uma complexidade alta como os logins tinham (permissões, usuários e senhas). Uma boa prática será recriar os backups device no MS SQL Server 2008.

Migrando os Jobs

Para migração dos Jobs, temos as mesmas opções descritas no item Migrando Backups Devices que são:

  1. Gerando script de criação;
  2. Criando pacote SSIS;

Para realizar a migração dos Jobs por meio de scripts é uma forma simples nas versões do MS SQL Server 2005 para as atuais e se comportam de fato muito bem, ou seja, sem erros de compatibilidade entre versões. Alguns pontos de dificuldade na migração de um script de job para outra versão do MS SQL Server em outro servidor é o envio de e-mail para operador quando o job falhava ou concluía com sucesso. Para evitar possíveis erros como esse caso, deve verificar se existe essa opção de enviar e-mails nos Jobs. Se existir, deverá configurar o DatabaseMail e os operadores no MS SQL Server 2008. Pode também se deparar com problemas de permissões ou de alguma stored procedure que está desabilitada como mostrado na Figura 07 que demonstra a stored procedure xp_cmdshell desabilitada.

Figura 07. SQL Server Surface Area Configuration

O MS SQL Server 2008 descontinuou a ferramenta SQL Server Surface Area Configuration que vinha do MS SQL Server 2005. Para habilitar recursos no MS SQL Server 2008 deve utilizar a T-SQL de exemplo na listagem 05. No exemplo a seguir, a TRANSACT-SQL habilita o Database Mail.

Listagem 05. Código T-SQL

sp_configure ‘show advanced options’, 1;

GO

RECONFIGURE;

GO

sp_configure ‘Database Mail XPs’, 1;

GO

RECONFIGURE

GO

Migrando Linked Servers

Os linked Servers também têm particularidades como, usuários e senhas se conectar com outros servidores. Para realizar a migração por meio de scripts (T-SQL) deverá, após migração, conectar em cada linked services para validar sua autenticação, talvez sendo necessária a validação dos usuários e senhas se houver.

Outras migrações

Existem outras migrações como os Planos de manutenção (Maintenance Plans), bancos de dados que estão utilizando replicação, Mirroring ou Transaction log Shipping que podem ser migrado para a versão MS SQL Server 2008. Porém, essas são algumas particularidades que, ao invés de migrá-las, podemos realizar uma configuração manual reescrevendo os processos ou reconfigurando.

Considerações finais

A migração entre versões dos bancos de dados não é uma tarefa difícil, talvez um pouco trabalhosa devido a algumas particularidades do servidor de origem para o servidor de destino, como permissões e acessos. A migração de itens de alta disponibilidade pode requeri uma nova configuração no ambiente novo. De fato, com a versão MS SQL Server 2008, facilitou o trabalho de administração dos bancos de dados com as novas ferramentas e recursos já apresentadas.

Um forte abraço a todos

Clayton Santos
Administrador de Banco de Dados
MCTS | ITIL
Email: cas.clayton@gmail.com
Site: https://casclayton.wordpress.com

Realizando Backup no Microsoft SQL Server 2005 V2

Backup de banco de dados

SQL Server 2005

Conceito de instância

Na instalação do MS SQL Server pode ser instalado com instância nomeada ou instância padrão, ou seja, se o MS SQL Server foi instalado com instância padrão, para se conectar no MS SQL Server basta informar o nome do servidor. Exemplo: BRKPI01.

Se o MS SQL Server foi instalado usando uma instância nomeada, neste caso deverá conectar no MS SQL Server com o nome do servidor seguido de “” e o nome da instância. Exemplo: BRKPI01JOAOZINHO.

Verificando tamanho do banco de dados

1. Verificar se existe espaço em disco necessário para armazenar o arquivo de backup.

OBS: NUNCA grave um arquivo de backup no disco de sistema. Exemplo: drive C:.

Para verificar o tamanho da base de dados, siga os passos abaixo:

· Conectar na instância do banco de dados;

· Expandir a pasta Databases;

· Clicar com o botão direito do mouse em cima do banco de dados e escolher a opção “Propriedades”;

· Verificar o tamanho do banco de dados na opção “Size”;

Realizando backup de um banco de dados (MS SQL Server 2005)

· Conectar na instância do banco de dados;

· Expandir a pasta Databases;

· Clicar com o botão direito do mouse em cima do banco de dados e escolher a opção “Tasks”à “Back Up…”;

· Em backup type selecionar FULL;

Estaremos realizando um backup completo do banco de dados.

· Em “Destination” escolher a opção “Disk”;

· Clicar no botão “Add…”;

Caso já exista um caminho, clique no botão “Remove” para que possamos colocar um caminho novo.

· Clicar no botão “ADD”;

· No campo File name clicar no botão “”;

· Dar um nome para o backup a ser salvo e informar a extensão do backup. Exemplo: “.BAK” ou “.DAT”;

OBS: As extensões do arquivo de backup (citadas acima) não são obrigatórias, podendo ser inseridas extensões como “.DOC” ou “.Qualquercoisa”, como melhor prática é recomendado informar uma extensão que seja reconhecida como um arquivo de backup, geralmente usada as extensões “.BAK” ou “.DAT”.

· Finalizar clicando em OK em todas as telas;

Um forte abraço a todos

Clayton Santos
Administrador de Banco de Dados
MCTS | ITIL
Email: cas.clayton
Site: https://casclayton.wordpress.com

Dicas, soluções de erros e comentários sobre banco de dados Microsoft SQL Server

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.