DB2数据库本地还原

Wesley13
• 阅读 996

DB2数据库本地还原

(linux环境数据库还原到windows上)

1、本地建立db2数据库

可以使用db2数据库的控制中心来建库;

数据库语言环境选择中国,地域选择CN,代码集按照被还原库的整理顺序选择(例如整理顺序为: UNIQUE,代码集选择:GBK);

注意设置的表空间和缓冲池要足够大。

创建数据库后,连接数据库:

db2 connect to db_name user user_name using password

2、还原数据库

被还原的数据库文件需要包含.sql文件,.lst文件,.out文件,.ixf文件,.msg文件。

修改需要还原的数据库的.sql文件的连接的数据库名和用户,如下图:

 DB2数据库本地还原

注意:用户名是数据库默认的模式名,数据库名与本地创建的数据库名一致,(db2admin是安装db2数据库时自动创建的用户)。

执行sql脚本****:

以管理员权限进入cmd-->db2cmd执行以下命令:

db2 -tvf d:\script.sql -z d:\script.log

说明:d:\script.sql是被还原数据库的.sql文件,d:\script.log表示打印日志

db2move导入(所有)数据:

在db2命令窗口中进入.sql文件所在的路径下,执行以下命令:

db2move db_name import -io replace -u user_name -p password

说明:db_name是数据库名(如上图中的ZXYH),user_name表示用户名(如上图中的db2admin),password表示密码

用import导入指定的表数据:

 db2 "import from d:\data\tab1.ixf of ixf messages d:\data\tab1.msg insert into schema_name.table_name"

说明:schema_name是表所属,table_name是表名

3、连接db2数据库

导入成功后,(使用数据库连接软件或在命令行)查看还原后的db2数据库的数据信息。

4、用户名与模式名不一致问题

用户名就是默认的模式名,被还原数据库的模式名可能会和本地的用户名不一致,不一致时会导致查询时表名前必须要加上模式名,解决办法:

① 在创建数据库之后,在本机创建一个与被还原数据库中的用户名一致的用户(windows上:我的电脑右击-->管理-->本地用户和组),并将新建用户的权限以及所属组设置的与db2admin用户一致(具体赋权操作请百度);在修改被还原数据库的.sql文件时,不修改用户名。

② 在已经修改用户名且导入了数据库数据之后使用此方法;在本机创建一个与被还原数据库中的用户名一致的用户(windows上:我的电脑右击-->管理-->本地用户和组),并将新建用户的权限以及所属组设置的与db2admin用户一致(具体赋权操作请百度);登录数据库是用新创建的用户。

③ 如不想创建新用户,则在修改.sql文件时,将文件中所有与原用户名一致的信息全部替换成修改后的用户名(如db2admin);将.lst文件中所有与原用户名一致的信息全部替换成修改后的用户名(如db2admin)。

注:此方法未验证,成功率未知。

5、无法远程访问数据库问题

在本地还原DB2数据库后,本地可以连接,查询等操作,但是别的电脑访问时,可以连接但看不到数据信息的问题:

服务器端:

执行db2 get dbm cfg命令,查看TCP/IP服务名,如:

 DB2数据库本地还原

执行db2ilist命令,查看实例名,如:

 DB2数据库本地还原

执行db2set命令,查看通信协议,如:

 DB2数据库本地还原

查看services文件(C:\Windows\System32\drivers\etc)中的端口,如:

 DB2数据库本地还原

客户机端:

执行命令db2 catalog TCPIP node n1 remote 192.168.102.163 server db2c_db2inst2 显示如下图:

说明:n1是节点名(自己命名),192.168.102.163是服务器地址,db2c_db2inst2是服务器TCP/IP服务名。

 DB2数据库本地还原

执行db2 terminate命令,进行刷新。

执行命令db2 catalog database demo as demo2 at node n1 authentication server

说明:demo是数据库名,demo2是数据库别名(自己起的),n1是节点名(与上一条命令节点名一致)。

执行db2 terminate命令,进行刷新。

执行命令db2 connect to demo2 user db2inst2 using passwd连接数据库。

说明:demo2数据库别名,db2inst2用户名,passwd密码

参考:

https://blog.csdn.net/cws1214/article/details/12997451

https://www.cnblogs.com/xitingxie/p/5753093.html

https://wenku.baidu.com/view/0e613631998fcc22bdd10d1b.html

https://wenku.baidu.com/view/799d3700eff9aef8941e06b5.html

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
Python3:sqlalchemy对mysql数据库操作,非sql语句
Python3:sqlalchemy对mysql数据库操作,非sql语句python3authorlizmdatetime2018020110:00:00coding:utf8'''
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Wesley13 Wesley13
3年前
00_设计模式之语言选择
设计模式之语言选择设计模式简介背景设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。设计模式(Designpattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这