DB2是IBM推出的第二个关系型数据库,所以称为db2。

实例和数据库的关系

实例也叫DatabaseManager。
数据库是指数据的物理存储。
实例和数据库的关系:实例开启才能访问数据库。
实例是一组进程和一组共享内存。
不同实例间相互独立。
实例提供了一个可标识的数据库服务器的环境。
同一台机器可以同时创建和运行多个实例,每个实例都有自己的内存空间,并具有单独的权限控制。

实例的作用

一般来说,在一台机器上运行多个实例基于以下几种考虑:
1. 对数据库环境进行调试和开发的需要。
如果直接在提供正式数据服务的实例内部对进行各种调试和开发,有可能会影响系统的性能,甚至会使整个系统崩溃。这时用户可以创建一个新的实例,在新的实例内进行调试和开发,因为各个实例都有自己的内存空间,一个实例中的工作不会干扰其他实例正常的数据库服务。
2. 出于对安全性的考虑。因为每个实例有单独的权限控制,我们可以为不同的实例设定不同的管理人员,加强安全性的控制。比如你可以把你的个人信息存放在由你控制的实例中,其他的实例拥有者无权查看。
3. 出于优化的考虑。不同的数据库可能会需要不同的数据库管理器的配置参数来达到最优的性能,如果把它们放到同一个实例中,不能满足需要。
当然,系统中的实例不是越多越好,如果在系统中创建的实例过多,不仅会造成额外的资源消耗(内存、硬盘空间等),也会增大管理开销。

Db2 linux安装目录:

DB2对象层次

sql执行流程

数据库对象

模式

为了防止两个用户使用同一个数据库建同名的表冲突问题,引入了模式。

索引

二叉搜索树要求所有数据都在内存中,面对数据库海量数据显然不适合,B+树是针对二叉搜索树的一种改进数据结构。

每一个节点可以对应几个连续的页,只需要一次io就可以将若干个相近的数据装入内存中。

索引举例:

为UserID建立索引:

包含多列的复合索引,按照第一个字段排序,第一个字段相同则按照第二个字段排序,一次类推,图示如下:

注意如果在(A,B)字段建立索引,那么查询条件包含A或者A与B的时候会利用索引,但是当查询条件只包含B的时候不会利用索引。

索引类型:
- 普通索引
- 唯一索引
- cluster索引:保证数据页的物理存储顺序和索引键的顺序保持一致,这样当查询某一范围的数据时,可以一次读取到相邻物理块上的数据,而不是分散查找。

  • include索引:在索引的键上面可以附加一个其他字段的信息,当每次查询A字段的时候都需要知道B字段的值时可以使用include索引,这样就不必访问物理页,直接就从索引中取到信息。注意使用Include索引必须是唯一性索引。

  • 复合索引:包含多个字段的索引

视图:

视图是一个逻辑表,可以把视图想象成一个复杂sql语句的别名。当查询视图的时候,就是执行其中的sql语句。
不建议使用过大的视图,特别是嵌套视图,因为sql性能的调优是个问题。

昵称:

一般一个数据库是不能访问另一个数据库的表的,但是配置了邦联之后,在本地为远程表创建一个昵称,就可以访问了。

序列:

对于某些交易系统,需要在数据库中记录交易流水日志信息,为了保证每行记录的唯一性,一般是为每行记录设置一个计数器,每次提交计数器加1,不过这种方法在多用户的并发情景下需要加锁,存在性能问题。DB2提供了如下解决方法:
1. Gernate_unique函数:利用国际标准时间戳+当前数据库分区号生成一个13个字节的字符串。这种方法的弊端是当系统时间有调整时,可能出现重复值。
2. Sequence是db2的一个对象,按照一定规则产生的自增数字序列,这个序列一般用作主键,此外没有其他意义
3. Identity自增字段,和sequence的区别是:

大对象LOB(Large Object):

CLOB:字符大对象
BLOB:二进制大对象

对于LOB来说,页中存在的并不是实际数据,而是LOB描述符,指向LOB数据存储的位置,对于LOB的查询和存储并不经bufferpool,可使用file system caching来提高性能。

在db29.7版本后引入了内联LOB的特性,当要插入的LOB对象小与inline length指定的长度时,LOB数据直接存在行记录中,否则仍然在行记录中存储LOB描述符。

函数

触发器

存储过程(SQL PL)

SQL存储过程(直接在db2引擎中执行)
外部存储过程(如基于java/c的存储过程)(在fenced用户进程中执行)

数据迁移

  1. 同构环境下的数据迁移,比如从生产库到测试库系统,在生产库上做备份,然后在测试库恢复
  2. 异构环境下的数据迁移(比如windows到linux),先用db2look导出表结构,再导出表数据,然后导入数据库。
  3. 灾难或者故障情况下的数据恢复,使用db2dart工具,该工具可以在不启动实例的情况下导出数据

