數據庫(學習整理)----6--Oracle如何快速備份和多次備份數表數據


1、說明:

    這里假設一種應用場景!

假設,銀行系統中有大量的數據需要及時備份,如何才能快速高效呢!

   條件需求:

      (1)、不能設置同步鎖(設置的會影響銀行正常業務進行!使得銀行系統處於維護狀態,這是不允許的!)

      (2)、盡量高效,因為銀行中的數據是海量的,一般的SQL語句的效率不能夠滿足高性能!

      (3)......

 

2、解決方案:

    1、備份結果集成一個新的備份表:

      說明:這里備份的是一個結果集!

      SQL語句:

          create table emp_bak

          (

            select * from emp

          );

     2、如何備份一個空表結構:

       SQL語句:         

          create table emp_bak

          (

            select * from emp 

            where 1 <> 1

          );

     3、第一次備份之后,若需要再次備份數據:

         SQL語句:

          insert into emp_bak

          (

            select * from emp where rownum<=10

          );

 

    4、如何判斷接下來的備份是不是第一次備份數據!

       說明:

          為甚要做這種判斷,很簡單,因為第一次備份數據,是涵蓋了創建備份的數據表的操做,之后的備份是一種新增操作,是不同的2中類型操做!所以需要區分!

 

      SQL語句:(這里我們需要查詢視圖,獲取視圖中備份數據的用戶的對象,再去該用戶下查詢用戶下的表!)

          1、select * from user_tables;    ----查詢用戶視圖,在查到的數據結果集中找到需要驗證的用戶

 

          2、select * from  emp_bak;    ---去查詢這個用戶下的數據(也就是用戶全下的表:),如果結果集中是空的(說明沒有備份表的存在),那么就說明,以前沒有備份數據表

          

    5、如何一條insert語句插入多條數據!

         說明:需要使用union關鍵字

          SQL語句:

              insert into emp

                    select 's001',11'Jason' from dual

                    union

                    select 's002',12,'Jack' from dual

                    union

                    select 's003',13,'Rose' from dual;

          執行以上的SQL語句就可以一次性添加三條數據!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM