Oracle ASM 檔案遷移(利用RMAN)

來源:互聯網
上載者:User

一、ASM檔案遷移說明

ASM檔案遷移指的是將位於檔案系統上的資料庫檔案遷移到ASM磁碟組裡;或者是將位於ASM磁碟組上的資料庫檔案遷移到檔案系統上。如所示:


二、從檔案系統遷移到ASM磁碟組

第一步:修改spfile

sql>alter system set control_files=’+dgdata1’,’+dgdata1’ scope=spfile;


第二步:備份控制檔案

$rman target /

rman>backup current controlfile format ‘/home/oracle/controlfile.ctl’;


第三步:啟動資料庫到NOMOUNT

rman>shutdown immediate

rman>startup nomount

備忘:因為修改了spfile中控制檔案的位置,所以資料庫啟動的時候會出現找不到控

制檔案的問題,所以將資料庫啟動到NOMOUNT狀態,然後再恢複控制檔案。


第四步:恢複控制檔案

rman>resotore controlfile from ‘/home/oracle/controlfile.ctl’;

備忘:RMAN根據spfile檔案中control_files的值將控制檔案恢複到指定路徑下。


第五步:啟動資料庫到MOUNT

rman>alter database mount;

備忘:因為控制檔案已經恢複,系統可以順利讀取控制檔案,所以將資料庫啟動到MOUNT

以便進行下一步資料庫檔案的遷移。


第六步:複製資料庫檔案到ASM磁碟組

rman>backup as copy database format ‘+dgdata1’;

備忘:backup as copy 命令是以副本的方式備份資料庫,其作用和作業系統的COPY

命令是一樣的,只是二者的執行者不同而已。至於資料庫檔案複製過去的名字則

無需指定,它由ASM自動產生。而且backup as copy 命令只備份資料檔案,不備

份記錄檔,也不備份臨時檔案。


第七步:修改控制檔案內部資料檔案指標

rman>switch database to copy;

備忘:因為控制檔案內部對資料檔案的指向依然是檔案系統的目錄路徑。我們的目的

是讓它的指向修改為ASM磁碟組的ASM檔案。該命令的功能正是如此。


注意】此處不能使用alter database rename file 命令修改控制檔案內部資料檔案

的指標。因為alter database rename file命令不能跨越系統進行操作。所

不能使用其將檔案系統的資料檔案路徑改為ASM系統的ASM檔案路徑。


第八步:修複資料庫檔案

rman>recover database;

備忘:應用日誌到恢複後的資料檔案上,以實現對其的修複。


第九步:以RESETLOGS方式開啟資料庫

rman>alter database open resetlogs;


第十步:修改聯機記錄檔組

sql>alter database add logfile group 3 ‘+dgdata1’,’+dgdata1’) size 10m;

sql>alter database add logfile group 4 ‘+dgdata1’,’+dgdata1’) size 10m;

sql>alter system switch logfile;

sql>alter system switch logfile;

sql>alter system checkpoint;

sql>alter database drop logfile group 1;

sql>alter database drop logfile group 2;


備忘】因為backup as copy database 命令只複製資料檔案不複製聯機記錄檔,所

以需要手工添加聯機記錄檔,刪除位元於檔案系統的記錄檔。在刪除過程中,

記錄檔可能處於當前使用狀態或者是活動狀態,故分別使用如下命令進行解決:

alter system switch logfile;日誌切換)

alter system checkpoint;將髒資料寫入資料檔案,以使記錄檔狀態變為非活動)


第十一步:添加暫存資料表空間檔案

sql>alter tablespace temp add tempfile ‘+dgdata1’ size 50m;

sql>alter tablespace temp drop tempfile ‘/u01/oradata/info/temp01.dbf’;

備忘】因為backup as copy database 命令只複製資料檔案不複製臨時檔案,所

以需要手工添加臨時檔案。


