Redis日常命令整理

前言

整理下在linux中操作redis中的一些命令

1、统计个数

redis中名称含有OMP_OFFLINE的key的个数;

1
src/redis-cli keys "*OMP_OFFLINE*" | wc -l

2、批量删除

批量删除 0号数据库中名称含有OMP_OFFLINE的key:

1
src/redis-cli -n 0 keys "*OMP_OFFLINE*" | xargs src/redis-cli -n 0 del

在redis的客户端环境中并不支持批量删除。

可以把某个keys的结果全部输出到文件中,比如keys.log

……

阅读全文

eclipse之jrebel热部署插件

前言

JRebel是一个J2EE热部署的工具。使用它可以减少浪费8-18%的开发时间在项目的构建和部署上。虽然Java也提供了HotSpot的JVM,但是如果你修改的类中有方法名称变动的话,HotSpot就无能为力了,必须要重要启动应用服务器。JRebel则可以动态监视class文件及配置文件,如果有文件更新,被调用时就会被JRebel重新加载,达到热部署的目的。

……

阅读全文

市面上所有浏览器内核或UserAgent参数

前言

市面上常见的浏览器内核,只需要挑其中常见的测试即可

内核 介绍
Trident内核 IE最先开发或使用的,也称IE内核,360浏览器使用的也是IE内核;
Edge内核 微软最新浏览器的内核;
Webkit内核 谷歌chrome浏览器最先开发或使用,也叫谷歌内核;
Gecko内核 Netscape6开始采用的内核,后来的Mozilla FireFox (火狐浏览器) 也采用了该内核,K-Meleon浏览器也是使用这种内核;
Presto内核 目前只有Opera浏览器采用该内核
苹果safari sarafi浏览器,苹果自己的浏览器内核

1、代码

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
//判断访问终端类型
var browser={  
    versions:function()  
    {  
        var u = navigator.userAgent, app = navigator.appVersion;  
        return {  
            mobile: !!u.match(/AppleWebKit.*Mobile.*/), //是否为移动终端  
            weixin: !!u.match(/MicroMessenger/),//是否微信  
            android: !!u.match(/Android/), //是否安卓  
            ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端  
            ios8: !!u.match(/OS [8]_\d[_\d]* like Mac OS X/), //ios8终端  
            iphone: !!u.match(/iphone os/i),//iphone终端  
            ipad:!!u.match(/ipad/i),//ipad终端  
            uc: !!u.match(/ucweb/i),//uc浏览器  
            wince:!!u.match(/windows ce/i),//winCE        
            winmobile: !!u.match(/windows mobile/i),//windows mobile  
        };  
    }(),  
    language:(navigator.browserLanguage || navigator.language).toLowerCase()  
}
……

阅读全文

jekyll搭建自己的静态blog

前言

端午节,花了2天时间学习了下ruby + jekyll + github pages,踩过不少坑,记录下学习笔记。

ruby建议是在Linux环境下安装的,但是工作电脑是windows比较常见,下面记录下在windows 7 64bit版本下安装ruby + jekyll + ruby devkit的经历,进过坑,不过都爬出来了,把爬坑经历记录下方便后来者。

……

阅读全文

Oracle11gR2手工配置dataguard

前言

网上有很多Oracle Dataguard的配置教程,但不难发现,很多采用的是rman duplicate这种方法,尽管此种方法较为简便。但在某种程度上,却也误导了初学者,虽说也能配置成功,但只知其然不知其所以然,Dataguard的本质没有吃透,也不利于其维护和调优。

注:

本配置基于Oracle官方文档,目的在于加深对于Dataguard的了解。   本配置的结果是最大性能模式下的异步传输,因此在参数文件中,只涉及基本的主备参数,没有考虑switchover和最大性能模式下的real time apply。在监听的配置中,也没有考虑Data Guard Broker的应用情况。

……

阅读全文

Log4j参数整理

