标签:
杂谈 |
分类: 工作 |
补了些数据库的东西,很多事总指着别人尽心尽力总不现实,自己整点,也能睡得踏实些.
B数据库,开启归档模式每天进行完全备份.
nohup db2 "backup db b online use tsm include logs "
&& db2 "backup db doc online
use tsm include logs" && db2
"backup db bflow online use tsm include logs"
启用cron每天用TSM进行备份.
恢复:
无日志前滚恢复:
db2 create database B on /db/B/ using
codeset gbk territory cn collate using system
// codeset 要与原数据库一致,有的用utf-8,在原数据库上用 db2 get db cfg for B
查看
// use tsm是用TSM备份来恢复,本地可在改为 from /db/backup/
db2 "set tablespace containers for 3 using
(path'/db/B/db2inst1/NODE0000/SQL00001/SQLT0003.0')"
db2 "set tablespace containers for 4 using
(path'/db/B/db2inst1/NODE0000/SQL00001/SQLT0004.0')"
db2 "set tablespace containers for 5 using
(path'/db/B/db2inst1/NODE0000/SQL00001/SQLT0005.0')"
db2 "set tablespace containers for 7 using
(path'/db/B/db2inst1/NODE0000/SQL00001/SQLT0007.0')"
//db2 list tablespaces show detail 查看tablespace的信息,然后用
db2 list tablespace containers for N 查看container信息
db2 restore db B continue
带日志前滚恢复:
db2 restore db B use tsm taken at 20080627225907 to /db/B
into B redirect
......
db2 "rollforward db B to end of logs and stop overflow
log path ('/db/b/log/')"
简单用sample进行备份和恢复操作时,并不需要手工建这些containers.
在原32位的linux安装V8.1版本数据库,迁移到64位linux并升级到V9.1
恢复过程一致并无报错,但log里出现一些warning,咨询IBM,答复没问题.
测试过程中会遇到drop一个已经建立的库时报找不到库表文件, db2 uncatalog db B,再drop.
一个涉及开发的小问题,记录一下:
DB2升级后JDBC取元数据(如调用getSchemas()、getTables()等方法)时会有报错,DB2下用JDBC取元数据可能遇到
CLI
-805错误,这是由于DB2升级某一FixPack后产生的问题,需要手工重新绑定schema,此问题IBM一直没修复,存在于所有后续FixPack中
解决:在安装DB2的主机上执行如下命令,重新绑定schema
db2 terminate
db2 connect to <database-name>
db2 bind db2主目录/sqllib/bnd/db2schema.bnd blocking all grant public sqlerror continue
db2 terminate
解决:在安装DB2的主机上执行如下命令,重新绑定schema
db2 terminate
db2 connect to <database-name>
db2 bind db2主目录/sqllib/bnd/db2schema.bnd blocking all grant public sqlerror continue
db2 terminate
太多不懂的东西了,暂时做个兴趣,补习一点是一点吧
14日补记:上面的东西是按28日记忆写的,有很多问题.
1.在线备份 backup online是可以日志前滚的,脱机冷备恢复不能用日志前滚;
2.脱机冷备可以用来跨版本恢复,从v8备份出来的文件可以restore
V9版本,但在线备份文件不可以跨版本恢复.
SQL2547N The database was not restored because the
backup image is from a
previous release and requires rollforward recovery.
previous release and requires rollforward recovery.