在db2中,如何在某个用户下创建表

在db2中,如何在某个用户下创建表,第1张

DB2里面有一个schema(模式)的概念,你要创建把表创建到某个用户下面,只需要在创建表的时候指定表的模式,当然首先需要在那个模式下面创建表的权限。

比如你是user1,

想要创建表到user2下面,默认情况下用user1登陆的时候,表是创建在user1模式下面的。

如下:

db2==>

connect

to

TESTDB

user

user1

using

"xxxxxx"

db2==>

create

table

user2.tbl1(id

int

not

null

primary

key,

c1

char(20))

这样,创建的表就在user2这个模式下面了。

一、创建用户和组

1、使用root用户添加系统用户

/usr/sbin/groupadd -g 1997 db2igrp

#instance所在的group,加入这个group的所有用户都具有DBA权限/usr/sbin/groupadd -g 1998 db2fgrp

#fenced用户所在的group/usr/sbin/useradd -u 1997 -g db2igrp -d /cbusdb/db2inst1 db2inst1

#db2inst1用户/usr/sbin/useradd -u 1998 -g db2fgrp -d /cbusdb/db2fenc1 db2fenc1

#db2fenc1用户/usr/sbin/groupadd db2fadmin

/usr/sbin/useradd -g db2fadmin db2admin

2、使用root用户添加数据库账号

/opt/ibm/db2/V10.5/instance/db2icrt -s ese -u db2fenc1 db2inst1

#在所有的机器上,使用root用户,建立db2 admin server:

/opt/ibm/db2/V10.5/instance/dascrt -u db2admin#启动db2 admin server:

db2admin start

3、修改节点配置文件

#vim /cbusdb/db2inst1/sqllib/db2nodes.cfg0 cbusdb01 0

1 cbusdb01 1

2 cbusdb02 0

3 cbusdb02 1

4、修改实例参数

su - db2inst1

db2iauto -on db2inst1

db2set DB2_SKIPINSERTED=on

db2set DB2_USE_ALTERNATE_PAGE_CLEANING=ondb2set DB2_EVALUNCOMMITTED=on

db2set DB2_SKIPDELETED=on

db2set DB2COMM=TCPIP

db2set DB2FCMCOMM=TCPIP4

db2set DB2RSHCMD=/bin/rsh

#注意如果配置的ssh则此处需要修改成

db2set DB2RSHCMD=/usr/bin/ssh

db2set DB2CODEPAGE=1386

db2set DB2TERRITORY=86

db2set DB2_PARALLEL_IO=*

5、配置服务端口

DB2c_db2inst1 61000/tcp

DB2_db2inst1 61001/tcp

DB2_db2inst1_1 61002/tcp

DB2_db2inst1_2 61003/tcp

DB2_db2inst1_3 61004/tcp

DB2_db2inst1_4 61005/tcp

DB2_db2inst1_END 61008/tcp

6、调整系统参数,设置dpf所需的资源

/sbin/sysctl -w kernel.sem=“250 32000 32 1024”/sbin/sysctl -w kernel.msgmnb=16384

/sbin/sysctl -w kernel.msgmni=1024

/sbin/sysctl -w kernel.msgmax=8192

/sbin/sysctl -w kernel.shmmni=4096

/sbin/sysctl -w kernel.shmall=2097152

/sbin/sysctl -w kernel.shmmax=1073741824

7、修改环境变量

cat 。/sqllib/db2profile 》.profile

vi .bash_profile #添加如下信息:

/cbusdb/db2inst1/sqllib/db2profile

二、配置主机名

分别在两台主机上修改如下文件:

#vi /etc/sysconfig/network

#-------------------------

#NETWORKING=yes

#HOSTNAME=cbusdb01

#-------------------------

#vi /etc/hosts

#-------------------------

#127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 cbusdb01#::1 localhost localhost.localdomain localhost6 localhost6.localdomain6#192.168.1.122 cbusdb01

#192.168.1.123 cbusdb02

#-------------------------

三、配置rsh

rsh是远程运行shell的服务.db2使用rsh服务运行启动和停止数据库服务器的命令,以及大部分管理命令。

1、安装rsh

#yum install rsh*

2、配置rsh的安全文件

#vi /etc/securetty

#add the content

#------------------

#rsh

#rlogin

#rexec

#------------------

3、修改rsh的配置参数/etc/xinetd.d/rsh ##在生产环境建议配置ssh免密登录

#vi /etc/xinetd.d/rsh

service shell

{

socket_type = stream

wait = no

user = root

log_on_success += USERID

log_on_failure += USERID

server = /usr/sbin/in.rshd

disable = no

}

4、修改rsh的配置文件rlogin

#vi /etc/xinetd.d/rlogin

service login

{

disable = no

socket_type = stream

wait = no

user = root

log_on_success += USERID

log_on_failure += USERID

server = /usr/sbin/in.rlogind

}

4、免密登陆,实例用户db2inst1的家目录中创建.rhosts文件

cat $HOME/.rhosts

cbusdb01 db2inst1

cbusdb02 db2inst1

5、CentOS7.0需要单独下载xinetd

yum install xinetd #低于此版本可不下载

6、重启rsh服务

service xinetd restart

7、验证rsh服务

rsh cbusdb01 date

rsh cbusdb02 date

#db2_all echo hi 没有返回

yum install ksh

四、配置时钟服务器

1、安装ntp服务器

#yum install ntp*

# ntpdate -u 202.112.10.36

#ntpdate cn.pool.ntp.org

#service ntpd start

#chkconfig ntpd on

2、修改ntp配置

#允许内网其他机器同步时间

restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

#互联网时间服务器

server 210.72.145.44 perfer # 中国国家受时中心server 202.112.10.36

