oracle 拷贝文件到asm,Oracle 从ASM复制文件到文件系统
工作中,有時需要把文件從ASM中復制到文件系統中或者反過來,做一些維護操作,本文介紹了4種復制文件的的方法:ASMCMD中的cp命令(11g)
dbms_file_transfer包
rman的convert或backup as copy
FTP
下面分別介紹這4種方法
1、ASMCMD中的cp命令(11g)
cp命令是11g新增的命令,使用它可以輕松的把文件從ASM中復制到文件系統中或者反過來。還可以把ASM中的文件復制到網絡上的其他服務器的文件系統中。#從ASM復制到文件系統
[grid@rac1?~]$?asmcmd?-p
ASMCMD?[+]?>?cd?data
ASMCMD?[+data]?>?cd?orcl
ASMCMD?[+data/orcl]?>?cd?datafile
ASMCMD?[+data/orcl/datafile]?>?ls
SYSAUX.257.925306091
SYSTEM.256.925306089
UNDOTBS1.258.925306091
UNDOTBS2.264.925306377
USERS.259.925306091
ASMCMD?[+data/orcl/datafile]?>?ls?-l
Type??????Redund??Striped??Time?????????????Sys??Name
DATAFILE??UNPROT??COARSE???MAY?21?11:00:00??Y????SYSAUX.257.925306091
DATAFILE??UNPROT??COARSE???MAY?21?11:00:00??Y????SYSTEM.256.925306089
DATAFILE??UNPROT??COARSE???MAY?21?11:00:00??Y????UNDOTBS1.258.925306091
DATAFILE??UNPROT??COARSE???MAY?21?11:00:00??Y????UNDOTBS2.264.925306377
DATAFILE??UNPROT??COARSE???MAY?21?11:00:00??Y????USERS.259.925306091
ASMCMD?[+data/orcl/datafile]?>?cp?USERS.259.925306091?/home/grid/users.dbf
copying?+data/orcl/datafile/USERS.259.925306091?->?/home/grid/users.dbf
ASMCMD?[+data/orcl/datafile]?>
#查看復制結果
[grid@rac1?~]$?ll?/home/grid/users.dbf
-rw-r-----.?1?grid?oinstall?5251072?May?21?15:20?/home/grid/users.dbf
#從文件系統復制到ASM
ASMCMD?[+data/orcl/datafile]?>?cp?/home/grid/users.dbf?+data/orcl
copying?/home/grid/users.dbf?->?+data/orcl/users.dbf
#查看復制結果
ASMCMD?[+data/orcl/datafile]?>?cd?+data/orcl
ASMCMD?[+data/orcl]?>?ls?-l
Type???????????Redund??Striped??Time?????????????Sys??Name
Y????ARCHIVELOG/
Y????CONTROLFILE/
Y????DATAFILE/
Y????ONLINELOG/
Y????PARAMETERFILE/
Y????TEMPFILE/
N????spfileorcl.ora?=>?+DATA/ORCL/PARAMETERFILE/spfile.268.925423909
N????users.dbf?=>?+DATA/ASM/DATAFILE/users.dbf.271.944580085
cp的詳細使用情況可以使用help cp命令獲得。
如果ASM的版本是11g以前的版本可以使用如下三種方法復制文件。
2、dbms_file_transfer包
這個包是從Oracle 9不開始提供的,利用這個包可以在兩個位置之間傳輸文件,這兩個位置可以是同一臺計算機或者網絡上的兩臺計算機。Oracle10g擴展了這個包的功能,可以完成從一個ASM Diskgroup拷貝到另一個ASM Diskgroup、從ASM Diskgroup拷貝到普通文件系統、從普通文件系統拷貝到ASM Diskgroup、從文件系統拷貝到文件系統或者RAW Device。這個包提供了3個方法,可以完成不同的任務。方法功能說明
copy_file完成文件從本地一個目錄拷貝到本地的另一個目錄,這個方法不能完成遠程傳輸
get_file這個方法完成把遠程的文件拷貝到本地的目錄中,類似于下載
put_file這個方法完成本地文件傳送到遠程的目的,類似于上傳
使用方法:#創建目錄
SQL>?create?directory?asm_dir?as?'+data/ASM/DATAFILE/';
Directory?created.
SQL>?create?directory?os_dir?as?'/home/oracle';
Directory?created.
#執行復制
SQL>?exec?dbms_file_transfer.copy_file('asm_dir','user2.dbf.272.944581345','os_dir','user.dbf');
PL/SQL?procedure?successfully?completed.
#驗證復制結果
[oracle@rac1?~]$?ls?-l?/home/oracle/user.dbf
-rw-r-----.?1?oracle?asmadmin?5251072?May?21?15:49?/home/oracle/user.dbf
#進行反向復制
SQL>?exec?dbms_file_transfer.copy_file('os_dir','user.dbf','asm_dir','user2.dbf');
PL/SQL?procedure?successfully?completed.
#驗證
ASMCMD?[+data/ASM/DATAFILE]?>?ls?-l
Type??????Redund??Striped??Time?????????????Sys??Name
N????user2.dbf?=>?+DATA/ORCL/DATAFILE/COPY_FILE.273.944581883
3、rman的convert和backup as copy命令
3.1 convert命令
convert命令是用于對數據文件進行字節格式轉換的。Oracle可以在不同OS平臺間進行表空間傳(TTS),如果兩個平臺的字節格式不一致,則需要參數據文件進行格式轉換,這個轉換可以 在源數據庫進行,也可以在目的數據庫中執行。如果在源數據庫中執行,則需要使用convert tablespace命令,如果在目的數據庫中執行,則需要使用convert datafile命令。
雖然convert這個命令主要用于跨平臺傳輸表空間,它也可以完成ASM和本地文件系統間拷貝文件,并且也是很簡單的一種方法。#使用convert?datafile從ASM復制到文件系統
RMAN>?convert?datafile?'+data/orcl/datafile/USERS.259.925306091'?format?'/home/oracle/user3.dbf';
Starting?conversion?at?target?at?21-MAY-17
using?channel?ORA_DISK_1
channel?ORA_DISK_1:?starting?datafile?conversion
input?file?name=+DATA/orcl/datafile/users.259.925306091
converted?datafile=/home/oracle/user3.dbf
channel?ORA_DISK_1:?datafile?conversion?complete,?elapsed?time:?00:00:01
Finished?conversion?at?target?at?21-MAY-17
#驗證
[oracle@rac1?~]$?ls?-l?/home/oracle/user3.dbf
-rw-r-----.?1?oracle?asmadmin?5251072?May?21?16:00?/home/oracle/user3.dbf
#使用convert?tablespace,使用時需要把users表空間置為只讀
RMAN>?sql?'alter?tablespace?users?read?only';
using?target?database?control?file?instead?of?recovery?catalog
sql?statement:?alter?tablespace?users?read?only
RMAN>?convert?tablespace?users?format?'/home/oracle/users%U.dbf';
Starting?conversion?at?source?at?21-MAY-17
allocated?channel:?ORA_DISK_1
channel?ORA_DISK_1:?SID=81?instance=orcl1?device?type=DISK
channel?ORA_DISK_1:?starting?datafile?conversion
input?datafile?file?number=00004?name=+DATA/orcl/datafile/users.259.925306091
converted?datafile=/home/oracle/usersdata_D-ORCL_I-1453086940_TS-USERS_FNO-4_0ns4qbtn.dbf
channel?ORA_DISK_1:?datafile?conversion?complete,?elapsed?time:?00:00:01
Finished?conversion?at?source?at?21-MAY-17
#驗證
[oracle@rac1?~]$?ll?/home/oracle/usersdata_D-ORCL_I-1453086940_TS-USERS_FNO-4_0ns4qbtn.dbf
-rw-r-----.?1?oracle?asmadmin?5251072?May?21?16:03?/home/oracle/usersdata_D-ORCL_I-1453086940_TS-USERS_FNO-4_0ns4qbtn.dbf
#從文件系統拷貝到ASM
RMAN>?convert?datafile?'/home/oracle/user3.dbf','/home/oracle/usersdata_D-ORCL_I-1453086940_TS-USERS_FNO-4_0ns4qbtn.dbf'?format?'+data';
Starting?conversion?at?target?at?21-MAY-17
using?target?database?control?file?instead?of?recovery?catalog
allocated?channel:?ORA_DISK_1
channel?ORA_DISK_1:?SID=64?instance=orcl1?device?type=DISK
channel?ORA_DISK_1:?starting?datafile?conversion
input?file?name=/home/oracle/user3.dbf
converted?datafile=+DATA/orcl/datafile/users.274.944582713
channel?ORA_DISK_1:?datafile?conversion?complete,?elapsed?time:?00:00:01
channel?ORA_DISK_1:?starting?datafile?conversion
input?file?name=/home/oracle/usersdata_D-ORCL_I-1453086940_TS-USERS_FNO-4_0ns4qbtn.dbf
converted?datafile=+DATA/orcl/datafile/users.275.944582713
channel?ORA_DISK_1:?datafile?conversion?complete,?elapsed?time:?00:00:01
Finished?conversion?at?target?at?21-MAY-17
#從日志中看出轉換的文件名
#converted?datafile=+DATA/orcl/datafile/users.274.944582713
#converted?datafile=+DATA/orcl/datafile/users.274.944582713
3.2 backup as copy命令
backup as copy命令是以鏡像的方式對文件進行備份,自然可以把文件從ASM復制到文件系統中。這也是從文件系統遷移到ASM時可以選擇的方法之一。#執行復制
RMAN>?backup?as?copy?datafile?'+DATA/orcl/datafile/users.259.925306091'?format?'/home/oracle/user4.dbf';
Starting?backup?at?21-MAY-17
using?target?database?control?file?instead?of?recovery?catalog
allocated?channel:?ORA_DISK_1
channel?ORA_DISK_1:?SID=69?instance=orcl1?device?type=DISK
channel?ORA_DISK_1:?starting?datafile?copy
input?datafile?file?number=00004?name=+DATA/orcl/datafile/users.259.925306091
output?file?name=/home/oracle/user4.dbf?tag=TAG20170521T161225?RECID=17?STAMP=944583145
channel?ORA_DISK_1:?datafile?copy?complete,?elapsed?time:?00:00:01
Finished?backup?at?21-MAY-17
#驗證
[oracle@rac1?~]$?ls?-l?/home/oracle/user4.dbf
-rw-r-----.?1?oracle?asmadmin?5251072?May?21?16:12?/home/oracle/user4.dbf
4.FTP方法
FTP方法可以像庫中復制使用傳統文件傳輸協議(FTP)對普通文件執行常規操作那樣,對ASM文件和目錄執行操作。通過這種方式訪問ASM文件的典型應用是從一個數據庫向另一個數據庫中復制ASM文件。需要XML DB支持,配置起來最麻煩,有興趣的同學可以參考《Oracle Database 11g RAC手冊原書第2版》或官方文檔:http://docs.oracle.com/cd/E11882_01/server.112/e18951/asmfiles.htm#BABJCCEI
參考《大話Oracle RAC》
總結
以上是生活随笔為你收集整理的oracle 拷贝文件到asm,Oracle 从ASM复制文件到文件系统的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 诗意的名字852个
- 下一篇: java信息管理系统总结_java实现科