Linux系统下DB2

  • Linux系统下启动DB2
  • 常用的一些数据库指令
    • 1.数据库相关操作
    • 2.表的相关操作

Linux系统下启动DB2

1.修改主机名为db2

vi /etc/sysconfig/network

将文件内容修改为:

NETWORKING=yes
HOSTNAME=db2

2.修改/etc/hosts 中主机名为db2
将文件修改成为如下:

127.0.0.1   redhat6 localhost db2 localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

3.切换到db2用户

su - db2inst1
chmod 775 sqllib/db2nodes.cfg

4.修改sqllib/db2nodes.cfg中主机名为db2
将文件修改成为如下:

0 db2 0

然后使用命令db2start启动DB2数据库实例。

常用的一些数据库指令

1.数据库相关操作

  • 开启数据库:db2start
  • 关闭数据库:db2stop (force) ,后面加force为强制关闭,最好先保证db2 list application没有应用连接
  • 查看数据库版本
    db2licm -vdb2level
    或者用SQL语句:
db2 select service_level from sysibmadm.env_init_info
  • 查看db2的许可证信息:db2licm -l ,导入许可证:db2licm -a <文件>
  • 显示当前的实例:db2 get instance
  • 列出所有数据库:db2 list db directory
  • (指定路径)创建数据库:db2 create db db_name (on /tmp)
  • 连接数据库:db2 connect to db_name
  • 断开数据库连接:db2 connect resetdb2 disconnect current
  • 数据库激活db2 activate database db_name
  • 查看激活的数据库db2 list active databases
  • 停止激活db2 deactivate database db_name
  • 删除数据库db2 drop database db_name ,注意删除数据库之前要使数据库处于deactive的状态
  • 创建不同字符集的数据库
db2 create database db_name using codeset GBK territory CN

更多字符集(codeset)参考:DB2字符集官方文档

  • 查看当前DB2数据库用户
db2 select current schema from sysibm.sysdummy1
#  db2 "select current schema from sysibm.sysdummy1"
  • 查看数据的相关配置
db2 get db cfg for db_name
  • 设置数据库,允许进行增量备份
db2 update db cfg for <db_name> using trackmod on
  • 设置归档模式数据库:
    db2数据库的归档方法有如下几种off, logretain, userexit, disk, tsm, vendor。数据库的默认日志模式为循环日志记录即off.
    1). 可以通过命令手动修改配置文件

    db2 update db cfg for <db_name> using logretain on
    db2 update db cfg for <db_name> using logarchmeth1 userexit
    db2 update db cfg for <db_name> using logarchmeth1 disk:/tmp
    db2 update db cfg for <db_name> using logarchmeth1 tsm
    

    2). db2 backup db <db_name> to /tmp
    3). 强制归档:db2 archive log for db <db_name>

2.表的相关操作

  • 列出数据库中的表:db2 list tables
  • 创建表:db2 "create table table_name(vol1 , vol2 , vol3 ... )"
  • 修改表名称:
db2 rename table <旧表名> to <新表名>
  • 修改表中某字段名:
db2 alter table <table_name> rename column <old_column_name> to <new_column_name>
  • 创建表指定表空间
db2  create table table_name(vol1 , vol2 , vol3 ... ) in  <tablespace_name> ;
#  db2  "create table table_name(vol1 , vol2 , vol3 ... ) in  <tablespace_name> "
  • 创建一个主键自增的表:
db2 create table s1 (id int not null primary key generated always as identity (start with 20001,increment  by +1),name varchar(200) not null) ;
#  db2 "create table s1 (id int not null primary key generated always as identity (start with 20001,increment  by +1),name varchar(200) not null) "
  • 表的时间类型:
时间类型 默认当前时间 表达形式
date default current date xx年xx月xx日,如 2021-03-01
time default current time x时x分x秒,如 11:00:21
timestamp default current timestamp 具体时间,如 2021-03-01-11.00.21.421000
  • 查看表所在的表空间:
db2 select tabname,tbspace from syscat.tables where tabname = '表名' ;   #表名大写
#  db2 "select tabname,tbspace from syscat.tables where tabname = '表名' "
  • 查看表所在的索引:
db2 select * from syscat.index where tabname = '表名' ;   #表名大写
#  db2 "select * from syscat.index where tabname = '表名' "
  • 查询所有的表空间
