代码改变世界

ORA-04045: errors during recompilation/revalidation of LBACSYS.LBAC_EVENTS

2019-06-25 23:17 by 潇湘隐者, 12 阅读, 收藏, 编辑
摘要: 使用orachk工具检查数据库实例的时候,发现报告里面有类似下面这样一些错误(最近有给Oracle 10g应用补丁PSU 10.2.0.5.180717,不清楚是这个产生的还是其他原因导致),使用脚本检查,发现有很多INVALID对象(具体参考[转载]—Health Check Reports Problem: Dependency$ p_timestamp mismatch for VALID ...阅读全文

Oracle 10g&11g安装卸载Oracle Label Security

2019-06-25 22:13 by 潇湘隐者, 16 阅读, 收藏, 编辑
摘要: Oracle Label Securit简介 Oracle Label Security是内置于数据库引擎中的过程与约束条件集,该数据引擎实施对在单个表或整个模式上的"行"级访问控制。要利用Oracle Label Security,需要创建一个或多个安全策略,其中每一个安全策略都包含一组标签。你可以用这些标签来标明哪些用户能够访问什么类型数据。在创建了一个策略之后,将该策略应用于需要保护的表...阅读全文

[转载]—Health Check Reports Problem: Dependency$ p_timestamp mismatch for VALID objects (文档 ID 781959.1)

2019-06-25 20:46 by 潇湘隐者, 16 阅读, 收藏, 编辑
摘要: Health Check Reports Problem: Dependency$ p_timestamp mismatch for VALID objects (文档 ID 781959.1) APPLIES TO: Oracle Database - Enterprise Edition - Version 9.2.0.5 to 12.1.0.2 [Release 9.2 to 12...阅读全文

链接服务器"(null)"的 OLE DB 访问接口 "SQLNCLI10" 返回了消息 "Cannot start more transactions on this session."

2019-06-20 10:32 by 潇湘隐者, 44 阅读, 收藏, 编辑
摘要: 开发同事反馈一个SQL Server存储过程执行的时候,报“链接服务器"(null)"的 OLE DB 访问接口 "SQLNCLI10" 返回了消息 "Cannot start more transactions on this session."。这个存储过程,个人做了一个精简和脱敏处理后如下: BEGIN TRY BEGIN TRANSACTION ...阅读全文

ERROR 2013 (HY000): Lost connection to MySQL server at 'reading authorization packet', system error: 0

2019-06-18 15:31 by 潇湘隐者, 44 阅读, 收藏, 编辑
摘要: 最近遇到一个MySQL连接的问题,远程连接MySQL时遇到“ERROR 2013 (HY000): Lost connection to MySQL server at 'reading authorization packet', system error: 0”错误,如下所示: [root@DB-Server ~]# mysql -h 10.13.65.93 -u onecard -p E...阅读全文

ApexSQL Log中的Redo Script跟原始SQL不一致问题

2019-06-13 12:13 by 潇湘隐者, 60 阅读, 收藏, 编辑
摘要: 最近遇到一个误更新数据的问题,使用ApexSQL Log做挖掘事务日志的时候,发现ApexSQL Log生成的Redo Script跟原始SQL是有区别的。它们并不是完全一致的。只是逻辑上等价而已。如下所示,我们做一个测试,如下所示,创建一个表后,并模拟忘记添加条件,出现误删除数据的情况 SELECT * INTO KERRY_TEST FROM SYS.OBJECTS; DELETE F...阅读全文

MySQL如何找出未提交事务信息

2019-06-12 23:34 by 潇湘隐者, 135 阅读, 收藏, 编辑
摘要: 前阵子,我写了一篇博客“ORACLE中能否找到未提交事务的SQL语句”, 那么在MySQL数据库中,我们能否找出未提交事务执行的SQL语句或未提交事务的相关信息呢? 实验验证了一下,如果一个会话(连接)里面有一个未提交事务,然后不做任何操作,那么这个线程处于Sleep状态 mysql> select connection_id() from dual;+-----------------...阅读全文

ORA-02273: this unique/primary key is referenced by some foreign keys

2019-06-12 15:22 by 潇湘隐者, 42 阅读, 收藏, 编辑
摘要: 关于ORA-02273错误,以前还真没有仔细留意过。昨天遇到了这个问题,遂顺便总结一番,以后遇到这类问题就可以直接用下面方案解决。如下所示,我们首先准备一下测试环境。 CREATE TABLE TEST.TEST ( OWNER VARCHAR2(30), OBJECT_ID NUMBER, OBJECT_NAME VARCHAR2(3...阅读全文

MySQL表的碎片整理和空间回收小结

2019-05-29 12:24 by 潇湘隐者, 239 阅读, 收藏, 编辑
摘要: MySQL表碎片化(Table Fragmentation)的原因 关于MySQL中表碎片化(Table Fragmentation)产生的原因,简单总结一下,MySQL Engine不同,碎片化的原因可能也有所差别。这里没有深入理解、分析这些差别。此文仅以InnoDB引擎为主。总结如有不足或错误的地方,敬请指出。 InnoDB表的数据存储在页(page)中,每个页可以存放多条记录。这些记...阅读全文

ORACLE中能否找到未提交事务的SQL语句

2019-05-27 12:12 by 潇湘隐者, 176 阅读, 收藏, 编辑
摘要: 在Oracle数据库中,我们能否找到未提交事务(uncommit transactin)的SQL语句或其他相关信息呢? 关于这个问题,我们先来看看实验测试吧。实践出真知。 首先,我们在会话1(SID=63)中构造一个未提交的事务,如下所: SQL> create table test 2 as 3 select * from dba_objects; Table creat...阅读全文

SQL Server扩展事件system_health会话总结

2019-05-23 10:41 by 潇湘隐者, 96 阅读, 收藏, 编辑
摘要: system_health会话概念 我们知道扩展事件(Extended Events)是从SQL Server 2008开始引入的。system_health会话是SQL Server默认包含的扩展事件会话。该会话在SQL Server数据库引擎启动时自动启动,并且运行时不会对性能造成任何明显影响。该会话收集的系统数据可用于帮助对数据库引擎的性能问题进行故障排除。 该会话收集的信息包括:(...阅读全文

Oracle关于TX锁的一个有趣的问题

2019-05-21 15:31 by 潇湘隐者, 124 阅读, 收藏, 编辑
摘要: 前阵子有一个网友在群里问了一个关于Oracle数据库的TX锁问题,问题原文如下: 请教一个问题: 两个会话执行不同的delete语句,结果都是删除同一个行。先执行的会话里where条件不加索引走全表扫描,表很大,执行很慢;后执行的用where条件直接用rowid进行delete。 Oracle的什么机制使第二个会话执行后一直是等待第一个会话结束的呢。 那么我们先动手实验一下,来看看这个问题...阅读全文

SQL Server 2017的Linked Server配置触发的bug“Exception Code = c0000005 EXCEPTION_ACCESS_VIOLATION”

2019-05-20 11:41 by 潇湘隐者, 60 阅读, 收藏, 编辑
摘要: SQL Server 2017的Linked Server配置触发的bug“Exception Code = c0000005 EXCEPTION_ACCESS_VIOLATION” 现象描述: 数据库版本:SQL Server 2017 (RTM-CU14) (KB4484710) - 14.0.3076.1 (X64) 出现大量的Dump File文件,如下所示: ...阅读全文

SQL Server一个特殊的阻塞案例分析2

2019-05-10 11:08 by 潇湘隐者, 127 阅读, 收藏, 编辑
摘要: 最近发现一个非常奇怪的阻塞问题,如下截图所示(来自监控工具DPA),会话583被会话1036阻塞,而且阻塞发生在tempdb,被阻塞的SQL如下截图所示,会话等待类型为LCK_M_S 因为DPA工具不好截取全部信息,使用下面SQL语句获取了阻塞会话的详细信息如下,来自Microsoft SQL Server Management Studio - Tran...阅读全文

SQL Server Sleeping会话占用内存资源浅析?

2019-05-08 23:08 by 潇湘隐者, 135 阅读, 收藏, 编辑
摘要: 在SQL Server中,会话的状态有运行(Running)、睡眠(Sleeping)、休眠(Dormant)、Preconnect 等状态,有时候你会在数据库中看到很多会话处于睡眠(Sleeping)状态,那么这些睡眠(Sleeping)状态的会话会消耗CPU、Memory资源吗?如果消耗资源的话,那么sleeping会话具体消耗多少内存资源呢? 另外它会影响数据库性能吗? 首先,处于睡...阅读全文

SQL Server数据库文件与文件组总结

2019-04-25 13:38 by 潇湘隐者, 165 阅读, 收藏, 编辑
摘要: 文件和文件组概念 关于文件与文件组,简单概括如下,详情请参考官方文档“数据库文件和文件组Database Files and Filegroups”或更多相关资料: 数据文件概念: 每个SQL Server数据库至少包含两个作系统文件:一个数据文件(data file)和一个日志文件(log file)。数据文件包含数据和对象,例如表、索引、存储过程和视图....。日志文件包含恢复...阅读全文

SQL Server使用sp_rename重命名约束注意事项

2019-04-18 16:12 by 潇湘隐者, 141 阅读, 收藏, 编辑
摘要: 在SQL Server中,我们可以使用sp_name这个系统存储过程重命名数据库中对象的名称。 此对象可以是表、 索引、 列、 别名,约束等数据类型(具体可以参考官方文档)。上周在使用这个函数重构数据库中约束的时候,遇到了下面错误,如下所示: USE AdventureWorks2014; GO sp_rename 'ErrorLog.DF_ErrorLog_ErrorTime', 'DF...阅读全文

LogWriter: Operating system error 21(error not found) encountered

2019-04-15 14:58 by 潇湘隐者, 81 阅读, 收藏, 编辑
摘要: 一台老旧的数据库服务器(SQL Server 2005)突然报如下错误,而且数据库处于RECOVERY PENDING ,检查错误日志,发现这个错误是突然出现的。没有任何其它人为误操作导致 Date 2019/4/15 10:57:47 Log SQL Server (Archive #1 - 2019/4/15 11:16:00) Source ...阅读全文

SQL Server的Linked Server支持使用SEQUENCE吗?

2019-04-11 16:04 by 潇湘隐者, 94 阅读, 收藏, 编辑
摘要: SQL Server的Linked Server支持使用SEQUENCE吗? SQL Server 2012开始支持序列(SEQUENCE),今天遇到有个同事咨询,能否在LINKED SERVER里面调用SEQENCE, 结果我测试发现不行,但是不管官方文档也好,网上相关资料也罢,都没有说支持,也没有说不支持。 例如官方文档NEXT VALUE FOR (Transact-SQL)中明确表...阅读全文

SQL Server使用sp_spaceused查看表记录存在不准确的情况

2019-04-09 09:10 by 潇湘隐者, 202 阅读, 收藏, 编辑
摘要: 在之前写过一篇博客"关系数据库如何快速查询表的记录数",里面介绍了使用sp_spaceused查看表的记录数是否正确的问题,具体如下: 关于问题3:有多个索引的表,是否记录数会存在不一致的情况? 答案:个人测试以及统计来看,暂时发现多个索引的情况下,sys.partitions中的rows记录数都是一致的。暂时没有发现不一致的情况,当然也不排除有特殊情况。 关于问题5: 分区表的...阅读全文

SQL Server死锁中的会话隔离级别为序列化(Serializable)实验测试

2019-04-03 09:36 by 潇湘隐者, 182 阅读, 收藏, 编辑
摘要: 最近在分析SQL Server的死锁时,发现一个比较有意思的现象,发现死锁当中一个会话的隔离级别为序列化(Serializable),这个是让人比较奇怪的地方,我们知道SQL Server数据库的默认隔离级别为已提交读(READ COMMITTED),除非人为设置事务隔离级别(TRANSACTION ISOLATION LEVEL),否则事务隔离级别会使用数据库的默认隔离级别。在分析了死锁相关的存...阅读全文

SQL Server统计信息偏差影响表联结方式案例浅析

2019-03-31 19:54 by 潇湘隐者, 359 阅读, 收藏, 编辑
摘要: 我们知道数据库中的统计信息的准确性是非常重要的。它会影响执行计划。一直想写一篇关于统计信息影响执行计划的相关博客,但是都卡在如何构造一个合适的例子上,所以一直拖着没有写。巧合,最近在生产环境中遇到这么一个案例,下面对案例中的相关信息做了脱敏处理,有些中间步骤也省略了,只关注核心部分SQL。如下所示,同事反馈一个SQL语句执行很慢。 UPDATE bSET b.[Statu...阅读全文

SQL Server关于predicate、density、selectivity、cardinality名词浅析

2019-03-27 08:45 by 潇湘隐者, 132 阅读, 收藏, 编辑
摘要: 在SQL Server中,我们要看懂执行计划和统计信息,我们可能需要深刻理解一些关键词,例如密度(Density)、选择性(Selectivity)、谓词(predicate)、基数(Cardinality)。前阵子,对密度和选择性的概念模糊了,刚好看了Query Tuning Fundamentals: Density, Predicates, Selectivity, and Card...阅读全文

Oracle dblink的连接模式的关系测试总结

2019-03-23 11:44 by 潇湘隐者, 201 阅读, 收藏, 编辑
摘要: 这篇主要介绍一下database link由于连接数据库的方式不同遇到的一些问题,我们知道连接ORACLE服务器的模式一般有两种方式:专用服务器连接(dedicated server)和共享服务器连接(shared server)。这次遇到的案例服务是dblink跟连接ORACLE方式有关,当然本质原因是什么呢,这也是我这篇文章在探讨的问题。下面通过案例来讲述一下具体情况: 我们先来搭建测试环...阅读全文

MySQL系统变量sql_safe_updates总结

2019-03-21 09:14 by 潇湘隐者, 153 阅读, 收藏, 编辑
摘要: MySQL系统变量sql_safe_updates总结 在MySQL中,系统变量sql_safe_updates是个非常有意思的系统变量,在Oracle和SQL Server中都没有见过这样的参数或功能。如果这个系统变量设置为1的话,意味着update与delete将会受到限制。个人臆测,之所以提供这个功能,一方面是要避免出现更新或删除数据时,忘记添加WHERE条件,导致数据被误更新或误删的情...阅读全文

SQL Server移除事务日志后sys.master_files依然存在记录问题

2019-03-19 15:38 by 潇湘隐者, 77 阅读, 收藏, 编辑
摘要: 在SQL Server中移除了事务日志文件后,使用sys.master_files检查时发现,对应的事务日志文件记录信息依然存在sys.master_files里面,只是状态state_desc为OFFLINE。需要经过一段时间,这条记录在这个系统视图才会消失。 DECLARE @db_name NVARCHAR(32);SET @db_name=N'TEST';SELECT f.dat...阅读全文

阿里云RDS for SQL Server测试吐槽

2019-03-12 12:53 by 潇湘隐者, 428 阅读, 收藏, 编辑
摘要: 最近测试了一下阿里云RDS for SQL Server,有些设计简直就是反人类,让人不得不吐槽一番。 1:控制台创建数据库时,数据库名不能包含大小字母。 如上截图所示,数据库名称不能包含大写字母,好吧,这个限制我认了。 但是使用“高权限账号”通过SSMS客户端连接数据库,可以创建包含大写字母的数据库。这个是完全不一致的行为? 实在不明白要弄成前后矛盾!。最坑爹的是,如果你用S...阅读全文

SQL Server作业报错特殊案例

2019-03-08 17:15 by 潇湘隐者, 255 阅读, 收藏, 编辑
摘要: 一个作业报错,报错信息如下,从错误信息根本看不出为什么出错,手工运行作业又成功了。一时不清楚什么原因导致作业出错。 MessageExecuted as user: NT SERVICE\SQLSERVERAGENT. ...eration. [SQLSTATE 01003] (Message 8153) Mar 6 2019 8:09AM [SQLSTATE 01000] (Mess...阅读全文

Variable SQLLOGDIR not found

2019-03-01 12:58 by 潇湘隐者, 119 阅读, 收藏, 编辑
摘要: 昨天在一数据库(SQL Server 2008 R2 SP3)上部署了一个作业,今天早上收到告警邮件,作业执行报错“Unable to start execution of step 1 (reason: Variable SQLLOGDIR not found). The step failed”,刚开始有点莫名其妙,后面检查发现出错的原因是因为在高级选项(Advanced)里面的output...阅读全文

ORA-279 signalled during: alter database recover logfile

2019-03-01 11:47 by 潇湘隐者, 223 阅读, 收藏, 编辑
摘要: 在RMAN的RECOVER还原过程中,RMAN界面正常,但是检查、刷新告警日志,发现告警日志里面有ORA-279,如下所示: alter database recover logfile '/u06/archivelog/2019_02_19/o1_mf_1_16228_g6oznpbv_.arc'Thu Feb 21 08:49:48 CST 2019Media Recovery Lo...阅读全文