oracle 拷贝文件到asm,Oracle 从ASM复制文件到文件系统
工作中,有時(shí)需要把文件從ASM中復(fù)制到文件系統(tǒng)中或者反過來,做一些維護(hù)操作,本文介紹了4種復(fù)制文件的的方法:ASMCMD中的cp命令(11g)
dbms_file_transfer包
rman的convert或backup as copy
FTP
下面分別介紹這4種方法
1、ASMCMD中的cp命令(11g)
cp命令是11g新增的命令,使用它可以輕松的把文件從ASM中復(fù)制到文件系統(tǒng)中或者反過來。還可以把ASM中的文件復(fù)制到網(wǎng)絡(luò)上的其他服務(wù)器的文件系統(tǒng)中。#從ASM復(fù)制到文件系統(tǒng)
[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]?>
#查看復(fù)制結(jié)果
[grid@rac1?~]$?ll?/home/grid/users.dbf
-rw-r-----.?1?grid?oinstall?5251072?May?21?15:20?/home/grid/users.dbf
#從文件系統(tǒng)復(fù)制到ASM
ASMCMD?[+data/orcl/datafile]?>?cp?/home/grid/users.dbf?+data/orcl
copying?/home/grid/users.dbf?->?+data/orcl/users.dbf
#查看復(fù)制結(jié)果
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的詳細(xì)使用情況可以使用help cp命令獲得。
如果ASM的版本是11g以前的版本可以使用如下三種方法復(fù)制文件。
2、dbms_file_transfer包
這個(gè)包是從Oracle 9不開始提供的,利用這個(gè)包可以在兩個(gè)位置之間傳輸文件,這兩個(gè)位置可以是同一臺(tái)計(jì)算機(jī)或者網(wǎng)絡(luò)上的兩臺(tái)計(jì)算機(jī)。Oracle10g擴(kuò)展了這個(gè)包的功能,可以完成從一個(gè)ASM Diskgroup拷貝到另一個(gè)ASM Diskgroup、從ASM Diskgroup拷貝到普通文件系統(tǒng)、從普通文件系統(tǒng)拷貝到ASM Diskgroup、從文件系統(tǒng)拷貝到文件系統(tǒng)或者RAW Device。這個(gè)包提供了3個(gè)方法,可以完成不同的任務(wù)。方法功能說明
copy_file完成文件從本地一個(gè)目錄拷貝到本地的另一個(gè)目錄,這個(gè)方法不能完成遠(yuǎn)程傳輸
get_file這個(gè)方法完成把遠(yuǎn)程的文件拷貝到本地的目錄中,類似于下載
put_file這個(gè)方法完成本地文件傳送到遠(yuǎn)程的目的,類似于上傳
使用方法:#創(chuàng)建目錄
SQL>?create?directory?asm_dir?as?'+data/ASM/DATAFILE/';
Directory?created.
SQL>?create?directory?os_dir?as?'/home/oracle';
Directory?created.
#執(zhí)行復(fù)制
SQL>?exec?dbms_file_transfer.copy_file('asm_dir','user2.dbf.272.944581345','os_dir','user.dbf');
PL/SQL?procedure?successfully?completed.
#驗(yàn)證復(fù)制結(jié)果
[oracle@rac1?~]$?ls?-l?/home/oracle/user.dbf
-rw-r-----.?1?oracle?asmadmin?5251072?May?21?15:49?/home/oracle/user.dbf
#進(jìn)行反向復(fù)制
SQL>?exec?dbms_file_transfer.copy_file('os_dir','user.dbf','asm_dir','user2.dbf');
PL/SQL?procedure?successfully?completed.
#驗(yàn)證
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命令是用于對(duì)數(shù)據(jù)文件進(jìn)行字節(jié)格式轉(zhuǎn)換的。Oracle可以在不同OS平臺(tái)間進(jìn)行表空間傳(TTS),如果兩個(gè)平臺(tái)的字節(jié)格式不一致,則需要參數(shù)據(jù)文件進(jìn)行格式轉(zhuǎn)換,這個(gè)轉(zhuǎn)換可以 在源數(shù)據(jù)庫進(jìn)行,也可以在目的數(shù)據(jù)庫中執(zhí)行。如果在源數(shù)據(jù)庫中執(zhí)行,則需要使用convert tablespace命令,如果在目的數(shù)據(jù)庫中執(zhí)行,則需要使用convert datafile命令。
雖然convert這個(gè)命令主要用于跨平臺(tái)傳輸表空間,它也可以完成ASM和本地文件系統(tǒng)間拷貝文件,并且也是很簡(jiǎn)單的一種方法。#使用convert?datafile從ASM復(fù)制到文件系統(tǒng)
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
#驗(yàn)證
[oracle@rac1?~]$?ls?-l?/home/oracle/user3.dbf
-rw-r-----.?1?oracle?asmadmin?5251072?May?21?16:00?/home/oracle/user3.dbf
#使用convert?tablespace,使用時(shí)需要把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
#驗(yàn)證
[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
#從文件系統(tǒng)拷貝到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
#從日志中看出轉(zhuǎn)換的文件名
#converted?datafile=+DATA/orcl/datafile/users.274.944582713
#converted?datafile=+DATA/orcl/datafile/users.274.944582713
3.2 backup as copy命令
backup as copy命令是以鏡像的方式對(duì)文件進(jìn)行備份,自然可以把文件從ASM復(fù)制到文件系統(tǒng)中。這也是從文件系統(tǒng)遷移到ASM時(shí)可以選擇的方法之一。#執(zhí)行復(fù)制
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
#驗(yàn)證
[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方法可以像庫中復(fù)制使用傳統(tǒng)文件傳輸協(xié)議(FTP)對(duì)普通文件執(zhí)行常規(guī)操作那樣,對(duì)ASM文件和目錄執(zhí)行操作。通過這種方式訪問ASM文件的典型應(yīng)用是從一個(gè)數(shù)據(jù)庫向另一個(gè)數(shù)據(jù)庫中復(fù)制ASM文件。需要XML DB支持,配置起來最麻煩,有興趣的同學(xué)可以參考《Oracle Database 11g RAC手冊(cè)原書第2版》或官方文檔:http://docs.oracle.com/cd/E11882_01/server.112/e18951/asmfiles.htm#BABJCCEI
參考《大話Oracle RAC》
總結(jié)
以上是生活随笔為你收集整理的oracle 拷贝文件到asm,Oracle 从ASM复制文件到文件系统的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 诗意的名字852个
- 下一篇: 男孩取名好听的字推荐838个