重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

nsd命令linux linux nss

Linux安装基本命令

Linux安装基本命令大全

公司主营业务:网站建设、做网站、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联公司是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联公司推出大足免费做网站回馈大家。

Linux常用命令,你还能记得多少呢?下文是我为大家准备的Linux常用命令,一起来看看吧!

安装升级

查看软件xxx安装内容

dpkg -L xxx

查找软件库中的软件

apt-cache search 正则表达式

aptitude search 软件包

显示系统安装包的统计信息

apt-cache stats

显示系统全部可用包的名称

apt-cache pkgnames

显示包的信息

apt-cache show k3b

查找文件属于哪个包

dpkg -S filename

apt-file search filename

查看已经安装了哪些包

dpkg -l

也可用

dpkg -l | less

翻页查看

查询软件xxx依赖哪些包

apt-cache depends xxx

查询软件xxx被哪些包依赖

apt-cache rdepends xxx

增加一个光盘源

sudo apt-cdrom add

系统更新

sudo apt-get update (这一步更新包列表)

sudo apt-get dist-upgrade (这一步安装所有可用更新)

或者

sudo apt-get upgrade (这一步安装应用程序更新,不安装新内核等)

清除所有已删除包的残馀配置文件

dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P

如果报如下错误,证明你的系统中没有残留配置文件了,无须担心。

----------------------------------------------------------

dpkg: --purge needs at least one package name argument

Type dpkg --help for help about installing and deinstalling packages [*];

Use `dselect' or `aptitude' for user-friendly package management;

Type dpkg -Dhelp for a list of dpkg debug flag values;

Type dpkg --force-help for a list of forcing options;

Type dpkg-deb --help for help about manipulating *.deb files;

Type dpkg --license for copyright license and lack of warranty (GNU GPL) [*].

Options marked [*] produce a lot of output - pipe it through `less' or `more' !

----------------------------------------------------------

编译时缺少h文件的自动处理

sudo auto-apt run ./configure

查看安装软件时下载包的临时存放目录

ls /var/cache/apt/archives

备份当前系统安装的所有包的列表

dpkg --get-selections | grep -v deinstall ~/somefile

从上面备份的安装包的列表文件恢复所有包

dpkg --set-selections ~/somefile

sudo dselect

清理旧版本的软件缓存

sudo apt-get autoclean

清理所有软件缓存

sudo apt-get clean

删除系统不再使用的孤立软件

sudo apt-get autoremove

如果使用

sudo apt-get autoremove --purge

的话会把这些孤立软件的残留配置文件也一并移除

查看包在服务器上面的地址

apt-get -qq --print-uris download 软件包名称 | cut -d\' -f2

彻底删除Gnome

sudo apt-get --purge remove liborbit2

彻底删除KDE

sudo apt-get --purge remove libqt3-mt libqtcore4

一键安装 LAMP 服务

sudo tasksel install lamp-server

删除旧内核

sudo aptitude purge ~ilinux-image-.*\(\!\(`uname -r`\|generic-.*\)\)

导入ppa源的'key值

#W: GPG签名验证错误: jaunty Release: 由于没有公钥,下列签名无法进行验证: NO_PUBKEY 5126890CDCC7AFE0

sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 5126890CDCC7AFE0 #5126890CDCC7AFE0替换为你需要导入的Key值

增加 add-apt-repository 命令

sudo apt-get install software-properties-common

增加一个ppa源

sudo add-apt-repository ppa:user/ppa-name

#使用 ppa 的地址替换 ppa:user/ppa-name

添加163镜像源

sudo add-apt-repository "deb `lsb_release -cs` main restricted universe multiverse"

sudo add-apt-repository "deb `lsb_release -cs`-updates main restricted universe multiverse"

sudo add-apt-repository "deb `lsb_release -cs`-security main restricted universe multiverse"

系统升级

1 这里指的是版本间的升级,例如 9.04=10.04。

2 使用该升级方式通常需要使用 backports 源。

sudo apt-get update

sudo apt-get install update-manager-core

sudo do-release-upgrade

系统

查看内核

uname -a

查看系统是32位还是64位

#查看long的位数,返回32或64

getconf LONG_BIT

#查看文件信息,包含32-bit就是32位,包含64-bit就是64位

file /sbin/init

或者使用

uname -m

查看Ubuntu版本

lsb_release -a

或 cat /etc/lsb-release

查看内核加载的模块

lsmod

查看PCI设备

lspci

查看USB设备

lsusb

#加参数 -v 可以显示USB设备的描述表(descriptors)

lsusb -v

查看网卡状态

sudo apt-get install ethtool

sudo ethtool eth0

激活网卡的 Wake-on-LAN

sudo apt-get install wakeonlan

或 sudo ethtool -s eth0 wol g

查看CPU信息

cat /proc/cpuinfo

显示当前硬件信息

sudo lshw

查看内存型号

sudo dmidecode -t memory

获取CPU序列号或者主板序列号

#CPU ID

sudo dmidecode -t 4 | grep ID

#Serial Number

sudo dmidecode | grep Serial

#CPU

sudo dmidecode -t 4

#BIOS

sudo dmidecode -t 0

#主板:

sudo dmidecode -t 2

#OEM:

sudo dmidecode -t 11

显示当前内存大小

free -m |grep "Mem" | awk '{print $2}'

查看硬盘温度

sudo apt-get install hddtemp

sudo hddtemp /dev/sda

显示系统运行时间

uptime

查看系统限制

ulimit -a

查看内核限制

ipcs -l

查看当前屏幕分辨率

xrandr

硬盘

查看块设备

lsblk

查看硬盘的分区

sudo fdisk -l

硬盘分区

#危险!小心操作。

sudo fdisk /dev/sda

硬盘格式化

#危险!将第一个分区格式化为 ext3 分区, mkfs.reiserfs mkfs.xfs mkfs.vfat

sudo mkfs.ext3 /dev/sda1

硬盘检查

#危险!检查第一个分区,请不要检查已经挂载的分区,否则容易丢失和损坏数据

sudo fsck /dev/sda1

硬盘坏道检测

sudo badblocks -s -v -c 32 /dev/sdb

#得到坏的块后,使用分区工具隔离坏道。

分区挂载

sudo mount -t 文件系统类型 设备路经 访问路经

#常用文件类型如下: iso9660 光驱文件系统, vfat fat/fat32分区, ntfs ntfs分区, smbfs windows网络共享目录, reiserfs、ext3、xfs Linux分区

#如果中文名无法显示尝试在最後增加 -o nls=utf8 或 -o iocharset=utf8

#如果需要挂载後,普通用户也可以使用,在 -o 的参数後面增加 ,umask=022 如:-o nls=utf8,umask=022

分区卸载

sudo umount 目录名或设备名

只读挂载ntfs分区

sudo mount -t ntfs -o nls=utf8,umask=0 /dev/sdb1 /mnt/c

可写挂载ntfs分区

sudo mount -t ntfs-3g -o locale=zh_CN.utf8,umask=0 /dev/sdb1 /mnt/c

挂载fat32分区

sudo mount -t vfat -o iocharset=utf8,umask=0 /dev/sda1 /mnt/c

挂载共享文件

sudo mount -t smbfs -o username=xxx,password=xxx,iocharset=utf8 //192.168.1.1/share /mnt/share

挂载ISO文件

sudo mount -t iso9660 -o loop,utf8 xxx.iso /mnt/iso

查看IDE硬盘信息

sudo hdparm -i /dev/sda

查看软raid阵列信息

cat /proc/mdstat

参看硬raid阵列信息

dmesg |grep -i raid

cat /proc/scsi/scsi

查看SATA硬盘信息

sudo hdparm -I /dev/sda

sudo apt-get install blktool

sudo blktool /dev/sda id

查看硬盘剩余空间

df

df --help 显示帮助

查看目录占用空间

du -hs 目录名

闪盘没法卸载

