《数据库帐套备份与恢复(9页).doc》由会员分享,可在线阅读,更多相关《数据库帐套备份与恢复(9页).doc(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-数据库帐套备份与恢复-第 9 页数据库帐套备份与恢复EAS产品支持部 黄银闯、彭光元请注意:本文件只作为产品介绍之用,不属于您与金蝶签署的任何协议。本文件仅包括金蝶既定策略、产品及功能方面的信息,不能以本文件作为要求金蝶履行商务条款、产品策略以及开发义务的依据。本文件内容可能随时变更,恕不另行通知。前 言概述该文档主要目的是让现场同事和研发同事掌握ORACLE、DB2、SQLSERVER数据库备份、恢复方法。文档中有一个可视化的备份恢复工具,可以帮助大家进行可视化的数据库备份与恢复,并能帮助大家跨操作系统平台轻松地进行数据库备份与恢复。通过对它的学习,可以让大家对数据库备份、恢复有一个初步地
2、了解和熟悉。适用范围现场实施同事、总部研发。约定符号约定在本文中可能出现下列标志,它们所代表的含义如下。符号说明表示有潜在风险,如果忽视这些文本,可能导致操作错误、数据丢失、设备性能降低或不可预知的结果。表示可以帮助您获取更多相关信息或提示您通过其它方式也可以获得相同结果。强调或补充说明所描述的信息。内容约定本处对文中通用信息作如下约定 l $EAS_HOME表示EAS服务器安装的根目录,即安装过程中输入的本地路径。 l $BOS_HOME表示BOS工具的安装根目录,即安装过程中输入的本地路径。目 录1 EXP windows下导出工具说明42 Expdp windows下导出截图示范63 i
3、mpdp windows下导入截图示范64 Expdp linux&unix&aix工具导出图解75 DB2 数据库linux&unix 下数据备份116 Linux 下 DB2 backup物理备份方法147 创建恢复脚本(DB2V9以上版本)158 Rman 备份179 Rman 恢复方法2110 DB2恢复方法2211 WINDOWS下自动导入脚本2312 导出报错异常处理241 EXP windows下导出工具说明1. 需要安装数据库客服端;2. 此脚本目前只适用在WIN下执行;3. 此脚本适合远程或本地导出各种版本的ORACLE数据库;4. 使用方法按如下两个图解说明便可执行导出;5
4、. 解压EXP 文件,运行文件目录下Project1.exe即可出现如下导出工具。如果此程序因为运行环境的不同而不可执行或开启,我们可以把第8步生成的脚本放如下环境中运行:2 Expdp windows下导出截图示范3 impdp windows下导入截图示范Impdp system/eas directory=EASBAK dumpfile=stjt_100605.dmp logfile=stjt_100605.dmp.logremap_schema=stjt:stjt100609pm remap_tablespace=EAS_D_STJT_STANDARD:EAS_D_STJT_test(
5、其中remap_schema是重定向用户名,remap_tablespace是重定向表空间名,如果是在同一个数据库实例下的,而又不想把导入的数据放在以前默认的表空间里面,可以使用此参数。)4 Expdp linux&unix&aix工具导出图解1. 需要把这两个脚本(eas_expdp.pl init.pl,此脚本由郭立春老师所写)COPY 到LINUX或UNIX服务器中。2. 执行此脚本需要ROOT 权限,保存导出文件的目录需要ORACLE 读写权限。3. 具体操作如下: rooteasferf6324 expdptest# sh eas_expdp.pl 5 DB2 数据库linux&un
6、ix 下数据备份自动备份脚本 autobackup.shif $# -ne 3 ;then echo please enter three parameter. echo for example: echo autobackup.sh dbname username passwordexit 0fidb2look -d $1 -a -e -l -i $2 -w $3 -z $2 -o db.ddldb2 connect to $1 user $2 using $3 db2 -x select mkdir |tabname from syscat.tables where UCASE(tabsc
7、hema)=UCASE($2) crtdir.shchmod +x crtdir.sh./crtdir.shdb2 -x select load from |tabname|.ixf of ixf lobs from ./|tabname| insert into |tabname|; from syscat.tables where UCASE(tabschema)=UCASE($2) load.sqldb2 -x select export to |tabname|.ixf of ixf lobs to ./|tabname| modified by lobsinfile select *
8、 from |tabname|; from syscat.tables where UCASE(tabschema)=UCASE($2) export.sqldb2 -x select runstats on table $2.|tabname| with distribution and detailed indexes all; from syscat.tables where UCASE(tabschema)=UCASE($2) runstats.sqldb2 -tvf export.sqldb2 connect resetexitEOF运行此脚本后会生成4个文件执行过程中截图如下:6
9、Linux 下 DB2 backup物理备份方法如下图:7 创建恢复脚本(DB2V9以上版本)db2 restore db test from /u01/test taken at 20100711231821 redirect generate script restoreeas.clp8 Rman 备份是基于控制文件恢复的(nocatalog模式)Catalog模式(也就是把恢复信心备份到远程数据库的表中)接下来的步骤和nocatalog 模式一样9 Rman 恢复方法(这里就简单地说下,不截图)1. RMAN set dbid=1205819526(可以通过RMAN list backu
10、p 里面找到,也可以备份的时候指定)2. RMAN startup nomount;3. RMAN restore spfile from/home/oracle/rman/ 20100819_0allnp48_1_1(如果SPFILE没问题的话,就可以放到对应的目录下,不需恢复)4. RMANrestore controfile from /home/oracle/rman/controlfile.bak(这些信息都可以通过list backup 看到)5. RMAN alter database mount;6. RMAN restore database;7. RMAN recover
11、database;8. RMAN alter database open resetlogs;10 DB2恢复方法1.重定向脚本恢复方法db2 tvf restoreeas.clp 或者db2 restore db eas from /bkdb taken at 200807260300022、恢复到新库1、修改restoreeas.clp 中ON 、INTO内容。如:ON 新库存储路径DBPATH ON INTO 新库名systools表空间需要修改路径来redirectSET TABLESPACE CONTAINERS FOR 9- IGNORE ROLLFORWARD CONTAINER
12、 OPERATIONSUSING ( PATH 新路径);db2 tvf restoreeas.clp 3.如使用脚本restoreeas.clp恢复,需要对脚本中以下表空间进行重定向修改,如命令行手工方式恢复,则运行如下语句:db2 restore db eas from /bkdb taken at 20080726030002 on /bkdb/hseasnew dbpath on /bkdb/hseasnew into hseasnew newlogpath /bkdb/hseasnew/log redirectdb2 set tablespace containers for 4 U
13、SING (path /bkdb/hseasnew/eas_EAS_16K)db2 set tablespace containers for 5 USING (path /bkdb/hseasnew/eas_EAS_16K_temp)db2 set tablespace containers for 6 USING (path /bkdb/hseasnew/eas_EAS_32K)db2 set tablespace containers for 7 USING (path /bkdb/hseasnew/eas_EAS_32K_temp)db2 set tablespace containe
14、rs for 8 USING (path /bkdb/hseasnew/eas_EAS_8K)db2 set tablespace containers for 9 USING (path /bkdb/hseasnew/eas_EAS_8K_temp)db2 set tablespace containers for 2 USING (path /bkdb/hseasnew/SYSTOOLSTMPSPACE)db2 set tablespace containers for 3 USING (path /bkdb/hseasnew/SYSTOOLSPACE)db2 restore db eas
15、 continue注:on对应新库存储路径,dbpath on对应新库系统路径;容器标志号要与源库对应,可以通过db2 list tablespaces到源库查看。11 WINDOWS下自动导入脚本在CMD运行下输入:脚本名加 1.新数据库用户名,2.数据库表空间名,3.数据库临时表空间名,4.数据库导出时的用户名,如下图所示12 导出报错异常处理如果是用EXPDP模式导出来的,而用IMP导入的话,一般会报类似如下的错误如果是用EXP导出的,而用IMPDP导入的话,一般会报类似如下的错误如果出现下面这种报错,可能要使用管理员导入(也就是 fromuser touser)模式,如下图EXPDP导
16、出时报如下错误 可能原因是UNDO表空间太小ORA-39125: Worker unexpected fatal error in KUPW$WORKER.GET_TABLE_DATA_OBJECTS while calling DBMS_METADATA.FETCH_XML_CLOB TABLE_DATA:HSEAS.VTZGIS3ASO7BLUL2V9OWH W7OORA-01555: snapshot too old: rollback segment number 9 with name _SYSSMU9$ too smallORA-06512: at SYS.DBMS_SYS_ERROR, line 105ORA-06512: at SYS.KUPW$WORKER, line 6313导入时报如下错误,是由于FROMUSER 和full=y 这两个参数不能同时使用导入时候报如下错误,则是该账户被锁定。解决方法:alter user system account unlock。