DB2 Universal Database?(DB2 UDB) 有一对非常有用的工具,可以帮助您实现这种跨平台的备份与恢复功能。 db2move 工具利用了 DB2 的数据移动工具(export 和 import 或 load)来移动数据库表。然而,由于数据库的内容远远不止于用户表,因此您需要使用其他方法在不同的数据库之间迁移其他数据库对象,例如约束、触发器、索引、序列、表空间、缓冲池等。这就是 db2look工具出现的原因。使用这个工具,您可以在源数据库中捕获到定义这些对象使用的数据定义语言(DDL),并在目标数据库中使用这些数据定义语言重新创建这些对象。
数据库移动工具 (db2move)
db2move工具可以从系统目录中检索出数据库中的所有用户表,然后将这些表导出为 PC/IXF 格式的文件,这是一种经过改编的集成交换格式(IXF)的数据交换架构。
这些 PC/IXF 文件可以被导入或装载到同种系统上的其他本地 DB2 数据库中,也可以被传递到其他工作站平台上,并导入或装载到这种平台上的 DB2 数据库中。 db2move 工具在导出操作中所生成的文件可以用作后来这些导入或装载操作的输入文件(参见表 1)。如果 db2move操作想要成功执行,所使用的用户 ID 必须具有底层 DB2 数据移动工具所需要的适当授权。在调用 db2move 命令之前,并不需要数据库连接;该工具会为您建立数据库连接。
db2move命令的基本语法如下所示:
清单 1. db2move 命令
db2move <database-name> <action> [<option> <value>]
export.bat
@echo off
set databaseName="%1"
if %databaseName% == "" set databaseName=dbname
db2move dbname export -tf text.txt -u username -p password
pause
import.bat
@echo off
set databaseName="%1"
if %databaseName% == "" set databaseName=dbname
db2move %databaseName% import
pause
text.txt
"SCHMEA"."TABNAME"
END
db2look生成数据库定义:
db2look -d testdb -z administrator -o testdb.sql
db2look -h
示例:
-- 这将生成由用户 WALID 创建的所有表和联合对象的 DDL 语句
-- db2look 输出被发送到名为 db2look.sql 的文件中
示例:
db2look -d DEPARTMENT -z myscm1 -e -o db2look.sql
-- 这将为模式名为 MYSCM1 的所有表生成 DDL 语句
-- 还将生成 $USER 创建的所有联合对象的 DDL。
-- db2look 输出被发送到名为 db2look.sql 的文件中
示例:
db2look -d DEPARTMENT -u walid -m -o db2look.sql
-- 这将生成 UPDATE 语句以捕获关于用户 WALID 创建的表/昵称的统计信息
-- db2look 输出被发送到名为 db2look.sql 的文件中
示例:
db2look -d DEPARTMENT -u walid -e -wrapper W1 -o db2look.sql
-- 这将生成由用户 WALID 创建的所有表的 DDL 语句
-- 还将生成适用于包装器 W1 的用户 WALID 所创建所有联合对象的 DDL
-- db2look 输出被发送到名为 db2look.sql 的文件中
示例:
db2look -d DEPARTMENT -u walid -e -server S1 -o db2look.sql
-- 这将生成由用户 WALID 创建的所有表的 DDL 语句
-- 还将生成适用于服务器 S1 的用户 WALID 所创建所有联合对象的 DDL
-- db2look 输出被发送到名为 db2look.sql 的文件中