数据导出工具:

  1. 游标:提供了一种对从表中检索出来的数据灵活进行灵活操作的手段。游标刚开始指向结果集中第一条数据,第一条数据读取完之后就指向第二条数据。
    游标适合于在表间迁移数据,而不经过中间文件,只有LOAD支持游标。
  2. Export:将表数据导出到文件中
  3. Import:将文件中数据导入表中
  4. Load:适合大数据量的导入,import实际上还是会执行insert操作,而load是直接格式化数据为db2数据页,写入到数据库中,记录日志很少,不会检查约束,不触发触发器

导入导出LOB

导入导出sequence

导入导出identity

迁移出现乱码

跨表空间迁移

跨数据库迁移(不同平台)

db2move
db2look

数据恢复:

DB2重要概念(一)相关推荐

  1. linux创建启动连接数据库,DB2入门(1)--安装、启动、连接

    1.安装数据库 windows下的安装 软件下载直接是从官网下载的, 下载免费试用版学习一下: 1. 进入官网,点击"Free DB2 trials" 2. 然后选择自己要下载的版 ...

  2. 【windows版本】 db2数据库安装与使用

    0.目录 1.安装DB2数据库 1.创建数据库 2. 配置链接参数 3.工具链接 4. 参考 5.其他 说句真心话,真TMD讨厌IBM的软件,IBM的软件下载真是TMD不容易.要不是公司项目需求,谁T ...

  3. DB2入门(1)--安装、启动、连接

    1.安装数据库 windows下的安装 软件下载直接是从官网下载的, 下载免费试用版学习一下: 1. 进入官网,点击"Free DB2 trials" 2. 然后选择自己要下载的版 ...

  4. oracle与DB2

    1.体系结构,DB2的实例和数据库分开的做法,我个人还是比较喜欢的,因为实例可以创建多个,数据库的恢复直接恢复到实例下就可以了,相对ORACLE简单多了. 2.管理工具,DB2的管理工具做得太简陋了, ...

  5. DB2 UDB V8.1 管理 学习笔记

    DB2 UDB V8.1 管理 学习笔记 DB2 学习笔记 - AIview.com Last updated on Wednesday, August 24, 2005 Skip to naviga ...

  6. DB2数据库基本概念

    http://db365.net/home.php?mod=space&uid=19鉴于CSDN无故删除博文,本博客不再更新,暂时迁至http://www.db365.net 1 DB2数据库 ...

  7. IBM DB2 学习笔记:关系模型、基本概念、数据库实例基本操作、数据库对象

    文章目录 1. 关系数据模型 1.1 什么是数据? 1.2 为什么使用数据库? 1.3 数据库管理系统(DBMS) 1.4 数据模型 1.5 关系数据模型 1.6 关系数据库 1.6.1 表 1.6. ...

  8. DB2数据库编目(catalog)概念的理解

    在.profile里配置 PATH=$PATH:/home/db2inst1/sqllib/bin export PATH 编目(Catalog),是在本地或远程建立客户端到服务器的数据库连接的过程. ...

  9. DB2数据库基本特性和概念简介

    DB2 是一种关系数据库管理系统(RDBMS),是 Information Management 产品系列的一部分.DB2 被认为是第一种使用 SQL(一种为 RDBMS 提供接口的语言)的数据库产品 ...

最新文章

  1. UNIX中的文件控制--fcntl()
  2. 2016年网络诉求:物联网+SDN+自动化
  3. win10系统上使用utorrent的问题
  4. 操作系统中抢占式和非抢占式内核的区别
  5. echart 数据点可以加链接吗_地理可视化就这么简单、酷炫,蚂蚁金服AntV 空间数据可视化引擎 L72.0发布...
  6. laravel用crud之index列出产品items
  7. python 中实现enum
  8. IT项目需求调查问卷(模板)
  9. 【实用工具】treer生成项目的目录结构,帮助大家书写好的项目readme
  10. 机顶盒安装APK方法
  11. 新浪短连接(t.cn)在线生成工具
  12. c语言实现陷波器算法,50Hz数字陷波器的设计.doc
  13. 关于公众号的运营干货与常用的工具
  14. 初识设计模式 - 解释器模式
  15. 加密指数有什么好买的?想象空间可能还没打开……
  16. 【转载】何时使用领域驱动设计
  17. 网站策划文案-新闻发布系统简介
  18. OC Extension OveralHeader(常用屏幕尺寸数据 宏定义) 常量
  19. 好看的~图片素材网站
  20. mysql 中 in 的用法

热门文章

  1. iPhone 6 ios8 升级IOS12
  2. 空气净化器的新思路:将植物养在机器里
  3. 什么是分布式系统(通俗易懂)
  4. 2022年-年度总结报告
  5. 解决win10下git闪退
  6. 文件后缀名(项目与编译环境经验记录1)
  7. vue--实现todo案例
  8. 在线音乐哪个支持linux,网易云音乐上线国内在线音乐应用中首个Linux版
  9. 最新消息,苹果手机ios17系统将要支持微信多开分身,内测版即将发布
  10. 金融数据api(tgw)与talib结合,量化因子的高性能计算——量化数据中台系列(7)