Arquivos de Tag: SQL Server

Banco de Dados II – Aula 14

CONCORRÊNCIA DE TRANSAÇÕES

  • Transação é a forma por um grupo, lote, ou uma série de alterações em uma fonte de dados seja todas atualizadas com sucesso.
  • Caso uma delas venha a falhar, todos as alterações são desfeitas.
  • Para preserver a consistência dos dados envolvidos no lote de atualizações, o SQL Server mantém bloqueios nas linhas que estão sendo atualizadas.
  • O período de tempo que estes bloqueios são mantidos é conhecido como escopo de transação (transaction scope).
  • Uma forma de garantir a concorrência do banco de dados é garantir que os escopos de transação sejam matidos o menor tempo possível, permitindo o SQL Server liberar os bloqueios que estão sendo segurados e permitir que outros usuários acessem as linhas que foram modificadas.
  • As transações são uma forma de garantir as propriedade de atomicidade, consistência, isolamento e durabilidade (ACID) de um banco de dados. (pág. 468)

GERENCIAMENTO DE LOCK DO SQL SERVER

  • SQL Server utiliza, um mecanismo de bloqueio dinâmico cooperativo para proteger a consistência dos dados na base de dados.
  • Os muitos objetos que o SQL Server pode bloquear estão listadas na Tabela seguinte:

Sem título1

  • SQL Server irá travar o número mínimo de recursos necessários para atingir o seu objetivo;
  • Isto é conhecido como bloqueio de multi-granular.
  • Devido a este esquema, o SQL Server não deve apenas assumir os bloqueios que ele necessita (como um bloqueio em uma linha de uma página), mas também deve anunciar a sua intenção de níveis mais elevados.
  • Um exemplo pode ajudar a tornar isso claro.
  • Duas transações, T1 e T2, estão cada um tentando modificar diferentes linhas.
  • Para modificar uma linha, o SQL Server deve ter bloqueios exclusivos na linha que pretende modificar.
  • Se o SQL Server levou apenas o bloqueio exclusivo para T1 em R1, em seguida, T2 pediu um bloqueio em R2, o SQL Server teria que examinar a estrutura da árvore para determinar se essa linha pode ser bloqueado.
  • Isso seria muito custoso (processamento), por isso, SQL Server anuncia a sua intenção de níveis mais altos da árvore, colocando bloqueios de intenção acima da linha e navegar na árvore até a raiz.
  • Como você pode ver na figura seguinte, ao examinar os Locks, a intenção do SQL Server pode determinar rapidamente que há uma intenção de bloqueio exclusivo sobre a tabela, mas a linha de T1 está em uma parte separada da árvore, de modo que SQL Server podem agora adquirir o Lock que requer T2.

Sem título2

  • O SQL Server tem os seguintes bloqueios:

Sem título3

  • Os bloqueios de intenção pode ser considerado como um modificador para os outros modos de bloqueio.
  • Você colocaria um bloqueio compartilhado (S) em uma linha e ler essa linha, e um bloqueio de intenção compartilhado (IS) seriam colocados ao longo da navegação da raiz da B-Tree.

COMPATIBILIDADES DE LOCK

  • Embora alguns tipos de bloqueio impedem de outras transações adquirirem bloqueios no mesmo recurso, muitos bloqueios são compatíveis uns com os outros.
  • Uma tabela de compatibilidade de bloqueio abreviado é mostrada na Tabela 10-4.
  • Lendo este quadro pode ser confuso, por isso um exemplo vai ajudar.
  • Transação T1 atualmente detém um bloqueio de atualização (U) em uma linha.
  • Transação T2 concede um bloqueio compartilhado nessa linha.
  • Ao examinar a matriz, você pode ver que T2 será concedido o bloqueio compartilhado.
  • Com base na discussão anterior sobre bloqueios exclusivos, você pode perguntar por que um bloqueio IX atualmente concedido seria compatível com o pedido de um outro bloqueio IX.
  • Isso ocorre porque os bloqueios de intenção nunca são realizadas no nível do recurso real (como uma linha); eles são, pelo menos, a um nível acima na árvore. (Pág. 471)