db2 select tbsp_name, case TBSP_USING_AUTO_STORAGE  when 1 then 'YES' else 'NO' end auto_storage from table (sysproc.MON_GET_TABLESPACE('',-1)) ;
#  db2 "select tbsp_name, case TBSP_USING_AUTO_STORAGE  when 1 then 'YES' else 'NO' end auto_storage from table (sysproc.MON_GET_TABLESPACE('',-1)) "
  • 查询确认表空间(重点观察Containers一栏的内容)
db2 connect to <DBNAME>
db2pd -db <DBNAME> -tablespaces
  • 插入数据: db2 "insert into table_name values(value1,value2 ...)"
  • 将文本文件的数据导入数据库某个表中,如将test.txt文件的数据导入到student表中:
db2 import from '(路径名)\test.txt' of del insert into student ;
  • 显示数据: db2 select * from table_name
  • 创建BUFFERPOOL
db2 CREATE BUFFERPOOL epayBUFFER SIZE 1000 PAGESIZE 32K ;
#  db2 "CREATE BUFFERPOOL epayBUFFER SIZE 1000 PAGESIZE 32K "
  • 创建TABLESPACE(表空间)
    表空间SMS MANAGED BY SYSTEM (指定的最后可以是目录)
    表空间DMS MANAGED BY DATABASE (指定的最后只能是文件)
db2 CREATE TABLESPACE epaySpace PAGESIZE 32K MANAGED BY SYSTEM USING ('/home/db2inst1/epay/ts') BUFFERPOOL epayBUFFER ;
#  db2 "CREATE TABLESPACE epaySpace PAGESIZE 32K MANAGED BY SYSTEM USING ('/home/db2inst1/epay/ts') BUFFERPOOL epayBUFFER "
db2 CREATE TABLESPACE TS_SPACE2 MANAGED BY DATABASE USING (FILE '/home/db2inst1/ts_space2/ts' 1000)
#  db2 "CREATE TABLESPACE TS_SPACE2 MANAGED BY DATABASE USING (FILE '/home/db2inst1/ts_space2/ts' 1000)"
  • 清空表数据

1).使用 DELETE 语句

db2 DELETE FROM < 表名 >

该语句将清除表中所有数据,但由于这一操作会记日志,因此执行速度会相对慢一些。另外要注意的是,如果表较大,那么为保证删除操作的成功,应考虑是否留有足够大的日志空间。

2).使用 NOT LOGGED INITIALLY 选项

db2 ALTER TABLE < 表名 > ACTIVATE NOT LOGGED INITIALLY WITH EMPTY TABLE

这一方法仅在所操作的表在创建时选择了 NOT LOGGED INITIALLY 选项进行定义后才可使用。整个删除操作将不会记日志,因此执行速度是这 4 种方法中最快的一种,但删除的数据是不可恢复的。

3).使用 LOAD 命令

db2 LOAD FROM /dev/null OF DEL REPLACE INTO < 表名 > NONRECOVERABLE
--(UNIX 系统或 LOAD FROM < 空文件 > OF DEL REPLACE INTO < 表名 > NONRECOVERABLE

在这一方法中,REPLACE 导入方式首先会将表中所有数据清空,然后 IMPORT/LOAD 又向表中导入了空数据,从而实现了数据的清除操作。

4).使用 DROP/CREATE TABLE 语句

db2 DROP TABLE < 表名 > CREATE TABLE < 表名 > < 字段的定义 >

如果保存有表的定义语句,或已利用 DB2LOOK 命令获得了表定义的脚本,那么也可先删除整个表,再重新创建表。如果表较大,那么用这种方法实现数据清空的速度会快于使用 DELETE 语句。但是用这种方法时要注意:如果这个表上有很多外键,那么需要维护外键的完整性。

PS:

9.7新增了 TRUNCATE TABLE tabname IMMEDIATE
快速删除表里所有行,不能回滚

