WEB开发网
开发学院数据库DB2 用AWK实现DB2 数据库 Schema的同步 阅读

用AWK实现DB2 数据库 Schema的同步

 2007-05-20 16:19:51 来源:WEB开发网   
核心提示: 其中,TABLEINBOTH是由上一步(找出仅在旧库或者新库中独有的表)的副产品,用AWK实现DB2 数据库 Schema的同步(7),注意,上述程序中,取得新SCHEMA的表空间名称通过以下步骤,找出新数据库使用的表空间的名称,并没有处理新旧table中均有并且字段类型不同的字段,这种情

其中,TABLEINBOTH是由上一步(找出仅在旧库或者新库中独有的表)的副产品。

注意,上述程序中,并没有处理新旧table中均有并且字段类型不同的字段,这种情况可以在卸出数据时按需要手工编辑生成的SQL脚本。

生成的SQL脚本名称叫"unload.sql"。在PC机上的DB2命令窗口中执行:

db2 -z result.txt -tvf unload.sql

其中,"-z"选项将执行结果同时输出到屏幕及文件result.txt中。执行结束时,需要查看result.txt,如果其中有错误提示,请按需要修改unload.sql。修改之后,再重新执行上述命令,直到所有SQL命令均执行无错为止。

取得新SCHEMA的表空间名称

通过以下步骤,找出新数据库使用的表空间的名称,并给出创建数据库缓冲池及表空间的SQL的建议。

# 8. 根据新数据库SCHEMA文件取得tablespace的名称清单

# 并给出创建缓冲池及tablespace的SQL建议

echo "创建缓冲池的命令: "
echo "create bufferpool BF81 size 10000 pagesize 8 K"
echo "创建表空间的命令: "
echo "------------------------------------
--------------------------"
for tblspace in ` grep -i "^[   ]*in[   ]" ${NEWDBSCHEMA} | grep ";" | awk '{
printf("%s
", $2);
if(NF > 3)
{
if($3 == "INDEX" && $4 == "IN")
{
printf("%s
", $5);
}}
}' | sort | uniq `
do
echo "CREATE TABLESPACE ${tblspace} PAGESIZE 8K MANAGED BY DATABASE USING
(FILE '<filename>' 50000) bufferpool bf81"
done
echo "-----------------------------------
---------------------------"

上一页  2 3 4 5 6 7 8 9 10  下一页

Tags:AWK 实现 DB

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接