代码改变世界

Linux压缩打包tar命令

2018-10-22 00:06 by 潇湘隐者, 49 阅读, 收藏, 编辑
摘要: 命令简介 在Linux系统的维护、管理中,tar命令是一个使用频率很高的命令,tar命令的功能主要是将众多文件打包成一个tar文件并压缩,并且能保持文件的权限属性。tar其实最开始是用来做磁带备份存盘的,tar是tape archive的简称。后面扩展到不仅仅局限于磁带备份存盘。也能存放到文件系统中。tar命令版本众多,下面整理了一些常用的参数,具体以实际版本为准。 命令参数 ...阅读全文

RHEL 6.6下Python 2.6.6升级到Python 3.6.6

2018-10-19 11:26 by 潇湘隐者, 41 阅读, 收藏, 编辑
摘要: 最近一段时间shell脚本写得很溜,很有成就感,一想到被自己落下的Python就感到十分心虚。开始坚持学习Python!先将自己的测试机器的Python升级到Python 3.6.6。简单整理、记录一下! 1:检查当前Linux版本&Python版本信息 # more /etc/redhat-release Red Hat Enterprise Linux Server releas...阅读全文

SQL Server 更新统计信息出现严重错误,应放弃任何可能产生的结果

2018-10-17 15:00 by 潇湘隐者, 61 阅读, 收藏, 编辑
摘要: 一台SQL Server 2008 R2版本(具体版本如下所示)的数据库,最近几天更新统计信息的作业出错,错误如下所示: Microsoft SQL Server 2008 R2 (SP2) - 10.50.4000.0 (X64) Jun 28 2012 08:36:30 Copyright (c) Microsoft Corporation Standard...阅读全文

SQL Server中LIKE %search_string% 走索引查找(Index Seek)浅析

