DB2 - 数据库
DB2 - 数据库操作
Section titled “DB2 - 数据库操作”本章涵盖了 Db2 中创建、连接和管理数据库的基本操作。
数据库逻辑架构
Section titled “数据库逻辑架构”一个 Db2 实例可以管理多个数据库。每个数据库都是一个独立的单元,拥有自己的数据、日志和配置集。逻辑层次结构如下:
- 实例 (Instance): 管理系统资源的 Db2 服务器进程。
- 数据库 (Database): 相关数据对象的集合。它是连接的主要单元。
- 表空间 (Tablespaces): 组织表的逻辑存储单元。它们映射到物理存储(容器)。
- 模式 (Schemas): 一种在数据库中分组和组织对象(如表、视图、索引)的方式。
- 表 (Tables)、视图 (Views)、索引 (Indexes): 实际存储和提供数据访问的对象。
物理上,Db2 将所有这些信息组织在服务器文件系统上的结构化目录中,但作为用户,您主要通过 SQL 与逻辑对象进行交互。
CREATE DATABASE 命令初始化一个新的数据库。默认情况下,它会向 PUBLIC 授予一组特权,允许任何用户连接并创建表。
标准数据库创建
Section titled “标准数据库创建”使用默认设置创建新数据库的语法:
CREATE DATABASE <database_name>示例:
db2 CREATE DATABASE sample输出:
DB20000I The CREATE DATABASE command completed successfully.最佳实践:指定字符集
Section titled “最佳实践:指定字符集”强烈建议指定 UTF-8 字符集(codeset),以确保您的数据库能够处理国际字符。
db2 CREATE DATABASE myappdb USING CODESET UTF-8 TERRITORY US创建限制性数据库
Section titled “创建限制性数据库”限制性数据库不会向 PUBLIC 授予默认特权。您必须显式授予用户访问它的权限。这是生产环境中的最佳实践。
语法:
CREATE DATABASE <database_name> RESTRICTIVE示例:
db2 CREATE DATABASE proddb RESTRICTIVE要查看当前实例中已编目的所有数据库:
db2 LIST DATABASE DIRECTORY输出(示例):
System Database Directory
Number of entries in the directory = 2
Database 1 entry:
Database alias = SAMPLE Database name = SAMPLE Local database directory = /home/db2inst1
Database 2 entry:
Database alias = PRODDB Database name = PRODDB Local database directory = /home/db2inst1连接到数据库
Section titled “连接到数据库”在执行 SQL 查询之前,您必须建立与特定数据库的连接。
语法:
CONNECT TO <database_name>示例:
db2 CONNECT TO sample输出:
Database Connection Information
Database server = DB2/LINUXX8664 11.5.8 SQL authorization ID = DB2INST1 Local database alias = SAMPLE要断开连接,请使用 db2 CONNECT RESET。
激活和停用数据库
Section titled “激活和停用数据库”激活数据库(ACTIVATE DATABASE)会预启动其服务并分配内存,这可以提高首次连接的性能。这通常在服务器重启后对生产数据库执行。
db2 ACTIVATE DATABASE sample停用(DEACTIVATE DATABASE)会在没有活动连接时关闭数据库服务。除非执行特定的维护任务,否则很少需要这样做。
db2 DEACTIVATE DATABASE sampleDb2 在实例(数据库管理器)和数据库级别提供了广泛的配置参数。您可以使用 CLP 查看和更新它们。
查看数据库配置
Section titled “查看数据库配置”语法:
db2 GET DATABASE CONFIGURATION FOR <db_name># 短别名db2 GET DB CFG FOR <db_name>更新数据库配置
Section titled “更新数据库配置”语法:
db2 UPDATE DB CFG FOR <db_name> USING <parameter_name> <value>示例:增加主日志文件大小。
db2 UPDATE DB CFG FOR sample USING LOGFILSIZ 4096注意:某些参数更改需要重新连接或重新激活数据库才能生效。
警告: 此命令不可逆,将永久删除数据库及其所有对象和所有数据。
您不能连接到您打算删除的数据库。
语法:
DROP DATABASE <db_name>示例:
db2 DROP DATABASE sample输出:
DB20000I The DROP DATABASE command completed successfully.