sqlserver

程序员修神之路--做好分库分表其实很难之二(继续送书)

心已入冬 提交于 2020-04-25 07:11:04
菜菜哥,上次听你给我讲了分库的情况后,我明白了很多,能再给我讲讲分表吗 有收获就好,分表其实有很多情况和分库类似 还有不一样的情况吗? 有呀,本来数据库和表是不同层面的东西,肯定有差异 那你给讲讲呗 讲可以,一杯coffee如何? 为什么分 在正式开始之前,菜菜还是要强调一点,你的数据表是否应该分,需要综合考虑很多因素,比如业务的数据量是否到达了必须要切分的数量级,是否可以有其他方案来解决当前问题?我不止一次的见过,有的leader在不考虑综合情况下,盲目的进行表拆分业务,导致的情况就是大家不停的加班,连续几周996,难道leader你不掉头发吗?还有的架构师在一个小小业务初期就进行表拆分,大家为了配合你也是马不停蹄的加班赶进度,上线之后反而发现业务数据量很小,但是代码上却被分表策略牵制了太多。拆表引起的问题在特定的场景下,有时候代价真的很大。 数据库表的拆分解决的问题主要是存储和性能问题,mysql在单表数据量达到一定量级后,性能会急剧下降,相比较于sqlserver和Oracle这些收费DB来说,mysql在某些方面还是处于弱势,但是表的拆分这个策略却适用于几乎所有的关系型数据库。 数据库进行表拆分不要太盲目 分表策略 表的拆分和数据库的拆分有相似之处,但是拆分的规则也有不同。以下的拆分规则针对的是拆分一个表。 横向切分 横向切分是诸多业务中最常用的切分方式

SQL Server 2000~2017补丁包及如何更打补丁

余生颓废 提交于 2020-04-25 06:04:09
最新更新 以下每个链接提供此页的“适用对象”部分中列出的所有适用产品和技术的信息 。 产品版本 最新 Service Pack 最新 GDR 最新累积更新 CU 发布日期 通用指南 SQL Server 2019 空值 KB 4517790 空值 空值 SQL Server 2019 安装 SQL Server 2017 空值 KB 4505224 CU 17 (KB 4515579) 2019 年 10 月 8 日 SQL Server 2017 安装 SQL Server 2016 SP2 (KB 4052908) KB 4505220 CU 10 (KB 4524334) 2019 年 10 月 8 日 SQL Server 2016 安装 SQL Server 2016 SP1 (KB 3182545) KB 4505219 CU 15 + GDR (KB 4505221) 2019/7/9 SQL Server 2016 安装 SQL Server 2016 空值 KB4058560 CU 9 (KB 4058559) 2017/11/22 SQL Server 2016 安装 SQL Server 2014 SP3 (KB 4022619) KB 4505218 CU 4 (KB 4500181) 2019/7/29 SQL Server 2014 安装 SQL

Oracle 和 Sql service 区别

安稳与你 提交于 2020-04-25 05:22:42
我主要用过的数据库为Oracle10g和SqlServer2008,通过实际运用和查阅资料整理如下: 主题 Oracle 10g SQLServer 2008 存储过程格式 Create Or Replace Procedure 存储过程名 (参数列表) IS Begin ---存储过程内容 End 存储过程名; Create Procedure 存储过程名 (参数列表) AS Begin --存储过程内容 End 存储过程参数 1、指定参数类型,但不指定长度; 2、在参数及类型间要加入输入输出标识(in 、out); eg: param in int 1、指定参数类型,并指定长度; 2、输出参数需要在类型后面加输出标识(output 或 out) eg: @param nvarchar(10) out 使用存储过程 1、直接使用存储过程名; 2、在存储过程后面的括号内列出参数; eg: proc_GetList (param1 , param2); 1、关键字Exec,存储过程名; 2、参数在存储过程后面逐个列出,输出参后面要加输出标识(output 或 out); eg: Exec proc_GetList @param1, @param2 out 自定义函数格式 Create Or Replace Function 函数名 (参数列表) Return 返回值 --可为参数

【查阅】教你使用SQL SERVER复制

僤鯓⒐⒋嵵緔 提交于 2020-04-25 03:29:26
关键词:复制,复制总结,复制汇总,复制查阅 参考联机丛书,复制的配置与使用: https://docs.microsoft.com/zh-cn/sql/relational-databases/replication/tutorial-preparing-the-server-for-replication?view=sql-server-2017 1、概念与搭建 Step1:SQL SERVER复制介绍 Step2:SQL Server 复制事务发布 Step3:SQL Server 通过备份文件初始化复制 Step4:SQL Server 跨网段(跨机房)复制 Step5:SQL Server 跨网段(跨机房)FTP复制 Step 6 :SQL Server 数据变更时间戳(timestamp)在复制中的运用 Step 7 :SQL Server 多实例下的复制 总结参考使用: http://blog.itpub.net/30126024/viewspace-2639648/ 2、优化与使用    SQL Server复制情况下的高可用方案(一)镜像+复制 SQL Server提高事务复制效率优化(四)修改数据同步过程优化 SQL Server提高事务复制效率优化(三)订阅初始化优化 SQL Server提高事务复制效率优化(二)快照初始化优化 SQL

不能收缩 ID 为 %s 的数据库中 ID 为 %s 的文件,因为它正由其他进程收缩或为空。

耗尽温柔 提交于 2020-04-25 03:05:18
SQLServer数据库通常都不建议进行SHRINKFILE操作,因为SHRINKFILE不当会造成一定的性能问题。 但是当进行了某些操作(例如某个超大的日志类型表转成分区表切换了数据文件),数据库某个文件组中的剩余空间占了整个磁盘的很大一部分,而且磁盘空间已经吃紧的情况下,你也许会考虑收缩一下某个数据文件。 收缩数据文件时,可以每次收缩一点点(例如每次5GB)来进行。 然而博主最近对某个数据库进行数据库收缩时碰到了标题所示的困扰。在DBCC SHRINKFILE (db_name , target_size)执行了几次之后。 DBCC SHRINKFILE ( db_name , target_size) 莫名出现了如下错误: 不能收缩 ID 为 6 的数据库中 ID 为 1 的文件,因为它正由其他进程收缩或为空。 据网上的经验,备份之后仍然不变,重启也无效,尝试重建某些表的索引,也无效。 但博主在尝试将数据库文件增加10MB,然后再次收缩数据库的时候这个错误消失了。 ALTER DATABASE db_name MODIFY FILE ( NAME = file_name , SIZE = target_size ) 后来从 官方社区 找到了答案:应该是我在进行DBCC SHRINKFILE的时候正好同时进行了备份操作(定时日志备份)。

为什么作为下游的WSUS更新服务器总有一直处于下载状态的文件

痴心易碎 提交于 2020-04-25 02:20:30
在 上一篇关于WSUS无法更新Win10 1809 之后,最近又遇到了下游服务器不正常的问题,而且在交流群中有群友问过这类问题…… 问题现象: 在下游服务器上使用同步更新后会看到一个一直处于需要文件的更新。 图 1 一直处于需要文件的更新 根据我的观察,最近几天一直都有,由于前一段时间修理了一下下游更新服务器,因大量文件需要同步,就一直等数据同步,可最近一段时间经常能看到这个,感觉到可能是哪里有问题,需要根据这个不正常的现象进行问题排查。 解决问题: 借助 HTTPNetworkSniffer 嗅探工具 ,找找看 HTTP 请求中的不和谐反馈。 在点击立即同步后没多久,就在工具中看到了反馈 404 这个错误。 图 2 无法获取上游服务器中的更新文件 通过猜测 esd 文件的性质,和图 1 中文件大小, 估摸着 可能就是这个文件。 【 ESD 文件是用来升级操作系统,尤其是 Win10 更新的一种加密压缩文件,因此等同于一个操作系统的 WIM 文件,所以体积比较大是正常的】 在上游更新服务器上搜索这个文件 “ A7497EF7AFF694250BE967D2D10C6116A5D26523.esd ” 无果,可以确定问题应该存在于上游服务器。 对于 WSUS 更新服务器的设计框架是有一个数据库(通常是系统内建的 SQLServer 或者 WID )记录补丁信息,一个叫做 WSUS

Kettle的使用——大数据清洗技术