三、從ASM磁碟組遷移到檔案系統

第一步:修改spfile

sql>alter system set control_files=’/u01/info/control_01.ctl’ scope=spfile;


第二步:備份控制檔案

$rman target /

rman>backup current controlfile format ‘/home/oracle/controlfile.ctl’;


第三步:啟動資料庫到NOMOUNT

rman>shutdown immediate

rman>startup nomount

備忘:因為修改了spfile中控制檔案的位置,所以資料庫啟動的時候會出現找不到控

制檔案的問題,所以將資料庫啟動到NOMOUNT狀態,然後再恢複控制檔案。


第四步:恢複控制檔案

rman>resotore controlfile from ‘/home/oracle/controlfile.ctl’;

備忘:RMAN根據spfile檔案中control_files的值將控制檔案恢複到指定路徑下。


第五步:啟動資料庫到MOUNT

rman>alter database mount;

備忘:因為控制檔案已經恢複,系統可以順利讀取控制檔案,所以將資料庫啟動到MOUNT

以便進行下一步資料庫檔案的遷移。


第六步:複製ASM磁碟組資料檔案到檔案系統

rman>backup as copy datafile ‘+dgdata1/info/datafile/system.256.344545’ format ‘/u01/info/system_01.dbf’;

rman>backup as copy datafile ‘+dgdata1/info/datafile/sysaux.257.344545’ fromat ‘/u01/info/sysaux_01.dbf’;

… …

備忘:backup as copy 命令是以副本的方式備份資料庫,其作用和作業系統的COPY

命令是一樣的,只是二者的執行者不同而已。這裡必須同時制定ASM檔案的名字和

副本的名字。而且backup as copy 命令只備份資料檔案,不備份記錄檔,也不

備份臨時檔案。


第七步:修改控制檔案內部資料檔案指標

rman>switch database to copy;

備忘:因為控制檔案內部對資料檔案的指向依然是ASM檔案的目錄路徑。我們的目的

是讓它的指向修改為檔案系統的資料庫檔案。該命令的功能正是如此。


注意】此處不能使用alter database rename file 命令修改控制檔案內部資料檔案

的指標。因為alter database rename file命令不能跨越系統進行操作。所

不能使用其將ASM系統的ASM檔案路徑改為檔案系統的資料檔案路徑。


第八步:修複資料庫檔案

rman>recover database;

備忘:應用日誌到恢複後的資料檔案上,以實現對其的修複。


第九步:以RESETLOGS方式開啟資料庫

rman>alter database open resetlogs;


第十步:修改聯機記錄檔組

sql>alter database add logfile group 3 ‘/u01/info/redo_03_01.log’) size 10m;

sql>alter database add logfile group 4 ‘/u01/info/redo_04_01.log’) size 10m;

sql>alter system switch logfile;

sql>alter system switch logfile;

sql>alter system checkpoint;

sql>alter database drop logfile group 1;

sql>alter database drop logfile group 2;

備忘】因為backup as copy database 命令只複製資料檔案不複製聯機記錄檔,所

以需要手工添加聯機記錄檔,刪除位元於ASM磁碟組的記錄檔。在刪除過程中,

記錄檔可能處於當前使用狀態或者是活動狀態,故分別使用如下命令進行解決:

alter system switch logfile;日誌切換)

alter system checkpoint;將髒資料寫入資料檔案,以使記錄檔狀態變為非活動)


第十一步:添加暫存資料表空間檔案

sql>alter tablespace temp add tempfile ‘/u01/oradata/info/temp01.dbf’ size 10m;

sql>alter tablespace temp drop tempfile ‘+dgdata1/info/tempfile/temp.259.34344’;

備忘】因為backup as copy database 命令只複製資料檔案不複製臨時檔案,所

以需要手工添加臨時檔案。

oracle視頻教程請關注:http://u.youku.com/user_video/id_UMzAzMjkxMjE2.html


相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.