首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

DB2AIX回复指南

2012-08-25 
DB2AIX恢复指南-----------------***--------------------------------------------------------------DB2

DB2AIX恢复指南

-----------------***--------------------------------------------------------------DB2AIX恢复指南--BY  SJ---------------------------------------------------------***--------------------昨日刚刚完成了对AIX机上DB2数据库的恢复工作,当然这个是在同事的帮助下完成的,但是本人受益匪浅。废话不多说,先了解下过程。。备份文件有4G,使用的是在线的压缩全备份。所需的恢复的空间大概需要40G左右。。。忒大了!没办法,清理出了40G左右的空间。。哎。。。悲剧上传备份文件到aix机上。1.因为此备份文件的所有表都在actuser这个模式下,所以创建用户actuser。建立用户和实例(使用root用户,aix命令)mkgroup actgroupmklv -y actuserlv -t jfs2 rootvg 2G (make a logical volume, -y 指定使用逻辑卷名代替系统生成的名称 -t 设置逻辑卷的类型 在卷组rootvg中建立actuserlv 大小2G,)mkdir /home/actuser  (建立文件夹 /home/actuser)2.在前面创建的逻辑卷actuserlv上创建文件系统作为actuser的主目录添加新文件系统crfs -v jfs2 -d /dev/actuserlv  -m /home/actuser (添加一个文件系统。-v 指定虚拟文件系统的类型 -d 在一个已存在的逻辑卷上创建一个文件系统 -m 指定安装点)mount /home/actusermkuser pgrp=actgroup groups=actgroup home=/home/actuser actuserpasswd actuser (修改密码)chown -R actuser:actgroup /home/actuser  (把/home/actuser及下面所有文件的属主修改为actuser)3.使用db2实例用户登录,通过db2level获得db2的安装路径,然后创建db2实例$ db2levelDB21085I  Instance "db2inst1" uses "64" bits and DB2 code release "SQL08020"with level identifier "03010106".Informational tokens are "DB2 v8.1.1.64", "s040812", "U498350", and FixPak "7".Product is installed at "/usr/opt/db2_08_01".然后使用root执行/usr/opt/db2_08_01/instance/db2icrt -p 51000 -s ese -w 64 -u db2fenc1 actuser(-p 端口 51000 -s 指定所创建的实例的类型:ese 对于企业服务器版 wse 对于工作组服务器版client 表示客户机 standalone 表示带有本地客户机的数据库服务器  -u 用于指定 DB2 服务的帐户名和密码。创建 ese实例时需要此选项。 如果正在使用服务器认证,受防护用户为 db2fenc1,并且拥有实例的用户为 actuser) 4.建立表空间容器(root执行)首先查看VG卷组的信息 lsvg datavg;$ lsvg datavgVOLUME GROUP:       datavg                   VG IDENTIFIER:  00071df90000d600000001211ef16cc1VG STATE:           active                   PP SIZE:        256 megabyte(s)VG PERMISSION:      read/write               TOTAL PPs:      546 (139776 megabytes)MAX LVs:            256                      FREE PPs:       7 (1792 megabytes)LVs:                8                        USED PPs:       539 (137984 megabytes)OPEN LVs:           4                        QUORUM:         2 (Enabled)TOTAL PVs:          1                        VG DESCRIPTORS: 2STALE PVs:          0                        STALE PPs:      0ACTIVE PVs:         1                        AUTO ON:        yesMAX PPs per VG:     32512MAX PPs per PV:     1016                     MAX PVs:        32LTG size (Dynamic): 256 kilobyte(s)          AUTO SYNC:      noHOT SPARE:          no                       BB POLICY:      relocatable这里可以看到PP的值为256M执行:mklv -y LVDBJSZPRD23 -t raw -L rLVDBJSZPRD23 datavg 30G(30G)mklv -y LVDBJSZPRD24 -t raw -L rLVDBJSZPRD24 datavg 1G(0.5G)mklv -y LVDBJSZPRD25 -t raw -L rLVDBJSZPRD25 datavg 5G(1G)或:mklv -y LVDBJSZPRD23 -t raw -L rLVDBJSZPRD23 datavg 120 也可以然后使用chown改变文件的属主chown actuser:actgroup /dev/rLVDBJSZPRD23chown actuser:actgroup /dev/rLVDBJSZPRD24chown actuser:actgroup /dev/rLVDBJSZPRD255.执行恢复操作首先,修改上传的备份文件的权限,使actuser用户能够访问chown actuser:actgroup FUNDACCT.0.db2iact.NODE0000.CATN0000.20100701000002.001然后,使用命令得到备份文件的全路径我这里是:# pwd/ud0切换用户 su - actuser ,在/home/actuser创建db目录用于数据库恢复,archivelog文件夹用来保存恢复出来的事务日志使用命令执行。。。db2 "restore db fundacct from /ud0 to /home/actuser/db into fundacct logtarget '/home/actuser/archivelog' redirect without prompting"发现,错误$ db2 "restore db fundacct from /ud0 to /home/actuser/db into fundacct logtarget '/home/actuser/archivelog' redirect without prompting"ksh: db2:  not found.(这个错误是su actuser导致,应该是su - actuser)原来是新建的实例,但是没有启动db2 。所以先启动:db2start 先启动DB2然后执行上面的命令发现:SQL1277N  Restore has detected that one or more table space containers areinaccessible, or has set their state to 'storage must be defined'.DB20000I  The RESTORE DATABASE command completed successfully.OK,第一步完成。为所有表空间都成功设定容器,这里表空间1的页是4K,3的页是8K,4的页是32K。然后根据容器的大小算出一共多少个页。然后执行db2 "set tablespace containers for 0 using (device '/dev/rLVDBJSZPRD25' 1310720)"db2 "set tablespace containers for 1 using (path 'TEMPSPACE1')"db2 "set tablespace containers for 2 using (path 'SYSTOOLSPACE')"db2 "set tablespace containers for 3 using (device '/dev/rLVDBJSZPRD23' 3932160)"db2 "set tablespace containers for 4 using (device '/dev/rLVDBJSZPRD24' 32768)"db2 "set tablespace containers for 5 using (path 'ACTSYSTMP32K')"db2 "set tablespace containers for 6 using (path 'ACTUSRTMP8K')"当这些全部成功之后,开始真正的恢复工作!这个时间相对长点。。使用命令:db2 restore db fundacct continueDB20000I  The RESTORE DATABASE command completed successfully.给出上面的信息就是表示数据库的恢复过程完成了,另外由于数据库是在线备份的,恢复后处于备份暂挂状态,需要前滚使用命令前滚:db2 "rollforward db fundacct to end of logs and complete overflow log path ('/home/actuser/archivelog')"把数据库fundacct沿着/home/actuser/archivelog下面的日志前滚到日志末尾                                 Rollforward Status Input database alias                   = fundacct Number of nodes have returned status   = 1 Node number                            = 0 Rollforward status                     = not pending Next log file to be read               = Log files processed                    = S0012793.LOG - S0012793.LOG Last committed transaction             = 2010-06-30-16.20.45.000000DB20000I  The ROLLFORWARD command completed successfully.OK。一切搞定!呵呵

热点排行