Linux系统下启动DB2以及一些常用命令 您所在的位置:网站首页 重启数据库监听怎么设置的呢苹果 Linux系统下启动DB2以及一些常用命令

Linux系统下启动DB2以及一些常用命令

2024-07-03 22:07| 来源: 网络整理| 查看: 265

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 -v 或 db2level 或者用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 reset 或 db2 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 using trackmod on 设置归档模式数据库: db2数据库的归档方法有如下几种off, logretain, userexit, disk, tsm, vendor。数据库的默认日志模式为循环日志记录即off. 1). 可以通过命令手动修改配置文件db2 update db cfg for using logretain on db2 update db cfg for using logarchmeth1 userexit db2 update db cfg for using logarchmeth1 disk:/tmp db2 update db cfg for using logarchmeth1 tsm 2). db2 backup db to /tmp 3). 强制归档:db2 archive log for db 2.表的相关操作 列出数据库中的表:db2 list tables创建表:db2 "create table table_name(vol1 , vol2 , vol3 ... )"修改表名称: db2 rename table to 修改表中某字段名: db2 alter table rename column to 创建表指定表空间: db2 create table table_name(vol1 , vol2 , vol3 ... ) in ; # db2 "create table table_name(vol1 , vol2 , vol3 ... ) in " 创建一个主键自增的表: 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) " 表的时间类型: 时间类型默认当前时间表达形式datedefault current datexx年xx月xx日,如 2021-03-01timedefault current timex时x分x秒,如 11:00:21timestampdefault 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 db2pd -db -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 快速删除表里所有行,不能回滚



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有