前言

Log4j 1.x的知识点回顾,2015年8月5日,Apache的Logging Services项目管理委员会宣布Log4j 1.x已经结束生命周期,建议升级 Log4j 2.x。

1. 配置文件

Log4J配置文件的基本格式如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
#配置根Logger
log4j.rootLogger  =   [ level ]   ,  appenderName1 ,  appenderName2 ,  …

#配置日志信息输出目的地Appender
log4j.appender.appenderName  =  fully.qualified.name.of.appender.class 
  log4j.appender.appenderName.option1  =  value1 
  … 
  log4j.appender.appenderName.optionN  =  valueN 

#配置日志信息的格式(布局)
log4j.appender.appenderName.layout  =  fully.qualified.name.of.layout.class 
  log4j.appender.appenderName.layout.option1  =  value1 
  … 
  log4j.appender.appenderName.layout.optionN  =  valueN 

2、日志输出级别

其中 [level] 共有5级,如下:

……

阅读全文

VCS第七波-磁阵管理LVM和VxVM3-LVM

前言

LVM(Logicl Volume Manager),逻辑卷管理器,通过使用逻辑卷管理器对硬盘存储设备进行管理,可以实现硬盘空间的动态划分和调整。

1、基本概念

1.1 物理卷–PV(Physical Volume)

物理卷在逻辑卷管理中处于最底层,它可以是实际物理硬盘上的分区,也可以是整个物理硬盘。

1.2 卷组—VG(Volumne Group)

卷组建立在物理卷之上,一个卷组中至少要包括一个物理卷,在卷组建立之后可动态添加物理卷到卷组中。一个逻辑卷管理系统工程中可以只有一个卷组,也可以拥有多个卷组。

……

阅读全文

VCS第六波-磁阵管理LVM和VxVM2-VxVM

前言

VxVM虽然支持不同平台,但是又是商业的,需要支付昂贵的license费用,基于Veritas在存储界的地位,还是需要了解下的。

1、初始化磁盘命令

1
2
vxdctl enable  
vxdisksetup -if sdb  

2、查看卷组

1
vxdisk -o alldgs list  

3、查看已激活卷组

1
vxdg list  

4、创建卷组

1
2
vxdg init vgname diskname(sdd)/vgcdr0_1=sdf  
vxdg init diskgroup disk_name=device_name  

5、删除卷组

1
vxdg destroy vgname  

6、创建逻辑卷

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
vxassist -g vgname -U gen make volume size  //裸设备  
vxassist -g vgname -U fsgen make volume size  //关联块设备(default)  
vxassist -b -g vgdata make lvworkdbs3 8192m  
vxassist -b -g vgdata make lvworkdbs4 8192m  
vxassist -b -g vgdata make lvworkdbs5 8192m  
vxassist -b -g vgdata make lvworkdbs6 8192m  
vxassist -b -g vgdata make lvworkdbs7 8192m  
vxassist -b -g vgdata make lvworkdbs8 8192m  
vxassist -b -g vgdata make lvworkdbs9 8192m  
vxassist -b -g vgdata make lvworkdbs10 8192m  
vxassist -b -g vgdata make lvworkdbs11 8192m  
vxassist -b -g vgdata make lvworkdbs12 8192m  
vxassist -b -g vgdata make lvworkdbs13 8192m  
vxassist -b -g vgdata make lvworkdbs14 8192m  
vxassist -b -g vgdata make lvarworkdbs15 8192m  
   
vxedit -g vgdata set user=Oracle group=dba mode=0660 *  
vxedit -g vgora set user=oracle group=oinstall mode=0660 *  
chown oracle:dba /ora_arch  
chmod 775 /ora_arch  

7、删除逻辑卷

1
vxassist -g vgname remove volume lvname  

8、导出卷组

1
vxdg deport vgname  

9、导入卷组

1
vxdg import vgname  