▼魔方 西西 提交于 2020-04-25 01:51:42
参考德拓视频学习: http://113.31.104.47/portal/#/course/courseDetail/b34d160db64624732ef152a1118af11a?courseId=1b7e84f4eb8552536e2267093dbd7972 kettle安装: 下载包直接解压打开就能用,不在阐述; 遇到的问题: 1.连接MySQL报错: ①报错: Driver class 'org.gjt.mm.mysql.Driver' could not be found, make sure the 'MySQL' driver (jar file) is installed. org.gjt.mm.mysql.Driver 原因:没有识别到连接数据库的驱动jar包 解决方法: 将驱动jar包复制粘贴到data-integration\lib文件下(data-integration为kettle安装目录); 重启spoon 。 操作完成之后反复尝试还是报相同的错,识别不到,则说明你的kettle版本与你的驱动版本不容,无法识别。(例如我的kettle7.0无法识别mysql-connector-java-8.0.19.jar)。那么只有换版本或者换连接的数据库(这里我放弃连接MySQL,转为连接sqlserver) ②报错: Error connecting to

int16、int32、int64的范围

别来无恙 提交于 2020-04-24 23:37:52
做了一个 项目本地测了没问题发布到正式环境上,几天之后有个统计页面报错了,看了本地是正常的, 于是就排查,发现 ID 列 在对 字符串转int 时候 由于用了 Convert.TonInt16 长度不够, 数据库的ID 已经到了33000。 自己也知道 Convert.TonInt16 、 Convert.TonInt32、Convert.TonInt64、int.parse 使用有区别的, 但是做项目时候没想到这里来,随手就来了一个 int16 , 这么一随手日后就有bug了,以后写代码要严谨点。又去温习了一遍每种使用的范围。 int 范围 -2,147,483,648 到 2,147,483,647 int16-数值范围:-32768 到 32767 int32-数值范围:-2,147,483,648 到 2,147,483,647 int64-数值范围:-9223372036854775808 到 9223372036854775808 附一个别人的地址: https://blog.csdn.net/judongbin123/article/details/81093275 ,写的是 16 进制与2进制的转换。 https://www.cnblogs.com/liuqifeng/p/10405121.html 这个地址是解读 Sqlserver数据库中char、varchar

修改MSSQL的排序规则(最好先备份)

巧了我就是萌 提交于 2020-04-24 23:16:31
1. 查看当前安装数据库默认排序规则 select SERVERPROPERTY('Collation') 2. 找到默认安装目录 例如: C:\Program Files\Microsoft SQL Server\140\Setup Bootstrap\SQLServer2016 3. 管理员cmd到安装目录 关闭服务 Net stop mssqlserver 修改administrator和bwi @1234 ,以及排序规则如Chinese_PRC_BIN Setup /QUIET /ACTION=REBUILDDATABASE /instancename=MSSQLSERVER /SQLSYSADMINACCOUNTS=administrator /sapwd=bwi[@1234](https://my.oschina.net/a12531) /sqlcollation=Chinese_PRC_BIN 重启服务 Net start mssqlserver 4. 问题 重启登录不上 https://www.cnblogs.com/lusunqing/p/10566319.html 数据库不见了 右键master查看属性·文件,附加路径位置的数据库,或者用备份还原。 5. 参考 https://www.cnblogs.com/larry2016/p/7641522.html 来源

[ThinkPHP6.*安装 (草稿先发布,再维护)

徘徊边缘 提交于 2020-04-24 21:16:05
ThinkPHP6.0的安装,官方文档中有详细的说明,不过在安装之前,大家还是要做一些准备的,就是PHP本地开发环境 的搭建。 官方手册地址: https://www.kancloud.cn/manual/thinkphp6_0/1037609 本地PHP环境的搭建 PHP本地开发环境的搭建 composer的安装和使用 学习PHP大家一定要对 composer 有所了解,至少使使用简单的命令。在使用时,注意更换源(国内镜像)。 ThinkPHP6.0的安装 如果你是第一次安装的话,在命令行下面,切换到你的WEB根目录下面并执行下面的命令: composer create -project topthink /think tp 这里的 tp 目录名你可以任意更改,这个目录就是我们后面会经常提到的应用根目录。 如果你之前已经安装过,那么切换到你的应用根目录下面,然后执行下面的命令进行更新: composer update topthink /framework 更新操作会删除 thinkphp 目录重新下载安装新版本,但不会影响 app 目录,因此不要在核心框架目录添加任何应用代码和类库。 一般情况下, composer 安装的是最新的稳定版本,不一定是最新版本,如果你需要安装实时更新的版本(适合学习过程),可以安装 6.0.x-dev 版本。 composer create