sync

fuser -km /media/闪盘卷标

使用文件来增加交换空间

#创建一个512M的交换文件 /swapfile

sudo dd if=/dev/zero of=/swapfile bs=1M count=512

sudo mkswap /swapfile

sudo swapon /swapfile

#sudo vim /etc/fstab #加到fstab文件中让系统引导时自动启动

/swapfile swap swap defaults 0 0

查看硬盘当前读写情况

# 首先安装 sysstat 包

sudo apt-get install sysstat

#每2秒刷新一次

sudo iostat -x 2

测试硬盘的实际写入速度

dd if=/dev/zero of=test bs=64k count=512 oflag=dsync

进程

查看当前的内存使用情况

free

连续监视内存使用情况

watch -d free

# 使用 Ctrl + c 退出

动态显示进程执行情况

top

top指令运行时输入H或?打开帮助窗口,输入Q退出指令。

查看当前有哪些进程

ps -AFL

查看进程的启动时间

ps -A -opid,stime,etime,args

查看目前登入用户运行的程序

w

查看当前用户程序实际内存占用,并排序

ps -u $USER -o pid,rss,cmd --sort -rss

统计程序的内存耗用

ps -eo fname,rss|awk '{arr[$1]+=$2} END {for (i in arr) {print i,arr[i]}}'|sort -k2 -nr

按内存从大到小排列进程

ps -eo "%C : %p : %z : %a"|sort -k5 -nr

列出前十个最耗内存的进程

ps aux | sort -nk +4 | tail

按cpu利用率从大到小排列进程

ps -eo "%C : %p : %z : %a"|sort -nr

ps aux --sort -pcpu |head -n 20

查看当前进程树

pstree

中止一个进程

kill 进程号(就是ps -A中的第一列的数字)

或者 killall 进程名

强制中止一个进程(在上面进程中止不成功的时候使用)

kill -9 进程号

或者 killall -9 进程名

图形方式中止一个程序

xkill 出现骷髅标志的鼠标,点击需要中止的程序即可

查看进程打开的文件

lsof -p 进程的pid

显示开启文件abc.txt的进程

lsof abc.txt

显示22端口现在运行什么程序

lsof -i :22

显示nsd进程现在打开的文件

lsof -c nsd

在後台运行程序,退出登录後,并不结束程序

nohup 程序

#查看中间运行情况 tail nohup

在后台运行交互式程序,退出登录后,并不结束程序

sudo apt-get install screen

screen vim a.txt

#直接退出后使用

screen -ls # 2208pxs-0.ubuntu (Detached)

screen -r 1656 #恢复

#热键,同时按下Ctrl和a键结束后,再按下功能键

C-a ? #显示所有键绑定信息

C-a w #显示所有窗口列表

C-a C-a #切换到之前显示的窗口

C-a c #创建一个新的运行shell的窗口并切换到该窗口

C-a n #切换到下一个窗口

C-a p #切换到前一个窗口(与C-a n相对)

C-a 0..9 #切换到窗口0..9

C-a a #发送 C-a到当前窗口

C-a d #暂时断开screen会话

C-a k #杀掉当前窗口

在后台运行交互式程序,退出登录后,并不结束程序

tmux 进入后再运行其它命令

tmux attach #恢复

#热键,同时按下Ctrl和b键结束后,再按下功能键

C-b c #创建一个新的运行shell的窗口并切换到该窗口

C-b n #切换到下一个窗口

C-b p #切换到前一个窗口(与C-a n相对)

C-b 0..9 #切换到窗口0..9

C-b d #暂时断开会话

C-b #杀掉当前窗口

详细显示程序的运行信息

strace -f -F -o outfile

增加系统最大打开文件个数

#ulimit -SHn

sudo vim /etc/security/limits.conf

文件尾追加

* hard nofile 4096

* soft nofile 4096

sudo vim /etc/pam.d/su

将 pam_limits.so 这一行注释去掉

重起系统

清除僵尸进程

