[Série] – AlwaysOn – Preparando o Ambiente (Parte3)

Posted on janeiro 30, 2013

2


Após a configuração do Windows Services Failover Cluster – https://luanmorenodba.wordpress.com/2013/01/25/srie-alwayson-prrequisitos-parte2/ e o restante dos pré-requisitos, agora é necessário tratar em nível banco de dados a alta disponibilidade do banco de dados.

Preparando as Máquinas

Com nossa alta disponibilidade em nível servidor já disponível, agora podemos começar a preparar o ambiente para o AlwaysOn. Sendo assim, acesse a 1ª máquina do SQL Server, abra o SSMS 2012 – abra uma consulta e execute…

1ª  Máquina do SQL Server

IF DB_ID(‘Empresas’) IS NOT NULL

BEGIN

    ALTER DATABASE Empresas SET SINGLE_USER WITH ROLLBACK IMMEDIATE;

    DROP DATABASE Empresas;

END

GO

 

IF DB_ID(‘Marketing’) IS NOT NULL

BEGIN

    ALTER DATABASE Marketing SET SINGLE_USER WITH ROLLBACK IMMEDIATE;

    DROP DATABASE Marketing;

END

GO

 

IF DB_ID(‘Produtos’) IS NOT NULL

BEGIN

    ALTER DATABASE Produtos SET SINGLE_USER WITH ROLLBACK IMMEDIATE;

    DROP DATABASE Produtos;

END

GO

 

CREATE DATABASE Empresas;

GO

ALTER DATABASE Empresas SET RECOVERY FULL;

 

 

CREATE DATABASE Marketing;

GO

ALTER DATABASE Marketing SET RECOVERY FULL;

 

 

CREATE DATABASE Produtos;

GO

ALTER DATABASE Produtos SET RECOVERY FULL;

 

go

 

USE Empresas;

GO

IF OBJECT_ID(‘Dados’) IS NOT NULL

BEGIN

    DROP TABLE Dados;

END

GO

 

CREATE TABLE Dados

    (RowID INT IDENTITY PRIMARY KEY,

     Col1 INT,

     Col2 CHAR(10) DEFAULT(‘ABC123′),

     Col3 NCHAR(20) DEFAULT(’789XYZ’));

GO

 

DECLARE @StartTime DATETIME = CURRENT_TIMESTAMP;

DECLARE @Loop INT = 1;

 

BEGIN TRANSACTION

WHILE @Loop <= 100000

BEGIN

    INSERT INTO Dados (Col1) VALUES (@loop);

    SET @Loop = @Loop + 1;

END

COMMIT TRANSACTION

SELECT DATEDIFF(ms, @StartTime, CURRENT_TIMESTAMP) AS Table1_Time;

GO

 

UPDATE Dados

SET Col1 = RowID;

GO

 

USE master

GO

 

BACKUP DATABASE Empresas TO DISK = N’C:\InfoAlwaysOn\BackupAlwaysOn\Empresas.bak’;

BACKUP DATABASE Marketing TO DISK =N’C:\InfoAlwaysOn\BackupAlwaysOn\Marketing.bak’;

BACKUP DATABASE Produtos TO DISK = N’C:\InfoAlwaysOn\BackupAlwaysOn\Produtos.bak’;

GO

2 ª Máquina do SQL Server

IF DB_ID(‘Empresas’) IS NOT NULL

BEGIN

ALTER DATABASE Empresas SET SINGLE_USER WITH ROLLBACK IMMEDIATE;

DROP DATABASE Empresas;

END

GO

IF DB_ID(‘Marketing’) IS NOT NULL

BEGIN

ALTER DATABASE Marketing SET SINGLE_USER WITH ROLLBACK IMMEDIATE;

DROP DATABASE Marketing;

END

GO

IF DB_ID(‘Produtos’) IS NOT NULL

BEGIN

ALTER DATABASE Produtos SET SINGLE_USER WITH ROLLBACK IMMEDIATE;

DROP DATABASE Produtos;

END

GO

 

3 ª Máquina do SQL Server

IF DB_ID(‘Empresas’) IS NOT NULL

BEGIN

ALTER DATABASE Empresas SET SINGLE_USER WITH ROLLBACK IMMEDIATE;

DROP DATABASE Empresas;

END

GO

IF DB_ID(‘Marketing’) IS NOT NULL

BEGIN

ALTER DATABASE Marketing SET SINGLE_USER WITH ROLLBACK IMMEDIATE;

DROP DATABASE Marketing;

END

GO

IF DB_ID(‘Produtos’) IS NOT NULL

BEGIN

ALTER DATABASE Produtos SET SINGLE_USER WITH ROLLBACK IMMEDIATE;

DROP DATABASE Produtos;

END

GO

 

Se preferir, download –https://skydrive.live.com/#cid=6E894476A77CD2F2&id=6E894476A77CD2F2%21142 nome = AlwaysOn – Instalação Bases e Backup.

Nesse script estamos realizando a criação dos bancos de dados, colocando todos como modo de recuperação FULL e depois realizando um backup full.

Habilitando o Serviço

Para que possamos realizar a criação do High Availabiliy Group é necessário que realizemos a habilitação do serviço para todas as Vm’s SQL Server.

 

4ed8f888-8df9-4610-94b1-36d9388aa528

(Figura 15 – Habilitando o AlwaysOn Availability Group.)

 

b501f9a8-d811-4c5a-9ef1-531d07e1bb8d

(Figura 16 – Reinicie todas as instâncias.)

 

Agora com os bancos de dados nas 3ª máquinas e o serviço do AlwaysOn instalado, nosso próximo passo é realizar a configuração dos Availability Groups que veremos no nosso próximo post.