# 1.cn.pool.ntp.orgserver 59.124.196.83

# 0.asia.pool.ntp.org#允许上层时间服务器主动修改本机时间

restrict 210.72.145.44 nomodify notrap noquery

restrict 202.112.10.36 nomodify notrap noquery

restrict 59.124.196.83 nomodify notrap noquery

#外部时间服务器不可用时,以本地时间作为时间服务

server 127.0.0.1

fudge 127.0.0.1 stratum 10

3、修改时区

cp -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

clock -w

4、在节点2上配置时钟服务器

*/5 * * * * /usr/sbin/ntpdate cbusdb01

五、配置nfs服务

1、yum install nfs*

# yum install portmap rpcbind #安装nfs客户端

2、配置需要共享的资源

#vi /etc/exports

/cbusdb *(rw,sync,no_root_squash)

/cbusdblog *(rw,sync)

3、启动nfs server

service rpcbind start

service nfs start

service nfslock restart

4、导出资源

exportfs -rv

5、显示NFS Server上所有的共享卷

showmount -e

6、在客户端挂载共享目录

#mount 192.168.1.122:/cbusdb /cbusdb

#vi /etc/fstab

cbusdb01:/cbusdb /cbusdb nfs rw,timeo=300,retrans=5,hard,intr,bg,nolock,suid

六、关闭selinux

vim /etc/sysconfig/selinux

#SELINUX=disabled

七、测试、创建数据库

1、启动数据库

#db2start

2、创建数据库

#db2 “create db cbusdb on /cbusdblog using codeset gbk territory cn”

一、建表空间和数据库

1.在db2ad、db2db和db2ap上均执行:

[sql] view plaincopy

db2set db2comm=tcpip

db2set db2codepage=1386

2.新建数据库:

[sql] view plaincopy

db2 create db <dbname>using codeset gbk territory CN collate using identity

3.连接上数据库:

[sql] view plaincopy

db2 "connect to <dbname>"

4.创建缓冲池 + 建立表空间;

1).删除旧的表空间:

[sql] view plaincopy

db2 drop tablespace tablespace1, tablespace2, tablespace3

2).新建缓冲池:

[sql] view plaincopy

db2 create bufferpool bp32k all nodes size -1 pagesize 32k

bp32k为该缓冲池的名称;

32K为页大小;

size=-1表示使用缺省的buffpage,而buffpage可以通过db2 get db cfg|grep -i buff参数查看到;

3).新建表空间:

[sql] view plaincopy

db2 "create regular tablespace tablespace1 pagesize 32k managed by database using(file '/usr/yixiayizi/tablespace1' 5g) bufferpool bp32k"

db2 "create regular tablespace tablespace2 pagesize 32k managed by database using(file '/usr/yixiayizi/tablespace2' 10g) bufferpool bp32k"

db2 "create regular tablespace tablespace3 pagesize 32k managed by database using(file '/usr/yixiayizi/tablespace3' 2g) bufferpool bp32k"

注意(file '/usr/yixiayizi/tablespace1' 5g)的设置:

第一个参数:

当指向外置盘时,file改为device;

当指向文件路径时,为file;

第二个参数:需要是绝对路径;

第三个参数:该表空间的大小;

关于表空间和缓冲池的说明见如下网页:

http://www.ibm.com/developerworks/cn/data/library/techarticles/0212wieser/0212wieser.html

5.调整表空间大小:

[sql] view plaincopy

ALTER TABLESPACE <tablespace1>RESIZE ( FILE '/cstp/usr/db2ad/db2ad/ <tablespace1>' 5g )

6.调整缓冲池大小:

[sql] view plaincopy

db2 alter bufferpool bp32k size 2g

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

远程客户端的配置网络:

1.db2ad账户下:

1). 首先查看/etc/services中db2各个服务的端口号:

more /etc/services

可以看到如下信息:

DB2_db2ad 60040/tcp

DB2_db2ad_1 60041/tcp

DB2_db2ad_2 60042/tcp

DB2_db2ad_END 60043/tcp

2).

[sql] view plaincopy

db2 update dbm cfg using SVCENAME DB2_db2ad

这样在服务端实例对应的端口号就是60040;

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

2.db2db账户下:

1).

[sql] view plaincopy

db2 catalog tcpip node <node_name>remote 172.17.252.214 server 60040

(上面 *** 作的反编目:db2 uncatalog node <node_name>)

2).db2 list node directory可以看到如下信息:

Node Directory

Number of entries in the directory = 1

Node 1 entry:

Node name = <node_name>

Comment=

Directory entry type = LOCAL

Protocol = TCPIP

Hostname = 172.17.252.214

Service name = 60040

3).

[sql] view plaincopy

db2 catalog db <dbname>at node <node_name>

(上面 *** 作的反编目:db2 uncatalog db <dbname>)

4).db2 list db directory可以看到如下信息:

System Database Directory

Number of entries in the directory = 1

Database 1 entry:

Database alias = <dbname>

Database name= <dbname>

Node name= <node_name>

Database release level = c.00

Comment =

Directory entry type = Remote

Catalog database partition number= -1

Alternate server hostname=

Alternate server port number =

--编目系统数据库目录

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

授权:

在db2ad账户下,给db2db授权使用表空间:

[sql] view plaincopy

db2 "grant use of tablespace <tablespace1>to user db2db"

db2 "grant use of tablespace <tablespace2>to user db2db"

db2 "grant use of tablespace <tablespace3>to user db2db"

二、建表

切换到db2db用户,执行建表的sql语句:

db2 -vf tmp.sql


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/6771281.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-28
下一篇2023-03-28

发表评论

登录后才能评论

评论列表(0条)

    保存