數據庫自動備份 自動保存爲excel文件或txt文件

      在處理日常事務中,爲保障系統數據庫的安全,需要及時對數據庫的數據進行備份,以防萬一。常用的簡易數據庫備份方法有很多,比如全表導出備份,更新備份以及各類備份軟件等。我們在處理系統的時候有專門的備份系統進行數據庫的完整備份與更新備份,當然也比較複雜。但是平時需要的時候,可能不能找那些複雜的東西,因此我們私底下簡單的通過自動備份重要的檔案表來滿足測試需要。備份方法比較簡單,原理如下:主要通過批處理自動完成實現具體表的文件(excel,txt等)導出備份。

     實現代碼如下:

    1、批處理執行文件內容(將其保存爲AutoBackDB.bat)

   cd /D D:/table_export/
   sqlplus 數據庫服務名/密碼 @main.sql
   exit

   2、將有共同屬性的表查詢並寫入文件(將其保存爲main.sql)


set echo off
set feedback off
set newpage none
set pagesize 5000
set linesize 500
set verify off
set pagesize 0
set term off
set trims on
set linesize 600
set heading  off
set timing off
set verify off
set numwidth 38

SPOOL csm_select_table.sql

--設置輸出參數
select 'set linesize 200 '||chr(10) a from dual;
select 'set term off verify off feedback off pagesize 999999  '||chr(10) a from dual;
select 'set markup html on entmap ON spool on preformat off '||chr(10) a from dual;
select ' '||chr(10) a from dual;

--形成查詢語句
select 'spool file_xls/'||ut.table_name||'.xls '||chr(10)||' select * from '||ut.table_name||';' ||chr(10)||' spool off '||chr(10)  str_sql
                from user_tables ut
               where ut.tablespace_name = 'CSM_DESC_TABLESPACE'
                 and ut.dropped = 'NO'
                 and ut.table_name not like '%EVENT'
                 and ut.num_rows < 999999;           
SPOOL OFF

--調用腳本,生成各個
@csm_select_table.sql 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章