设为首页 收藏本站
查看: 1455|回复: 0

[经验分享] db2导入表结构和表数据

[复制链接]

尚未签到

发表于 2016-11-19 01:37:08 | 显示全部楼层 |阅读模式
  http://www.cnblogs.com/kfarvid/archive/2010/12/15/1906776.html   db2的博文
  -bash-3.2$ db2 connect to cashman
  Database Connection Information
  Database server        = DB2/AIX64 9.7.0
SQL authorization ID   = DB2INST1
Local database alias   = CASHMAN
  -bash-3.2$ db2look -d cashman -e -o db.sql -i db2inst1 -w '1qaz!QAZ'
-- No userid was specified, db2look tries to use Environment variable USER
-- USER is: DB2INST1
-- Creating DDL for table(s)
-- Output is sent to file: db.sql
-- Binding package automatically ...
-- Bind is successful
-- Binding package automatically ...
-- Bind is successful
  DB2用命令窗口连接数据库
  1、导出到 一个文件获得sql语句
db2look -d cqyancao -e -o db.sql -i db2user -w psw
           数据库名       要出文件名   用户名     密码

示例: db2look -d DEPARTMENT -u walid -e -o db2look.sql
-- 这将生成由用户 WALID 创建的所有表和联合对象的 DDL 语句
-- db2look 输出被发送到名为 db2look.sql 的文件中
  -bash-3.2$ cd /home/backup/mydata
-bash-3.2$ db2move cashman export -u db2inst1 -p '1qaz!QAZ'
  EXPORT:      9 rows from table "DB2INST1"."T_WARNPARAM"
EXPORT:      0 rows from table "DB2INST1"."TEST"
  Disconnecting from database ... successful!
  End time:  Fri Nov 21 10:41:21 2014
  在mydata文件里
  -bash-3.2$ ls
EXPORT.out      tab20.ixf       tab33.ixf       tab46.msg       tab59.msg
db2move.lst     tab20.msg       tab33.msg       tab47.ixf       tab6.ixf
  SQL0752N  Connecting to a database is not permitted within a logical unit of
work when the CONNECT type 1 setting is in use.  SQLSTATE=0A001
  解释:
发出 COMMIT 或 ROLLBACK
语句之前,尝试连接另一个数据库或同一个数据库。在 CONNECT 1
类环境内不能处理该请求。
退出执行reset
重新执行就可以了,
  [db2inst1@localhost ~]$ db2 connect reset
  CREATE DATABASE TCASHMAN
  CREATE SCHEMA TCASHMAN AUTHORIZATION TCASHMAN
  db2 connect to TCASHMAN
  db2 set current schema TCASHMAN
  db2 -tvf /home/db2inst1/data/db_714.sql
  db2 -tvf D:\cashplay.sql                         windows 下执行的脚本
  其中特别注意,第一,如果不是多个schema,则可以不用第二行。第二,第三行中的参数-tvf,解释如下,
  -f    读取输入文件
  -t    设置语句终止字符
  -v    回送当前命令
  如果文件中每个语句是直接以回车结尾,则用-vf即可,加上-t是表示没条语句以“;”结尾。
  db2 connect to db2inst1
  db2
  select * from t_user;
  db2导出所有表数据
  在数据库所在的服务器上
  如aix上 新建一个目录,所有的表的数据将导出在这个目录,然后拷贝这个目录
  db2 connect to tcashman
  db2move tcashman export -u db2inst1 -p '1qaz!QAZ'
  导入所有表的数据
  如果db2cmd命令不是内外部命令
  进入db2所在的sqllb下的bin目录,双击db2cmd
  进入存放导出的db2数据文件的目录
  db2 connect to newcash user db2admin using ‘1qaz!QAZ'
  db2move newcash import -u db2admin -p 1qaz!QAZ
  系统执行导入功能
  $ cd /home/movedata
$ db2move mytestdb import –u db2inst1 –p thepasswd
此时屏幕上会显示有关导入数据的信息。
存在的问题:
db2move import方式只能导入“普通”的表,如果表中存在自增长的IDENTITY列,那么使用db2move import时,会出错。这是因为,如果IDENTITY列创建表的时候都是定义成always的话,那么在导入数据的时候该列数据是不能被赋值的,而是应该由系统生成,使用db2move无法导入这样的表。对于这种含有IDENTITY列的表,只能使用db2 import指令来进行导入,相关的参数是IDENTITYIGNORE,IDENTITYMISSING。我将在下一部分给出具体的指令操作。
一句题外话:
如果需要实现唯一主键,可以不必使用IDENTITY列,改而使用sequence,这样比较便于维护和管理。
注意点:
mybigspace可能要根据实际情况设值

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-302167-1-1.html 上篇帖子: DB2中如何取得随机数 下篇帖子: Linux下DB2数据库安装教程
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表