Linux系统下启动DB2以及一些常用命令相关推荐

  1. linux查看磁带机端口,Linux系统下使用磁带机的常用命令Tar

    磁带机操作命令: tar命令: 使用tar命令复制文件或者目录树到单个磁带. //注: 不能复制空目录或者设备文件这样的特殊文件,不能用来创建多个磁带卷. 1.复制文件到磁带 (1)切换到包含有需要复 ...

  2. 2.1.Linux系统下启动MySQL的命令及相关知识

    2019独角兽企业重金招聘Python工程师标准>>> 一.总结一下:     1.Linux系统下启动MySQL的命令:     /ect/init.d/mysql start ( ...

  3. Linux系统下启动MySQL的命令及相关知识

    一.总结一下: 1.Linux系统下启动MySQL的命令: /ect/init.d/mysql start (前面为mysql的安装路径) 2.linux下重启mysql的命令: /ect/init. ...

  4. 电脑运行linux虚拟盘闪退,Linux 系统下启动Android模拟器报错闪退

    Linux 系统下启动Android模拟器报错 Emulator: libGL error: unable to load driver: radeonsi_dri.so Emulator: libG ...

  5. linux mkfs 源码,Linux系统下移植busybox中mkfs.vfat命令

    为了延长磁盘寿命来存储音视频文件,打发在格式化磁盘过程中将簇的大小设置大点.因为存储的音视频文件现对较大,那么将簇大小设置得尽可能大,这样可以增强磁盘读取数据的性能,同时也不会浪费太多空间. 但发现我 ...

  6. 查看Linux系统架构类型的5条常用命令

    导读 很多时候我们都需要查看当前 Linux 系统是 32 位还是 64 位系统架构类型,本文中我将向大家推荐 5 条常用命令.无论你使用的是桌面版或是只装了文本界面的 Linux 环境,以下命令几乎 ...

  7. linux清除文件后df还是满的,Linux系统下如何用du和df命令清除大文件?

    Linux系统中如果发现/home目录下剩余空间不足,可以使用du和df命令来对找到大文件,并且对它们进行删除,从而腾出足够的空间.那么如何用du和df命令清除大文件呢? 具体方法: 步骤1. du ...

  8. 使用JEECG框架项目在linux 系统下启动及运行缓慢的问题追踪和解决办法

    最近很多政府项目都在提倡国产化,因此需要将原有的项目移植到linux话环境中,我的一个项目在移植过程中就遇到了问题,该项目在windows环境中运行正常,启动速度一般在25-30秒内,但是移植到lin ...

  9. Linux系统(简介、文件管理、常用命令、账号管理、c开发工具)

    文章目录 1. Linux系统 2.文件管理与常用命令 2.1 文件和目录的层次结构 2.2 文件和目录命名 2.3 shell文件名通配符 2.4 文件管理 2.4.1 Linux常用文件类型 2. ...

  10. Linux系统下MySQL的导入数据的命令语句Load Data InFile的用法详解

    文章目录 语法格式 LOW_PRIORITY CONCURRENT LOCAL REPLACE 或 IGNORE PARTITION CHARACTER SET 对导入文件的字段进行格式描述 指定行的 ...

最新文章

  1. MyBatis-学习笔记10【10.JNDI扩展知识】
  2. hdfs数据节点分发什么协议_HDFS主要节点解说(一)节点功能
  3. gwt格式_GWT HTTP请求替代方案
  4. java类成员方法(成员函数)的初步介绍
  5. eclipse PHP开发环境配置
  6. js工作笔记003---js编写习惯_提高网页显示速度
  7. Eclipse------新建文件时没有JSP File解决方法
  8. 肌酸怎么吃效果最好?为什么使用肌酸没有效果!
  9. nc 模拟服务器_Linux网络利器netcat/nc
  10. 2021-09-07客户端向 NameNode 请求创建文件,NameNode 根据元数据信息计算出文件的元数 据信息
  11. 小课堂 | 你听过雾计算?对了,还有霾计算
  12. CentOS 系统时间校准
  13. Python 轻松操作Excel,实现自动化办公
  14. 64位win7下SQL2005安装和SP3补丁安装手记
  15. 梦幻西游手游经验任务链计算机,梦幻西游手游经验和道具任务链攻略
  16. 绿盟于旸:让阿里安娜火箭爆炸的缓冲区溢出 linkboy语录:tk出品必是精品呵呵
  17. java php python校园通知事项打卡 微信小程序系统
  18. E - Mafia CodeForces - 348A (推公式,思维)
  19. 磁盘一把锁一个感叹号_电脑C盘出现一把锁和黄色感叹号是什么原因,求大神赐教。...
  20. R语言函数定义快速查看

热门文章

  1. web小白,实战操作拿到网站后台账户和密码
  2. 商品订单(增删改查):新增订单;批量删除,发货;模糊查询,下拉菜单内容过滤(含时间);全选反选,列名排序
  3. Mac入门指南(二)常用命令
  4. linux装回windows系统,装linux后怎样装回windows?(Linux系统清除Grub的几种方法)
  5. Docker1.8 官方中文文档
  6. 如何识别图片文字?这几个识别图片文字软件简单又高效
  7. 近红外光谱分析的原理、技术及其分析方法
  8. 白孩儿--一个网上流传的故事[生活感悟]
  9. 4类官网原型设计及模板奉上,助你创意泉涌!
  10. C/C++编程:仿函数