ps -eal | awk '{ if ($2 == "Z") {print $4}}' | xargs sudo kill -9

将大于120M内存的php-cgi都杀掉

ps -eo pid,fname,rss|grep php-cgi|grep -v grep|awk '{if($3=120000) print $1}' | xargs sudo kill -9

Linux系统中如何限制用户进程CPU占用率

renice +10 `ps aux | awk '{ if ($3 0.8 id -u $1 500) print $2}'`

#或直接编辑/etc/security/limits.conf文件。 ;

虚拟机Linux上部署DB2pureScale过程

在Linux 操作系统 中,可在虚拟机上搭建DB2 pureScale,那么搭建的步骤是怎么样的呢?DB2 pureScale又有什么用呢?下面随我一起来了解下Linux系统如何在虚拟机上部署DB2 pureScale。

在虚拟机Linux上部署DB2pureScale实践过程

1、环境准备

硬件环境:3 台 x86-64虚拟机,内存要求 1.5G 或以上(主要针对虚拟机,内存过低会造成数据库实例启动失败)

操作系统:Suse Linux Enterprise Server 11.3

DB2 版本:DB2 v10.5

机器名:node01 node02 node03

IP:192.168.18.201 192.168.18.202 192.168.18.203

网关:192.168.18.2

利用iscsi服务来做共享存储功能,其中node01 作为 iscsi 的 Server,node01、node02和 node03 作为 iscsi Client,这样三台虚拟机上都能看到相同的磁盘了(按照developer workers上的 文章 :非 InfiniBand 环境下搭建 DB2 pureScale,我用DB2 v10.5时启动实例失败,可能10.5做了限制,CF与member在同一台机器启动失败,帮多了一台虚拟机)。

2、操作系统安装:

Node01预留出一块分区,不进行格式化(文件类型为0x83 Linux)做为 pureScale 集群的 Sharing Disk 使用,Node02与Node03跟node01 其它 相同就可,

安装必要的包:

libstdc++(32 位和 64 位库)

glibc(32 位和 64 位库)

cpp

gcc

gcc-c++

kernel-source

binutils

ksh-93u-0.8.1

openssh

ntp

完成SUSE 11 SP3的安装。

验证:检查/lib/modules/3.0.76-0.11-default/build/include/linux有无autoconf.h,如果没有autoconf.h,安装DB2时会报Compiling GPL :.......Failure错误。

解决 方法 :cp –v /usr/src/linux-3.0.76-0.11-obj/x86_64/default/include/generated /lib/modules/3.0.76-0.11-default/build/include/linux

3、添加用户和用户组

三台机器全部执行如下命令(如果不做特殊说明,以#表示root身份登录,以$表示db2inst1身份,以下相同)。

#groupadd -g 1001 db2fadm1

#groupadd -g 1002 db2iadm1

#useradd -g db2fadm1 -u 1001 -m -d /home/db2fenc1 -p db2fenc1 db2fenc1

#useradd -g db2iadm1 -u 1002 -m -d /home/db2inst1 -p db2inst1 db2inst1

#mkdir /root/.ssh

# su - db2inst1 -c "mkdir -p /home/db2inst1/.ssh"

4、配置ssh 信任连接

ssh信任通俗的说就是直接ssh不用输入密码

在/etc/hosts添加另外两台机器的IP地址及机器名(确保3台机器名与ip地址全部出现在hosts文件中)

例如我的机器hosts如下:

127.0.0.1 localhost

192.168.18.201 node01.site node01

192.168.18.202 node02.site node02

192.168.18.203 node03.site node03

node01执行如下命令:

#ssh-keygen -t rsa

#cp -v /root/.ssh/id_rsa.pub /root/.ssh/id01

#scp /root/.ssh/id01 node02:/root/.ssh

#scp /root/.ssh/id01 node03:/root/.ssh

#su - db2inst1

$ssh-keygen -t rsa

$cp -v /home/db2inst1/.ssh/id_rsa.pub /home/db2inst1/.ssh/id01

$scp /home/db2inst1/.ssh/id01 node02:/home/db2inst1/.ssh

$scp /home/db2inst1/.ssh/id01 node03:/home/db2inst1/.ssh

node02执行如下命令:

#ssh-keygen -t rsa

#cp -v /root/.ssh/id_rsa.pub /root/.ssh/id02

#scp /root/.ssh/id02 node01:/root/.ssh/

#scp /root/.ssh/id02 node03:/root/.ssh/

#su - db2inst1

$ssh-keygen -t rsa

$cp -v /home/db2inst1/.ssh/id_rsa.pub /home/db2inst1/.ssh/id02

$scp /home/db2inst1/.ssh/id02 node01:/home/db2inst1/.ssh/

$scp /home/db2inst1/.ssh/id02 node03:/home/db2inst1/.ssh/

node03执行如下命令:

#ssh-keygen -t rsa

#cp -v /root/.ssh/id_rsa.pub /root/.ssh/id03

#scp /root/.ssh/id03 node01:/root/.ssh

#scp /root/.ssh/id03 node02:/root/.ssh

#su - db2inst1

$ssh-keygen -t rsa

$cp -v /home/db2inst1/.ssh/id_rsa.pub /home/db2inst1/.ssh/id03

$scp /home/db2inst1/.ssh/id03 node01:/home/db2inst1/.ssh/

$scp /home/db2inst1/.ssh/id03 node02:/home/db2inst1/.ssh/

分别在node01、node02、node03执行如下命令

#cd /root/.ssh

#cat id01 id02 id03 authorized_keys

#chmod 600 authorized_keys

#su - db2inst1

$cd /home/db2inst1/.ssh

$ cat id01 id02 id03 authorized_keys

测试是否配置成功

3台机器分别以root与db2inst1执行:

#ssh node01 ls

#ssh node02 ls

#ssh node03 ls

#su - db2inst1

$ssh node01 ls

$ssh node02 ls

$ssh node03 ls

确保不用输入密码,则配置成功。

5、ISCSI 共享存储配置

Iscsi server端配置(node01上执行):

修改/etc/ietd.conf,添加如下内容:

Target iqn.2014-03.node01.site:scsidisk01

Lun 0 Path=/dev/sda4,Type=fileio

注意:我的未分区硬盘为/dev/sda4,你的可能不一样的@_@~~~~

添加自启动

#chkconfig -a iscsitarget

检查是否成功

#chkconfig -l iscsitarget

结果:iscsitarget 0:off 1:off 2:off 3:on 4:off 5:on 6:off

重启iscsitarget服务

# /etc/init.d/iscsitarget restart

iscsi client端配置(node01、node02、node03执行,):

iscsitarget文件内容如下:

#! /bin/sh

### BEGIN INIT INFO

# Provides: iscsiclsetup

#node02与node03上如果未装iscsitarget需将下下行的$iscsitarget

# Required-Start: $network $syslog $iscsitarget $remote_fs smartd

# Required-Stop:

# Default-Start: 3 5

# Default-Stop: 0 1 2 6

# Description: ISCSI client setup

### END INIT INFO

case "$1" in start)

iscsiadm --mode discoverydb --type sendtargets --portal 192.168.18.201 --discover

iscsiadm --m node --targetname iqn.2014-03.node01.site:scsidisk01 --portal 192.168.18.201:3260 --login

;;

stop)

iscsiadm -m node -T iqn.2014-03.node01.site:scsidisk01 -p 192.168.18.201 --logout

;;

restart) ## Stop the service and regardless of whether it was ## running or not, start it again.

$0 stop

$0 start

;;

*)

Esac

保存后执行:#/etc/init.d/iscsiclient restart

验证iscsiclient是否启动成功:

#fdisk -l

检查有无/dev/sdb出现

6、配置Linux环境变量

/etc/profie.local添加内容

alias sl='tail -f /var/log/messages'

alias fc='fcslogrpt /var/log/messages'

export PATH=/root/bin:/usr/sbin/rsct/bin:/opt/ibm/db2/v10.5/bin:$PATH

