⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 db2命令介绍.txt

📁 db2 指定某个字符串中的第几个字符的更新
💻 TXT
📖 第 1 页 / 共 3 页
字号:
 会员:  密码:
是否自动登录       注册用户 | 忘记密码   高级搜索 
 CU爱心榜    CU-IT人才库  
(转贴)有关DB2的FAQ!值得一看,也希望大家补充!!! 
前往页面 1, 2,...  下一页 
    
 
       ChinaUnix.net首页 -> 论坛首页 -> DB2 [CU精华区]    
 
阅读上一个主题 :: 阅读下一个主题   
作者 留言 
 大连老K      




级别: 光明使者
注册时间: 2002-03-01
最后登录: 2003-12-24
帖子总数: 984
精华帖子: 2
原创精华: 0
来自: 渤海海峡,黄海北部
在线状态: ...在线...
 发表于: 2003-05-09 12:05    发表主题: (转贴)有关DB2的FAQ!值得一看,也希望大家补充!!!    

--------------------------------------------------------------------------------
 
转自CSDN!作者:Mr_Bean (笑熬浆糊) 

1、DB2 命令行处理器中命令选项的介绍 

环境 产品:DB2 UDB 
平台:跨平台 
版本:Version 6.1,Version 7.1 
问题 介绍 DB2 命令行状态下有关命令选项的用途及设置方法。 
解答 在 DB2 命令行处理器中使用命令 db2 list command options,可得到如下输出: 

命令行处理器选项设置 
后端进程等待时间(秒) (DB2BQTIME) = 1 
连接至后端的重试次数 (DB2BQTRY) = 60 
请求队列等待时间(秒) (DB2RQTIME) = 5 
输入队列等待时间(秒) (DB2IQTIME) = 5 
命令选项 DB2OPTIONS) = 

选项 说明 当前设置 
------ ------------------------------- ------------ 
-a 显示 SQLCA OFF 
-c 自动落实 ON 
-e 显示 SQLCODE/SQLSTATE OFF 
-f 读取输入文件 OFF 
-l 将命令记录到历史文件中 OFF 
-n 除去换行字符 OFF 
-o 显示输出 ON 
-p 显示交互式输入提示 ON 
-r 将输出保存到报告文件 OFF 
-s 在命令出错时停止执行 OFF 
-t 设置语句终止字符 OFF 
-v 回送当前命令 OFF 
-w 显示 FETCH/SELECT 警告信息 ON 
-x 不打印列标题 OFF 
-z 将所有输出保存到输出文件 OFF 

这些选项的具体功能及其缺省设置为: 
.a 显示 SQLCA 的数据,缺省为 OFF。 
.c 是否自动落实 SQL 命令,缺省为 ON。 
.e {c|s} 显示 SQLCODE 或 SQLSTATE,缺省为 OFF。 
.f 文件名 将命令的输入从标准输入指定到某一文件,缺省为 OFF。 
注:命令“db2 < 文件名”与“db2 -f 文件名”作用相同。 
.l 文件名 将命令记录到历史文件中,缺省为 OFF。 
.n 除去换行字符,缺省为 OFF。 
.o 将输出数据及信息送到标准输出,缺省为 ON。 
.p 在交互方式下显示命令行处理器的提示信息,缺省为 ON。 
.r 将输出保存到指定文件中,缺省为 OFF。 
.s 执行批处理文件中或交互方式下的命令出错时即停止执行操作,缺省为 OFF。 
.t 设置语句终止字符,缺省为 OFF。 
.v 回送当前命令到标准输出,缺省为 OFF。 
.w 显示 FETCH 或 SELECT 警告信息,缺省为 ON。 
.x 不打印列标题,缺省为 OFF。 
.z 文件名 将所有输出保存到输出文件,缺省为 OFF。 

以上选项不要求顺序并可以进行组合使用。若要修改其缺省设置,将选项设为打开,只需在选项前加“+”;而将选项关闭则加“-”。 

