OPS 2017/12/29 Y.ch

Sql server 死锁、运行状态检查

Sql server 死锁是由于Sql server的执行过程中,当大数据插入更新或游标操作时,方法使用不当所导致。数据库大批量数据初始化时,应当删除索引,对数据进行初始化后,进行索引重建等操作。

1.查询当前死锁或者正在执行的操作的Sql语句如下

  1. SELECT request_session_id spid,OBJECT_NAME
  2. (resource_associated_entity_id)tableName
  3. FROM sys.dm_tran_locks
  4. WHERE resource_type='OBJECT'

2.查询当前运行状态的Sql如下

  1. SELECT [Spid] = session_id,
  2.   ecid ,
  3.   [Database] = DB_NAME(sp.dbid),
  4.   [User] = nt_username,
  5.   [Status] = er.status ,
  6.   [Wait] = wait_type ,
  7.   [Individual Query] = SUBSTRING(qt.text,
  8.   er.statement_start_offset / 2,
  9.   ( CASE WHEN er.statement_end_offset = -1
  10.  THEN LEN(CONVERT(NVARCHAR(MAX), qt.text)) * 2
  11.   ELSE er.statement_end_offset
  12.   END - er.statement_start_offset ) / 2),
  13.   [Parent Query] = qt.text,
  14.   Program = program_name,
  15.   hostname,
  16.   nt_domain,
  17.   start_time
  18. FROM sys.dm_exec_requests er
  19.   INNER JOIN sys.sysprocesses sp ON er.session_id = sp.spid
  20.   CROSS APPLY sys.dm_exec_sql_text(er.sql_handle) AS qt
  21. WHERE  session_id > 50
  22.   AND session_id NOT IN ( @@SPID ) 
  23. ORDER BY 1,2

3.杀死当前进程

  1. KILL spid

直接杀死session是会存在比较大风险的,只有可以保证数据可以重复运行时在建议如此暴力操作

PS:代码里的减号(-)怎么都会变成短折线呢。。。

OPS 2017/12/20 Y.ch

W3SVC(World Wide Web 发布服务)正在停止

IIS出现异常,提示 W3SVC 无法启动,卡在“正在停止” (Stopping)的状态

1.找到该服务的PID

  1. tasklist /svc | find "W3SVC"

2.在任务管理器的详细信息页签中,找到对应进程,杀死即可

OPS 2017/09/11 Y.ch

CentOS 安装配置RabbitMQ

1.安装RabbitMQ

  1. wget https://github.com/rabbitmq/rabbitmq-server/releases/download/rabbitmq_v3_6_11/rabbitmq-server-3.6.11-1.el7.noarch.rpm  
  2. #因为RabbitMQ依赖Erlang以及socat所以直接使用yum安装rpm,会直接安装依赖项  
  3. yum install rabbitmq-server-3.6.11-1.el7.noarch.rpm  

2.验证安装

  1. rabbitmqctl -q status

--如果出现

  1. Error: unable to connect to node rabbit@controller: nodedown

--重启服务即可

  1. systemctl restart rabbitmq-server

3.常用命令

  1. #查看所有队列信息
  2. rabbitmqctl list_queues
  3. #关闭应用
  4. rabbitmqctl stop_app
  5. #启动应用,和上述关闭命令配合使用,达到清空队列的目的
  6. rabbitmqctl start_app
  7. #清除所有队列
  8. rabbitmqctl reset
  9. #更多用法及参数,可以执行如下命令查看
  10. rabbitmqctl
OPS 2017/09/11 Y.ch

Logstash 同步 Sql Server 到 Elasticsearch

1.下载并安装 Maven 非必要

  1. wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo
  2. sed -i s/\$releasever/6/g /etc/yum.repos.d/epel-apache-maven.repo
  3. yum install maven

2.安装 Microsoft JDBC Driver 6.2 for SQL Server
a).通过 Maven

  1. com.microsoft.sqlserver
  2. mssql-jdbc
  3. 6.2.1.jre8

