經常會遇到資料量很大的業務表匯入匯出時把資料庫導掛的情況,利用oracle特性可以有效解決。
備份須知:檢測表空間大小,預估匯出檔案大小,注意修改使用者、匯出檔案路徑等,考慮到資料量較大,建議分兩步匯出;
檢查生產使用者【***】表空間大小及所剩空間大小,避免備份時磁碟空間不足,下一步建立匯出資料夾【expdb_oradata】要大於匯出檔案的大小。
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='***' and dba_users.default_tablespace=a.tablespace_name;
建立匯出資料夾【expdb_oradata】注意修改檔案路徑
create directory dump_dir as '/home/oracle/expdb_oradata';
給使用者賦目錄操作許可權grant read, write on directory dump_dir to ***;
使用資料幫浦匯出資料庫 注: *** 使用者名稱 ,mmm 密碼 , nnn 資料庫例項;
這裡分兩筆匯出,第一筆資料量較小(採用排除業務資料較大的表),第二筆較大 注意修改命令檔名
第一筆 排除大資料量的表
expdp ***/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')";
第二筆 匯出大資料量的表
expdp ***/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;
資料庫備份的思路
資料庫備份是非常重要的 主要是通過全量備份和log bin日誌結合達到比較好的備份效果 全量備份在linux的操作 mysqldump u root p 資料庫名稱 備份儲存路徑 比如 mysqldump u root p mytest tmp database mytest.sql寫成程式,備份檔...
資料庫表設計 基本思路
好的資料結構會影響速度。好的資料庫表設計會影響資料庫操作效率。特別是資料多的時候,如果表的結構不好的話操作的時候條件 where後的內容 會變的非常複雜。sql是關聯式資料庫中用到的一種語言。所以,為了簡化sql,表的關係 內部和外部 要盡量設計的合理。下面有幾個可以參照的步驟 1 找出那個表要描述...
資料庫表設計 備份記錄的表設計優化
需求場景 由於mysql沒有類似於sql server那樣的系統表來存放備份記錄,且大規模的mysql伺服器需要集中管理和檢視。伺服器出現效能問題或複製延遲時,需要先判斷是否由資料備份引起。第一版按照需求,考慮到需要記錄的備份資訊有備份伺服器資訊 備份開始結束時間 備份是否成功等訊息,於是設計出第一...