研发内部快速备份、恢复

上传人:宝路 文档编号:21993794 上传时间:2017-11-25 格式:DOC 页数:8 大小:82.85KB
返回 下载 相关 举报
研发内部快速备份、恢复_第1页
第1页 / 共8页
研发内部快速备份、恢复_第2页
第2页 / 共8页
研发内部快速备份、恢复_第3页
第3页 / 共8页
研发内部快速备份、恢复_第4页
第4页 / 共8页
研发内部快速备份、恢复_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《研发内部快速备份、恢复》由会员分享,可在线阅读,更多相关《研发内部快速备份、恢复(8页珍藏版)》请在金锄头文库上搜索。

1、研发内部 EAS帐套快速备份、恢复方案目前研发内部备份、恢复帐套主要是采用逻辑方式。Oracle 采用 exp/imp,DB2 采用export、load,该方式下帐套备份文件能跨操作系统平台及数据库版本传输,因此严格来说只是一种数据传输方式,适用于远程传帐套,如果只是在研发内部高效、快捷备份、恢复帐套,则应该以物理方式为主,辅助使用逻辑方式。1. Oracle 快速备份、恢复1.1. 表空间备份、恢复方式无论是测试库还是开发库,最终都需要统一规范命名,也就是对不同用户帐套使用的表空间区分开来,对应使用唯一表空间命名,即 EAS_D_用户名英文缩写_STANDARD。如:万科帐套,对应表空间命

2、名为 EAS_D_WANKE_STANDARD,只有这样,开发库、测试库同步帐套才会清晰、明了,表空间方式备份、恢复方式的性能优势才能最大程度发挥出来。表空间传输是一种快速在数据库间移动数据的办法,是把一个数据库上的数据文件复制到另外一个数据库中,只导出表空间的定义信息到 DMP文件,而不是把整个数据文件导出成 Dmp文件,因此表空间方式移动数据就象复制文件一样快。一旦研发内部将用户帐套表空间命名统一规范后,帐套从测试库恢复到开发库将变的非常方便。如果同一个数据库下恢复到之前表空间方式备份的帐套,则需要先删除该帐套对应的表空间,才能恢复。这种类型的恢复在性能测试中会经常用到。1.1.1. 传输

3、表空间相关规则Oracle9i版本源数据库和目标数据库要求运行在相同的硬件平台上。Oracle10g 版本 可跨平台,但不同字节顺序的平台数据文件需要转换。源数据库与目标数据库必须使用相同的字符集(UTF8) 。源数据库与目标数据库一定要有相同大小的数据块(默认为 8K)目标数据库不能有与迁移表空间同名的表空间,因此如果同一个数据库下恢复之前表空间方式备份的帐套,需要先删除该帐套对应的表空间。必须传输自包含的对象集:可以用以下的方法来检测一个表空间或一套表空间是否符合传输标准:SQLexec sys.dbms_tts.transport_set_check(EAS_D_NM_STANDARD,

4、true);SQLselect * from sys.transport_set_violations;如果没有行选择,表示该表空间只包含表数据,并且是自包含的。对于有些非自包含的表空间,如需要将关联的表空间一起传输。注:目前 EAS只需要关注 BLOB、CLOB 类型字段是否与其它字段存在同一表空间,一般情况下是在同一表空间。1.1.2. 表空间备份、恢复帐套详细步骤1、 设置源数据库需要传输的帐套对应的表空间为只读alter tablespace EAS_D_NM_STANDARD read only;2、 导出表空间定义信息ORACLE9i 版本Windows下: exp userid=

5、”/ as sysdba” file=easnm.dmp log=easnm.log transport_tablespace=y tablespaces=(EAS_D_EASNM_STANDARD)Linux、Unix 下:export ORACLE_SID=EASNM (环境变量设置为需要导出的数据库实例名)Exp userid=”sysorcl as sysdba” file=easnm.dmp log=easnm.log transport_tablespace=y tablespaces=(EAS_D_EASNM_STANDARD)以上需要注意的是为了在 SQL中执行 EXP,USE

6、RID 必须用三个引号,在 UNIX中也必须注意避免“/”的使用必须使用 sysdba才能操作这个命令在 SQL中必须放置在一行ORACLE10G 以上版本expdp system/oracle dumpfile=eas_d_NM_standard.dmp directory=eas_expdp_dir transport_tablespaces=EAS_D_EASNM_STANDARD注:导出用户不能使用导出帐套所在的用户名,这里使用的是 system,目录名,导出的表空间名根据具体环境情况修改。如导出的表空间需跨平台,需考虑数据文件是否需要转换查询Oracle10g支持的平台转换,相同字节

7、顺序的平台之间传输表空间时,不需要任何转换SQL select * from v$transportable_platform order by platform_id;如果字节顺序不同,需要使用 rman转换文件格式:$ rman target /RMAN convert tablespace EAS_D_EASNM_STANDARD2 to platform Microsoft Windows IA (32-bit)3 Format f:oracle_data%N_%f;例:将源数据文件转换为 windows 32位平台数据文件注:目前研发内部使用的数据库服务器操作系统以 windows,

8、linux(Intel x86)为主,不需要做任何数据文件转换。3、 复制源数据库导出的表空间包含的数据文件到目标数据库通过 cp(unix)或 copy(windows)或通过 ftp传输源数据库数据文件(一定要在 bin方式)到目标数据库所在服务器。如跨不同字节顺序平台传输,之前通过 RMAN转换的数据文件要在目标数据库上还原出来:$ rman target /RMAN CONVERT DATAFILE F:ORACLE_DATAEAS_D_EASNM_STANDARD_82 DB_FILE_NAME_CONVERT3 f:oracle_dataEAS_D_EASNM_STANDARD01

9、.dbf;4、 把源数据库表空间改回读写状态alter tablespace EAS_D_EASNM_STANDARD read write;5、 表空间方式导入目标数据库如目标数据库与原数据库为同一数据库,由于存在同名表空间,因此需要删除该表空间及数据文件后才能导入。Alter database datafile f:oracle_dataEAS_D_EASNM_STANDARD01.dbf offline drop; /将该表空间所在的数据文件离线删除drop tablespace EAS_D_EASNM_STANDARD including contents; /删除表空间注:通过以上步

10、骤删除表空间速度最快,如直接删除表空间数据库会对其中包含的对象一个个删除,需消耗很长时间。如目标数据库与原数据库为不同数据库,且目标数据库不存在与需导入表空间同名的表空间,则直接导入即可。ORACLE 9i:Windows下:imp file=easnm.dmp userid=”/ as sysdba” transport_tablespace=y datafiles=(f:oracle_dataEAS_D_EASNM_STANDARD01.dbf,f:oracle_dataEAS_D_EASNM_STANDARD02.dbf)Linux、Unix 下:、export ORACLE_SID=o

11、ra9i (环境变量设置为需要导入的测试数据库实例名)imp file=easnm.dmp userid=”sys/sys as sysdba” transport_tablespace=y datafiles=(f:oracle_dataEAS_D_EASNM_STANDARD01.dbf,f:oracle_dataEAS_D_EASNM_STANDARD02.dbf)ORACLE 10G:impdp system/oracle dumpfile=eas_d_NM_standard.dmp directory=eas_expdp_dir transport_datafiles=f:oracl

12、e_dataEAS_D_EASNM_STANDARD01.dbf /目录名,数据文件名根据具体环境情况修改。6、 设置目标数据库表空间为正常可读写状态alter tablespace EAS_D_EASNM_STANDARD read write;1.2. Oracle 10g 数据泵 expdp、impdp 逻辑方式备份恢复Oracle 10g的数据泵方式采用了专用的 API接口,替代了 Oracle 9i版本前传统的基于 SQL方式执行的 exp、imp 方式,因此性能更好,且提供了实时监控进度、断点续导等手段,便于控制。该方式实现步骤及自动脚本如下:导出涉及脚本:expdp_schema

13、.bat(expdp_schema.sh)expdp_call.sqlexp_cretablespace.sql导入涉及脚本:impdp_schema.bat(impdp_schema.sh)impdp_call.sqlcretablespace.sql1.2.1. Oracle10g expdp、impdp 逻辑备份恢复详细步骤1、导出用户备份:直接执行 expdp_schema.bat(linux/unix使用 expdp_schema.sh),按提示信息依次输入两个参数:导出用户名、口令,执行完成后缺省将在 Oracle安装盘admin实例名dpdump路径下生成导出的 dmp文件,在当

14、前路径下生成创建表空间脚本cretablespace.sql。2、导入用户备份:将上述导出的 dmp文件放在目标数据库服务器 Oracle安装盘admin实例名dpdump路径下。cretablespace.sql 放在当前路径下,根据实际情况修改 cretablespace.sql脚本中数据文件存放路径及大小。直接执行 impdp_schema.bat(impdp_schema.sh),按提示信息依次输入三个参数:system用户口令、dmp 文件中源用户名、目标用户名。 (注:如目标用户不存在则自动创建表空间及用户)10gautobackupScript.rar3、关于备份、恢复脚本中 D

15、IRECTORY、REMAP_TABLESPACE 参数说明自动备份脚本中使用的目录为 Oracle 10g缺省的 DATA_PUMP_DIR参数所指定的路径,缺省为 Oracle安装盘admin实例名dpdump,如该路径空间不足以存放 DUMP文件,则需手工在源、目标数据库创建目录,并修改备份脚本 expdp_call.sql,impdp_call.sql,增加选项 DIRECTORY等于该目录,备份的 DMP文件就会生成到该目录下。Oracle用户登录操作系统,执行:sqlplus /as sysdbaSQLcreate directory eas_expdp_dir as /home/

16、oracle/10gautoexpdp;SQLgrant read,write on directory eas_expdp_dir to eas用户名;注:目录/home/oracle/10gautoexpdp根据实际环境修改。缺省情况下,恢复的目标数据库中的表空间与源数据库表空间同名、如表空间需使用不同命名,则修改自动脚本 expdp_call.sql,impdp_call.sql,增加选项 REMAP_TABLESPACE等于源表空间:目标表空间名。注:expdp、impdp 工具详细使用运行 expdp(impdp) help查看;也可以通过 Oracle10g OEM配置 expdp、impdp 方式自动备份、恢复任务。1.3. Oracle快速备份、恢复方式总结研发内部 Oracle测试、开发环境帐套备份、恢复目前由于表空间命名还未规范,存在同一表空间包含多个

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号