📄 db2命令介绍.txt
字号:
2)如果沒有,再用 db2 list database directory on location 看在本端資料庫目錄(Local Database Directory)中有沒有該資料庫,location指定資料庫的位置(如Windows下的C: ,Unix下的/home/db2inst1)。
如果有,先用 db2 catalog database 資料庫名 on location 將資料庫catalog到節點上,再對其進行刪除處理。
6、文件標題: 如何直接備份DB2資料庫到磁帶設備?
修訂日期: 2001/06/06
文件來源:
英文標題: How to backup DB2 database to a tape library?
產品名稱: Database and Data Management
作業平台: 跨平台
適用範圍:system administrator
--------------------------------------------------------------------------------
問題:
如何直接備份DB2資料庫到磁帶設備?
解答:
在UNIX和Windows NT作業系統,支援本端的磁帶設備。OS/2作業系統不提供本端磁帶
設備支援。下面以Windows作業系統為例,介紹如何將DB2資料庫直接備份到磁帶設備。
(1)首先在備份資料庫之前先要初始化磁帶設備,可用INITIALIZE TAPE命令完成此工作
,例如initialize tape on \\.\tape0
(2)備份資料庫到磁帶設備,可用backup database命令。如:backup database sample to \\.\tape0
(3)在回復資料庫時要先將磁帶倒帶,可用命令rewind tape。如:rewind tape on \\.\tape0。
(4)回復資料庫sample到一個新資料庫newdb時,可用restore database命令。如:
restore database sample from \\.\tape0 into newdb
附註:在備份資料庫到磁帶設備或從磁帶設備回復時,可能需要檢查磁帶機的blocking
參數與DB2的資料庫管理(DBM)參數Max requester I/O block size是否符合。如
需更詳細資訊可參考DB2的命令手冊。
7、文件標題: 怎樣解決DB2資料庫代碼頁不相容的問題
修訂日期: 2001/03/10
文件來源: http://www-900.ibm.com/cn/support/viewdoc/FaqDisplay?DocId=1307130000002
英文標題: How to solve DB2 database codepage imcompatablility problem
產品名稱: DB2 UDB 7.1/6.1/5.2
作業平台: ALL
適用範圍: system administrator
--------------------------------------------------------------------------------
問題:
怎樣解決DB2資料庫代碼頁(codepage)不相容的問題
解答:
當發出命令:db2 connect to db_name 後系統出現
SQL0332N There is no available conversion for the source code page "819" to the target code page "1386". Reason Code "1". SQLSTATE=57017
DB2 要求來源代碼與目標代碼頁是相容的, 在以上的例子中,來源代碼頁為819与目標代碼頁1386不相容,導致了資料庫連接失敗, 解決方法如下:
在發出db2 connect 命令失敗的機器上,在DB2 命令視窗中執行如下命令後重新進行連接:
->
db2set db2codepage=1386 I instance_name
db2 terminate
8、在 AIX 和 Solaris 上如何配置存储过程构建器(SPB)?
环境 产品: DB2 通用数据库
版本: 7.1
平台: AIX, Solaris
问题 在 AIX 和 Solaris 上如何配置存储过程构建器(SPB)?
解答 为了在 AIX 或 Solaris 上配置“存储过程构建器”,需确保在您的系统上安装了“Java 开发者工具箱”(JDK)。DB2 在可用于“控制中心”的系统上安装“Java 运行期环境”(JRE),但是,它将不允许使用“存储过程构建器”。
一旦安装了 JDK,就需要确保 DB2 知道 JDK 的位置,方法是在该实例的数据库管理程序配置文件中设置 JDK 的路径。要设置 JDK 的路径,执行下列步骤:
1. 以具有 SYSADM 权限的用户登录系统。
2. 通过输入以下命令来更新数据库管理程序配置文件:
db2 update dbm cfg using jdk11_path /usr/jdk_base
其中 /usr/jdk_base 表示 JDK 安装路径。
3. 一旦更新了实例的数据库管理程序配置文件,您就必须停止并重新启动该实例,以使更改生效。要停止并启动当前实例的数据库管理程序,输入下列命令:
db2stop
db2start
9、在DB2 UDB中如何创建用户定义临时表?
解答 可使用 DECLARE GLOBAL TEMPORARY TABLE 语句来定义临时表。此语句需在应用程序中使用。只有在应用程序与数据库断开连接之前,用户定义临时表才是持续的。
此表的说明并不出现在系统目录中,使其对于其他应用程序而言不是持续的,也不能与其他应用程序共享此表。
当使用此表的应用程序终止或与数据库断开连接时,此表中的数据被删除, 此表被隐式卸下。
下面是定义临时表的一个示例:
DECLARE GLOBAL TEMPORARY TABLE gbl_temp
LIKE empltabl
ON COMMIT DELETE ROWS
NOT LOGGED
IN usr_tbsp
此语句创建一个名为 gbl_temp 的用户临时表。定义此用户临时表 所使用的列的名称和说明与 empltabl 的列的名称和说明完全相同。隐式定义只包括列名、数据类型、可为空特性和列缺省值属性。未定义所有其他列属性,包括唯一约束、外部关键字约束、触发器和索引。执行 COMMIT 操作时, 若未对该表打开 WITH HOLD 游标,则该表中的所有数据都被删除。不记录 对用户临时表所作的更改。用户临时表被放在指定的用户临时表空间中。此表空间必须存在,否则此表的声明将失败。
10、在使用IMPORT命令向数据库出入数据时,如何避免日志空间满错误?
环境 平台: 所有平台
版本: DB2 V7,DB2 V6,DB2 V5
问题 在用IMPORT命令向数据库插入大量数据时,如何避免日志空间满错误
解答 在执行IMPORT命令时, 如果使用循环日志, 有时会出现日志满错误,
这时可用COMMITCOUNT参数来解决.
因为日志空间满往往是因为所有的日志均处于活动状态导致的.
而COMMIT执行后, 会释放所占据的资源, 其中包括日志 .
这样, 被当前事务使用的日志在COMMIT命令执行后, 即变成非活动状态了.
1、在由备份恢复一个数据库时,遇到SQL2542错误,怎麽办?
环境 版本:(试用)DB2 V5.0,DB2 V6.1,DB2 V7.1
操作系统:(试用)Windows NT,AIX
问题 在由备份恢复一个数据库时,遇到SQL2542错误
解答 如果有几个数据库的备份,在做数据库恢复时,需要提供正确的路径和时间戳,如果是用DB2命令行来执行恢复操作,在Windows NT操作系统,可参照如下命令:
RESTORE DATABASE SAMPLE FROM D:\backups TAKEN AT 19991117125141
此命令中要注意路径和时间戳。时间戳可以通过list history命令得到。可参照如下命令:
LIST HISTORY BACKUP ALL FOR SAMPLE
Op Obj Timestamp+sequence Type Dev Earliest log Current log Backup ID
B D 19991117125141001 F D S0000000.LOG S0000000.LOG
Contains 2 tablespace(s):
00001 SYSCATSPACE
00002 USERSPACE1
此命令的输出列出了备份的时间戳加上一个3位的数字序列:
时间戳+3位的数字序列=19991117125141001
所以,可以在restore命令中使用时间戳:19991117125141。
如果你有多于一个备份,list history命令将显示所有备份纪录的信息。
更多的信息可以参考“IBM DB2 Universal Database 命令手册:第三章 CLP命令”。
2、怎么样检查数据库连接有关的错误?
环境 产品: DB2 UDB
平台: Windows 9x/NT/2000, Unix, Linux
版本: 5.x/6.x/7.x
问题 怎么样检查数据库连接有关的错误?
解答 以TCP/IP连接为例, 若连接失败,您可以检查下列项目:
A) 在服务器上: 1) db2comm 注册表值包括值 tcpip。
输入 db2set DB2COMM 命令, 以检查 db2comm 注册表值的设置。有关详情,请参考管理指南。
2) 正确地更新了 services 文件。
3) 在数据库管理程序配置文件中正确地更新了服务名 (svcename) 参数。
4) 安全服务已启动。输入 net start db2ntsecserver 命令(仅对于 Windows NT 服务器)。
5) 正确地创建并编目了数据库。
6) 数据库管理程序已停止并再次启动(在服务器上输入 db2stop 和 db2start 命令)。
* 如果在启动一个协议的连接管理程序时出现问题, 则会出现警告信息,并将错误信息记录在 db2diag.log 文件中。
B) 在客户机上: 1) 正确地更新了 services 和 hosts 文件(若使用过的话)。
2) 使用正确的主机名 (hostname) 或 IP 地址 (ip_address)编目了此节点。
3) 端口号必须匹配,或服务名必须映射为服务器上所用的端口号。
4) 在数据库目录中指定的节点名 (node_name) 指向节点目录中的正确项目。
5) 数据库已正确编目, 它使用在服务器上创建该数据库时编目的服务器的数据库别名(database_alias), 作为客户机上的数据库名 (database_name)。
验证这些项目后,若连接仍失败,则参考 DB2 Troubleshooting Guide
3、怎么样获取表结构以及索引的信息?
环境 产品: DB2 UDB
平台: Windows 9x/NT/2000, Unix, Linux
版本: 5.x/6.x/7.x
问题 怎么样获取表结构以及索引的信息?
解答 您可以使用"describe" 命令:
(1) 显示关于SELECT语句的 SQLDA 信息;
(2) 显示表或视图的列信息;
(3) 显示表或视图的索引信息;
* 命令语法:
>>-DESCRIBE-------------------------->
>--+-select-statement---------+-><
'--+-TABLE--table-name----------+---+----------+-'
'-INDEXES FOR TABLE--table-name--' '-SHOW DETAIL--'
例如:
1) 下面的例子用于描述 SELECT 语句:
db2 "describe select * from staff"
SQLDA Information
sqldaid : SQLDA sqldabc: 896 sqln: 20 sqld: 7
Column Information
sqltype sqllen sqlname.data sqlname.length
--------------- ------ -------------- ---------------
500 SMALLINT 2 ID 2
449 VARCHAR 9 NAME 4
501 SMALLINT 2 DEPT 4
453 CHARACTER 5 JOB 3
501 SMALLINT 2 YEARS 5
485 DECIMAL 7, 2 SALARY 6
485 DECIMAL 7, 2 COMM 7
2) 下面的例子用于描述表结构:
db2 describe table user1.department
Table: USER1.DEPARTMENT
Column
name Type
schema Type
name Length Scale Nulls
--------- ------- ----------- -------- ------ ------
AREA SYSIBM SMALLINT 2 0 No
DEPT SYSIBM CHARACTER 3 0 No
DEPTNAME SYSIBM CHARACTER 20 0 YES
3) 下面的例子用于描述索引结构:
db2 describe indexes for table user1.department
Table: USER1.DEPARTMENT
Index
schema Index
name Unique
rule Number of
columns
------------ ---------- ------------ ----------------
USER1 IDX1 U 2
4、以空文件为数据文件导入(IMPORT)并替换(REPLACE)目标表和删除(DELETE)表操作的对比(一种可以绕开删除整个表操作时遇到交易日志已满的办法)
文章编号:1347131000035
日 期:2001-12-24
打印格式
以空文件为数据文件导入(IMPORT)并替换(REPLACE)目标表和删除(DELETE)
表操作的对比(一种可以绕开删除整个表操作时遇到交易日志已满的办法)
环境 [产品] DB2 UDB
[平台] 跨平台
[版本] 5.x/6.1/7.x
问题 以空文件为数据文件导入(IMPORT)并替换(REPLACE)目标表和删除(DELETE)表操作的对比
解答 当用DELETE TABLE命令删除整个表中数据时,该操作会逐条删除表中记录,并记入活动的交易日志。当表中数据量很大时,如果活动的交易日志不够大,就会遇到交易日志已满的错误,并回滚日志。即使活动的交易日志足够大,删除数据量很大的表的操作也会占用很多时间。用以空文件为数据文件导入(IMPORT)并替换(REPLACE)表的办法可以解决这个问题。例如
IMPORT FROM /dev/null OF DEL REPLACE INTO 目标表名
这样交易日志只会记录下该条命令,并立即释放所占的空间,而不会像删除命令一样逐条扫描记录,这就类似于DROP掉该表再创建一个完全相同只是没有数据的表一样。对于属于DMS表空间的表来说,删除命令逐条扫描记录,所占的记录空间仍标记为该表所用,而不立即释放空间,需要用REORG命令才可以释放剩余空间。用 LIST TABLESPACE SHOW DETAIL 可以对比两条命令执行后表空间中的剩余空间的大小。
用LOAD命令加REPLACE参数可以达到类似IMPORT命令加REPLACE的效果,但是由于LOAD本身不记日志,所以对于可恢复的数据库,LOAD完成后建议马上做一下联机备份的,相比之下,IMPORT命令加REPLACE操作上比较简单一些。
_________________
PMP=拍马屁?
返回页首
shanhan
级别: 天使
注册时间: 2002-07-17
最后登录: 2003-12-24
帖子总数: 1083
精华帖子: 6
原创精华: 0
来自: 天涯海角
在线状态: ...离线...
发表于: 2003-05-09 13:05 发表主题:
--------------------------------------------------------------------------------
很好哦
只是我不用!
_________________
笑着悲伤!
返回页首
mymm
级别: 精灵王
注册时间: 2002-05-22
最后登录: 2003-12-21
帖子总数: 376
精华帖子: 2
原创精华: 0
在线状态: ...保密...
发表于: 2003-05-09 13:05 发表主题:
--------------------------------------------------------------------------------
谢谢收集!
有用!
返回页首
永远是新手
级别: 圣骑士
注册时间: 2003-04-22
最后登录: 2003-11-04
帖子总数: 138
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -