DB2数据库是一款由IBM开发的关系型数据库管理系统,广泛应用于企业级的数据存储和管理。以下是一些关于DB2数据库的关键知识点,这些知识点对于初学者或有经验的DBA都非常有用:
1. **节点管理**:
- `db2 list node directory` 命令用于查看本地节点目录,了解已注册的数据库服务器信息。
- `db2 catalog tcpip node remote server ostype` 编目一个TCP/IP节点,允许连接到远程数据库服务器。
- `db2 uncatalog node` 取消节点编目,移除不再需要的节点信息。
2. **数据库目录**:
- `db2 list database directory` 显示系统中的所有数据库。
- `db2 list database directory on <盘符>` 查看指定盘符上的本地数据库,了解可访问性。
3. **数据库操作**:
- `db2 catalog database as at node` 编目数据库,使其可以在本地访问。
- `db2 uncatalog database` 取消数据库编目,移除数据库的本地注册信息。
4. **连接与验证**:
- `db2 connect to user using` 测试连接到远程数据库,指定用户名和密码。
5. **模式设置**:
- `set schema =` 用于设置当前会话的默认模式,影响查询和数据操作。
6. **字符集与代码页**:
- 在创建数据库时,使用`using codeset territory`设置字符集,如`create database dbtest using codeset IBM-437 territory US`。
- 设置环境变量`DB2CODEPAGE`或使用`db2set DB2CODEPAGE=1386`来更改数据库的代码页,需要重启DB2服务生效。
7. **数据库迁移**:
- 使用备份和恢复功能将低版本DB2数据迁移到高版本,如`db2 migrate database`。
8. **特殊字符处理**:
- 当表名或模式名包含引号时,需使用转义字符访问,如`db2 select * from "tabschema". "tabname"`。
9. **DDL生成**:
- `db2look -d -e -c -o` 命令导出表结构生成DDL文件,方便数据库对象的重建。
10. **脚本执行**:
- `db2 -tvf` 执行SQL脚本文件,`-t`表示每条语句后添加分隔符,`-v`显示执行的SQL,`-f`指定脚本文件。
11. **版本信息**:
- `select * from sysibm.sysversions` 查询当前DB2的版本信息。
12. **表结构与修改**:
- `describe table` 或 `describe select * from .` 查看表结构。
- 改变VARCHAR类型的列大小,只能增加不能减少,如`alter table alter column set data type varchar(SIZE)`。
13. **表数据清理**:
- `ALTER TABLE TABLE_NAME ACTIVE NOT LOGGED INITALLY WITH EMPTY TABLE` 快速清空大表,但不记录日志。
14. **查看数据库对象**:
- `SELECT * FROM SYSCAT.PROCEDURES` 查看存储过程。
- `SELECT * FROM SYSCAT.CHECKS WHERE TABNAME =` 查看表的检查约束。
- `SELECT * FROM SYSCAT.REFERENCES WHERE TABNAME =` 查看表的引用完整性约束。
15. **缓冲池监控**:
- `select * from SYSCAT.BUFFERPOOLS` 获取缓冲池的状态,有助于性能调优。
16. **配置参数查看**:
- `db2 get instance configuration` 和 `db2 get database configuration` 分别查看实例和数据库的配置参数。
以上就是DB2数据库的一些关键操作和管理技巧,掌握这些知识能帮助你更有效地管理和维护DB2数据库系统。