export PATH=/usr/lpp/mmfs/bin:$PATH

export DB2USENONIB=TRUE

export DB2_CFS_GPFS_NO_REFRESH_DATA=true

然后执行# . /etc/profile.local,完成后你就可以安装purescale了,我猜测应该是设置了变量DB2USENONIB,使purescale不再要求你强制InfiniBand或万兆网卡,使我等穷人可以有机会玩这种高档、洋气、上档次的数据库。。。

7、DB2 V10.5 的安装:

node01:~/server_t # ./db2_install

DBI1324W Support of the db2_install command is deprecated. For

more information, see the DB2 Information Center.

Default directory for installation of products - /opt/ibm/db2/V10.5

***********************************************************

Install into default directory (/opt/ibm/db2/V10.5) ? [yes/no]

yes

Specify one of the following keywords to install DB2 products.

SERVER

CONSV

EXP

CLIENT

RTCL

Enter "help" to redisplay product names.

Enter "quit" to exit.

***********************************************************

server

***********************************************************

Do you want to install the DB2 pureScale Feature? [yes/no]

Yes

曾经出现的错误:

ERROR: An error occurred while compiling IBM General Parallel File System

(GPFS) Portability Layer (GPL) on host "node01". Return code "2". GPL

compilation log file location "/tmp/compileGPL.log.000". The GPFS file system

cannot be mounted properly until the GPL module is successfully compiled on

this host. For details, see the specified GPL compilation log. After fixing

the problems shown in the log file, re-run the DB2 installer. For information

regarding the GPFS GPL module compile, see DB2 Information Center.

Compiling GPL :.......Failure

ERROR: A major error occurred while installing "DB2 Server Edition " on this

computer.

解决方案:

查看错误日志:compileGPL.log.000,为以下内容:

cd /usr/lpp/mmfs/src/config; ./configure --genenvonly; if [ $? -eq 0 ]; then /usr/bin/cpp -P def.mk.proto ./def.mk; exit $? || exit 1; else exit $?; fi

手工执行时会发现在./configure --genenvonly; 这一步报找不到

/usr/bin/diff: /lib/modules/3.0.76-0.11-default/build/include/linux/autoconf.h: No such file or directory

Kernel source tree does not have the correct autoconf.h file.

See /usr/lpp/mmfs/src/README for further information

手工拷呗一下autoconf.h文件即可

#cp –v /usr/src/linux-3.0.76-0.11-obj/x86_64/default/include/generated/autoconf.h /lib/modules/3.0.76-0.11-default/build/include/linux/

GPFS 文件系统配置与挂载

方法1:使用db2cluster_prepare

node01上执行:

#/opt/ibm/db2/v10.5/instance/db2cluster_prepare -instance_shared_dev /dev/sdb

DBI1446I The db2cluster_prepare command is running.

DB2 installation is being initialized.

Total number of tasks to be performed: 1

Total estimated time for all tasks to be performed: 60 second(s)

Task #1 start

Description: Creating IBM General Parallel File System (GPFS) Cluster and Filesystem

Estimated time 60 second(s)

Task #1 end

The execution completed successfully.

For more information see the DB2 installation log at

"/tmp/db2cluster_prepare.log".

DBI1070I Program db2cluster_prepare completed successfully.

此时df -l查看一下会发现多了一个挂载点

node01:/opt/ibm/db2/V10.5/instance # df -l

Filesystem 1K-blocks Used Available Use% Mounted on

/dev/sda2 19599036 8122392 10481060 44% /

udev 958688 120 958568 1% /dev

tmpfs 958688 76 958612 1% /dev/shm

/dev/sda3 10327940 154460 9648836 2% /home

/dev/db2fs1 15728640 627712 15100928 4% /db2sd_20140401103940

曾经出现报错:

DBI20022E The DB2 installer detected that the variable record "GPFS_CLUSTER" is

defined in the global registry. However, the GPFS cluster does not exist on

host "node01".