通过设置环境变量 DB2OPTIONS,也可对这些选项进行设置。如在 Intel 系统下使用:set DB2OPTIONS='+c -a';在 UNIX 系统下使用:export DB2OPTIONS='+c -a'。但命令行处理器选项设置的优先级高于 DB2OPTIONS 的设置。 

另外使用 db2 update command options 命令,同样可以实现通过交互式输入模式或命令文件改变选项设置的功能。如:db2 update command options using c off。 

2、DB2备份历史文件损坏 

环境 产品:DB2 
平台:跨平台 
版本:DB2 5.2;DB2 6.1 
问题 DB2备份历史文件损坏 
解答 如果在作数据库备份操作时遇到DB2备份历史文件db2rhist.asc损坏, 错误代码SQL2048的错误,可按照如下步骤操作: 1. 先在NODE000x/SQL000x目录下找到该文件,及其备份文件db2rhist.bak,将db2rhist.asc文件移动到其他目录中。 
2. 重新运行备份命令。此命令仍会报同样的错误,但同时DB2系统会自动用db2rhist.bak重新生成db2rhist.asc文件。 
3. 再次运行备份命令,它将能够正确运行。 

如果按照上面的步骤操作后,仍出同样的错误,则再按如下操作: 1. 先在NODE000x/SQL000x目录下找到该文件,及其备份文件db2rhist.bak,将这两个文件移动到其他目录中。 
2. 重新运行备份命令。此命令仍会报同样的错误,但同时DB2系统会自动重新生成这两个文件。 
3. 再次运行备份命令,它将能够正确运行。 

3、DB2从7.2版本开始支持存储过程的发布,即可以将一个数据库上已编译好的存储过程抽取并安装到其它数据库上,目标数据库所在的服务器上不再需要c编译器。 
解答 发布存储过程请按以下步骤: 
1. 如果数据库是从7.1版本打补丁后升为7.2版本,请用 
db2updv7 -d 数据库名 
使DB2可以抽取或安装已编译好的存储过程; 

2. 在源数据库,编译好存储过程; 

3. 在源数据库,运行 
db2 "get routine into 文件名 from procedure 存储过程名" 
抽取存储过程; 

4. 上传文件至目标服务器; 

5. 在目标服务器端,运行 
db2 "put routine from 文件名" 
安装已编译好的存储过程。 

4、DB2数据库中一个表的行长度、列数以及每页行数在表空间中的限制 

环境 [产品] DB2 UDB 
[平台] Windows 9x/NT/2000, Unix, Linux 
[版本] 6.x/7.x 
问题 DB2数据库中一个表的行长度、列数以及每页行数在表空间中的限制 
解答 在DB2数据库中一个表的每行长度、列数以及每页行数在表空间中的限制如下: 

表空间页面大小 表空间中行长度限制(bytes) 表空间中列数限制 表空间中每页最大行数 
4K 4005 500 255 
8K 8101 1012 255 
16K 16293 1012 255 
32K 32677 1012 255 
注:表空间页面大小只有4K,8K,16K,32K四种。 

5、当编译一个复杂的SQL语句时,出现SQL0101N错误,怎么办? 

环境 DB2 V5.2; DB2 V6.1; DB2 V7.1 
问题 某些SQL语句可能非常复杂,比如嵌套调用多个表或触发许多触发器,在对这样 
的SQL语句进行编译时,出现SQL0101N错误,如何处理 
解答 对于一个复杂的SQL语句,在调用多个表或触发多个触发器时, 可能会占用 
大量的系统资源. 
当出现SQL0101N错误时, 首先需要确认系统中没有递归的触发器存在. 
之后可通过增加如下参数的值来解决此问题: 

1)STMTHEAP 
2)APPLHEAPSZ 
3)PCKCACHESZ 

6、如何实施已删除表的恢复(Dropped Table Recovery) 
解答 如何实施已删除表的恢复(Dropped Table Recovery) 

解答: 
1. 首先数据库要可以前滚恢复(数据库配置参数logretain或userexit打开)。 


2. 对要实施Drop Table Recovery的表空间(限regular tablespace),执行: 
alter tablespace 表空间名 dropped table recovery on 


3. 用 list history dropped table all for 数据库名 得到删除表的tableid(例如 0000000000006d0000020003)和表结构的生成语句(DDL),记录tableid和该语句以便恢复。之后,用drop命令删除的表中的数据可以在前滚恢复时导出。 


4. 恢复数据库后,如果想恢复已删除的表,在前滚时加recover dropped table tableid to 目标目录 。 在该目录下被删除的表中的数据导出,例如导出至 ../NODE0000/data文件。利用上面提到表结构生成语句生成被删除了的表,然后用import命令将数据导入表中。 

7、如何更改本地系统名称 

环境 [产品] DB2 UDB 
[平台] Windows 9x/NT/2000, Unix, Linux 
[版本] 5.x/6.x/7.x 
问题 在控制中心(Control Center)中,可以看到编目在节点下的系统名称。可启动控制中心的节点作为本地系统,名称是不能在这里改变的。那么如何改变本地系统的名称呢? 

解答 首先,从控制中心(Control Center)中知道本地系统所在的原节点名。 
然后退出控制中心,在命令行处理器中输入以下命令: 

1. db2set db2system=新系统名 
2. db2 terminate 
3. db2 uncatalog node 原节点名 
4. db2 terminate 

重起控制中心,可以看到,本地系统名已更改。 

8、如何将表空间的状态置为正常 

环境 [产品] DB2 UDB 
[平台] Windows 9x/NT/2000, Unix, Linux 
[版本] 5.x/6.x/7.x 
问题 quiesce是一种持续状态的锁,它属于一个连接,当该连接失败时,quiesce状态依然存在。如何将表空间的状态置为正常状态? 
解答 除去quiesce状态: 

1. 连接到数据库 
2. 用 list tablespaces 判断哪个tablespace处于quiesce状态和和取得对象(object)ID 
3. 判断对象ID对应的表 
a)用 db2 "select tabname from syscat.tables where tablid=对象ID" 得到表名 
b)用 db2 list history 判断是那个表 
4. 用 db2 quiesce tablespaces for table 表名 reset 去除quiesce状态 


9、如何实施联机备份 

环境 [产品] DB2 UDB 
[平台] Windows 9x/NT/2000, Unix, Linux 
[版本] 5.x/6.x/7.x 
问题 如何实施联机备份? 
解答 数据库建立时日志方式默认是循环日志模式(Circular Log),这时是无法做联机备份的。所以,希望实施联机备份,首先要将日志方式改为归档日志模式(Archival Log)。 

以sample数据库为例,可以在控制中心中改变sample数据库的配置参数LOGRETAIN为Recovery,或在命令行下用 db2 update db cfg for sample using LOGRETAIN on。改变此参数后,再次连接数据库会显示数据库处于备份暂挂(BACKUP PENDING)状态。这时,需要做一次对数据库的脱机备份。在控制中心中选择对数据库进行脱机备份或在命令行下用 db2 backup db sample 实施。此后数据库就可以进行联机备份了。 

可以选择在控制中心中对数据库进行联机备份,或在命令行下用 db2 backup db sample online 实施。 

注意: 利用联机备份得到的IMAGE文件进行恢复时,还需要相关的日志文件。 

10、如何在AIX上建立使用裸设备的数据库管理(DMS)表空间 

环境 [产品] DB2 UDB 
[平台] AIX 
[版本] 5.x/6.x/7.x 
问题 如何在AIX上建立使用裸设备的数据库管理(DMS)表空间? 
解答 1. 用mklv命令建裸设备,语法为: 
mklv -t jfs -y 设备名 -U 用户名 -G 组名 vg名 lv大小 硬盘 
例如: mklv -t jfs -y contest -U db2inst1 -G db2iadm1 rootvg 10 hdisk0 
2. 然后创建表空间 
1). 连接数据库 
2). 创建表空间:注意在命令中要在加引号: 
db2 "create tablespace 表空间名 managed by database using (device 裸设备名及路径 大小)" 
例如: db2 "create tablespace tptest managed by database using (device '/dev/rcontest' 80M)" 
db2 "create tablespace tptest managed by database using (device '/dev/rc 

1、如何在Unix平台上启动DB2控制中心(Control Center) 

环境 [产品] DB2 UDB 
[平台] Unix 
[版本] 6.x/7.x 
问题 如何在Unix平台上启动DB2控制中心(Control Center) 
解答 再Unix平台上启动DB2控制中心需要一下几个步骤,以AIX操作系统为例: 

1. 安装DB2时选择安装DB2控制中心(Control Center); 
2. 以root账号登录,输入xhost +命令(每次重新启动Unix后需输入该条命令以启动控制中心); 
3. 以DB2实例管理员账号登录,输入以下命令 
a. db2jstrt 
b. db2cc 
这样,就启动了DB2控制中心(Control Center)。 
#xhost + 
#su - db2inst1 
$db2jstrt 
$db2cc 
db2cc使用的是jdk118 
export JAVA_HOME=/usr/jdk118 
export PATH=/usr/jdk118/bin:$PATH 

2、如何在查询语句中只显示结果的前n条记录 

环境 [产品] DB2 UDB 
[平台] Windows 9x/NT/2000, Unix, Linux 
[版本] 5.x/6.x/7.x 
问题 在查询语句中,不想显示所有记录,只显示结果的前n条记录 
解答 在查询语句中,不想显示所有记录,只显示结果的前n条记录,可以用 fetch first n rows only 跟在查询语句后面实现。 

以sample数据库中的staff表为例,用如下命令可以得到查询结果的前5条建立: 
db2 "select * from staff fetch first 5 rows only" 

3、如何在命令行下查看修改实例和数据库配置参数 

环境 [产品] DB2 UDB 
[平台] Windows 9x/NT/2000, Unix, Linux 
[版本] 5.x/6.x/7.x 
问题 如何在命令行下查看修改实例和数据库配置参数 
解答 在命令行下查看实例的配置参数,可用 db2 get dbm cfg 命令实现。 
类似地用 db2 get db cfg for 数据库名 可以得到数据库的配置参数。 
以下是数据库参数的一部分: 

Log file size (4KB) (LOGFILSIZ) = 250 
Number of primary log files (LOGPRIMARY) = 3 
Number of secondary log files (LOGSECOND) = 2 

修改实例配置参数,用 db2 update dbm cfg using 参数名 新值 
类似,用 db2 update db cfg for 数据库名 using 参数名 新值 修改数据库配置参数。 

例如,要修改sample数据库配置参数中的LOGPRIMARY为10,可用以下命令实现: 
db2 update db cfg for sample using logprimary 10 

4、如何在命令行下执行DB2脚本(script) 

环境 [产品] DB2 UDB 
[平台] Windows 9x/NT/2000, Unix, Linux 
[版本] 5.x/6.x/7.x 
问题 如何在命令行下执行DB2脚本(script) 
解答 在命令窗口中运行DB2脚本,可用 db2 -svtf 脚本文件名 来实现。 
例如,脚本文件名为sample.sql,运行:db2 -svtf sample.sql 

参数中: 
s 代表遇到错误时中止运行脚本 
v 代表输出结果到屏幕 
t 指以;号作为每行的分隔符 
f 指后面需跟脚本文件名 

如果希望即使遇到错误也不要中止运行可以去掉参数s。 

5、文件標題: 如何解決資料庫別名已存在問題? 
修訂日期: 2001/10/15 
文件來源: TSC Team 
英文標題: How to eliminate the existed database alias name? 
產品名稱: DB2 UDB 
作業平台: 跨平台 
適用範圍: system administrator 


-------------------------------------------------------------------------------- 

問題: 

如何解決資料庫別名已存在問題? 



解答: 

在建立資料庫時遇到資料庫別名已存在的問題時,可以: 

1)首先用 db2 list database directory 命令查看系統資料庫目錄(System Database Directory)中有沒有該資料庫。 
如果有,應該再確定該資料庫是沒有用的資料庫之後用 db2 drop database 資料庫名將其刪除。 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -