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