- 博客(33)
- 收藏
- 关注
原创 触发器系列一之DDL触发器
近期出于同步数据的需求,需要创建一个具有在目标数据库具有alter table权限的帐号,但是由于该工具在alter table同步表结构时会同时频繁发起create index和drop index。现阶段工具无法优化,只能从权限入手直接收回alter index权限。sqlserver的alter权限包含alter,create,drop,无法单独赋予create或drop权限。想让帐号只能...
2020-03-31 22:25:32
2602
原创 Ubuntu安装mssql2017
服务器版本 Ubuntu 16.04数据库版本 Sqlserver2017系统必备 :至少2G内存 :文件系统 XFS或EXT4 (其他文件系统,如BTRFS,均不受支持) :磁盘空间 6 GB : 处理器速度 2 GHz : 处理器核心 2 个核心 : 处理器类型 仅 x64 兼容步骤导入公共存储库 GPG 密钥:wget -qO- https://pac...
2019-08-12 09:30:35
2062
原创 UBUNTU 16.04安装配置ZABBIX 4.2
#下载安装资源:wget https://repo.zabbix.com/zabbix/4.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.2-1+xenial_all.debdpkg -i zabbix-release_4.2-1+xenial_all.debapt update#安装server\proxy\fronten...
2019-07-24 13:34:57
1045
原创 TEMPDB空间已满
数据库tempdb在运行过程中主要会遇到2种报错:1.tempdb空间已满2.tempdb日志已满正常情况下,tempdb空间及日志使用率会自动收缩,不需要我们定期收缩。但有些时候,效率较差的SQL语句调用较多的临时表运行较长时间,或部分连接占用临时表空间,长期没有释放,导致tempdb一直处于ACTIVE_TRANSACTION状态,tempdb就无法自动收缩。若设置了告警,则会收到tem...
2019-07-16 14:32:15
5012
原创 记一次alwayson主从执行计划不一致
前几天有生产人员反馈:同一个SQL语句,在从库可以正常执行,在主库上执行就报错。具体的sql语句如下:select DISTINCT convert(date,SUBSTRING(TEST_ID,9,8)) AA, SURVEY_DATE from test1where QA=1and convert(date,SUBSTRING(TEST_ID,9,8))<>convert...
2019-03-14 14:28:38
724
原创 sqlserver创建分区表
–test_parti–创建文件组ALTER DATABASE db_test ADD FILEGROUP [test_parti_1]ALTER DATABASE db_test ADD FILEGROUP [test_parti_2]ALTER DATABASE db_test ADD FILEGROUP [test_parti_3]ALTER DATABASE db_test AD...
2019-03-06 23:07:10
1265
原创 分区表与普通表之间切换的报错
将分区数据切换至普通表1.报错:‘ALTER TABLE SWITCH’ 语句失败。表’db_test.dbo.test_parti’ 已分区,但 索引’PK_test_parti’ 未分区。 答:源表或分区以及目标表或分区必须在同一个文件组中。 对应的索引或索引分区也必须在同一个文件组中。2.报错:ALTER TABLE SWITCH 语句失败。索引’db_test.dbo.steel_...
2019-03-06 22:53:39
387
转载 错误号 14234: '指定的 '@server' 无效(有效值由 sp_helpserver 返回)。'
返回的错误为 14234: ‘指定的 ‘@server’ 无效(有效值由 sp_helpserver 返回)。’。请使用此操作和错误来确定失败的原因并重新提交请求。’。请使用此操作和错误来确定失败的原因并重新提交请求。使用如下语句查看主机名:select @@SERVERNAMEEXEC sp_helpserver; SELECT * FROM master.dbo.sysserve...
2019-03-06 22:35:21
2392
原创 关于开启CDC实例的二三事(二)
其实公司从很久之前就开始用CDC做数据同步,之前的博客也记录过使用CDC过程中遇到的问题。今天打算把CDC相关知识点具体总结一下:一.开启库级别CDC--查询数据库是否启用CDC:1 成功; 0 失败 select name,is_cdc_enabled from sys.databases where name=db_name;--开启库级别CDC: EX...
2019-03-06 22:30:28
2096
1
原创 UBUNTU 16.04 MYSQL 5.7多实例安装
版本:ubantu 16.04mysql 5.7查看MYSQL信息 dpkg -l|grep mysqlMYSQL 卸载:sudo apt-get autoremovesudo apt-get remove mysql-serversudo apt-get autoremove mysql-serversudo apt-get remove mysql-commonsudo ...
2018-11-09 13:26:37
974
原创 finddb,conndb 函数增加
vi .bashrc–添加下列内容function cdb(){ mysql -u’test_1’ -p -S$(find /db/mysql* -name $1 -type d 2>/dev/null|awk -F’/’ ‘{print “/var/run/mysqld/mysqld"substr($3,6,6)”.sock"}’) $1;}function finddb(){ fi...
2018-10-22 13:50:21
229
原创 在只读库中解决孤立用户
如果在ALWAYSON集群中出现这样的问题:1.同一个用户名,可以登录主节点查询某个库,在从节点却无相关查询权限,连接从节点中的某个数据库即报错。但是在该报错数据库中能查询到当前用户的权限足够2.数据库迁移后,原正常工作的DBLINK无法正常工作,确认密码权限等未作变动,且在目标数据库中能查询到当前用户信息,而且权限足够…遇到上述问题,我们首先应该想到的就是孤立用户问题。因为主节点是可以...
2018-10-17 08:25:23
530
1
原创 logon failed due to trigger execution
前几天在公司数据库布了一个触发器,用来审计所有链接到数据库的账号信息。 脚本如下:CREATE TABLE master..Login_Info( Login_Name NVARCHAR(256), Login_Time DATETIME, Host_Name NVARCHAR(12...
2018-05-04 15:36:31
1931
1
原创 扩展事件
前几天,有生产人员反映库中某张表的数据总是会被更新,而该表的维护方式为纯人工维护,所以找到我,希望找出这张表的操作记录.由于该表的更新人并未发生变化,所以排除人工更新数据的可能性。借此判断是后台程序更新数据所致。 找相应的操作记录,我首先想到的是使用DMV查询正在进行的进程。但是由于不知道这张表的更新规律,无法确定更新时间。且该表数据可能是一条条更新,实际执行时间极短,很难抓到操作语句...
2018-04-23 15:56:21
604
原创 无法更改列 'xxx',因为它是 'REPLICATED'。
当我在更新表的列名称时,遇到报错‘无法更改列 ‘name’,因为它是 ‘REPLICATED’。’ 查看数据库服务器,并无相关的发布和订阅存在。在网上搜索相关错误信息,发现有网友之前同样遇到过这种报错,原因是之前进行过订阅复制,后续删除时没有删除干净,需要使用EXEC SP_REMOVEDBREPLICATION ‘发布数据库名称’来强制删除发布。 在数据库中运行上述语句后...
2018-04-20 13:25:57
2758
转载 SQL SERVER 登录名迁移
在进行数据库迁移时,一个主要工作就是进行登录名迁移。 用户名基本上可以在数据库备份与还原中进行迁移,迁移前后映射关系与权限不变。 登录名等可以在master数据库备份与还原中进行迁移,但是由于master作为系统库,存储了很多原服务器的系统信息,还原master库后,原来的服务器信息都会同步迁移过来,与现有服务器信息造成冲突,需要做很多额外操作来消除影响。 而此时如果...
2018-04-20 11:21:36
3929
原创 记一次使用链接服务器的报错
前几天为方便生产同事进行跨服务器查询,为他们建立了链接服务器,服务器名称[06]. 今天生产同事反馈,调用连接服务器查询表示返回报错:列名无效。样例如下: 查询语句: use jydb go select top 1 id from [06].datayesdb.dbo.testszm 神奇的是整表查询的时候是存在该字段的。 在其他库中执行也很正常,没有问题。 在网上...
2018-03-21 13:47:50
489
原创 LOGSHIPPING 搭建-SSMS篇
LOGSHIPPING 事务日志传送。 顾名思义:传送事务日志,主要指在主服务器上数据库进行日志备份,将日志备份传送至辅助服务器上进行还原,以期实现容灾的一种方式。因为在还原过程中,允许用户设置还原日志备份的时间。 例如。设置还原日志备份的时间为24h。则我现在在主服务器上的数据库表中新添一条数据,如果是ALWAYSON配置,则该操作会直接同步到可用性副本的可用性数据库中。如果是logshi...
2018-02-08 13:14:15
1836
原创 故障转移集群中删除节点
在将可用性副本从可用性组中删除后,我们还需将对应节点从故障转移集群中删除。 选择工具-故障转移集群管理器-群集-节点。 右击需要删除的节点,这里选择WIN-P4.选择更多操作-逐出 选择 “是” 此时可以看到节点中已没有WIN-P4。 使用添加节点向导,可以重新添加成功,说明之前WIN-P4节点的确已经删除成功,否则WIN-P4不会成功加入集群。 之后按照之前的步骤
2018-02-03 11:24:34
5730
原创 正在进行事务回滚.估计回滚已完成:0%.估计剩余时间:0秒.
今天在给数据表字段做长度变更时,遇到一点问题.由于是生产环境,在为该表做变更操作时刻意挑的操作低峰时段.正常10m左右可以完成的操作执行了20分钟左右还是正在执行中.查询会话状态,发现该会话状态是suspended,等待类型是PAGEIOLATCH_EX. 查看网上对该等待类型的解释,原来是数据页没有缓存在内存里。SQL Server在缓冲池里找到一个页面的空间,在上面申请一个EX
2018-01-31 10:41:11
6750
原创 无法连接至WIN-P1,该数据库正处于可用性组中...
今天将数据库加入可用性组中时,添加成功,但在辅助副本中打开已添加的数据库进行查询时,报错,报错信息如下: 查看其它数据库,发现已有的数据库也无法正常访问。查看数据库状态,发现该数据库并未挂起数据移动,也就是说执行以下语句并不能解决问题.ALTER DATABASE InsideTSQL2008 SET HADR RESUME;利用语句查询副本状态,发现辅助副本WIN-P1的secon
2018-01-22 14:32:25
3077
原创 ALWAYSON删除可用性数据库,可用性副本
系列一:ALWAYS ON 搭建: http://blog.csdn.net/weixin_38357227/article/details/79033494 系列二:ALWAYS ON 实现主从切换: http://blog.csdn.net/weixin_38357227/article/details/79109127 系列三:AlwaysOn添加可用性数据库: http://bl
2018-01-22 10:00:18
3834
原创 AlwaysOn添加新可用性副本
在已有ALWAYSON可用性组的情况下,如何将新的副本添加进可用性组呢?前期准备工作: 1.配置SQL SERVER2012服务器,配置静态IP地址。 2.关闭防火墙和自动更新功能 3.安装.NET Framework 3.5功能和故障转移集群功能。 4.将计算机加入域,并将与用户添加进本地管理员组,并配置DNS地址。 5.独立安装SQL SERVER,将与用户设置为SQL SERV
2018-01-20 17:40:01
4849
3
原创 AwaysOn添加侦听器
在AlwaysOn可用性组已存在一个侦听器时,使用SSMS图形化界面新添侦听器时,会出现报错信息:该可用性组已经具有一个侦听器,不能添加另一个侦听器。 这种情况下,如果我们的确需要两个侦听器来工作,怎么办呢?我们可以在故障转移集群中处理。 首先打开故障转移集群,连接到已有集群。故障转移处理器-连接到集群-浏览选择集群,连接到现有集群。 点开角色,右键角色名称-添加资源-客户端访问点-在弹
2018-01-20 11:18:57
867
原创 AlwaysOn实现主从切换
系列一:AlwaysOn搭建:http://blog.csdn.net/weixin_38357227/article/details/79033494ALWAYSON搭建成功后,主数据库可进行读写操作,从库默认只能进行读操作。在某些情况下,我们需要进行主从切换,使从库可进行读写操作,此时主库变成辅助角色。此时如果我们需要在新的辅助副本上做一些硬件升级等操作,需要停掉SQL SERVER服务,
2018-01-20 10:18:09
10048
原创 AlwaysOn添加可用性数据库
AlwaysOn搭建成功后,主从数据库已经实现数据同步。但我们经常还需要向已经建好的AlwaysOn可用性组中添加数据库。这部分是怎样车操作的呢,今天我们来做一下。 这是可用性组中原来的数据库信息。目前只有一个数据库。 在主库新建数据库,并建一张新表。然后进行完整备份和日志备份并以此还原到从库中,注意还原时采用norecovery选项。--主库WIN-P1create databas
2018-01-18 17:31:21
3822
原创 ALWAYS ON 搭建
ALWAYS ON 搭建 尝试配置公网私网分开的AlwaysOn集群搭建,以下为详细的配置步骤: 环境: 1.为每台机器配置两个网络 2.关闭每台机器的防火墙 一:配置域控1.配置域控IP: 打开网络和共享中心,进入属性界面,去掉IPv6选项,进入IPv4,设置静态IP.由于域控建在本主机,所以DNS地址为127.0.0.1,指向本机。 2.启用共享 在后期需要进行共享文件
2018-01-17 14:25:38
21889
原创 字段拼接二:使用转置
前段时间写了个帖子,主题为使用FOR XML PATH实现字段拼接,传送门如下:http://blog.csdn.net/weixin_38357227/article/details/78460857最近看书学习时,发现另一种实现字段拼接的方法,即利用转置。 表结构如下:declare @s table(groupid varchar(10) not null,memberid int not
2017-11-20 15:38:51
279
原创 SQL SERVER 表分区
分布视图:多个表做UNION操作创建文件组给文件组创建文件ALTER DATABASE InsideTSQL2008 ADD FILEGROUP [InsideTSQL2008_FileGroup_1]--表分区
2017-11-11 15:56:53
565
原创 关于开启CDC实例的二三事
注:关于SQL SERVER 2012在SP3补丁级别下对表开启CDC, 若该表有频繁的MERGE操作,则向CDC表中插入数据时会报违反唯一约束错误,尽管此时表中 并无数据。及时在关闭CDC后重新开启,仍不能解决。此问题系SQL SERVER的一个BUG,已在 SP4补丁中修复。所以若遇到此问题,升级补丁即可。 use test go /*在可以对表启用变更数据捕获之前,必须先对数据...
2017-11-03 09:44:54
3148
转载 知识碎片之排序规则
定义:在 Microsoft SQL Server 中,字符串的物理存储由排序规则控制。排序规则指定表示每个字符的位模式以及存储和比较字符所使用的规则。在查询分析器内执行下面语句,可以得到SQL SERVER支持的所有排序规则。select *from ::fn_helpcollations()返回结果:NAMEDESCRIPTION
2017-06-28 10:26:43
521
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人