Sem título4

  • SQL Server usa o gerenciamento de bloqueio dinâmico para aumentar a concorrência no banco de dados.
  • Por exemplo, se sua transação modifica uma linha em uma tabela, o SQL Server irá fazer um bloqueio de linha para a duração da modificação.
  • No entanto, em grandes tabelas em que seriam necessários muitos bloqueios de linha, o SQL Server, ao contrário, terá uma página ou a tabela de bloqueio.
  • Esta é dependente de todas as operações que levam bloqueios em uma tabela.
  • Se o otimizador de consulta decide que um grande número de linhas serão afetadas, os bloqueios de nível superior podem ser tomadas no início da transação.
  • No entanto, o SQL Server também pode escalar dinamicamente os tipos de bloqueio durante a execução.
  • Se o número total de bloqueios de linha tomadas por consultas por 100 usuários excede o limite, o SQL Server terá um bloqueio de tabela e, em seguida, irá liberar todos os bloqueios de leitura.
  • Isso simplifica o gerenciamento dos bloqueios, mas resulta em diminuição de simultaneidade. (Pág. 472)

NOTE TUNING TIP

Microsoft best practices specify that all tables should have a clustered index created because queries against heaps generally lead to table locks (because all leaf pages have to be scanned for results that match the query predicate) and reduce concurrency. (Pág 472)

NÍVEIS DE ISOLAMENTO DA TRANSAÇÃO

  • A American Nations Standards Institute (ANSI) especifica quatro níveis de isolamento de transação, cada um dos quais tem características muito específicas. As características dos níveis de isolamento são as seguintes:
  • Dirty read – Uma leitura suja ocorre quando uma transação tem permissão para ler dados de uma linha que foi modificada por outra transação em execução que ainda não foi comitada.
  • Non-repeatable read – A leitura não repetitiva ocorre quando, durante o curso de uma transação, uma linha é recuperada duas vezes e os valores dentro da linha diferem entre as leituras.
  • Phantom read – A leitura fantasma ocorre quando, no curso de uma operação, duas consultas idênticas são executadas, e a coleção de linhas retornadas pela segundo consulta é diferente da retornada pela primeira.

Sem título5

  • Os níveis de isolamento da transação são:

READ UNCOMMITTED – Os dados que não foram efetivados podem ser lidos. Embora um bloqueio exclusive ainda obstrua outro bloqueio exclusívo, as operações de leitura ignoram um bloqueio exclusívo.

READ COMMITTED  (Padrão do SQL Server) – Um bloqueio exclusívo obstrui bloqueios compartilhados, assim como bloqueios exclusívos. Os bloqueios compartilhados serão liberados assim que os dados forem lidos.

REPEATABLE READ – Os bloqueios exclusívos obstruem os bloqueios compartilhados e exclusívos. Os bloqueios compartilhados obstruem os bloqueios exclusívos. Os bloqueios compatilhados são mantidos pela duração da transação.

READ SERIALIZABLE – Igual a todas as constraints do nível de isolamento Repeatable Read. Além disso, voce não pode inserir uma nova linha dentro do intervalo do conjunto de chaves (keyset) correntemente bloqueado pela transação. Bloqueios são mantidos pela duração da transação.

SNAPSHOT – Usa o recurso de controle de versão de linha para impeder que bloqueis compartilhados e exclusívos obstruam uns aos outros, enquanto mantém a consistência dos dados. Uma operação de leitura recupera dados da versão da linha antes de iniciar uma operação de modificação de dados.

EXEMPLOS DOS NÍVEIS DE ISOLAMENTO

–Verifica nivel de isolamento corrente

DBCC USEROPTIONS
GO

--Criando um banco de dados
CREATE DATABASE IL
GO

USE IL
GO

--Criacao da tabela 1
CREATE TABLE tbIsolationLevel
(
Id INT IDENTITY,
Col1 varchar(10),
Col2 varchar(10),
Col3 varchar(10)
)
GO

--Inserindo dados na tabela 1
INSERT INTO tbIsolationLevel(Col1,Col2,Col3)
VALUES ('AAAAA','BBBBB','CCCCC')
GO 5

--Criacao da tabela 2
CREATE TABLE tbDeadlock ( id INT)
GO

--Inserindo dados de tabela 2
INSERT INTO tbDeadlock(ID) values (1),(2)
GO

READ COMMITED

/*********  RODAR NA CONEXÃO 1 *********/

BEGIN TRAN
UPDATE tbIsolationLevel set Col1 = 'DDDDD' where id = 1
WAITFOR DELAY '00:00:10'
ROLLBACK TRAN



/*********  RODAR NA CONEXÃO 2 *********/
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SELECT * FROM tbIsolationLevel

READ UNCOMMITED

/*********  RODAR NA CONEXÃO 1 *********/

BEGIN TRAN
UPDATE tbIsolationLevel set Col1 = 'DDDDD' where id = 1
WAITFOR DELAY '00:00:10'
ROLLBACK TRAN

/*********  RODAR NA CONEXÃO 2 *********/
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SELECT * FROM tbIsolationLevel

-- Usando o hint NOLOCK
SELECT * FROM tbIsolationLevel with (nolock)

REPETEATABLE READ

/*********  RODAR NA CONEXÃO 1 *********/
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ
BEGIN TRAN
SELECT * FROM tbIsolationLevel
WAITFOR DELAY '00:00:10'
SELECT * FROM tbIsolationLevel
ROLLBACK TRAN

/*********  RODAR NA CONEXÃO 2 *********/
UPDATE tbIsolationLevel set Col1 = 'DDDDD' where id = 1
--select * from tbIsolationLevel
INSERT INTO tbIsolationLevel(Col1,Col2,Col3)
VALUES ('DDDDD','EEEEE','FFFFF')

SNAPSHOT ISOLATION LEVEL

  • Em Snapshot Isolation, as versões de linha atualizados para cada transação são mantidos em TempDB. Uma vez que a transação foi iniciada, ignora todas as linhas mais recentes inseridos ou atualizados na tabela.
USE AdventureWorks2012
GO

--Aciona permissão de uso do SnapShot no banco
/
ALTER DATABASE AdventureWorks2012
SET ALLOW_SNAPSHOT_ISOLATION ON
GO

SELECT ModifiedDate
FROM HumanResources.Shift
GO

-- Session 1
SET TRANSACTION ISOLATION LEVEL SNAPSHOT
BEGIN TRAN
UPDATE HumanResources.Shift
SET ModifiedDate = GETDATE()
GO

-- Session 2
SET TRANSACTION ISOLATION LEVEL SNAPSHOT
BEGIN TRAN
SELECT ModifiedDate
FROM HumanResources.Shift
GO

-- Session 1
COMMIT

-- Session 2
SELECT ModifiedDate
FROM HumanResources.Shift
GO

--AINDA OS DADOS NAO FORAM ALTERADOS
-- Session 2
COMMIT

SELECT ModifiedDate
FROM HumanResources.Shift
GO

SNAPSHOT (INSTANTÂNEOS)

  • O recurso Database SnapShot foi introduzido no SQL Server 2005 para oferecer aos usuários um método para criar cópias somente leitura de dados rapidamente.
  • Esse recurso somente está disponível no SQL Server Enterprise.
  • O DataBase SnapShot não é compatível com FILE STREAM.

RECURSO DE CRIAÇÃO DE SNAPSHOTS

  • A criação de um snapshot de banco de dados é muito parecida com a criação de qualquer banco de dados.
  • Para criar um snapshot de banco de dados, você usa o comando CREATE DATABASE com a cláusula AS SNAPSHOT OF.
  • Como um snapshot é somente um cópia de leitura de dados de um banco de dados em um ponto no tempo, você não especifica um log de transação;

