oracle運行方式之歸檔方式與不歸檔方式的轉換

一、瞭解ORACLE的運行方式

     ORACLE數據庫有兩種運行方式:一是歸檔方式(ARCHIVELOG),歸檔方式的目的是當數據庫發生故障時最大限度恢復數據庫,能夠保證不丟失任何已提交的數據;二是不歸檔方式(NOARCHIVELOG),只能恢復數據庫到最近的回收點(冷備份或是邏輯備份)。sql

    如何改變數據庫的運行方式,通常狀況下爲NOARCHIVELOG方式。當數據庫建立好之後,根據咱們的須要把須要運行在歸檔方式的數據庫改爲ARCHIVELOG方式。數據庫

二、查看查看當前數據庫是否處於歸檔模式

    首先要查看歸檔與不歸檔方式,須要咱們切換用戶到oracle用戶,使用命令:su - oracle;在使用以下兩種方式查看:oracle

  1. select name, log_mode from v$database;

           

            ****  log_mode的值爲 NOARCHIVELOG 表示數據庫處於非歸檔模式spa

           

            ***  log_mode的值爲 ARCHIVELOG 表示數據庫處於歸檔模式日誌

     2. archive log list; orm

        這種方式須要oracle最高權限(sysdba)blog

          (1)、進入Sqlplus控制檯,命令:sqlplus /nolog;flash

          (2)、以系統管理員登陸,命令:connect /as sysdba;  io

          (3)、查詢當前歸檔方式,命令:archive log list;form

            

               Database log mode 的值爲 No Archive Mode;

               Automatic archival 的值爲 Disabled,表示當前數據庫處於非歸檔模式

                --------------------- 

               Database log mode 的值爲 Archive Mode

               Automatic archival 的值爲 Enabled, 表示數據庫已開啓歸檔模式

三、將不歸檔模式改成歸檔模式(如下命令均在Sqlplus控制檯輸入)

(1)、關閉數據庫,命令:shutdown immediate;

(2)、啓動數據庫到mount狀態,命令:startup mount;

(3)、修改數據庫爲歸檔模式,命令:alter database archivelog;

(4)、打開數據庫,命令:alter database open;

(5)、查詢數據庫是否已處於歸檔模式,命令:archive log list;若是Database log mode 的值爲 Archive Mode,而且Automatic archival 的值爲 Enabled, 表示數據庫已開啓歸檔模式;

(6)、修改日誌文件命名格式

    alter system set log_archive_max_processes = 5; 

    alter system set log_archive_format = "archive_%t_%s_%r.log" scope=spfile;

(7)、更改日誌文件路徑

    alter system set log_archive_dest_1='location=/data/archivelog/orcl';當咱們使用archive log list命令顯示時,會看到Archive destination的值更改成 /data/archivelog/orcl,

假若有須要,能夠生成多份同樣的日誌,以防不測,在添加一份日誌保存位置命令:alter system set log_archive_dest_2='location=/bak/orcl/archive_log';

四、將Oracle數據庫設置爲非歸檔模式 1)、關閉數據庫  shutdown immediate  2)、再後面把數據庫啓動到mount的模式  startup mount  3)、關閉flash閃回數據庫模式,若是不關閉的話,在後面關閉歸檔日誌的時候就會出現討厭的ora-38774錯誤。  alter database flashback off  4)、接着把數據庫改成非歸檔模式  alter database noarchivelog;  5)、都修改好了之後,而後打開數據庫  alter database open;  6)、察看一下歸檔日誌的空間大小  select * from v$recovery_file_dest;  接着看一下log日誌的狀態  select * from v$log;  再看一下閃回日誌使用情況  select * from v$flash_recovery_area_usage;

相關文章
相關標籤/搜索