10、激活逻辑卷

1
vxvol -g vgname startall  

11、去激活逻辑卷

1
vxvol -g vgname stopall  

12、查看卷组剩余空间

1
vxassist -g vgname maxsize  

13、扩大卷组空间命令

1
vxdg -g vgname adddisk/rmdisk sdd  

14、扩大逻辑卷

1
vxassist -g vgname growto lvname 2g  

15、缩小逻辑卷

1
2
vxassist -g vgname shrinkto lvname 400GB  
vxassist -f -g vgname shrinkto lvname 400GB  

16、重命名卷组

1
vxdg -n newname import oldname  

17、重命名逻辑卷

1
vxedit -g vgname rename oldname newname  

18、创建文件系统

1
mkfs.vxfs /dev/vx/dsk/vgname/lvname  

19、挂载文件系统

1
2
mount.vxfs /dev/vx/dsk/vgname/lvname  
mount -t vxfs /dev/vx/dsk/vgname/lvname  

20、去挂载文件系统

1
umount /dev/vx/dsk/vgname/lvname  

21、查看逻辑卷属性

1
vxprint -g vgopt  

22、动态扩展/缩小文件系统空间

1
vxresize -g vgcbp1 lvcbp1 +/-250g  

23、动态扩展/缩小文件系统空间

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
vxresize -g vgcbp1 lvcbp1 +/-250g  
mrbillingdb:/ # vxdg init vgopt sdd_1=sdd  
VxVM vxdg ERROR V-5-1-6478 Device sdd cannot be added to a CDS disk group  
mrbillingdb:/ # /usr/lib/vxvm/bin/vxdiskunsetup sdd  
mrbillingdb:/ # vxdisk rm sdd  
mrbillingdb:/ # vxdisk scandisks  
mrbillingdb:/ # /usr/lib/vxvm/bin/vxdisksetup -i sdd  
mrbillingdb:/ # vxdg init vgopt sdd  
mrbillingdb:/ # /usr/lib/vxvm/bin/vxdiskunsetup sdd  
VxVM vxdiskunsetup ERROR V-5-2-3522 sdd: Disk is not a volume manager disk  
mrbillingdb:/ # /usr/lib/vxvm/bin/vxdisksetup sdd  

24、从主机组去掉LUN映射后,需要执行以下命令

1
2
3
mv /etc/vx/disk.info /etc/vx/disk_bak  
hot_add  
vxdctl enable  

25、清除裸设备上的内容可以用dd命令

1
2
3
如:可以根据裸设备的大小,多谢几个块,保证全部清除即可  
dd if=/dev/zero of=/dev/rdsk/V1064_vote_01_20m.dbf bs=8192 count=2560  
dd if=/dev/zero of=/dev/rdsk/ocrV1064_100m.ora bs=8192 count=12800    
……

阅读全文

VCS第五波-磁阵管理LVM和VxVM1-LVM

前言

使用VCS双机经常要跟磁阵打交道,磁阵的逻辑卷组管理也有不同厂之间的方案,比如免费的系统自带的lvm,Linux的lvm与unix的lvm还有点不同,Veritas的VxVM,

对比各有千秋

lvm

lvm免费成本低,但集群管理也比较方便和省成本,相同的设备做容灾也可以应用,但是不同设备之间做容灾的话就有点麻烦了,这个依赖于项目的要求和财务实力了;

……

阅读全文

VCS第四波-main.cf解读

前言

mian.cf是VCS的集群配置文件,需要理解该配置文件及其参数含义,下面把以前电信行业积累的Oracle冷双机结构标记下

1、样例

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
include "types.cf"                      ---- VCS资源类型引用文件,下面的资源类型源于这里的引用,否者无法识别
include "OracleTypes.cf"                ---- VCS的Agent节点Oracle资源类型引用,Oracle的资源需要识别也依赖这个引用

cluster shared (                        ---- 集群名称、管理员账号和密码,密码注意是加密的

UserNames = { adm = "rLlzxjF.KVQnI" } 
CounterInterval = 5 
)


system ha1 (                            ---- Node1节点
)


system ha2 (                            ---- Node2节点
)


group groupy (                          ---- 资源组名称   优先在ha1节点启动应用,adm是超级管理员
SystemList = { ha1 = 0, ha2 = 1 } 
AutoStartList = { ha1 } 
Administrators = { adm } 
)


DiskGroup groupydg (                    ---- dg资源管理
DiskGroup = sharedg 
)


IP nfssrvy (                            ---- IP资源管理及其参数  
                                        ---- device是网卡,可以设置bond绑定网卡提供网卡的高可用性
Device = hme0 
Address = "192.168.0.43" 
)


Mount export3 (                         ---- mount文件类型资源及其参数   
                                        ---- blockDevice是逻辑卷组名称    
                                        ---- mountpoint是mount映射的目录    
                                        ---- Fstype是文件类型
MountPoint = "/oracle"                                                    
BlockDevice = "/dev/vx/dsk/sharedg/oravol" 
FSType = ufs 
MountOpt = rw 
FsckOpt = "-y" 
)


NIC groupy_hme0 (                        ---- 网卡资源及其参数
Device = hme0 
NetworkType = ether 
)


Oracle oragrp_VRT (                      ---- oracle实例资源及其参数   
                                         ---- SID是实例名   
                                         ---- owner是属组   
                                         ---- pfile是oracle参数配置文件        
                                         ---- user个pword是检测应用实例是否可以提供服务的账号密码           
                                         ---- MonScript是VCS Oracle Agent提供的监控实例的脚本,一般是查询某一个表,返回正常即OK     
                                         ---- Env是Oracle的环境变量文件,VCS Oracle Agent自带,这种配置常见于Oracle11gR1及其之前的版本  
                                         ---- Oracle11gR2后采用grid管理,在VCS没升级的情况下需要自定义一个GridAgent代理

Sid = cnc1 
Owner = ora 
Home = "/oracle/app/product/8.1.7" 
Pfile = "/oracle/app/product/8.1.7/dbs/initcnc1.ora" 
User = "system" 
Pword = manager 
MonScript = "./bin/Oracle/SqlTest.pl" 
EnvFile = "/opt/VRTSvcs/bin/oracle/envfile" 
)


Sqlnet oragrp_LISTENER (                  ---- Oracle的监听资源及其参数   
                                          ---- Home是Oracle安装的目录
                                          ---- TnsAdmin是tnsname.ora文件所在目录    
                                          ---- Listerner是Oracle监听的名称     
                                          ---- MonScript是VCS Oracle Agent提供的检测监听是否工作的脚本,原理就是tnsping listenerName,返回OK即正常
Owner = ora 
Home = "/oracle/app/product/8.1.7" 
TnsAdmin = "/oracle/app/product/8.1.7/network/admin" 
Listener = LISTENER 
MonScript = "./bin/Sqlnet/LsnrTest.pl" 
EnvFile = "/opt/VRTSvcs/bin/oracle/envfile" 
)


Volume groupydg_vol3 (                    ---- 逻辑卷组资源及其参数     volume是逻辑卷组名    DiskGroup是映射的dg名
Volume = oravol 
DiskGroup = sharedg 
)


export3 requires groupydg_vol3            ---- 依赖关系树,不能乱依赖,需要按应用工作原理来配置,比如Oracle逻辑卷组没启动,实例和监听是完全不可能工作的
groupydg_vol3 requires groupydg 
nfssrvy requires groupy_hme0 
oragrp_LISTENER requires nfssrvy 
oragrp_LISTENER requires oragrp_VRT 
oragrp_VRT requires export3 
oragrp_VRT requires groupydg_vol3
……

阅读全文

最近文章

分类

标签

其它