DB2数据库使用

DB2 新建用户、创建数据库流程

1.添加用户

#DB2没有数据库级别的用户,使用的是操作系统级别的用户,即root新建用户即可

如:

useradd -g users -d /home/audit -s /bin/bash -m audit

2.修改用户密码

passwd audit

#设置密码即可

3.启动数据库

root@ubuntu:~# su - db2das        #注意,启动数据库是使用的特定的用户

db2das@ubuntu:~$ db2admin start

————

SQL4406W The DB2 Administration Server was started successfully.

db2inst1@ubuntu:~$ db2start

————

2014-06-06 00:38:51 0 0 SQL1063N DB2START processing was successful.

4.创建数据库

db2inst1@ubuntu:~$ db2 create database AUDIT using codeset GBK territory cn

————

DB20000I The CREATE DATABASE command completed successfully.

 

5.连接到创建的数据库上

db2inst1@ubuntu:~$ db2 connect to AUDIT

————

Database Connection Information

Database server = DB2/LINUXX8664 9.7.1

SQL authorization ID = DB2INST1

Local database alias = AUDIT

6.给audit用户授予dba权限

db2inst1@ubuntu:~$ db2 grant dbadm on database to user audit

————

DB20000I The SQL command completed successfully.

7.为该用户创建schema

db2inst1@ubuntu:~$ db2 create schema audit AUTHORIZATION audit

————

DB20000I The SQL command completed successfully.

 

8.切换到该数据库下

audit@ubuntu:~$ db2 connect to audit

————

Database Connection Information

Database server = DB2/LINUXX8664 9.7.1

SQL authorization ID = AUDIT

Local database alias = AUDIT

audit@ubuntu:~$ db2 set current schema audit

————

DB20000I The SQL command completed successfully.

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

DB2新建缓冲池、建立表空间

 

1.删除旧的表空间

#若之前建有表空间,可先做删除

db2 drop tablespace tablespace1

2.新建缓冲池

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

#bp32k为该缓冲池的名称;

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

3.新建表空间

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

#关于第一个参数:

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

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

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

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

#关于表空间和缓冲池的说明:

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

4.调整表空间大小

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

 

5.调整缓冲池大小

db2 alter bufferpool bp32k size 2g

6.远程客户端的配置网络:

1.db2ad账户下:

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

more /etc/services

2)

db2 update dbm cfg using SVCENAME DB2_db2ad

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

2.db2db账户下:

1)

db2 catalog tcpip node <node_name> remote 172.***.***.*** server 60040

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)

db2 catalog db <dbname> at node <node_name>

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授权使用表空间:

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

7.建表

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

db2 -vf tmp.sql

8.删除数据库

查看所有数据库:db2 list db directory

断开数据库连接:db2 connect reset

删除已存在的数据库:db2 drop database <DBname>

#如果执行失败可能是有数据库连接的存在,执行 db2 stop force 或者 db2 force application all,再启动 db2 start ,删除数据库时,所有表空间会自动删除。

9.备份、恢复数据库

1)备份

db2 backup database <DBname> to D:\文件夹

#备份之前需查看TESTDB使用的表空间的文件路径。恢复时需在机器上创建同样路径的文件夹,否则恢复会导致表空间挂起,恢复不成功。

查看数据库表空间

db2 connect to TESTDB; 

db2 list tablespaces show detail;

db2pd -tablespaces -db TESTDB;

查看数据库配置 

db2 get db cfg

2)恢复

a.先创建表空间需使用的文件夹(与原库一样);

b.执行恢复命令:

db2 resotre db TESTDB from "D:\BACKUP" taken at  20180720.... into TESTDB;

db2 rollforward  db TESTDB to end of log and stop

猜你喜欢

转载自blog.csdn.net/weixin_41055728/article/details/84334147