sql server 2012--集群采用多数节点的方式加Servercore

一,前言

    MS SQL SERVER 2005以来,MSFT都该产品做了大量改进,在每个版本都有不少闪光点,MS SQL SERVER 2012也不例外,ALwaysOn group就是其中最闪亮的一个功能点。本文章旨在介绍在Windows ServerCore模式下搭建AlwaysOn Group的方式。

二,实验环境 

Server name

role

IP

OS Version

remark

Server1

DC

192.168.133.10

/255.255.255.0

 

 

 

Windows server 2008 Enterprise 64bits sp1 servercore

 

Servercore01

SQL Server 服务器1

192.168.133.30

/255.255.255.0

 

Windows server 2008 r2 datacenter

64 bits sp1 servercore

 

Servercore02

SQL Server 服务器2

192.168.133.31

/255.255.255.0

 

Windows server 2008 r2 datacenter

64 bits sp1 servercore

 

Servercore03

SQL Server 服务器3

192.168.133.32

/255.255.255.0

 

Windows server 2008 r2 datacenter

64 bits sp1 servercore

 

Tools

工具服务器

192.168.133.36

/255.255.255.0

 

Windows server 2008 Enterprise 64bits sp1

Servercore 版本上的sql没有SSMS,因此需要有一台装有SSMS的服务器,以方便管理


Server1  
      bb

ServerCore01:

bb


ServerCore02:

  bb

Servercore03:

       bb

    

    注:

1, 安装Servercore,请参照相应手册,这里略

2, 此实验,由于集群是采用多数节点模式,因此至少要三台服务器参与集群,我这里安装了3台虚机

3, 三台成员服务器安装的windows 2008 R2 servercore 64bits sp1

一,成员服务器的配置及加域,在所有服务器参与集群的成员服务器上执行这些步骤:

A,修改新装好的服务器的名字,这里以servercore01为例

--rename a server

netdom renamecomputer %computername% /newname:servercore01

B,设置静态IPDNS服务器

--set static ip address for specfic network card

netsh interface ipv4 set address name="Local Area Connection" 

source=static address="192.168.133.30" 

mask="255.255.255.0" gateway="192.168.133.10"

--set dns server

netsh interface ipv4 add dnsserver name="Local Area Connection"

address="192.168.133.10" index=1 

C,重启

D,加域

netdom join  %ComputerName% /domain:contoso.com /userD:administrator /passwordD:*

 

E,重启

F, 设置管理员密码。在命令行窗口键入:

net user administrator *

 

G,将域账号加入本地管理员组,这个账号作为sql服务的启动账号

Net localgroup administrators /add contoso\sqladmin

 

H, 开启远程桌面,这样就可以通过mstsc管理了

Cscript. %systemroot%\system32\SCregedit.wsf /ar 0

 

I,设置防火墙

netsh firewall set service remoteadmin enable

--disable firewall

netsh firewall set opmode disable

 

J,为了支持集群,必须安装下面这些组件

--安装组件命令

Dism.exe /Online /Enable-Feature /FeatureName:Microsoft-Hyper-V /FeatureName:NetFx2-ServerCore /FeatureName:MicrosoftWindowsPowerShell

/FeatureName:ServerManager-PSH-Cmdlets /FeatureName:BestPractices-PSH-Cmdlets /FeatureName:FailoverCluster-Core /FeatureName:WindowsServerBackup

 

K,安装SQL 2012 for servercore

Setup.exe /qs /ACTION=Install /INSTANCEDIR=c:\mssqlserver\software /INSTALLSQLDATADIR=c:\mssqlserver\sqldata /SQLTEMPDBDIR=c:\mssqlserver\tempdata   /FEATURES=SQLEngine,Replication /INSTANCENAME=MSSQLSERVER /SQLSVCACCOUNT="contoso\sqladmin" /SQLSVCPASSWORD="yourpassword" /SQLSYSADMINACCOUNTS="contoso\sqladmin" /AGTSVCACCOUNT="NT AUTHORITY\Network Service" /TCPENABLED=1 /IACCEPTSQLSERVERLICENSETERMS


二,安装windows多数节点集群

建立windows server 2008 server core  CLUSTER

A,验证先决条件,

 bb


          bb bb bb

输入windows clusterclustername以及IP

bb   输入 windows cluster clustername 以及 IP,
这里可以输入多个子网IP地址 bb

    确认信息,如果觉得不合适,可以退回去修改
bb

创建中。。。 。。。

bb

创建成功

bb

集群一览

bb

                    集群一览

bb

集群仲裁方式,多数节点 

检查集群的情况,我这里略


一,开启SQL serveralways 选项,如下:

1, 登录tools服务器,按如下次序操作

开始〉管理工具〉计算机管理:

bb

bb

bbbbbbbb

                    然后重启SQL 服务,每个节点都要重复上述操作


四, SQL Server 2012 Alwayson group配置

A,如果还没有登录tools服务器,请登录,launch 

ssms,连接到servercore01, servercore02, servercore03

bb


B,建立测试数据库和表,插入初始记录

bb


C,选定servercore01primary,并导航至[AlwaysOn High Availability],右击开始建立

bb

bbbb

bbbbbbbbbbbb

  有效性检查

bb

配置summary


bb

创建中。。。 。。。

bb

创建成功


下面是配置此alwaysOn Group的代码:

--- YOU MUST EXECUTE THE FOLLOWING SCRIPT. IN SQLCMD MODE.

:Connect 192.168.133.30

 

USE [master]

 

GO

 

CREATE ENDPOINT [Hadr_endpoint]

    AS TCP (LISTENER_PORT = 5022)

    FOR DATA_MIRRORING (ROLE = ALL, ENCRYPTION = REQUIRED ALGORITHM AES)

 

GO

 

IF (SELECT state FROM sys.endpoints WHERE name = N'Hadr_endpoint') <> 0

BEGIN

    ALTER ENDPOINT [Hadr_endpoint] STATE = STARTED

END

 

 

GO

 

use [master]

 

GO

 

GRANT CONNECT ON ENDPOINT::[Hadr_endpoint] TO [CONTOSO\sqladmin]

 

GO

 

:Connect servercore02

 

USE [master]

 

GO

 

CREATE ENDPOINT [Hadr_endpoint]

    AS TCP (LISTENER_PORT = 5022)

    FOR DATA_MIRRORING (ROLE = ALL, ENCRYPTION = REQUIRED ALGORITHM AES)

 

GO

 

IF (SELECT state FROM sys.endpoints WHERE name = N'Hadr_endpoint') <> 0

BEGIN

    ALTER ENDPOINT [Hadr_endpoint] STATE = STARTED

END

 

 

GO

 

use [master]

 

GO

 

GRANT CONNECT ON ENDPOINT::[Hadr_endpoint] TO [CONTOSO\sqladmin]

 

GO

 

:Connect servercore03

 

USE [master]

 

GO

 

CREATE ENDPOINT [Hadr_endpoint]

    AS TCP (LISTENER_PORT = 5022)

    FOR DATA_MIRRORING (ROLE = ALL, ENCRYPTION = REQUIRED ALGORITHM AES)

 

GO

 

IF (SELECT state FROM sys.endpoints WHERE name = N'Hadr_endpoint') <> 0

BEGIN

    ALTER ENDPOINT [Hadr_endpoint] STATE = STARTED

END

 

 

GO

 

use [master]

 

GO

 

GRANT CONNECT ON ENDPOINT::[Hadr_endpoint] TO [CONTOSO\sqladmin]

 

GO

 

:Connect 192.168.133.30

 

IF EXISTS(SELECT * FROM sys.server_event_sessions WHERE name='AlwaysOn_health')

BEGIN

  ALTER EVENT SESSION [AlwaysOn_health] ON SERVER WITH (STARTUP_STATE=ON);

END

IF NOT EXISTS(SELECT * FROM sys.dm_xe_sessions WHERE name='AlwaysOn_health')

BEGIN

  ALTER EVENT SESSION [AlwaysOn_health] ON SERVER STATE=START;

END

 

GO

 

:Connect servercore02

 

IF EXISTS(SELECT * FROM sys.server_event_sessions WHERE name='AlwaysOn_health')

BEGIN

  ALTER EVENT SESSION [AlwaysOn_health] ON SERVER WITH (STARTUP_STATE=ON);

END

IF NOT EXISTS(SELECT * FROM sys.dm_xe_sessions WHERE name='AlwaysOn_health')

BEGIN

  ALTER EVENT SESSION [AlwaysOn_health] ON SERVER STATE=START;

END

 

GO

 

:Connect servercore03

 

IF EXISTS(SELECT * FROM sys.server_event_sessions WHERE name='AlwaysOn_health')

BEGIN

  ALTER EVENT SESSION [AlwaysOn_health] ON SERVER WITH (STARTUP_STATE=ON);

END

IF NOT EXISTS(SELECT * FROM sys.dm_xe_sessions WHERE name='AlwaysOn_health')

BEGIN

  ALTER EVENT SESSION [AlwaysOn_health] ON SERVER STATE=START;

END

 

GO

 

:Connect 192.168.133.30

 

USE [master]

 

GO

 

CREATE AVAILABILITY GROUP [SQLAG]

WITH (AUTOMATED_BACKUP_PREFERENCE = NONE)

FOR DATABASE [db_1], [db_2]

REPLICA ON N'SERVERCORE01' WITH (ENDPOINT_URL = N'TCP://SERVERCORE01.contoso.com:5022', FAILOVER_MODE = AUTOMATIC, AVAILABILITY_MODE = SYNCHRONOUS_COMMIT, BACKUP_PRIORITY = 50, SECONDARY_ROLE(ALLOW_CONNECTIONS = ALL)),

    N'SERVERCORE02' WITH (ENDPOINT_URL = N'TCP://SERVERCORE02.contoso.com:5022', FAILOVER_MODE = AUTOMATIC, AVAILABILITY_MODE = SYNCHRONOUS_COMMIT, BACKUP_PRIORITY = 50, SECONDARY_ROLE(ALLOW_CONNECTIONS = ALL)),

    N'SERVERCORE03' WITH (ENDPOINT_URL = N'TCP://SERVERCORE03.contoso.com:5022', FAILOVER_MODE = MANUAL, AVAILABILITY_MODE = SYNCHRONOUS_COMMIT, BACKUP_PRIORITY = 50, SECONDARY_ROLE(ALLOW_CONNECTIONS = ALL));

 

GO

 

:Connect 192.168.133.30

 

USE [master]

 

GO

 

ALTER AVAILABILITY GROUP [SQLAG]

ADD LISTENER N'ServerCore_LS' (

WITH IP

((N'192.168.133.40', N'255.255.255.0')

)

, PORT=11116);

 

GO

 

:Connect servercore02

 

ALTER AVAILABILITY GROUP [SQLAG] JOIN;

 

GO

 

:Connect servercore03

 

ALTER AVAILABILITY GROUP [SQLAG] JOIN;

 

GO

 

:Connect 192.168.133.30

 

BACKUP DATABASE [db_1] TO  DISK = N'\\tools\backup\db_1.bak' WITH  COPY_ONLY, FORMAT, INIT, SKIP, REWIND, NOUNLOAD, COMPRESSION,  STATS = 5

 

GO

 

:Connect servercore02

 

RESTORE DATABASE [db_1] FROM  DISK = N'\\tools\backup\db_1.bak' WITH  NORECOVERY,  NOUNLOAD,  STATS = 5

 

GO

 

:Connect servercore03

 

RESTORE DATABASE [db_1] FROM  DISK = N'\\tools\backup\db_1.bak' WITH  NORECOVERY,  NOUNLOAD,  STATS = 5

 

GO

 

:Connect 192.168.133.30

 

BACKUP LOG [db_1] TO  DISK = N'\\tools\backup\db_1_20120411094958.trn' WITH NOFORMAT, NOINIT, NOSKIP, REWIND, NOUNLOAD, COMPRESSION,  STATS = 5

 

GO

 

:Connect servercore02

 

RESTORE LOG [db_1] FROM  DISK = N'\\tools\backup\db_1_20120411094958.trn' WITH  NORECOVERY,  NOUNLOAD,  STATS = 5

 

GO

 

:Connect servercore03

 

RESTORE LOG [db_1] FROM  DISK = N'\\tools\backup\db_1_20120411094958.trn' WITH  NORECOVERY,  NOUNLOAD,  STATS = 5

 

GO

 

:Connect 192.168.133.30

 

BACKUP DATABASE [db_2] TO  DISK = N'\\tools\backup\db_2.bak' WITH  COPY_ONLY, FORMAT, INIT, SKIP, REWIND, NOUNLOAD, COMPRESSION,  STATS = 5

 

GO

 

:Connect servercore02

 

RESTORE DATABASE [db_2] FROM  DISK = N'\\tools\backup\db_2.bak' WITH  NORECOVERY,  NOUNLOAD,  STATS = 5

 

GO

 

:Connect servercore03

 

RESTORE DATABASE [db_2] FROM  DISK = N'\\tools\backup\db_2.bak' WITH  NORECOVERY,  NOUNLOAD,  STATS = 5

 

GO

 

:Connect 192.168.133.30

 

BACKUP LOG [db_2] TO  DISK = N'\\tools\backup\db_2_20120411094958.trn' WITH NOFORMAT, NOINIT, NOSKIP, REWIND, NOUNLOAD, COMPRESSION,  STATS = 5

 

GO

 

:Connect servercore02

 

RESTORE LOG [db_2] FROM  DISK = N'\\tools\backup\db_2_20120411094958.trn' WITH  NORECOVERY,  NOUNLOAD,  STATS = 5

 

GO

 

:Connect servercore03

 

RESTORE LOG [db_2] FROM  DISK = N'\\tools\backup\db_2_20120411094958.trn' WITH  NORECOVERY,  NOUNLOAD,  STATS = 5

 

GO

 

通过SSMS查看AlwaysOn Group:

bb


bb


bb


bb

fj.png1.jpg

fj.pngservercore3.jpg

fj.pngservercore1.jpg

fj.pngservercore3.jpg

fj.png验证先决条件.jpg

fj.png验证先决条件2.jpg

fj.png验证先决条件3.jpg

fj.png验证先决条件4.jpg

fj.png验证先决条件5.jpg

fj.png验证先决条件6.jpg

fj.png验证先决条件7.jpg

fj.png验证先决条件8.jpg

fj.png验证先决条件9.jpg

fj.png验证先决条件10.jpg

fj.png验证先决条件11.jpg

fj.png计算机管理.jpg

fj.png计算机管理2.jpg

fj.png计算机管理3.jpg

fj.png计算机管理4.jpg

fj.png计算机管理5.jpg

fj.png4-1.jpg

fj.png4-2.jpg

fj.png4-3.jpg

fj.png4-4.jpg

fj.png4-5.jpg

fj.png4-6.jpg

fj.png4-7.jpg

fj.png4-8.jpg

fj.png4-9.jpg

fj.png4-10.jpg

fj.png4-11.jpg

fj.png4-12.jpg

fj.png4-13.jpg

fj.png4-14.jpg

fj.png4-15.jpg

fj.png4-16.jpg

fj.png4-17.jpg

fj.png4-18.jpg

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/101629/viewspace-761740/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/101629/viewspace-761740/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值