db2linux创建数据库
DB2数据库命令简介
1.启动数据库
DB2start
2.停止数据库
DB2stop
DB2数据库在linux相关指令之3.连接数据库
DB2 connect to o_yd user DB2 using pwd
4.读数据库管理程序配置
DB2 get dbm cfg
5.写数据库管理程序配置
DB2 update dbm cfg using 参数名 参数值
6.读数据库的配置
DB2 connect to o_yd user DB2 using pwd
DB2 get db cfg for o_yd
7.写数据库的配置
DB2 connect to o_yd user DB2 using pwd
DB2 update db cfg for o_yd using 参数名 参数值
8.关闭所有应用连接
DB2 force application all
DB2 force application ID1,ID2,,,Idn MODE ASYNC
(DB2 list application for db o_yd show detail)
9.备份数据库
DB2 force application all
DB2 backup db o_yd to d:
(DB2 initialize tape on \.tape0)
(DB2 rewind tape on \.tape0)
DB2 backup db o_yd to \.tape0
10.恢复数据库
DB2 restore db o_yd from d: to d:
DB2 restore db o_yd from \.tape0 to d:
DB2数据库在linux相关指令之11.绑定存储过程
DB2 connect to o_yd user DB2 using pwd
DB2 bind c:dfplus.bnd
拷贝存储过程到服务器上的C:sqllibfunction目录中
12.整理表
DB2 connect to o_yd user DB2 using pwd
DB2 reorg table ydd
DB2 runstats on table ydd with distribution and indexes all
13.导出表数据
DB2 export to c:dftz.txt of del select * from dftz
DB2 export to c:dftz.ixf of ixf select * from dftz
14.导入表数据
import from c:123.txt of del insert into ylbx.czyxx
DB2 import to c:dftz.txt of del commitcount 5000 messages c:dftz.msg insert into dftz
DB2 import to c:dftz.ixf of ixf commitcount 5000 messages c:dftz.msg insert into dftz
DB2 import to c:dftz.ixf of ixf commitcount 5000 insert into dftz
DB2 import to c:dftz.ixf of ixf commitcount 5000 insert_update into dftz
DB2 import to c:dftz.ixf of ixf commitcount 5000 replace into dftz
DB2 import to c:dftz.ixf of ixf commitcount 5000 create into dftz (仅IXF)
DB2 import to c:dftz.ixf of ixf commitcount 5000 replace_create into dftz (仅IXF)
15.执行一个批处理文件
DB2 -tf 批处理文件名
(文件中每一条命令用 ;结束)
16.自动生成批处理文件
建文本文件:temp.sql
select 'runstats on table DB2.' || tabname || '
with distribution and detailed indexes all;'
from syscat.tables where tabschema='DB2' and type='T';
DB2 -tf temp.sql>runstats.sql
17.自动生成建表(视图)语句
在服务器上:C:sqllibmisc目录中
DB2 connect to o_yd user DB2 using pwd
DB2look -d o_yd -u DB2 -e -p -c c:o_yd.txt
DB2数据库在linux相关指令之18.其他命令
grant dbadm on database to user bb
19select * from czyxx fetch first 1 rows only
20DB2look -d ylbx -u DB2admin -w -asd -a -e -o a.txt21. 显示当前用户所有表
list tables
22.列出所有的系统表
list tables for system
23.查看表结构
DB2 describe select * from user.tables
‘贰’ IBM/DB2.Linux的安装配置管理
IBM/DB2.Linux的安装配置管理
作为关系型数据库技术的领导者,IBM公司在2001年将世界排名第四的Informix数据库公司纳入麾下,并将其所拥有的先进特性融入到DB2当中。下面我准备了关于IBM/DB2.Linux的安装配置管理的.文章,提供给大家参考!
1.安装IBM/DB2 V9.1 Linux版
下载得到安装文件 db2exc_912_LNX_x86.tar.gz ,解压到ext2/3分区
# cd db2exc_912_LNX_x86
# ./db2setup
(1)弹出java的安装界面,install new instance
(2)使用“Typical Mode”,选择安装目录,默认为 DB2_root=/opt/ibm/db2/V9.1/
# echo DB2_root=/opt/ibm/db2/V9.1/ >> /etc/profile
(3)并默认创建 db2inst?、db2fenc?、db2adsusr? 这个几个用户最重要的是本地实例管理用户 db2inst? 其负责管理数据库实例
(4)创建Instance,然后下一步继续安装,看到successful结果,表示成功
(5) # ps -e | grep db2 应该可以看到三个不同名称的进程
(6) # tail /etc/inittab #可以看到最后一行就是启动db2的方法
fmc:2345:respawn:/opt/ibm/db2/V9.1/bin/db2fmcd #DB2 Fault Monitor Coordinator
2.配置IBM/DB2的库开发和CLI/ODBC连接
# su db2inst1
$ cd $DB2_ROOT
## 编目(catalog):
$ ./db2 catalog tcpip node remote server
$ ./db2 catalog db at node
$ ./db2 connect to user using
## 反编目(uncatalog):
$ ./db2 uncatalog db
$ ./db2 uncatalog node
3.修改,使用IBM/DB2的CLI/ODBC进行程序开发
(1)如果不想使用db2实例,而只是想使用CLI/ODBC来开发程序,可以注释 /etc/inittab 中启动db2的那一句,放弃启动IBM/DB2数据库服务。
(2)环境变量配置文件 : /home/db2inst1/sqllib/db2profile
查看 /etc/profile ,保证(添加或者修改)有以下两句
export DB2INSTANCE=db2inst1
export PATH=$DB2_ROOT/binPATH
export LD_LIBRARY_PATH=$DB2_ROOT/lib32LD_LIBRARY_PATH
(3)编目目标机器地址与ODBC的DSN的关系,CLI/ODBC 中最重要的头文件(include)和库(lib)
$DB2_ROOT/lib32 或 其联接 /home/db2inst1/sqllib/lib,其中最重要的是libdb2.so
4.数据库备份及恢复
(1).使用用户名和口令登录服务器
# db2 connect to ecm3000 user using
(2).强制停止所有应用,是异步的
# db2 force applications all
(3).将数据库备份到指定目录下
# db2 backup database to
(4).从指定目录中恢复数据库
# db2 restore database from
5.修改和卸载DB2
请先反编目()如步骤2中
# su db2inst1
$ cd $DB2_ROOT/install
$ ./db2_deinstall -a
等待结束 ...
修改该/etc/inittab 中启动db2的那一句,保证放弃启动IBM/DB2数据库服务。
;‘叁’ linux安装db2需要哪些依赖
于工作的需要,刚刚尝试完在Linux下安装DB2数据库,已经连接测试成功,简单做了下总结,由于采用的多为命令行,所以没有必要截图了。望能对其他程序员有所帮助......如果有不正确的地方,希望和大家共同讨论......
准备工作
步骤1 以root用户登陆需要安装DB2的Linux服务器。
步骤2 创建DB2安装包存放目录:# mkdir /home/db2install
步骤3:将需要安装的文件上传至该目录下
步骤4:解压通过使用图形界面,右键。解压到本地
执行DB2安装脚本
步骤1 以root用户登录需要安装DB2的服务器。
步骤2 进入目录/home/db2install/server。
# cd /home/db2install/expc
步骤3 运行DB2安装脚本。
# ./db2_install
对于root用户安装,缺省情况下,DB2数据产品安装在以下目录中:/opt/ibm/db2/V10..1
创建用户
/usr/sbin/groupadd db2iadm1
/usr/sbin/groupadd db2fadm1
/usr/sbin/useradd –m -g db2iadm1 –d /home/db2inst1 db2inst1
/usr/sbin/useradd –m -g db2fadm1 –d /home/db2fenc1 db2fenc1
也可以使用图形化操作
创建实例
#cd /opt/IBM/db2/V8.1/instance/
./db2icrt –a server -u db2fenc1 db2inst1
注意:安装是出现了host ‘name’ inviable的异常。
修改方法:cd/ect
修改 hosts文件 把host的name 添加上即可创建成功
产品许可证
/opt/IBM/db2/V8.1/adm/db2licm -a /mnt/cdrom/db2/license/db2pe.lic
添加DB2端口
SU - root
vi /etc/services 加入下面一行
db2inst1 50000/tcp
DB2 配置
su – db2inst1
db2set DB2_EXTENDED_OPTIMIZATION=ON
db2set DB2_DISABLE_FLUSH_LOG=ON
db2set AUTOSTART=YES
db2set DB2_STRIPED_CONTAINERS=ON
db2set DB2_HASH_JOIN=Y
db2set DB2COMM=tcpip
db2set DB2_PARALLEL_IO=*
db2set DB2CODEPAGE=819#Update dbm cfg
db2 update dbm cfg using SVCENAME db2inst1
db2 update dbm cfg using INDEXREC ACCESS
运行DB2
步骤1以db2inst1用户ID登录系统:
# su –u db2inst1
步骤2 启动数据库DB2:
db2inst@linux:~> db2start
步骤3创建sample数据库:
db2inst@linux:~> db2sampl
步骤4访问DB2命令行环境以执行SQL语句:
db2inst@linux:~> db2
步骤5执行SQL语句连接sample数据库并查看staff表内容,列出系统表,查看system.systables表结构,之后断开连接并退出:
=>connect to sample
=>select * from staff where dept = 20
=>list tables
=>describe table sysibm.systables
=>connect reset
=>quit
步骤6 停掉DB2
db2inst@linux:~> db2stop
‘肆’ 虚拟机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/moles/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/moles/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 procts - /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 procts.
SERVER
CONSV
EXP
CLIENT
RTCL
Enter "help" to redisplay proct 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 mole 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 mole 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/moles/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/moles/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 : Hexmp, 4 bytes
0x00007FFF17631758 : B400 0F87
解决方案:由于此前我在此机器上试过N次db2cluster_prepare,包括V9.8、V10.1,V10.5安装,导致全局注册表变量没有删除干净,使用db2greg -mp
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 -mp查看
检查一下是否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 moles from /lib/moles/3.0.76-0.11-default/extra
runmmfs: The /lib/moles/3.0.76-0.11-default/extra/mmfslinux.ko kernel extension does not exist.
runmmfs: Unable to verify kernel/mole configuration.
Loading moles from /lib/moles/3.0.76-0.11-default/extra
runmmfs: The /lib/moles/3.0.76-0.11-default/extra/mmfslinux.ko kernel extension does not exist.
runmmfs: Unable to verify kernel/mole 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/moles/`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 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虚拟环境下搭建DB2数据库DPF
Instance级别的multi-partition DB2环境分为3种: DB2 SMP, DB2 MPP 和 DB2 SMP Cluster DB2 SMP指的是在一台有多个CPU的机器上(双核在Linux上被识别为2个CPU),建立的一个有多个partition(不超过CPU的数量)的DB2 Instance. DB2 MPP指的是在多...
‘陆’ 怎样在虚拟机linux系统安装db2
首先虚拟机使用nat上网即可,在linux下使用ifconfig eth0查看ip地址并记下。然后在外部windows上安装QC,装好工具后,打开.
没特别说明的地方默认或随便
1.在左边蓝色的小球(quest central for db2)上右键,"Add Instance or subsystem";
2."NEXT"
host name 填欲连接的数据库IP ,即你记下的ip
Operating system: 数据库的操作系统 如 linux
"NEXT"
node name 随便填
port number 端口 如"50000"
"NEXT" "NEXT" "FINISH"
这时候就多了个电脑咯...名字就是上面填的 host name
3.在新建的节点上(白色的双圆柱)右键 "add database"
database name 填数据库的名字
database alias 跟上面一致就行
4.一直"next" 到"finish"
‘柒’ linux系统下 重启db2数据库
我用的CentOS系统,内核是Linux。 进入图形界面后,在桌面上右键点击“创建新终端”
1.在命令行界面中用如下语句切换到db2inst1账户中:
su - db2inst1
注意,命令要小写,中间的减号是半角的。其中db2inst1账户(同时也是实例、进程)是在安装DB2过程中创建的一个默认账户,相当于Windows中的那个DB2实例,要想执行各种db2的命令,需要在这个账户下操作;
2.在该账户下,可以打开控制中心,也可以进入到命令行处理器。进入命令行处理器的方法很简单,直接用db2命令,然后回车即可;
3.打开控制中心稍微有点麻烦,需要在桌面上另外打开一个命令行窗口,在其中输入:
xhost local:db2
然后在db2inst1账户所在的窗口中,输入命令:
db2cc &
就可以打开控制中心。
4.现在可以查看当前实例
db2ilist
如果需要创建表,则需要打开数据库管理服务,输入命令:
su - db2inst1
db2start //启动db2工作实例
db2stop //停止db2实例
db2set -all //查看db2所有注册表变量
在变量列表中有一个db2管理用户:DB2ADMINSERVER=XXXXX
只有切换到管理用户才可以创建表 su - XXXXX
然后,输入命令: db2admin start 启动管理实例
说明:
在Linux环境下,一个用户对应一个实例,创建数据库必须在实例下创建,因此切换到用户即可切换到实例。命令如下:
su - db2inst1
db2 get instance
‘捌’ linux启动db2数据库方法和如何启动db2界面
实例创建了么?如果没创建,先看看基础知识,创建一下先。
如果创建了,就su到实例用户后尝试执行db2cc(v10之后版本应该没有cc了)。
之后如果找不到命令,就cd ./sqllib;. ./db2profile 之后再试试~
希望有帮助~