2018-10-17 12:27 by 潇湘隐者, 376 阅读, 收藏, 编辑
摘要: 在SQL Server的SQL优化过程中,如果遇到WHERE条件中包含LIKE '%search_string%'是一件非常头痛的事情。这种情况下,一般要修改业务逻辑或改写SQL才能解决SQL执行计划走索引扫描或全表扫描的问题。最近在优化SQL语句的时候,遇到了一个很有意思的问题。某些使用LIKE '%' + @search_string + '%'(或者 LIKE @search_strin...阅读全文

Ubuntu上更改MySQL数据库数据存储目录

2018-10-15 23:37 by 潇湘隐者, 49 阅读, 收藏, 编辑
摘要: 之前写过一篇博客“MySQL更改数据库数据存储目录”,当时的测试环境是RHEL和CentOS,谁想最近在Ubuntu下面更改MySQL数据库数据存储目录时遇到了之前未遇到的问题,之前的经验用不上了(或者说之前的总结不是太全面),修改完MySQL数据库数据存储目录后重启MySQL,发现MySQL服务无法启动。 root@mylnx2:/etc/mysql/mysql.conf.d# servi...阅读全文

ssh服务突然连接不了案例总结

2018-10-11 00:04 by 潇湘隐者, 105 阅读, 收藏, 编辑
摘要: ssh服务突然连接不了案例总结 一台Oracle数据库服务器(Linux版本为Oracle Linux Server release 5.7)今天中午突然出现短暂的ssh连接不上的情况,ssh连接不上的时候,ping服务器正常,使用psping检测端口22也是正常(只返回5个包,没有持续ping),使用SQL Developer可以登录数据库进行任何操作,另外,通过DPA工具发现该服务器的CP...阅读全文

SQL Server实际执行计划COST"欺骗"案例

2018-10-10 15:10 by 潇湘隐者, 35 阅读, 收藏, 编辑
摘要: 有个系统,昨天Support人员发布了相关升级脚本后,今天发现系统中有个功能不能正常使用了,直接报超时了(Timeout expired)的错误。定位到相关相关存储过程后,然后在优化分析的过程中,又遇到了执行计划COST “欺骗”我们的这种情况,其实在我这篇博客”SQL SERVER中用户定义标量函数(scalar user defined function)的性能问题“有提及这个问题,但是很多时...阅读全文

Ubuntu下面MySQL的参数文件my.cnf浅析

2018-10-07 00:09 by 潇湘隐者, 97 阅读, 收藏, 编辑
摘要: 前几天刚接手一个MySQL数据,操作系统为Ubuntu 16.04.5 LTS, 数据库版本为5.7.23-0ubuntu0.16.04.1(APT方式安装的MySQL)。这个操作系统下的MySQL的配置文件my.cnf很多地方都让人有点不适应(跟之前的MySQL环境有些出入,之前都是维护RHEL、CentOS等操作系统环境下的MySQL)。遂研究总结了一下。具体如下所示: root@...阅读全文

Ubuntu下创建XFS文件系统的LVM

2018-10-05 23:22 by 潇湘隐者, 58 阅读, 收藏, 编辑
摘要: 以前在Linux下面玩LVM,一般都是选择ext3、ext4格式的文件系统,最近在Ubuntu 16.04.5下安装配置一个MySQL数据库服务器,遂测试了一下XFS文件系统的LVM,其实仔细对比下来,差别不大,只是文件格式化的区别以及件系统的调整命令的不同。下面很多地方不做过多解释,只是简单的记录测试过程。 在测试服务器新增一个磁盘,如下所示,新增的磁盘为/dec/sdc root...阅读全文

Linux LVM学习总结——Insufficient Free Extents for a Logical Volume

2018-10-05 16:08 by 潇湘隐者, 65 阅读, 收藏, 编辑
摘要: 如下所示,在创建LV的时候,偶尔会遇到“Volume group "xxxx" has insufficient free space (xxxx extents): xxxx required”这类错误。表示Volume group的可用空间不够了。如下测试所示: root@mylnx12:~# lvcreate -L +623G -n LogVol01 VolGroup01 Volum...阅读全文

SQL Server中通用数据库角色权限处理

2018-09-28 17:33 by 潇湘隐者, 110 阅读, 收藏, 编辑
摘要: SQL Server中通用数据库角色权限处理 最近和同事在做数据库权限清理的事情,主要是删除一些账号;取消一些账号的较大的权限等,例如,有一些有db_owner权限,我们取消账号的数据库角色db_owner,授予最低要求的相关权限。但是这种工作完全是一个体力活,而且是吃力不讨好,而且推进很慢。另外,为了管理方便和细化,我们又在常用的数据库角色外,新增了6个通用的数据库角色。如下截图所示。 ...阅读全文

Key Lookup开销过大导致聚集索引扫描

2018-09-21 15:11 by 潇湘隐者, 108 阅读, 收藏, 编辑
摘要: 以前总结过一篇文章SQL SERVER中什么情况会导致索引查找变成索引扫描 介绍了几种索引查找(Index Seek)变成索引扫描(Index Scan)的情形。昨天写一篇文章的时候,也遇到了一个让人奇怪的执行计划。一时没有想明白为什么优化器会选择聚集索引扫描。案例详情请见SQL Server OPTION (OPTIMIZE FOR UNKNOWN) 测试总结 。 如下所示,测试环境为SQL ...阅读全文

SQL Server OPTION (OPTIMIZE FOR UNKNOWN) 测试总结

2018-09-21 00:37 by 潇湘隐者, 100 阅读, 收藏, 编辑
摘要: 关于SQL Server的查询提示OPTION (OPTIMIZE FOR UNKNOWN) ,它是解决参数嗅探的方法之一。 而且对应的SQL语句会缓存,不用每次都重编译。关键在于它的执行计划的准确度问题, 最近在优化的时候,和同事对于这个查询提示(Query Hint)有一点分歧,遂动手实验验证、总结了一些东西。 关于提示OPTION (OPTIMIZE FOR UNKNOWN),它会利...阅读全文

ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes

2018-09-20 14:45 by 潇湘隐者, 109 阅读, 收藏, 编辑
摘要: 今天在MySQL 5.6版本的数据库中修改InnoDB表字段长度时遇到了"ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes"错误,第一次遇到这个错误,遂花了点学习、研究过、总结这个问题。 我们先来创建一个测试表,构造这样的错误。 mysql> use MyDB;Reading tab...阅读全文

一次存储过程参数嗅探定位流程总结

2018-09-15 12:30 by 潇湘隐者, 172 阅读, 收藏, 编辑
摘要: 昨天一开发同事反馈一个存储过程很慢,但是重编译后,存储过程就很快了。了解基本情况后,初步判断是参数嗅探问题。那么如何诊断定位、分析问题呢?下面简单介绍一下这次参数嗅探问题定位的流程过程。 首先查看该存储过程的执行计划相关信息: 如下截图所示,此存储过程是2018-09-12 9:03:01缓存的,最后一次执行是2018-09-14 08:58,而且自上次缓存后,执行了24875次。...阅读全文

ORACLE如何检查找出损坏索引(Corrupt Indexes)

2018-09-14 11:41 by 潇湘隐者, 168 阅读, 收藏, 编辑
摘要: 在Oracle数据库中如何找出损坏索引呢? 下面我们人为构造一个案例,将索引块损坏。如下案例所示: SQL> create tablespace test_data 2 datafile '/u01/app/oracle/oradata/gsp/test_data_01.dbf' 3 size 200M autoextend off 4 logging 5 segm...阅读全文

MySQL索引扩展(Index Extensions)学习总结

2018-09-12 16:19 by 潇湘隐者, 120 阅读, 收藏, 编辑
摘要: MySQL InnoDB的二级索引(Secondary Index)会自动补齐主键,将主键列追加到二级索引列后面。详细一点来说,InnoDB的二级索引(Secondary Index)除了存储索引列key值,还存储着主键的值(而不是指向主键的指针)。为什么这样做呢?因为InnoDB是以聚集索引方式组织数据的存储,即主键值相邻的数据行紧凑的存储在一起(索引组织表)。当数据行移动或者发生页分裂的时...阅读全文

Cannot obtain the required interface ("IID_IDBCreateCommand") from OLE DB provider "OraOLEDB.Oracle" for linked server xxxx

2018-09-04 23:13 by 潇湘隐者, 109 阅读, 收藏, 编辑
摘要: 今天遇到了一个关于LINKED SERVER查询报错的案例,链接服务器链接ORACLE数据库,测试没有错误,但是执行脚本的时候,报如下错误: Msg 7399, Level 16, State 1, Line 1 The OLE DB provider "OraOLEDB.Oracle" for linked server "xxxx" reported an error. Ac...阅读全文

oracle中print_table存储过程介绍

2018-09-03 22:08 by 潇湘隐者, 175 阅读, 收藏, 编辑
摘要: 一直以来,觉得MySQL中使用\G参数改变输出结果集的显示方式非常好用,尤其是在命令行界面。但是ORACLE数据库没有这个功能,今天在搜索到Tom大师的一篇博文时,发现大师用一个存储过程print_table实现了类似这样的功能。只是我们这些凡夫俗子不知道而已,特意整理在此,方便自己或有需要的人以后查看。 CREATE OR REPLACE PROCEDURE print_table(p_q...阅读全文

Linux 查看进程消耗内存情况总结

2018-09-01 00:09 by 潇湘隐者, 359 阅读, 收藏, 编辑
摘要: 在Linux中,有很多命令或工具查看内存使用情况,今天我们来看看如何查看进程消耗、占用的内存情况,Linux的内存管理和相关概念要比Windows复杂一些。在此之前,我们需要了解一下Linux系统下面有关内存的专用名词和专业术语概念: 物理内存和虚拟内存 物理内存:就是系统硬件提供的内存大小,是真正的内存,一般叫做内存条。也叫随机存取存储器(random access memory...阅读全文

SQL Server如何查找表名或列名中包含空格的表和列

2018-08-28 16:21 by 潇湘隐者, 239 阅读, 收藏, 编辑
摘要: 最近发现一个数据库中的某个表有个字段名后面包含了一个空格,这个空格引起了一些小问题,一般出现这种情况,是因为创建对象时,使用双引号或双括号的时候,由于粗心或手误多了一个空格,如下简单案例所示: USE TEST;GO --表TEST_COLUMN中两个字段都包含有空格CREATE TABLE TEST_COLUMN ( "ID " INT IDENTITY (1,1),...阅读全文

MySQL如何判别InnoDB表是独立表空间还是共享表空间

2018-08-21 23:37 by 潇湘隐者, 197 阅读, 收藏, 编辑
摘要: InnoDB采用按表空间(tablespace)的方式进行存储数据, 默认配置情况下会有一个初始大小为10MB, 名字为ibdata1的文件, 该文件就是默认的表空间文件(tablespce file),用户可以通过参数innodb_data_file_path对其进行设置,可以有多个数据文件,如果没有设置innodb_file_per_table的话, 那些Innodb存储类型的表的数据都...阅读全文

MySQL Innodb数据库误删ibdata1后MySQL数据库的恢复案例

2018-08-19 19:04 by 潇湘隐者, 278 阅读, 收藏, 编辑
摘要: 上周,以前公司的同事朋友找我帮忙,看看能否帮忙恢复一个MySQL 数据库,具体情况为:数据库版本为MySQL 5.6(具体版本不清楚),也不清楚具体的数据库引擎; 没有数据库备份,只剩下数据库下面的一些文件(frm、idb),具体原因是因为出现问题的时候,重装了MySQL,最要命的是ibdata1等文件也没有了,当然这中间细节过程如何,不清楚也不用去纠结了。大概就是这么一个情况。 因...阅读全文

ORACLE中内部函数SYS_OP_C2C和隐式类型转换

2018-08-17 09:40 by 潇湘隐者, 115 阅读, 收藏, 编辑
摘要: 什么是SYS_OP_C2C呢?官方的介绍如下: SYS_OP_C2C is an internal function which does an implicit conversion of varchar2 to national character set using TO_NCHAR function. Thus, the filter completely changes as com...阅读全文

MySQL中Identifier Case Sensitivity

2018-08-15 22:51 by 潇湘隐者, 197 阅读, 收藏, 编辑
摘要: 在MySQL当中,有可能遇到表名大小写敏感的问题。其实这个跟平台(操作系统)有关,也跟系统变量lower_case_table_names有关系。下面总结一下,有兴趣可以查看官方文档“Identifier Case Sensitivity” In MySQL, databases correspond to directories within the data directory. Each...阅读全文

The log scan number (620023:3702:1) passed to log scan in database 'xxxx' is not valid

2018-08-14 10:23 by 潇湘隐者, 138 阅读, 收藏, 编辑
摘要: 昨天一台SQL Server 2008R2的数据库在凌晨5点多抛出下面告警信息: The log scan number (620023:3702:1) passed to log scan in database 'xxxx' is not valid. This error may indicate data corruption or that the log file (.ldf) ...阅读全文

Linux查看分区文件系统类型总结

2018-08-08 20:53 by 潇湘隐者, 1146 阅读, 收藏, 编辑
摘要: 在Linux 中如何查看分区的文件系统类型,下面总结几种查看分区文件系统类型的方法。 1: df -T 命令查看 这个是最简单的命令,文件系统类型在Type列输出。只可以查看已经挂载的分区和文件系统类型。如下所示: [root@mylnx008 ~]# df -T /dev/sdbFilesystem Type 1K-blocks Used Available ...阅读全文

Linux创建和挂载XFS文件系统测试实践

2018-08-08 12:25 by 潇湘隐者, 158 阅读, 收藏, 编辑
摘要: XFS文件系统简介 维基百科关于XFS的简介如下: XFS is a high-performance 64-bit journaling file system created by Silicon Graphics, Inc (SGI) in 1993.[6] It was the default file system in SGI's IRIX operating system s...阅读全文

ssh-keygen的学习总结

2018-08-02 23:50 by 潇湘隐者, 216 阅读, 收藏, 编辑
摘要: ssh-keygen介绍 维基百科上关于ssh-keygen的介绍如下: ssh-keygen is a standard component of the Secure Shell (SSH) protocol suite found on Unix and Unix-like computer systems used to establish secure shell ses...阅读全文

Operating system error 32(failed to retrieve text for this error. Reason: 15105)

2018-08-02 15:23 by 潇湘隐者, 99 阅读, 收藏, 编辑
摘要: 一台数据库服务器的事务日志备份作业偶尔会出现几次备份失败的情况,具体的错误信息为: DATE/TIME: 2018/7/30 12:10:52 DESCRIPTION: BackupDiskFile::CreateMedia: Backup device 'M:\DB_BACKUP\LOG_BACKUP\xxxx_[2018-07-30_06h03m10_Mon]_logs.TR...阅读全文