Nodejs MSSQL详细解读
MSSQL是Nodejs用于连接MicrosoftSQLServer的插件。安装方法npminstallmssql配置Configconstconfig={user:'...',password:'...',server:'localhost',database:'...',options:{encrypt:true//使用windowsazure,需要设置次配置。}}user:SQLServer的登录名password:SQLServer的登录密码server:SQLServer的地址port:端口号,默认为1433domain:设置domain后,可通过domain连接数据库database:数据库名称connectionTimeout:连接timeout,单位ms默认15000requestTimeout:请求timeout,单位ms默认15000parseJSON:将json数据集转化成jsonobjpool.max:连接池最大连接数,默认10pool.min:连接池最小连接数
深入解析 SQL Server 高可用镜像实现原理
深入解析SQLServer高可用镜像实现原理今天14:42作者:郭忆SQLServer是windows平台.NET架构下标配数据库解决方案,与Oracle、MySQL共同构成了DB-EnginesRanking的第一阵营,在国内外企业市场中有着广泛的应用。Mirroring是SQLServer最常用的高可用解决方案,具有自动故障转移,高安全模式下具有数据“零”丢失,对客户端透明等优势,目前多家大的云计算厂商均采用该技术实现云端SQLServer高可用部署。今天,我们就来聊聊SQLServer高可用镜像实现原理。数据副本镜像技术实现了位于不同物理服务器上的两个SQLServer实例数据同步,在镜像集群中,SQLServer实例具有三种角色;○Principal:具有完整的数据副本,对外提供数据库读写服务;○Mirror:具有完整的数据副本,本身不提供读写服务,通过接收来自Principal的更新日志实现数据同步,允许创建快照实现报表;○Witness
SQL Server 2017正式发布,微软老牌数据库如何继往开来?
写在前面数十年来,关系型数据库一直是结构化数据存储的不二之选。从高校到工业界,关系型数据库向来是数据研究和应用的核心,也促生了大批从事数据库开发、维护和调优的人才。近年来随着各种NoSQL数据库和Hadoop技术生态的诞生和流行,RDBMS似乎受到了巨大的挑战,有着“严谨呆板”形象的关系型数据库一度被市场唱衰。然而事实证明,即便面对着众多后起之秀的竞争,有着悠久历史的关系型数据库不但没有消亡,反而历久弥坚,不断推陈出新,在现代后端数据架构中仍然占据核心地位,散发出十足活力。微软SQLServer数据库,是商业关系型数据库阵营中的杰出代表,在DB-Engines数据库流行度排行榜上常年位居前三。得益于便捷的图形化管理界面和易于上手的特点,许多人的关系型数据库之旅,就是从SQLServer开始的。如今正值SQLServer2017发布之际,我们不妨一起来看看SQLServer的前世今生,探究微软数据平台发展之路。微软SQLServer自身的历史具有传奇色彩,最初是由微软、Sybase、Ashton
Python 3.x 连接mssql数据库(pymssql 方式)
刚开始学习python,之前学习一直是用mysql数据库,一直连接成功,今天项目需要连接mssql数据一直测试不成功,搞了一天python3.6连接mssql2016成功,记录一下:在cmd下pipinstallpymssql提示缺少VisualC++14,网上下载下来安装,提示卸载vs,这个玩的比较大,其实原因不在这里,网上查看文章先下载pymssql-2.1.3-cp36-cp36m-win_amd64.whl再初始化:pipinstallE:\pymssql-2.1.3-cp36-cp36m-win_amd64.whl在pycharm里面也可以看到了File->Settings->Project:项目名称->ProjectInterpreter初始化包成功后就可以写代码了,如下:#!/usr/bin/envpython#-*-coding:UTF-8-*-importpymssqlclassMSSQL(object):'''对pymssql的简单封装pymssq
注意Vietnamese_CI_AS排序规则下的特殊字符大小敏感问题
注意Vietnamese_CI_AS排序规则下的特殊字符大小敏感问题最近,在SQLServer中遇到了Vietnamese_CI_AS排序规则的特殊字符的大小写敏感问题,是的,你没有看错,这句话并没有语病(DBA老司机懂的)。遇到这个特殊情况的时候,我也大跌眼镜,颠覆我的一些常识,OK,闲话少说,我们来演示一下这个特殊场景下出现的特殊情况。准备测试环境:服务器排序规则(ServerCollation):Latin1_General_CI_AS数据库排序规则(DatabaseCollation):Vietnamese_CI_AS注意,只有在这个特定排序规则下才会出现这个问题,准备好了测试环境后,我们先简单聊几句关于排序规则的知识,SQLServer里面的排序规则其实是包含了字符集和排序规则两样东西,不像MySQL,字符集和排序规则概念和设置分开。如果你想查看某个排序规则对应的字符集,那
使用混合云的SQL Server
近期发布的MicrosoftSQLServer2017,表明Microsoft公司正寻求不断降低其所交付的工具对平台的绑定。在SQLServer2017中,这一趋势可以从“混合云”(HybridCloud)术语和多平台本质这两个方面得以证实。下面让我们分别一窥这两个方面。Microsoft对采用基于云的服务已做了近十年的推进工作。MicrosoftAzure自2010年2月首次亮相以来,一直是公司产品的关键组成。但可能是出于成本问题上的考虑,或是需要严格的安全要求,一些项目依然需要本地部署。在本周的PASS2017峰会上,Microsoft在回顾围绕SQLServer所开展的市场营销时,似乎表明了公司所采取的方法正在发生转变。Microsoft使用了“混合云”(HybirdCloud)一词,描述了一种处于仅考虑本地部署的传统环境和完全部署于云上的环境之间的中间路线。混合云可根据需要运行本地部署的SQLServer,当可以采用云服务时使用AzureSQLDatabase,并在时机成熟时可使用即将推出的
SQL Server 2014数据库集群搭建与配置指南
成功加入AD域4.配置故障转移群集4.1创建故障转移群集1.故障转移群集概述故障转移群集是一组独立的计算机,这些计算机相互协作以提高群集角色(之前称为应用程序和服务)的可用性和可伸缩性。多台群集服务器(称为节点)通过网络和软件连接,每台群集服务器相当于一个冗余节点,整个群集系统允许某部分节点掉线、故障或损坏而不影响整个系统的正常运作。如果一个或多个群集节点出现故障,其他节点就会开始提供服务(该过程称为故障转移)。此外,群集角色会得到主动监视以验证它们是否正常工作。如果某个节点不工作,则会重新启动这些角色或将其移动到其他节点。故障转移群集还提供群集共享卷(CSV)功能,该功能提供一致的分布式命名空间,群集角色可以使用这样的命名空间,从所有的节点访问共享存储。如果一台服务器变为不可用,则另一台服务器自动接管发生故障的服务器并继续处理任务。群集中的每台服务器在群集中至少有一台其他服务器确定为其备用服务器。2.工作原理故障转移群集必须基于域的管理模式部署,以“心跳机制”来监视各个节点的健康状况;备用服务器以心跳信号来
SQL Server数据库日常维护命令与脚本
查看数据库服务器名称--默认实例SELECT@@SERVERNAMEASSERVERNAME;SELECTSERVERPROPERTY('servername')ASServerName;SELECTsrvnameASServerNameFROMsys.sysservers;SELECTSERVERPROPERTY('MachineName')ASServerName;--命名实例SELECTSUBSTRING(@@SERVERNAME,0,CHARINDEX('\',@@SERVERNAME))ASSERVERNAME;SELECTSUBSTRING(CONVERT(VARCHAR(100),SERVERPROPERTY('servername')),0,CHARINDEX('\',CONVERT(VARCHAR(100),SERVERPROPERTY('servername'))))ASServerName;SELECTSUBSTRING(srvname,0,CHARINDEX('
阿里云RDS for SQL Server使用的一些最佳实践
了解RDS的概念这也是第一条,也是最重要的一条,在使用某项产品和服务之前,首先要了解该产品或服务的功能与限制,就像你买一个冰箱或洗衣机,通常也只有在阅读完说明书之后才能利用起来它们的所以功能,以及使用时的注意事项,RDSforSQLServer也是如此。RDSforSQLServer与传统的自建机房提供SQLServer的主要不同就是用户所需负责数据库的模块多与少的问题,自建SQLServer与阿里云RDSforSQLServer所需负责的部分图1所示:当然,便捷的代价除了成本之外,另外就是限制,这就类似于用一些基础的工具可以做各类工作,但专用的工具可以高效完成特定工作一样,RDS更类似于专用的工具,限制带来的优势限制的目的是由于这部分工作由阿里云统一去做了,数据库作为服务提供给使用者,因此使用者就没有数据库以下(操作系统、存储等)部分的权限,数据库作为服务提供有以下几点优势:简单最大的好处自然是简单,无需再关注SQLServer的安装、配置、监控、报警、备份、高可用等工作,这些工作往往
SQL Server 审计
审计(Audit)用于追踪和记录SQLServer实例或数据库中发生的事件,审计主要包括审计对象(Audit)和审计规范(AuditSpecification),创建审计首先需要创建一个SQLServer实例级的审计对象,然后,创建从属于它的“服务器审计规范”或“数据库审计规范”。审计数据可以输出到审计文件(File)、安全日志(SecurityLog)和应用程序日志(ApplicationLog)。启用审计的目的一般是为了监控SQLServer执行的操作,例如,记录什么人在什么时候查询数据、修改数据,登陆SQLServer实例等,由于审计记录的数据有可能很丰富,因此,启用审计可能产生大量的日志数据,占用磁盘的大量空间。审计使用一句话来概括就是:记录谁在什么时候做了什么事,审计对象(Audit)定义:记录在何处,而审计规范(AuditSpecification)定义:记录什么事,一旦特定的事件触发,SQLServer引擎就使用审计记录事件发生的现场信息。创建和使用审计的一般步骤是:step1:创建服务器级别的审计对
使用Docker运行Microsoft SQL Server 2017
最近每天都在空闲时间努力编写Apworks框架的案例代码WeText。在文本发布和处理微服务中,我打算使用微软的SQLServerforLinux来做演示,于是也就在自己的docker-compose中加入了MSSQLServer的服务。其实在Docker中运行SQLServer是非常容易的,今天大概做个介绍吧。启动MicrosoftSQLServer2017容器下面是我目前WeText案例中用于搭建基础结构服务的docker-compose.yml文件(该文件将来还会变动,最新版本请参阅Github):version:"3"services:mongodb:image:mongovolumes:-${MONGODB_DATABASE_VOLUME}container_name:mongodbports:-"27017:27017"rabbit:image:rabbitmq:3-managementports:-"5672:5672"-"4369:4369"-"5671:5671"-"256
MariaDB ColumnStore一些限制和BUG总结
限制1、不支持CHARACTERSET语法MariaDB[test]>createtablet1(idint,namevarchar(10)CHARACTERSETutf8)->engine=Columnstore;ERROR1178(42000):Thestorageengineforthetabledoesn’tsupportThesyntaxorthedatatype(s)isnotsupportedbyColumnstore.PleasechecktheColumnstoresyntaxguideforsupportedsyntaxordatatypes.2、不支持COLLATE语法MariaDB[test]>createtablet1(idint)->engine=ColumnstoreCOLLATE=utf8_bin;ERROR1178(42000):Thestorageenginefor
SQLServer2008数据库安装图解
SQLServer2008数据库安装图解、、、=======================================解压下载的安装包,右键运行Setup.exe文件=======================================点击安装-全新安装=======================================确定=======================================输入秘钥----自己百度=======================================勾选我接受,安装使用协议=======================================安装=======================================下一步=======================================默认第一个,下一步====================================
深入SQL Server 排序规则的原理
SELECT*FROM(SELECT'-11'AStUNIONSELECT'11'ASt)AORDERBYA.tCOLLATEChinese_PRC_CI_AS执行结果截图如下:为什么这2个查询结果会是上面的这个结果呢。-和1怎么比较。11为什么比-11还小?看起来这个结果分析通过之前的文章我们知道,Chinese_PRC_CI_AS是我们在中国地区默认的排序规则。表示支持的中国大陆的不区分大小写,区分重音的字符集。这是我们最常用的排序规则之一。首先上面的案例中,是对字符串进行排序,而不是对应的阿拉伯数字进行排序。那么他需要按照对应的排序规则来对字符串进行排序。Chinese_PRC_CI_AS使用的是windows排序规则。它对应的代码页是936.代码页在之前我也一直很疑惑,什么是代码页,排序规则和代码页有什么关系,和字符集(GBK,UTF8等)又有什么联系和区别。其实,代码页也称为“内码表”,是与特定语言的字符集相对应的一张表。操作系统中不同的语言和区域设置可能使用不同的代码页.代码页和字符
SQLServer特殊字符/生僻字与varchar
对于中文版的SQLSERVER,默认安装后使用的默认排序规则为Chinese_PRC_CI_AS,在此排序规则下,使用varchar类型来可以“正常存取”存放中文字符以及一些东南亚国家的字符,同时varchar类型在存放英文字符和数字时比nvarchar节省一半的存储空间,因此很多DBA都习惯使用varchar类型来存放字符数据,但这样便存在一些乱码隐患!首先是特殊字符如上下标或版权字符,测试Code如下:--准备测试表DROPTABLETB1GOCREATETABLETB1(C1VARCHAR(200),C2NVARCHAR(200))GO--插入测试数据INSERTINTOTB1(C1,C2)SELECTN'm²',N'm²'UNIONSELECTN'®',N'®'--查询SELECTC1,CAST(C1ASNVARCHAR(200))ASC1_N,C2,CAST(C2ASVARCHAR(200))ASC2_VFROMTB1可以明显地看到上标在varchar类型下转换成普通数字2,而版权符号
t-sql
高级t-sql第1级的阶梯:使用交叉连接来引入高级t-sql源于:格雷戈里·拉森,2016/02/19(首次出版:2014/12/17链接:http://www.sqlservercentral.com/articles/Stairway+Series/119933/翻译:刘琼滨谢雪妮徐雅莉赖慧芳正文:系列本文是楼梯系列的一部分:高级t-sql的阶梯这个楼梯将包含一系列的文章,这些文章将扩展到您在前面的两个t-sqlstairways中学习的t-sql基础上,以及在基础之上的t-sqlDML和t-sql的阶梯。这个楼梯应该帮助读者准备通过微软认证考试70-461:查询微软SQLServer2012。这是一个新的楼梯系列的第一篇文章,它将探索TransactSQL(TSQL)的更高级特性。这个楼梯将包含一系列的文章,这些文章将扩展到您在之前的两个TSQLstairways中学习的TSQL基础:··t-sqlDML
MSSQL-并发控制-1-Transaction
如果转载,请注明博文来源:www.cnblogs.com/xinysu/,版权归博客园苏家小萝卜所有。望各位支持!并发控制,在于控制每一个事务的操作过程以及它们对资源的占用情况,同时要保证事务的ACID特性。这里简单描述事务类别、ACID特性及对分布式事务的简要说明。1事务类别从提交方式:自动提交事务、手动提交事务从开启方式:显式事务、隐式事务其他:批范围事务、分布式事务1.1显式事务通过API函数或者发布T-SQLbegintransaction、committransaction、commitwork、rollbacktransaction、rollbackwork、savetransaction等明确定义事务的开始和结束。这里简要说明commit、savetransaction、rollback、xact_abort。1.1.1COMMITcommit,提交最近一次未提交事务,这里注意,committransaction=commitwork=commi
SQL Server 在生产环境中这样写存储过程的坑都避免了吗?
最近因为业务的需求写了一段时间存储过程,发现之前写的存储过程存在一些不严谨的地方,特别是TRY...CATCH中嵌套事务的写法;虽然之前写的并没有错,但是还是埋藏着很大的隐患在里面。希望这篇文章能给大家一些参考;文章内容有点长还望耐心阅读。1.插入测试数据----创建表DROPTABLEscoreGOCREATETABLE[dbo].[score](idINTNOTNULLPRIMARYKEYIDENTITY(1,1),nameVARCHAR(50)NOTNULL,scoreINTNOTNULLCHECK(score>=0),monthsINTNOTNULL,createtimeDATETIMENOTNULLDEFAULTGETDATE())---根据姓名月份查询分数CREATEINDEXIX_score_nameONscore(name,months)include(score)---根据月份查询最高分数CREATEINDEXIX_score_monthsONscore(
响应式Web设计
在设计中经常遇到这几个问题:1.想要网站兼容手机、平板电脑、pc,就得为不同的设备定制不同的版本。2.想要网站的某些页面在宽屏显示器下一行显示更多的内容,又得为宽屏定制一个版本。3.很多人并不是在全屏的情况下浏览我们的页面,如果让页面随着浏览器宽度改变而相应的调整会不会比较好?有没有办法能有效解决这些问题呢?响应式Web设计(ResponsiveWebdesign)的理念是页面的设计与开发应当根据设备环境(屏幕尺寸、屏幕定向、系统平台等)以及用户行为(改变窗口大小等)进行相应的响应和调整。具体的实践方式由多方面组成,包括弹性网格和布局、图片、CSSmediaquery的使用等。无论用户正在使用pc、平板电脑,或者手机,无论是全屏显示还是非全屏的情况,无论屏幕是横向还是竖向,页面都应该能够自动切换分辨率、图片尺寸及相关脚本功能等,以适应不同设备。
Web设计的8个趋势
本文译自网站设计公司weavora.com,介绍了在他们眼里8个Web设计趋势:单页面、用照片做背景、色块设计、超大号的图片、聚焦简洁、响应式设计、视差滚动、强调字体,每个趋势后面都附了数个案例,相信对网站设计师会有一定的参考价值。单页面单个长页面的设计一度不受人待见(无论是客户还是设计师),但现在整个互联网随处可见。一个合理的解释是,用户现在早已习惯于使用鼠标滚轮了,比起在多个页面间来回查看,用滚轮上下浏览要省事得多。包括苹果在内的一些知名大公司也使用了相当长的页面来展示产品,获得了很不错的效果。