Creating IBM General Parallel File System (GPFS) Cluster and Filesystem :.......Failure

查看/tmp/ibm.db2.cluster.GuOypP发现有如下内容报错:

014-04-01-10.26.12.358494+480 I5385E400 LEVEL: Warning

PID : 7469 TID : 139670848014112 PROC : db2cluster

INSTANCE: NODE : 000

HOSTNAME: node01

FUNCTION: DB2 UDB, oper system services, sqloMessage, probe:1

MESSAGE : Cannot obtain registry variables

DATA #1 : Hexdump, 4 bytes

0x00007FFF17631758 : B400 0F87

解决方案:由于此前我在此机器上试过N次db2cluster_prepare,包括V9.8、V10.1,V10.5安装,导致全局注册表变量没有删除干净,使用db2greg -dump

V,GPFS_CLUSTER,NAME,db2cluster_20140403105617.site,-,DB2_CREATED将其删除。

#cp -v /var/db2/global.reg /var/db2/global.reg_20140401

#db2delgreg -delvarrec service= GPFS_CLUSTER

总结 :db2cluster_prepare这个命令失败时

检查iscsi client是否准备好,fdisk -l查看一下是否有/dev/sdb

全局注册表变量是否未删除干净 ,db2greg -dump查看

检查一下是否tsa的domain存在,lsrpdomain,使用rmrpdomain将其删掉,如果其node为活动需先将其node停掉。具体参考tsa相关命令,

检查一下gpfs cluster domain是否未清理干净,如果未清理干净,需要使用将fs、nsd、node清理掉,具体命令参考gpfs信息中心。

方法2:手工挂载GPFS

遇到过使用db2cluster_prepare时无法成功,手工安装(不确定是否遇到了 传说 中的bug)。

创建cluster,不加-filesystem -disk选项:

node01:

#db2cluster -cfs -create -domain mydomain -host node01

#db2cluster -cfs -add -host node02

# db2cluster -cfs -add -host node03

说明:上面如果不出故障当然可以加上-filesystem –disk参数,当然也可以用mmaddnode –N XXX来添加节点

添加许可协议:

提供两种方法

#mmchlicense server --accept -N node01,node02,node03

#/opt/ibm/db2/v10.5/bin/db2cluster -cfs -add -license

创建nsd:任意node执行

编写newNSD文件内容如下

%nsd:

device=/dev/sdb

nsd=nsd1

usage=dataAndMetadata

#mmcrnsd -F /tmp/newNSD (-v no)

如果报mmcrnsd: Disk device sdb refers to an existing NSD,而使用mmlsnsd 又查找不到相应的nsd,添加-v no可以跳过此验证。

#mmlsnsd 查看创建的nsd名称,记下,在第3步时需要用到.

创建Cluster File System并挂载

启动所有node,任意node执行

#mmstartup -a

#mmgetstate -a

确保所有node全部启动成功为active

# mmcrfs -T /db2sd_20140401 db2sd_20140401 nsd1(此处的nsd1为第2步的nsd名称)

#mmmount all -a

--曾经出现的错误:mmstartup -a无响应

,查看日志/var/adm/ras/mmfs.log.previous

Tue Apr 1 22:02:11 CST 2014: runmmfs starting

Removing old /var/adm/ras/mmfs.log.* files:

Unloading modules from /lib/modules/3.0.76-0.11-default/extra

runmmfs: The /lib/modules/3.0.76-0.11-default/extra/mmfslinux.ko kernel extension does not exist.

runmmfs: Unable to verify kernel/module configuration.

Loading modules from /lib/modules/3.0.76-0.11-default/extra

runmmfs: The /lib/modules/3.0.76-0.11-default/extra/mmfslinux.ko kernel extension does not exist.

runmmfs: Unable to verify kernel/module configuration.

Tue Apr 1 22:02:11 CST 2014 runmmfs: error in loading or unloading the mmfs kernel extension

Tue Apr 1 22:02:11 CST 2014 runmmfs: stopping GPFS

