• centos6.3 + db2v9.7的数据库移行


    工作内容如题,我要做的事情大体如下:

    1,正确备份可用数据库;

    2,安装64位的cent os 6.3;

    3,将1备份的数据恢复到新的cent os 6.3系统上。

    第一件事情,就是备份一个可用的数据库。备份这个数据库是为了移行,而为什么要移行,通常原因是

    硬件更替,或者为了预防突发挂机事件导致的数据库交互工作延迟。我这边的移行却是另外一种原因,

    是为了解决软件问题,因为使用权限过期了,于是暂时放到另外一台机器上面。

    正确备份这个看起来确实没啥难度的,不过做的时候磕磕绊绊也好多。开始做的时候,我想的是导出导入,

    不过这得有个前提,那就是导入必须要先建库,而我这边并没有建库语句。于是觉得这条路走不通,

    就选择了备份还原。

    备份命令尝试了好多。最终备份成功的时候,是这样做的:

    1,在本地win7系统打开SSH(SSH Secure Shell Client),输入远端旧DB2服务器(linux)的URL+用户名+密码,

    端口默认22。

    2,进入console之后,切换用户

    $ su - db2inst1 ------注意这里需要有 - ,没有的话,那么切换的不彻底,不这样的话,shell环境还是其他用户的,

    当然root环境无所谓,不过为了养成良好习惯,尽量避免直接用su吧,除非对linux已经非常熟练了。

    用户切换成功后,开始进行备份

    $ db2

    之后命令行如下

    db2=>list applications

    db2=>db2stop force

    db2=>db2start

    db2=> backup db TBXDBF (use tsm)

    如果报错的话,可以不要后边的use tsm选项(这里我就报错了,搞了好久,最后舍弃就好了),命令执行成功之后,

    会告知tsm这个时间戳的值,记下来用来恢复。

    备份成功之后得到的文件名称是:TBXDBF.0.db2inst1.NODE0000.CATN0000.20140318000559.001(其中TBXDBF是database名,20140318000559是时间戳)

    到这里备份结束。

    接下来我把备份的文件通过SSH拖动拷贝本地桌面,使用的传输方式是默认的Binary。数据库比较大,大概10+分钟拷贝完成。

    接下来安装linux系统,安装centos6.3的话,参照百度文库里面的文章,图文形式的比较方便进行安装。

    给个链接:

    http://wenku.baidu.com/link?url=Ob0wTHKHl9pIGr3oc18HFWMAZwBHZeAM4vuBMkJ9dZyIJlo7XqbCxrw5yftisDmIUkqh5-t6fxfzN3mXCkRn3UFg4H8SxuAY4zIOOaKtoo3

    要注意的地方是:

    1,安装语言尽量使用英文。(使用其他语言的话,在SSH客户端会出现乱码,百度去搜索其他语言的编码,会让你醉了的。)

    2,不推荐设置hostname,不过你不设置的话,他可能也会帮你默认给改一个出来。总之进去之后还是要修改。参照CentOS6.3 Hostname设定修改 (2014-10-13 16:40)

    3,不推荐root密码设置的很复杂。

    4,如果已经分区(一定要有/home,/这两个分区,其他的可以不要的)的话,创建分区那一步可以不要。

    5,如果不是覆盖安装的话,希望保留硬盘数据,那么不要全盘格式化。另外,安装的时候不要选择覆盖安装。

    6,记得选个桌面(Mimimal Desktop就不错),当然也可以选手顺上面的basicserver,看自己需求来。

    安装系统的周期大概在半个小时,所以尽量不要第一遍就成功,多试几遍能够学到更多。

    安装db2的话,可以参照百度文库,我这边是参照项目里面的文档来安装的,基本都是默认安装。

    需要注意的就是

    1, 第七步 hostname 写 localhost,port名:50001。

    2,需要输入密码的时候密码和用户名不变,然后用户名不需要改变。

    3,最后的servicename不需要修改,然后port用50000。

    按手顺默认安装应该就OK了。

    恢复数据的时候,也是在命令这一块走了好多弯路。见 转:db2 backup 及 restore (2014-10-13 20:18)

    1,SSH切换到用户 db2inst1 

    $ su - db2inst1

    打开文件管理,拖动本地备份文件到相对应的目录下。我这里是拖动到 /home/db2inst1下面。

    2,接下来的操作我不是在win7下面完成的,是直接到linux服务器上面,打开命令窗口。

    切换到用户db2inst1。

    输入:

    db2 restore database tbxdbf from /home/db2inst1 taken at 20140318000559

    然后就等待,直至成功导入。

    *之前我是在win7的ssh下面敲各种恢复命令,总是走到那个访问文件权限的错误终止了。具体为啥就不去研究了。

    但是当时想到了应该和用户有关。而且用 ls -all 看到的文件属性里面有用户。想到db2inst1下操作的文件,用

    db2inst1用户拷贝进去,完了,在服务器本地操作,而不是ssh终端,应该就不会有问题了。其他方法没有再试。

    移行到此结束。

    另外db2客户端连接此数据库的时候,发生了个小插曲(见 关于Toad连接DB2的sqlstate=08001错误),我一直以为搞定了的,结果发现前面是蒙对了几次,后面

    才晓得,原来前面不懂得为什么出错。 移行结束。

  • 相关阅读:
    async/await的应用场景
    手写实现js中的instanceof
    性能测试:jvm可视化监控搭建
    Kubernetes 监控:Prometheus Operator + Thanos 实践篇
    Kubernetes 多租户:资源配额
    使用 filebeat原生处理日志时间,就是使用日志文件中message字段值开头的时间覆盖默认的@timestamp时间,使用filebeat processor配置,pipeline不符合要求
    Kubernetes Operator: Operator
    大人物的特征
    Kubernetes 监控:Service Mesh 实践 Istio 流量管理
    kubernetes中部署kubeprometheus项目解决ControllerManager与Scheduler无法监控问题
  • 原文地址:https://www.cnblogs.com/niutouzdq/p/4028626.html
Copyright © 2020-2023  润新知