REQUISITOS PARA CRIAÇÃO DE SNAPSHOT

  • Voce deve incluir uma entrada para cada arquivo de dados especificado no banco de dados de origem;
  • O nome lógico de cada arquivo deve corresponder exatamente ao nome no banco de dados de origem;

RESTRIÇÕES PARA UM SNAPSHOT

  • Voce não pode fazer backup, restaurar ou remover um snapshot de banco de dados;
  • O snapshot de banco de dados deve existir na mesma instância do banco de dados de origem;
  • Índices full text não são suportados;
  • FILESTREAM não é suportado e quaisquer dados FILESTREAM serão inacessíveis por meio do snapshot de banco de dados;
  • Voce não pode criar um snapshot de banco de dados em um banco de dados de sistema;
  • Voce não pode eliminar, restaurar ou remover um banco de dados de origem que tenha um snapshot de banco de dados;
  • Você não pode fazer referencia a grupos de arquivos que estejam off-line, extintos ou sem restauração;
  • Para que um aplicativo acessa o snapshot é da mesma forma que acessasse um banco de dados normalmente;
  • No momento da criação do snapshot, o banco de dados não contém dados. Quando uma instrução SELECT é executada, o SQL Server usa o banco de dados de origem para recuperar dados que não mudaram desde que você criou o snapshot;

REVERTENDO DADOS DE UM SNAPSHOT

  • É possível fazer o retorno dos dados até o momento da criação do snapshot.
  • Em casos extremos, você pode usar o snapshot para retornar todo o conteúdo do banco de dados de origem para o estado do snapshot.
  • Por exemplo, se você precisar descartar todas as alterações ocorrida dentro do banco de dados desde que o snapshot de banco de dados foi criado;
  • Uma reversão de banco de dados é uma categoria especial de restauração de dados que pode ser executada quando você tiver criado um snapshot;
  • Você pode reverter apenas uma linha ou parte do banco de dados, podendo usar os comandos INSERT, UPDATE, DELETE ou MERGE, ou também reverter um banco de dados por completo.
  • Quando você usa o snapshot para reverter o banco de dados inteiro, o banco de dados de origem volta exatamente para como estava no momento em que o snapshot foi criado.
  • Todas as transações executadas no banco de dados são perdidas.
  • Quando você reverte um banco de dados de origem existem várias restrições:
    •  Pode existir apenas um snapshot de banco de dados para o banco de dados origem;
    • Catálogos full text no banco de dados de origem devem ser eliminados e então recriados, depois que a reversão terminar;
    • Como o log de transação é reconstruído, o encadeamento de logs de transação é desfeito;
    • O banco de dados de origem e o snapshot de banco de dados ficam offline durante o processo de reversão;
    • O banco de dados de origem não pode ser ativado para FileStream;

EXEMPLO DE CRIAÇÃO DE SNAPSHOT

USE master
GO

CREATE DATABASE AdventureWorks2012Snap on
(NAME=N'AdventureWorks2012_Data',
FILENAME=N'c:\temp\AdventureWorks2012.ds')
AS SNAPSHOT OF AdventureWorks2012
GO

use AdventureWorks2012Snap
select * from person.Address

use master
go

--Restaurando o banco de dados do snapshot
RESTORE DATABASE AdventureWorks2012 FROM
DATABASE_SNAPSHOT = 'AdventureWorks2012Snap'

SELECT * FROM AdventureWorks2012.sys.database_files
SELECT * FROM AdventureWorks2012Snap.sys.database_files
SELECT * FROM master.sys.databases

REFERÊNCIAS

https://msdn.microsoft.com/pt-br/library/ms173763.aspxhttp://www.diegonogare.net/2013/01/transaction-isolation-level-voc-est-usando-certo/

BIBLIOGRAFIA BÁSICA

  • HOTEK, M. MCTS Self-Paced Training Kit (Exam 70-432) Microsoft SQL Server 2008 – Implementation and Maintenance. EUA: Microsoft Press, 2009.
  • STANEK, William R. Microsoft SQL Server 2008 – Guia de Bolso do Administrador. Porto Alegre: Bookman, 2010.
  • HOTEK, M. Microsoft SQL Server 2008 – Passo a Passo. Porto Alegre: Bookman, 2010.

Video 01

Video 02

Anúncios

Utilizando CASE com IN no SQL Server

No SQL Server, é possível utilizar o recurso IN dentro de um Case.

Para ilustrar o exemplo, utilizamos o banco de dados Adventure Works 2008, e primeiro podemos observar o uso típico do case:

SELECT	ProductID, 
	Name, 
	Color,
	case Color 
	    when 'Red'    then 'Cor Primaria'
	    when 'Blue'   then 'Cor Primaria'
	    when 'Yellow' then 'Cor Primaria'
	    else 'Cor Secundaria'
	end as TesteCase
FROM	Production.Product
WHERE	Color is not null

Temos o seguinte resultado:

ScreenHunter_440 Jan. 17 08.49

Observamos que para o caso das cores serem Red, Blue e Yellow, os resultados seriam os mesmos.

Podemos fazer a alteração utilizando o comando IN dentro do Case, como o código seguinte:

SELECT	ProductID, 
	Name, 
	Color,
	case WHEN 
	    Color in ('Red','Blue','Yellow') then 'Cor Primaria'
	    else 'Cor Secundaria'
	end as TesteCase
FROM	Production.Product
WHERE	Color is not null

Observamos que conseguimos otimizar a escrita do código, não ficando tão repetitivo, tendo o mesmo resultado:

ScreenHunter_440 Jan. 17 08.49

Instalação do Windows 2008 Server no Virtual Box para Estudo do SQL Server 2012

Este artigo tem o objeto de demonstrar a instalação do Sistema Operacional Windows 2008 Server, para os usuários que já fizeram  a estrutura (artigo: “Criação de uma Estrutura de Virtualização Desktop no Oracle Virtual Box para Estudo do SQL Server 2012”) no virtual box, ou que fizeram a importação da estrutura já feita (artigo: Importação do Appliance do Windows Server do Virtual Box para Estudo do SQL Server 2012)

Antes de iniciar a importação, verifique:

– Download do arquivo OVA (estrutura do Virtual Box para instalação do Sistema Operacional);

Faça o download do arquivo no link apontado pelo artigo anterior mencionado:  https://1drv.ms/u/s!Aq7T8CnyCjV7hd8l9_yNvKI7jKfhkw.

 

– Versão do Virtual Box 5.0.20 (em 01/06/2016 se mantém a versão mais atual ou versão superior)

Caso ainda não tenha instalado em sua máquina, faça o download através do site do Virtual Box (coloque no Google que será um dos primeiros links a aparecer), e faça a instalação com seu pacote de extensão;

 

– Hardware utilizado para esta instalação (host físico)

Para você fazer um comparativo na configuração que iremos fazer na máquina virtualizada, estarei utilizando o seguinte hardware físico:

Laptop Acer Aspire 5742

8 GB RAM DDR3 de 1333 Ghz

Processador Intel Core i5-450M, um socket com quatro cores

Disco de 256 GB SSD para o Drive C:

Disco de 500 GB HDD para o Drive D:

Sistema Operacional: Windows 10  x64

 

– Configuração da estrutura da máquina virtual que irá ser utilizada:

4 GB RAM

2 processadores

1 Disco de 20 GB para o Drive C: (para instalação do Windows)

1 Disco de 10 GB para o Drive D: (para instalação do SQL Server)

1 Disco de 04 GB para o Drive E: (para o Banco de Dados TempDB)

1 Disco de 04 GB para o Drive F: (para o Backups)

1 Disco de 04 GB para o Drive G: (para arquivos do SQL Server de Dados)

1 Disco de 04 GB para o Drive H: (para arquivos do SQL Server de Log)

Sistema Operacional: Windows Server 2008 (ou 2012)

 

– Referencias para pré-requisitos da instalação do SQL Server:

https://msdn.microsoft.com/pt-br/library/ms143506(v=sql.120).aspx

Instalação do Windows 2008 Server no Virtual Box

  • Na abertura do Virtual Box, escolha a estrutura “WIN2008-SQL12” (ou o seu nome dado pela máquina virtual), e clique no botão “Configurações”

Captura de tela 2016-06-12 20.05.03

  • Clique na aba [Armazenamento] e seleciome o drive de CD [Vazio]. Em atributos / Drive Óptico, selecione o arquivo ISO do Windows 2008 Server.

Captura de tela 2016-06-12 20.05.04

  • Aparecerá o disco na controladora. Provisoriamente, altere o [Drive Óptico] para “Porta SATA 1”, para que o Windows consiga inicializar a máquina virtual.

Captura de tela 2016-06-12 20.28.11

  • Depois de confirmado, o Virtual Box irá retornar a tela principal e com isso, clique no botão “Iniciar”

Captura de tela 2016-06-12 20.29.35

  • A máquina virtual irá iniciar a sequência de instalação do Windows. Atenção: haverá casos em que é necessário ter a interação de um <ENTER>, para que se inicie a instalação através do DVD ou ISO de instalação. Escolha as opções abaixo conforme melhor lhe atender.

ScreenHunter_153 Jun. 12 20.32

  • Inicie o processo de instalação, clicando em “Install Now”;

ScreenHunter_154 Jun. 12 20.33

  • Escolha a edição que você irá instalar. Para fins de aprendizado, iremos instalar a versão Standard.

ScreenHunter_155 Jun. 12 20.33

  • Será necessário os termos da licença de uso.

ScreenHunter_156 Jun. 12 20.34

  • Escolha a opção Custom (advanced) para personalizar o modo de instalação.

ScreenHunter_157 Jun. 12 20.34

  • Selecione o Disk 0 (tamanho de 20 GB), para fazer a instalação do Sistema Operacional. É nesse disco que o SO irá ser instalado.

ScreenHunter_159 Jun. 12 20.36

  • O Windows irá começar a descompactar os arquivos de instalação.

ScreenHunter_160 Jun. 12 20.37

  • Após todo o processo de cópia de arquivos da mídia de instalação para o disco, será necessário definir uma senha para o usuário Administrator.

ScreenHunter_161 Jun. 12 21.30

  • A senha aqui coloca precisa ser de alta complexidade, ou seja, que contenha letras maiúsculas e minúsculas, números e caracteres especiais. Digitamos e confirmamos com a senha “P@ssw0rd”, que é uma senha complexa;

ScreenHunter_165 Jun. 12 22.53

  • Após ter digitado corretamente a senha, o Windows avisará que a senha foi trocada.

ScreenHunter_166 Jun. 12 22.53

  • Vamos colocar um lembre de senha, caso tenhamos que lembrar para um momento futuro. Vá até o o painel de controle (control, panel)

ScreenHunter_167 Jun. 12 22.55

  • Vá em contas de usuário (User Accounts)

ScreenHunter_168 Jun. 12 22.55

  • Clique na opção “Change your password”

ScreenHunter_169 Jun. 12 22.56

  • Digite novamente em todos os lugares requeridos e coloque principalmente na dica de senha e confirme em [Change password]; (fazemos isso somente para não esquecer da senha em um uso futuro).

ScreenHunter_170 Jun. 12 22.56

  • Depois do Windows já instalado, retire a mídia (arquivo ISO) do drive de CD ROM da máquina virtual. Vá em Iniciar / Windows Explorer.

ScreenHunter_171 Jun. 12 23.00

  • Clique em cima do drive de CD com o botão direito do mouse, e clique em [Eject]

ScreenHunter_172 Jun. 12 23.00

  • Vamos criar 2 usuários que o SQL Server irá utilizar na instalação em sua instalação. Para isso, vá em iniciar / Ferramentas Administrativas / Gerenciamento do Computador.

ScreenHunter_173 Jun. 12 23.01

  • Procure por Grupos de usuários Locais. Clique com o botão direito e clique em novo usuário (New User).

ScreenHunter_174 Jun. 12 23.03

  • Crie o usuário SQL_Agent. Coloque a mesma senha complexa nos campos Password e Confirm password. Marque também as opções “Usuário não pode trocar a senha e “Senha nunca expira”.

ScreenHunter_175 Jun. 12 23.04

  • Crie o outro usuário SQL_DE, contendo as mesmas observações do usuário criado anteriormente.

ScreenHunter_176 Jun. 12 23.05

  • Após ter criado os dois usuários, deverá aparecer aproximadamente com a figura a seguir:

ScreenHunter_177 Jun. 12 23.06

  • Ainda no gerenciamento do computador, clique em “Storage” / Gerenciamento de Disco. Irá aparecer a opção de inicialização dos discos. Confirme com a opção MBR marcada e clique em [OK].

ScreenHunter_187 Jun. 12 23.13

  • Depois de todos os discos serem inicializados, clique com o botão direito EM CIMA do CD-ROM e clique em “Alterar letra do drive e caminho”.

ScreenHunter_188 Jun. 12 23.14

  • Altere a letra do drive de CD-Rom para “I”.

ScreenHunter_189 Jun. 12 23.14

  • Confirme com [Sim] após a mensagem de alerta aparecer.

ScreenHunter_190 Jun. 12 23.15

  • Clique na parte NÃO ALOCADA do DISK1 com o botão direito e clique em “Novo volume simples”.

ScreenHunter_194 Jun. 12 23.20

  • Será aberto um Wizard e clique em [Próximo]

ScreenHunter_195 Jun. 12 23.21

  • Escolha o tamanho total do Volume (do disco) e clique em “Proximo”.

ScreenHunter_196 Jun. 12 23.21

  • Associe a letra D para o drive formatado.

ScreenHunter_197 Jun. 12 23.21

  • Escolha o tipo de sistema “NTFS”, o tamanho da unidade de alocação “Default” e o Nome do Volume para “SQLSERVER”. Iremos redirecionar a instalação do SQL Server para este disco.

ScreenHunter_198 Jun. 12 23.21

  • Finalize com “Finish” a criação do novo volume simples (drive).

ScreenHunter_199 Jun. 12 23.22

  • Faça o mesmo processo para todos os demais discos que estiverem não formatados. Nomeie e associe os drivers de acordo com a figura abaixo:

ScreenHunter_200 Jun. 12 23.27

  • Após ter feito todas as formatações, o Windows está pronto para ser instalado o SQL Server.

 

  • Antes de iniciar a instalação do SQL Server, faça um snapshot da máquina virtual. Isso irá possibilitar voltar até esse ponto caso algo de errado aconteça com a instalação;

 

  • Se quiser mais segurança, exporte o appliance da máquina criada;

 

  • Caso queira baixar essa máquina instalada, você pode baixar do seguinte endereço:

 

  • Caso queira fazer o download dessa máquina virtual, voce pode acessar o seguinte link: https://1drv.ms/f/s!Aq7T8CnyCjV7hd8pAfE97EuhlGQQpg

 

  • Voce encontrará 23 arquivos. Todos eles formam posteriormente um único arquivo .OVA. É necessário ter o 7-zip para fazer a descompactação.

 

  • No próximo artigo, estaremos fazendo a instalação do SQL Server;.

 

  • Obrigado e até o próximo artigo!

Importação do Appliance do Windows Server do Virtual Box para Estudo do SQL Server 2012

Este artigo tem o objeto de demonstrar a importação do arquivo OVA para os usuários que fizeram o download do Appliance do artigo “Criação de uma Estrutura de Virtualização Desktop no Oracle Virtual Box para Estudo do SQL Server 2012”.

 

Antes de iniciar a importação, verifique:

– Configuração do seu hardware físico (que irá ser o seu host);

– Verifique os discos onde serão colocados os arquivos.

 

– Download do arquivo OVA;

Faça o download do arquivo no link apontado pelo artigo anterior mencionado:  https://1drv.ms/u/s!Aq7T8CnyCjV7hewWwWHEYBX0eV4Bpw

 

– Versão do Virtual Box 5.0.20 (em 01/06/2016 se mantém a versão mais atual ou versão superior)

Caso ainda não tenha instalado em sua máquina, faça o download através do site do Virtual Box (coloque no Google que será um dos primeiros links a aparecer), e faça a instalação com seu pacote de extensão;

 

– Hardware utilizado para esta instalação (host físico)

Para você fazer um comparativo na configuração que iremos fazer na máquina virtualizada, estarei utilizando o seguinte hardware físico:

Laptop Acer Aspire 5742

8 GB RAM DDR3 de 1333 Ghz

Processador Intel Core i5-450M, um socket com quatro cores

Disco de 256 GB SSD para o Drive C:

Disco de 500 GB HDD para o Drive D:

Sistema Operacional: Windows 10 de x64

 

– Configuração da estrutura da máquina virtual que irá ser importada:

4 GB RAM

2 processadores

1 Disco de 20 GB para o Drive C: (para instalação do Windows)

1 Disco de 10 GB para o Drive D: (para instalação do SQL Server)

1 Disco de 04 GB para o Drive E: (para o Banco de Dados TempDB)

1 Disco de 04 GB para o Drive F: (para o Backup88226644771 Disco de 04 GB para o Drive G: (para arquivos do SQL Server de Dados)

1 Disco de 04 GB para o Drive H: (para arquivos do SQL Server de Log)

Sistema Operacional: Windows Server 2008 (ou 2012)

 

– Referencias para pré-requisitos da instalação do SQL Server:

https://msdn.microsoft.com/pt-br/library/ms143506(v=sql.120).aspx

 

Importação da Máquina Virtual pelo Virtual Box 5.0.20 (com pacote de extensão instalada)

 

  • Na abertura do Virtual Box, clique no menu Arquivo / Importar Appliance

Captura de tela 2016-06-12 20.00.16

  • Especifique a pasta de onde o arquivo será importado

Captura de tela 2016-06-12 20.01.05

  • Altere a configuração dos caminhos dos discos para a pasta desejada. Verifique os nomes nos finais dos arquivos para que respeite a sequência de discos. Depois de verificar todos os caminhos, clique em importar;

Captura de tela 2016-06-12 20.02.43

  • O virtual box irá fazer a importação do appliance e irá disponibilizar de acordo com a figura abaixo.

Captura de tela 2016-06-12 20.03.03

  • Caso você tenha errado em colocar corretamente os caminhos dos discos, faça a exclusão e importe novamente o appliance.

 

  • No próximo artigo, estaremos fazendo a instalação do Sistema Operacional.

 

  • Obrigado e até o próximo artigo!

 

learningdatabase.com.br

Tecnologias em Banco de Dados Relacionais, Modelagem de dados dimencionais, tecnologias SQL Servere e Oracle

Aprendendo Programação

Algorítmos, C, C++,Pascal, Python, R

WikiDBA

by Virendra Yaduvanshi - Microsoft SQL Server Database Architect | Consultant | Blogger | Specialist | DBA | Speaker

Blog - Fabiano Neves Amorim

SELECT * FROM [Coisas Da Minha Cabeça] WHERE dbo.fn_TempoParaPost() < dbo.fn_TempoLivre()

ROMANO DBA

Administração de Bancos de Dados

Tércio Costa, Oracle Developer, OCE SQL, ACE Associate

Guia de estudos para certificação ORACLE SQL(1Z0-047, 1Z0-051, 1Z0-061 e 1Z0-071) e PL/SQL(1Z0-144, 1Z0-146 e 1Z0-148)

Strate SQL

Data Adventures with an Architect