解决方案:重新编译一下gpfs的源码,因为手工卸载gpfs。

/usr/lpp/mmfs/src/README有详细的编译方法:主要命令方法如下:

#cd /usr/lpp/mmfs/src

#make Autoconfig

#make InstallImages

make InstallImages会在/lib/modules/`uname -r`/extra目录生成3个文件,大功告成.

创建实例

创建实例前:

node02#/opt/ibm/db2/V10.5/instance/db2icrt -cf node01 -cfnet node01

-m node02 -mnet node02 -instance_shared_dir /db2sd_20140401

-tbdev 192.168.18.2 -u db2fenc1 db2inst1

-tbdev 官方解释为:Specifies a shared device path for a device that will act as a tiebreaker in the DB2 pureScale environment to ensure that the integrity of the data is maintained. 通俗的讲就是在member出现故障时,判断哪个member可以恢复服务,穷屌丝们就用网关IP来代替了,只要能 ping 通即可判断为可用。

此时执行:# db2instance -instance db2inst1 -list可以查看

node01:/opt/ibm/db2/V10.5/instance # mmlscluster

GPFS cluster information

========================

GPFS cluster name: db2cluster_20140401103900.site

GPFS cluster id: 6571095102926235332

GPFS UID domain: db2cluster_20140401103900.site

Remote shell command: /var/db2/db2ssh/db2locssh

Remote file copy command: /var/db2/db2ssh/db2scp

GPFS cluster configuration servers:

-----------------------------------

Primary server: node01.site

Secondary server: node02.site

Node Daemon node name IP address Admin node name Designation

----------------------------------------------------------------------

1 node01.site 192.168.18.201 node01.site quorum-manager

2 node02.site 192.168.18.202 node02.site quorum-manager

曾经出现报错:

错误1、报2632-044、2632-068,此类错误为创建tsa domain时的错误,原因在于虚拟机是拷贝的,不是重新安装的。

解决方法:#/usr/sbin/rsct/install/bin/recfgct

启动实例

node01:$/home/db2inst1/sqllib/adm/db2start

怎么样,报错了吧,应该是SQL1721N

SQL1721N Starting the DB2 database manager failed because of a problem with a configuration file that is needed by RDMA.受打击吧。

你装完了实例启动不了,没关系,这么高档的玩意怎么能让你这么快启动啊。

你得设置两个注册表变量才能用普通网络.

$db2set DB2_SD_SOCKETS_RESTRICTIONS=false

$db2set DB2_CA_TRANSPORT_METHOD=SOCKETS

使用如下命令可以查看CF与member的状态。

#db2instance -instance db2inst1 -list

node01:/home/db2inst1 # db2instance -instance db2inst1 -list

ID TYPE STATE HOME_HOST CURRENT_HOST ALERT PARTITION_NUMBER LOGICAL_PORT NETNAME

-- ---- ----- --------- ------------ ----- ---------------- ------------ -------

0 MEMBER STARTED node02 node02 NO 0 0 node02

128 CF PRIMARY node01 node01 NO - 0 node01

HOSTNAME STATE INSTANCE_STOPPED ALERT

-------- ----- ---------------- -----

node01 ACTIVE NO NO

node02 ACTIVE NO NO

此时你可以使用lssam查看tsa的两个节点的状态。

#lssam

添加成员

将node03添加为另一个member,如果实例没有启动会自动启动实例,所以预先将上一步的两台机器上的db2set执行完毕先。

node01:

#/opt/ibm/db2/v10.5/instance/db2iupdt -d -add -m node03 –mnet node03 db2inst1

#su - db2inst1 -c "db2start member 1"

开启你的purescale之旅

#db2sampl

执行完毕后两台member都可以看到数据库sample,可以同时对库进行操作

linux怎么启动nsd dns

可以在命令行下启动这个服务呀service named startchkconfig named on这个是让服务器启动后自动启动DNS这个服务


本文标题:nsd命令linux linux nss
分享网址:http://cqcxhl.com/article/dosjcdo.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP