您的位置:首页 > 大数据

浦发银行大数据库表备份设计思路(数据泵)

2016-07-11 14:39 302 查看
经常会遇到数据量很大的业务表导入导出时把数据库导挂的情况,利用oracle特性可以有效解决。

备份须知:检测表空间大小,预估导出文件大小,注意修改用户、导出文件路径等,考虑到数据量较大,建议分两步导出;

检查生产用户【XXX】表空间大小及所剩空间大小,避免备份时磁盘空间不足,下一步建立导出文件夹【expdb_oradata】要大于导出文件的大小。
<span style="font-size:18px;">select a.tablespace_name,
a.bytes / 1024 / 1024 "Sum MB",
(a.bytes - b.bytes) / 1024 / 1024 "used MB",
b.bytes / 1024 / 1024 "free MB",
round(((a.bytes - b.bytes) / a.bytes) * 100, 2) "percent_used"
from (select tablespace_name, sum(bytes) bytes
from dba_data_files
group by tablespace_name) a,
(select tablespace_name, sum(bytes) bytes, max(bytes) largest
from dba_free_space
group by tablespace_name) b ,dba_users
where a.tablespace_name = b.tablespace_name and dba_users.USERNAME='XXX' and dba_users.default_tablespace=a.tablespace_name;</span>


建立导出文件夹【expdb_oradata】注意修改文件路径
<span style="font-size:18px;">create directory dump_dir as '/home/oracle/expdb_oradata'; </span>
给用户赋目录操作权限
<span style="font-size:18px;">grant read, write on directory dump_dir to XXX;</span>


使用数据泵导出数据库  注: XXX 用户名 ,MMM 密码 , NNN 数据库实例;

 这里分两笔导出,第一笔数据量较小(采用排除业务数据较大的表),第二笔较大 注意修改命令文件名  

第一笔 排除大数据量的表 
<span style="font-size:18px;">expdp XXX/MMM@NNN DIRECTORY=dump_dir DUMPFILE=PEPP_BFS_SPDB_20160701_A.dmp LOGFILE=exp_tab_test.log exclude=table:"in('COM_MESSAGE_IN','COM_MESSAGE_OUT','BFS_TRX_TRANSACTION','BFS_IPP_TRX_LOG','BFS_BILL_STATEMENT','BFS_BANK_VOUCHER','BFS_BANK_VOUCHER_DTL')";</span>


第二笔  导出大数据量的表

 
<span style="font-size:18px;">expdp XXX/MMM@NNN DIRECTORY=dump_dir DUMPFILE=PEPP_BFS_SPDB_20160701_B.dmp LOGFILE=exp_tab_test.log TABLES=COM_MESSAGE_IN,COM_MESSAGE_OUT,BFS_TRX_TRANSACTION,BFS_IPP_TRX_LOG,BFS_BILL_STATEMENT,BFS_BANK_VOUCHER,BFS_BANK_VOUCHER_DTL;</span>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息