DB2备份恢复专题db2move,db2look(基础)
来源:互联网 发布:yy淘宝刷单平台 编辑:程序博客网 时间:2024/05/20 10:20
先看我们最关心的问题
1:db2move基础
db2move用于快速导出/导入整个数据库的数据,操作过程:
1.数据导出: db2move DBNAME export -u userName -p password
2.数据导入: db2move DBNAME import -u userName -p password
注意:在linux下导入导出数据时要注意db2codepage的一致性,1386表示GBK,1208表示UTF-8还有注意该数据库账户(如db2inst1)是否具有待导入文件的读写权限
遇到上述问题,参见我的博文:http://blog.csdn.net/fuwencaho/article/details/22539727
执行上面命令后会把数据库test中全部数据提取到当前目录(/home/db2inst1),每个表的内容都存储在一个.ixf文件中,
每个.ixf文件都有一个与之相对应的.msg文件,.msg文件是描述从表中导出数据时的信息.例外还有两个文件,db2move.lst用来
记录.ixf文件,.msg文件与表一一对应.EXPORT.out记录的是导出数据时的屏幕输出.
2:db2move跟进
1. 进入DB2环境
1) 进入命令窗口,输入:db2cmd,进入db2命令窗口
2) 输入:db2 connect to <database-name> user <user-name> using <user-password> , 连接指定数据库<database-name>
2. 开始备份数据
注:db2move 命令格式:db2move <database-name> <action> [<option> <option-value>]
* 对于action,主要有:export , import ,load.
* 对于option,主要有:特定的表(-tn)、表空间(-ts)、表创建者(-tc)或模式名(-sn)范围内、指定用户(-u)、指定密码(-p). 注意:-tn,-ts,-tc,-sn 只对 export动作有效.
1) 输入:db2move <database-name> export [<option> <option-value>]
例如:db2move mytest export -sn server -> 指定导出mytest数据库中的server模式的数据
输入该命令后,就会执行db2move的导出指令, 将mytest数据库中的server模式下的所有表的数据,均备份到本机DB2安装的默 认目录下(例如 C:\Program Files\IBM\SQLLIB\BIN,并会在该目录下生成几种类型的文件:
I、EXPORT.OUT-EXOORT操作的结果;
II、DB2MOVE.LST-创建的一个包含了文件名和表名的列表文件;
III、TAB***.IXF-IXF文件包含了数据库SAMPLE里所有表的数据;
IV、TAB***.MSG-消息文件
注:也可以指定输出的备份目录
(1) cd <指定目录>
(2) 接着执行以上的db2move命令,即可将数据备份到指定的目录下了
2. 开始还原数据
1) 输入:db2move <database-name> import [<option> <option-value>]
例如:db2move newtest import -io [replace || insert] -u <user-name> -p <user-password>
输入该命令后,就会从默认目录下读取db2move.list文件,依次读取tab**.ixf文件,若新数据库newtest没有该表结构,则会自动创建该表结构,并导入tab**.ixf数据,并产生tab**.msg文件,记录导入情况.
注:也可以指定输出的备份目录
(1) cd <指定目录>
(2) 接着执行以上的db2move命令,即可将指定的目录下的备份数据还原回数据库了.
1) 进入命令窗口,输入:db2cmd,进入db2命令窗口
2) 输入:db2 connect to <database-name> user <user-name> using <user-password> , 连接指定数据库<database-name>
2. 开始备份数据
注:db2move 命令格式:db2move <database-name> <action> [<option> <option-value>]
* 对于action,主要有:export , import ,load.
* 对于option,主要有:特定的表(-tn)、表空间(-ts)、表创建者(-tc)或模式名(-sn)范围内、指定用户(-u)、指定密码(-p). 注意:-tn,-ts,-tc,-sn 只对 export动作有效.
1) 输入:db2move <database-name> export [<option> <option-value>]
例如:db2move mytest export -sn server -> 指定导出mytest数据库中的server模式的数据
输入该命令后,就会执行db2move的导出指令, 将mytest数据库中的server模式下的所有表的数据,均备份到本机DB2安装的默 认目录下(例如 C:\Program Files\IBM\SQLLIB\BIN,并会在该目录下生成几种类型的文件:
I、EXPORT.OUT-EXOORT操作的结果;
II、DB2MOVE.LST-创建的一个包含了文件名和表名的列表文件;
III、TAB***.IXF-IXF文件包含了数据库SAMPLE里所有表的数据;
IV、TAB***.MSG-消息文件
注:也可以指定输出的备份目录
(1) cd <指定目录>
(2) 接着执行以上的db2move命令,即可将数据备份到指定的目录下了
2. 开始还原数据
1) 输入:db2move <database-name> import [<option> <option-value>]
例如:db2move newtest import -io [replace || insert] -u <user-name> -p <user-password>
输入该命令后,就会从默认目录下读取db2move.list文件,依次读取tab**.ixf文件,若新数据库newtest没有该表结构,则会自动创建该表结构,并导入tab**.ixf数据,并产生tab**.msg文件,记录导入情况.
注:也可以指定输出的备份目录
(1) cd <指定目录>
(2) 接着执行以上的db2move命令,即可将指定的目录下的备份数据还原回数据库了.
--一个事例
1.导出sampledb数据库中所有数据表的数据:
db2move sampledb export
2.捕获所有对象的DDL语句:
db2look -d sampledb -e -a -o db2look.sql
3.将db2move/db2look导出的数据文件和sampledb.sql FTP上传到目标主机
注:二进制模式传输PC/IXF文件,ASCII模式传输db2move.lst文件和db2look.sql
4.在目标主机上创建新的数据库:
db2 create db sampledb
db2 -tvf db2look.sql
db2move sampledb load
db2move sampledb export
2.捕获所有对象的DDL语句:
db2look -d sampledb -e -a -o db2look.sql
3.将db2move/db2look导出的数据文件和sampledb.sql FTP上传到目标主机
注:二进制模式传输PC/IXF文件,ASCII模式传输db2move.lst文件和db2look.sql
4.在目标主机上创建新的数据库:
db2 create db sampledb
db2 -tvf db2look.sql
db2move sampledb load
一定需要db2look导出DDL语句嘛??接着往下看吧!
不是必须的,好像先创建表结构然后load导入的速度会快一点吧!
export,import的时候有很多选项,一下看的时候会头昏脑胀,我现在就头昏了
我的一个db2look的使用
导入多个表的ddl,空格分开
db2look -d crmdb -u crmuser -t CREDITRATE_REPORTSCORE_CUSTORG_REPORTSCORE_PART_REPORTSCORE_SOURCE_REPORT -e -o rep.sql
详细的看官网文档或者或者是db2move -help吧,这里不再钻牛角尖了,唉,英语必须得过关呀!要不然不痛苦,且永远不会有质的进步,只是停留在表面!
官方文档地址:
http://pic.dhe.ibm.com/infocenter/db2luw/v10r5/index.jsp?topic=%2Fcom.ibm.db2.luw.qb.server.doc%2Fdoc%2Ft0011560.html
一个备份脚本:
# Shell programmer : Hu YunQiang.########################################################################################### 程序名称: db2back.sh# 入口参数: 无## 返回结果: 数据库的备份## 功能描述: ① 备份数据库DBname# ## 程序编码: Hu YunQiang# 发布日期: 20040915# # 更新记录: UserName Date(YYYYMMDD) Note############################################################################################echo "---------------------------------------------------------------------------------------"echo "程序名称: $0 编码 : Hu YunQinag"echo "入口参数: 无"echo "格式 sh $0 "echo "Hu YunQinag 版权所有"echo "---------------------------------------------------------------------------------------"######################## export environment #########################export DB2INSTANCE=db2inst1#export HOSTNAME=p630#export LD_LIBRARY_PATH=/home/db2inst1/sqllib/lib#export LIBPATH=/home/db2inst1/sqllib/lib#export PATH=/bin:/usr/bin:/usr/local/bin:/usr/bin/X11:/usr/X11R6/bin:/home/db2inst1/sqllib/bin:/home/db2inst1/sqllib/adm:/home/db2inst1/sqllib/misc:/home/db2inst1/bin#export CLASSPATH=/home/db2inst1/sqllib/java/db2java.zip:/home/db2inst1/sqllib/java/db2jcc.jar:/home/db2inst1/sqllib/function ######################## backupdb main ######################## backupdb(){cd $sourcedirmkdir $backupfolderif [ ! -d $backupfolder ]thenecho "`date +%Y%m%d`:创建备份目录失败"< $bkerrlogexitficd $backupfolderdb2move $1 export -u $2 -p $3 cd ..tar cvf $backupfolder.tar $backupfoldergzip -9 $backupfolder.tar}######################## ftp main ######################## myftp(){ftp -n < EOF>open $desthostuser $user $passwd binaryprompt offlcd $sourcedircd $destdir put $filename $filenaedel $rmoldfile! touch $sigfileEOF}######################## rmbkfile main ######################## rmbkfile(){cd $sourcedirrm -Rf $backupfolder}########################program main ######################## #程序公用变量sourcedir=/db2backshellpath=/home/db2inst1/backupsigfile=finish.`date +%Y%m%d`mainlog=errlog.`date +%Y%m%d`#backup程序变量backupfolder=`date +%Y%m%d`.dbname.db2.bak dbname=dbnamedbuser=dbuserdbpwd=dbpwdbkerrlog=bkerr.log.`date +%Y%m%d`#ftp程序变量desthost=192.168.0.111 user=db2backuppasswd=db2backupdestdir=/filename=$backupfolder.tar.gzftperrlog=ftperr.log.`date +%Y%m%d`oldday0=`date +%Y%m%d`backupdb $dbname $dbuser $dbpwdif [ $? != 0 ]then echo "`date +%Y%m%d`:备份失败" < $mainlog exitficd $shellpatholdday1=`./mydate.sh $oldday0`rmoldfile=`./mydate.sh $oldday1`.dbname.db2.bak.tar.gzmyftpif [ $? != 0 ] then echo "`date +%Y%m%d`:ftp文件失败" < $mainlog exitfirmbkfileif [ $? != 0 ] then echo "`date +%Y%m%d`:删除失败" < $mainlog exitficd $sourcedirrm $rmoldfile
说起来比较不好意思,当时不熟悉find -atime -mtime -ctime 的用法,还折腾一个判断日起的shell。后面删除过期备份文件的方法,只要两句话就好了,定义一个变量n=5 #保留这些天之内的cd $sourcedirfind . -atime +$n -exec rm -fr {} ;之后只要把这个脚本加入到对应用户的crontab就好了
--
远程:
db2look -d crmdb -e -a -x -i username -w password -t ifs_branch -o ifs_b
本地:
db2look -d crmdb -e -t ifs_branch -o ifs_b
远程:
db2look -d crmdb -e -a -x -i username -w password -t ifs_branch -o ifs_b
本地:
db2look -d crmdb -e -t ifs_branch -o ifs_b
$ more generateDDL.sh#!/usr/bin/kshgenerateFile(){FF=/crm/db2inst1/generateDDL/gettable.sqlecho "connect to crmdb;">$FFecho "SELECT TABNAME FROM SYSCAT.TABLES WHERE TABNAME LIKE '%IFS%REPORT%';">>$FFecho "disconnect current;">>$FFdb2 -tf $FF>/crm/db2inst1/generateDDL/gettable.file}generateDDL(){db2look -d crmdb -e -t $1>>/crm/db2inst1/generateDDL/gettable.ddl}generateFile>/crm/db2inst1/generateDDL/gettable.ddlfor i in `cat /crm/db2inst1/generateDDL/gettable.file`do generateDDL $idone$
0 0
- DB2备份恢复专题db2move,db2look(基础)
- DB2中常用备份,恢复命令和db2move,db2look的使用
- DB2迁移(db2look+db2move)
- DB2的db2look和db2move的使用
- DB2 db2move备份脚本
- DB2备份及恢复db2backup专题(基础)
- DB2 db2look
- [DB2]DB2备份和恢复
- DB2 备份和恢复
- db2 备份和恢复
- DB2备份与恢复
- db2 备份恢复 2
- db2 备份 恢复
- DB2备份与恢复
- DB2 备份恢复
- DB2备份恢复范例
- DB2在线备份恢复
- db2 备份与恢复
- eos studio 5.3 集成svn
- Ogre3D Mesh转换到FBX格式
- POJ 2007 Scrambled Polygon(几何)
- Fedora安转后的配置
- Multiple markers at this line
- DB2备份恢复专题db2move,db2look(基础)
- Redis学习笔记3-Redis5个可执行程序命令的使用
- 前段编辑器初始化
- Eclipse 错误;找不到或无法加载主类
- Android 网络通信框架Volley简介(Google IO 2013)
- C++对象内存布局--虚基类表的使用
- Android核心分析之四 ---手机的软件形态
- Asp.Net 获取FileUpload控件的文件路径、文件名、扩展名
- SSH框架的简单搭建步骤