浦發銀行大數據庫表備份設計思路(數據泵)

經常會遇到數據量很大的業務表導入導出時把數據庫導掛的情況,利用oracle特性可以有效解決。
  1. 備份須知:檢測表空間大小,預估導出文件大小,注意修改用戶、導出文件路徑等,考慮到數據量較大,建議分兩步導出;
  2. 檢查生產用戶【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>

  3. 建立導出文件夾【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>

  4. 使用數據泵導出數據庫  注: XXX 用戶名 ,MMM 密碼 , NNN 數據庫實例;
     這裏分兩筆導出,第一筆數據量較小(採用排除業務數據較大的表),第二筆較大 注意修改命令文件名  
  5. 第一筆 排除大數據量的表 
    <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>

  6. 第二筆  導出大數據量的表
     
    <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>


發佈了99 篇原創文章 · 獲贊 22 · 訪問量 22萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章