b).直接下载,重命名为 jdbc-6.2.1.jre8.jar

  1. wget http://search.maven.org/remotecontent?filepath=com/microsoft/sqlserver/mssql-jdbc/6.2.1.jre8/mssql-jdbc-6.2.1.jre8.jar

3.创建 logstash 配置文件并保存到/etc/logstash/conf.d
Continue reading

OPS 2017/09/11 Y.ch

CentOS 配置 LogStash

1.初始化Logstash公钥

  1. rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

2.在/etc/yum.repos.d/添加名为logstash.repo的文件

  1. [logstash-5.x]
  2. name=Elastic repository for 5.x packages
  3. baseurl=https://artifacts.elastic.co/packages/5.x/yum
  4. gpgcheck=1
  5. gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
  6. enabled=1
  7. autorefresh=1
  8. type=rpm-md

3.执行安装

  1. yum install logstash

4.启动并设置自启

  1. systemctl start logstash.service
  2. systemctl enable logstash.service

5.测试,在logstash 5.5版本中会出现
“ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console”
这个错误无需关心,在后续版本中logstash会修复此问题

  1. bin/logstash -e 'input { stdin { } } output { stdout {} }' –path.settings=/etc/logstash
OPS 2017/09/10 Y.ch

CentOS 配置 ElasticSearch 5

1.下载并安装

  1. wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.2.rpm
  2. rpm -ivh elasticsearch-2.3.5.rpm

2.查找并修改配置文件

  1. whereis elasticsearch
  1. network.host: 192.168.6.128
  2. http.port: 9200

3.启动并查看安装状态

  1. systemctl daemon-reloa
  2. systemctl start elasticsearch
  3. systemctl status elasticsearch

4.安装Head,因为在ES5中Head不能通过插件方式安装,而需要创建为独立站点,或者使用Kibana

  1. #a).安装nodejs以及npm
  2. curl -sL https://rpm.nodesource.com/setup | bash -
  3. Then install, as root:
  4. yum install -y nodejs
  5. #b).获取head并定位代码
  6. git clone git://github.com/mobz/elasticsearch-head.git
  7. cd elasticsearch-head
  8. #c).更新安装 npm
  9. npm install
  10. #d).安装Grunt
  11. npm install -g grunt-cli

5.修改并启动Head,找到elasticsearch-head/Gruntfile.js

  1. connect: {
  2.     server: {
  3.         options: {
  4.             hostname:'192.168.6.128',
  5.             port: 9100,
  6.             base: '.',
  7.             keepalive: true
  8.         }
  9.     }
  10. }
  1. #前台启动:
  2. grunt server
  3. #后台启动
  4. grunt server &

6.如果用Head访问ES出现 “No 'Access-Control-Allow-Origin' header” 则需要在elasticsearch.yml增加如下节点,允许跨域访问

  1. http.cors.enabled: true
  2. http.cors.allow-origin: "*"
OPS 2017/09/10 Y.ch

CentOS 配置 防火墙

1.停止禁用firewall

  1. systemctl stop firewalld.service
  2. systemctl disable firewalld.service

2.查看当前firewall状态

  1. firewall-cmd --state

3.安装iptables-services

  1. yum install iptables-services

4.修改防火墙配置文件

  1. vi /etc/sysconfig/iptables
  1. #示例:增加Redis默认端口
  2. -A INPUT -p tcp -m state --state NEW -m tcp --dport 6379 -j ACCEPT

iptables 详解

5.重启防火墙使配置生效

  1. service redis -p 6381 start #启动6381端口实例的redis
  2. /etc/init.d/redis start #默认启动6379端口实例的redis
OPS 2017/09/10 Y.ch

CentOS 配置 Redis

1.下载并安装

  1. $ wget http://download.redis.io/releases/redis-4.0.1.tar.gz    
  2. $ tar xzf redis-4.0.1.tar.gz    
  3. $ cd redis-4.0.1    
  4. $ make   

2.编辑配置文件

  1. #bind 127.0.0.1    
  2. protected-mode no    
  3. port 6379    
  4. daemonize yes    

3.编辑Redis启动配置,将脚本复制到:/etc/rc.d/init.d/目录下 Continue reading