xml地图|网站地图|网站标签 [设为首页] [加入收藏]
高可用镜像,Windows身份验证连接服务器报错
分类:数据库

 

一、什么是数据库镜像

    基本软件的高可用性解决方案

  快速的故障转移恢复(3秒转移),低硬件成本

  基于数据库级别的实现

前言

问题描述:

二、数据库镜像中的服务器角色

        主体服务器

    承载主体数据库

    接受用户连接和事务处理请求

        镜像服务器

    承载镜像数据库

    作为主体数据库的热备份(主体数据库的变化及时传到镜像数据库中)

    仅在故障转移后接受用户连接,事务处理请求。

        见证服务器(监视)

    监视服务器状态和连接性,实现自动自动故障转移

本文是个人学习SQL Server 数据库时的以往笔记的整理,内容主要是对数据库的基本增删改查的SQL语句操作约束,视图,存储过程,触发器的基本了解。

本地装了两个实例,一个是SQLEXPRESS,可以正常操作。但是另一个开发常用的实例MSSQLSERVER却连Windows身份验证都报错,报的错误也是很奇葩,怎么会找不到Administrator那,我登录计算机进来就用的这个账号。

三、数据库镜像会话

  会话初始化

    镜像请求事务日志记录,与主体服务器实现同步

  会话过程

    主体服务器将日志记录传输给镜像服务器

    各个角色之间相互监视会话状态

       会话终结

    发生故障转移

    管理员终止数据库镜像

注:内容比较基础,适合入门者对SQL Server 数据库的了解!!!

详细错误如下:

四 数据库镜像三种模式

操作模式 事务安全 传输机制 是否需要仲裁 见证服务器 故障转移类型
高可用 Full 同步 Y Y 自动或手动
高级别保护 Full 同步 Y N 仅手动
高性能 OFF 异步 N N/A 仅强制

  高可用:要求高服务可用性, 要求实现自动故障转移,确保数据的完整。

  高级别保护模式: 数据完整性要求,不要求自动故障转移,对服务的可用性要求较低。

       高性能保护模式:主体服务器和镜像服务器距离很远,通讯链路有明显的延迟,对性能的事要求高于数据的完整性。

正文

无法连接到 xxx。

 五   配置演示

        环境: 数据库版本 sqlserver 2012  系统版本windows server 2008 R2 域管理

        mirroring测试场景

              主体服务器--FETCHINGDATA49MSSQLSERVERTWO   tcp 5022 端口

              镜像服务器--172.168.18.132MSSQLSERVER2012  tcp 5022 端口   

              见证服务器--FETCHINGDATA49 

            镜像操作模式: 高可用. 事务安全:Full,传输机制:同步,是否仲裁:Y,见证服务器:Y,故障转移:自动。

--步骤(1) 【主体服务器】设置为完整恢复模式,  做一次完整备份和日志备份
ALTER DATABASE Mirroring_Test SET  RECOVERY FULL 
backup database Mirroring_Test to disk='C:dataMirroring_Test.bak' with init
backup log  Mirroring_Test to disk='C:dataMirroring_Test.bak'  

  

--步骤(2) 【镜像服务器】还原到镜像库上(将备份文件复制到镜像服务器目录还原)
--运行下面语句,使之创建镜像数据库,处于正在还原状态并且是覆盖。
 restore database Mirroring_Test from disk='D:dataMirroring_Test.bak' 
 with file=1,
 move N'Mirroring_Test' To N'D:dataMirroring_Test.mdf',
  move N'Mirroring_Test_log' To N'D:dataMirroring_Test_log.ldf',
  norecovery, replace

 restore log Mirroring_Test  from disk='D:dataMirroring_Test.bak' with file=2,norecovery

    图片 1

      在各服务器创建各端口

--步骤(3) 创建端点  【主体服务器】创建端点用于伙伴通讯,激活端点
create endpoint Mirroring_Test
as TCP (listener_port=5022)
for database_mirroring(role=partner,Encryption=supported)

-- 【镜像服务器】创建端点用于伙伴通讯,激活端点
create endpoint Mirroring_Test
as TCP (listener_port=5022)
for database_mirroring(role=partner,Encryption=supported)

--【见证服务器】创建端点用于见证通讯,激活端点
create endpoint Mirroring_Test
as TCP (listener_port=5023)
for database_mirroring(role=witness,Encryption=supported)

   图片 2

     步骤4 创建connect(连接)权限。为三个数据库实例设置相同的账户名称和口令

           图片 3

       图片 4

        图片 5

         图片 6

         图片 7

           步骤(5) 【主体服务器】配置镜像向导

           图片 8

           图片 9

             图片 10

     

