基於Innobackupex的增備及恢複MySQL的熱備(物理備份)可以採取全備加增量備份的方式來減輕資料庫I/O壓力及系統資源的佔用。增量備份主要是以全備或增量備份為基礎,備份那些變更過的頁面。其備份的原理是基於一個不斷增長的LSN序列,這個LSN與Oracle的SCN類似。在恢複期間,我們需要將已提交的事務前滾,未提交的交易回復。本文主要描述了增量備份及增量恢複。1、增備的相關知識點As not all information changes between each backup,
基於Innobackupex的全備恢複對於MySQL資料庫的熱備,xtrabackup是大多數DBA朋友們的選擇。xtrabackup內嵌了一個innobackupex可用於熱備MySQL資料庫。本文描述了基於innobackupex這個工具全備下的恢複並給出示範供大家參考。有關Innobackupex的全備可參考:Innobackupex 全備資料庫 1、Innobackupex恢複原理After creating a backup, the data is not ready to be
DML過程中記錄錯誤記錄檔當你插入幾百萬資料時,因為有幾條髒資料而導致插入失敗,是不是非常惱火。Oracle 10g R2之後有個新功能,將插入過程中失敗的記錄插入到另一張表中。SQL> drop table test purge;SQL> drop table test_bad purge;SQL> create table test as select * from dba_objects where 1<>1;SQL> execute
Oracle中如何判斷SQL是否真正做了排序在Oracle中,有時候在執行計畫中看到sort關鍵字,就有人認為是做了排序,其實不一定。可以用下面的方法實驗:drop table test purge;create table test as select * from dba_objects;exec dbms_stats.gather_table_stats(user,'test');select /*+gg_test*/* from test order by
RAC Archive log寫入錯誤的節點由於多個客戶幾次問到,RAC環境中,node2的歸檔日誌,寫入到node1的archive路徑中。這個問題導致一些客戶在使用OGG的情況下,有時無法正確讀取日誌的問題。那是什麼原因導致的這個問題呢?對此,進行尋找和測試。發現了下面的情況會導致archive log沒有記錄到正確的節點位置。測試環境Linux + 11.2.0.4 RACnode1ALTER SYSTEM SET
Oracle中quote的使用在SQL或者PLSQL中如果要表達一個帶有特殊字元的字串時,通常要用''封裝起來。但如果字串本身包含‘或者“這樣的字元,那麼實現起來有點繁瑣。比如:My Name is "Wang Xiu Li"用sql實現SQL> select 'My Name is "Wang Xiu Li"' names from dual;NAMES------------------------My Name is "Wang Xiu
資料庫最佳化原則,最佳化原則最近資料庫課程設計,我總結了一下資料庫的最佳化方法,希望對有需要的人能有協助:1.對查詢進行最佳化,盡量避免全表掃描,首先應考慮在 where 及 order by 涉及的列上建立索引。2.應盡量避免在 where 子句中對欄位進行 null 值判斷,否則將導致引擎放棄使用索引而進行全表掃描,如: select id from p where num is null 可以在num上設定預設值0,確保表中num列沒有nullÍ
sga_target設定大於100G遇到的一個bug ORA-00064: object is too large,sgatarget主機記憶體256G,sga_target準備設定為160G,DBCA建立資料庫時一直報錯ORA-00064: object is too large to allocate on this O/S (1,15429280)直接使用DBCA預設參數把庫建好後,再次使用命令來修改,報錯依舊。經查,參考文檔Database startup can fail with