测试


 

--测试手动故障转移(在主体服务器上执行)

ALTER DATABASE Mirroring_Test SET PARTNER failover

--测试自动故障转移(如在主体数据库服务器切断网线,或停止实例)

--测试数据同步在主体服务器上改动数据,在镜像数据库上创建快照查询

CREATE DATABASE snap_Mirroring_Test

ON (NAME=Mirroring_Test,FILENAME='D:Snap_Mirroring_Test.snap')

   AS SNAPSHOT OF  Mirroring_Test

  

--删除快照

DROP DATABASE snap_Mirroring_Test

        

1.主键:

用户 'xxxAdministrator' 登录失败。 (.Net SqlClient Data Provider)

主键的作用:保证表中的每条数据的唯一性
特点: 主键不能重复 不能为空
分类:
逻辑主键:选择为表中增加的那些“自动编号”列或者“GUID”列为主键(没有实际业务上的意义)的主键 (建议使用逻辑主键)
业务主键:选择表中那些在业务中有实际意义的列作为主键
》》》》》》》》》选择主键的策略,选什么样的列作为主键《《《《《《《《《
1》主键,建议选择那些一般不会被修改的列
2》选择单列,不选择多列(不用组合主键)
3》选择那些简单列(整数列(自动编号))

有关帮助信息,请单击:  

服务器名称: xxx
错误号: 18456
严重性: 14
状态: 1
行号: 65536

解决方案:

 

首先在微软上搜索18456,找到了这个错误的详细说明,地址

看完之后得出了一个结论,似乎跟这个账号的权限有关,需要给这个Administrator 赋一个sqlserver里面的管理员的权限,sysadmin。然后就想先用sa登录,然后给这个用户赋权。

 

可是问题又来了,sa密码我也不知道!

 

无解,只好询问同事,同事发了一个连接,

问题完美得到解决。

 

大概思路是这样:

1,先停服务

2,通过cmd,以单用户模式登录sqlserver,理论参考)

3,给Administrator 用户 赋权

4,关闭cmd,重启服务

 

打开Sqlserver,以Windows身份登录,完美,进去了。然后在修改sa的密码即可。

 

 

 

 

 

 

 

2.char(),nchar(),varchar()之间的区别

》》》》》》》》》char(10)与varchar(10)的区别《《《《《《《《《
char(10) 固定长度,表示在数据库中存储的时候占用10个字节的空间,如果超出10个则报错,如果不够10个则用空格补全。
varchar(10) 可变长度,表示该列最多可以存储10个字节,如果实际存储不够10个字节,则会在存储的时候自动计算一下实际的存储个数,而动态的改变长度。【节省空间】

》》》》》》》》》char(10)与nchar(10)的区别《《《《《《《《《

char(10) 可以存储10个字母或者5个汉字。 用来存储数据的时候,英文站1个字节,中文站2个字节。

nchar(10) 表示可以存储10个字母或10个汉字,因为每个字符都是按照unicode方法来存储的。当使用nchar(10),来存储数据的时候无论存储的是中文还是英文都是每个字符占2个。

 

3. 创建数据库

--创建一个数据库
create database School

--删除数据库
drop database School

--创建数据库的时候,指定一些数据库的相关参数。
create database School
on primary --主数据文件
(
name='School',
size=10mb,
filename='c:school.mdf',
filegrowth=10%,
maxsize=100mb
)
log on --日志文件
(
name='School_log',
filename='c:school.ldf',
size=5mb,
filegrowth=5mb,
maxsize=50mb
)

--切换数据库
use school
go

4. 创建表

--创建表
create table Class
(
ClassId int identity(1,1) primary key,
ClassName varchar(50) not null,
ClassDesc varchar(50) not null
)

--删除表
drop table Class

--向Class表中插入数据
insert into Class(ClassName,ClsDesc)values('大三','三年');

--insert into...values.. 这种写法每次只能插入一条数据

--向Class表中插入多条数据
--重复数据不重复插入,union关键字本身就具有去掉重复的意思
--union | union all (重复插入)
insert into Class
select '大三','三年' union
select '三五','间谍' union
select '一一','多久' union
select '六七','得到'

本文由澳门新葡亰手机版发布于数据库,转载请注明出处:高可用镜像,Windows身份验证连接服务器报错

上一篇:高效查詢的範例,操作数据表语句模板 下一篇:SqlServer查询存储过程中包含指定的内容,查找未
猜你喜欢
热门排行
精彩图文