訪問ASM中的檔案
訪問ASM中檔案的方法
1、ASMCMD
10GR2版本後提供ASMCMD工具來對ASM中檔案和路徑進行瀏覽和管理。10G版本支援搜尋、檢視、建立路徑和別名以及顯示空間利用率等功能。11G中對這個工具進行了強化,使其支援cp命令,可以直接將ASM中檔案複製到檔案系統或者其他ASM路徑中。
-bash-3.00$ id
uid=500(oracle) gid=500(dba)
-bash-3.00$ uname -a
SunOS db-2 5.10 Generic_142900-03 sun4u sparc SUNW,SPARC-Enterprise
-bash-3.00$ export ORACLE_SID=+ASM1
-bash-3.00$ asmcmd -p
ASMCMD [+] > help
asmcmd [-p] [command]
commands:
--------
cd
du
find
help
ls
lsct
lsdg
mkalias
mkdir
pwd
rm
rmalias
ASMCMD [+] >
11G可以使用cp命令來進行檔案的複製,如:
ASMCMD [+] > cp +DATA1/RAC/DATAFILE/sample.256.629730771 /home/oracle/oradata/rac/sample.dbf
ASMCMD [+] > cp /home/oracle/oradata/rac/sample.dbf +DATA1/RAC/DATAFILE/
也可以實現遠端複製
ASMCMD [+] > cp –ifr +DATA1/RAC/DATAFILE/sample.256.629730771 sys@server1,1521,+DATA2//RAC/DATAFILE/ sample.dbf
2、FTP
除了使用asmcmd命令之外,還可以通過FTP的方式訪問ASM磁碟組中的檔案。
預設情況,這個ftp的埠是關閉的,可以通過下面的命令開啟:
SQL> conn / as sysdbaITPUB個人空間#u y%N[1]wR
已連線。ITPUB個人空間*IY3r7jC
SQL> @?/rdbms/admin/catxdbdbca.sql 7788 8800
-i @$p,{0K m|/y-J13177610SQL> SET FEEDBACK 1
;W)I {8q\(f
a)gx_13177610SQL> SET NUMWIDTH 10ITPUB個人空間-p Rk:Z:B.G Q;L
Y L‑g(y
SQL> SET LINESIZE 80
X
UY'|‑p L:A(V(m13177610SQL> SET TRIMSPOOL ON
^f)y_.P3bxTl;y13177610SQL> SET TAB OFF
'@n4O&O4ZtS/Z2YFW`13177610SQL> SET PAGESIZE 100ITPUB個人空間2H3E'y{m r H
M
SQL>ITPUB個人空間[g2G4J;E-G*H
SQL> define ftpport = &1ITPUB個人空間(YV w;PEN
SQL> define httpport = &2
9sE/i[1]k*@‑n]13177610SQL> Rem Create a function to traverse the dom elements.
l5K f1R l9Z*C @E13177610SQL> CREATE OR REPLACE FUNCTION traverseDom
.}2I"r!Tcik;[13177610 2 (parnode dbms_xmldom.DOMNode, pathSeg VARCHAR2)
0fe eoEr:k13177610 3 RETURN dbms_xmldom.DOMNode IS
a9|%`/`!M13177610 4 nodeList dbms_xmldom.DOMNodeList;ITPUB個人空間;\0IP%XG
k&z oT7~
5 anElement dbms_xmldom.DOMElement;ITPUB個人空間‑m!X!E2`%z!^
6 aNode dbms_xmldom.DOMNode;ITPUB個人空間y$t4B@3h^5U+LN
7 BEGINITPUB個人空間'W;? x/U&{d:Ci4m
8 -- Convert the passed in dom node to an element
vg(L^6T
k8Z V9h13177610 9 anElement := dbms_xmldom.makeElement(parnode);
5Q+L g W
C6JC13177610 10 ITPUB個人空間;l9?;o
?
`}5n
11 -- Select the path segment requested by the userITPUB個人空間 sP FDW
12 nodeList := dbms_xmldom.getChildrenByTagName(anElement, pathSeg);ITPUB個人空間 o:G[Ig1zqm
13 ITPUB個人空間E~6]m-]~
14 -- get the first node out of the listITPUB個人空間f O)J
_;{
]
15 aNode := dbms_xmldom.item(nodeList, 0);ITPUB個人空間0R+J`?HCx
16 ITPUB個人空間7f3~-R vo0pt[1]EX
17 -- return that node (ignore errors here).ITPUB個人空間#Axe%cM'|Q-K
18 return aNode;
n#hL[v13177610 19 END;ITPUB個人空間D].FP9}B+`_ QB4?
20 /
函式已建立。
SQL>
‑c5t}O&F13177610SQL> declareITPUB個人空間 T8U&nl7RO y%F7N
2 configxml sys.xmltype;
+ZI
v \!DV uHXN13177610 3 configdomdoc dbms_xmldom.DOMDocument;ITPUB個人空間 nv+c9X-kG
4 textNode dbms_xmldom.DOMNode;ITPUB個人空間a/l1G5W@M
5 aNode dbms_xmldom.DOMNode;
l3k5V,x)p~e(_v:MC13177610 6 protNode dbms_xmldom.DOMNode;
'c X N^{13177610 7 anElement dbms_xmldom.DOMElement;ITPUB個人空間8A8Odx;O$R
8 listOfNodes dbms_xmldom.DOMNodeList;
@;s7@KTvP1`K
t13177610 9 aString VARCHAR2(100);ITPUB個人空間&]'S:Zk6r%S:`&TOR
10 beginITPUB個人空間~%`e{C:j4n‑J[1]_2b)[![;N
11 ITPUB個人空間E‑@wp:[
h Jz
12 -- Select the resource and set it into the config
qK[1]D t$zOx4F13177610 13 select sys_nc_rowinfo$ into configxml from xdb.xdb$config ;
T1Jnrm/he)X,h
p-k13177610 14
Uv/H|3fw‑Y o5U13177610 15 -- Create a dom document out of the xmltypeITPUB個人空間 lS
T"Pc6E‑F
16 configdomdoc := dbms_xmldom.newDOMDocument(configxml);
C+Z G-LA13177610 17
` l5Q.r
l(L13177610 18 -- Get the root Element of the dom
1L.T [L]
l#}13177610 19 anElement := dbms_xmldom.getDocumentElement(configdomdoc);ITPUB個人空間R
r*g&z(h{y WL
y
20 ITPUB個人空間 `Bin Q(J
QD A2]
21 -- Convert this to a node
[1]XL!\$@
J(g13177610 22 aNode := dbms_xmldom.makeNode(anElement);ITPUB個人空間2`aa)nJ D
23
‑}8HO
d1L
Clt:x13177610 24 -- Traverse One Element Down At A Time.
%J,Q rl8fc8~13177610 25 aNode := traverseDom(aNode, 'sysconfig');ITPUB個人空間#LR U:V ]5XG
26 protNode := traverseDom(aNode, 'protocolconfig');ITPUB個人空間 J!_cI7b9w#N
e"k(GN
27
)C)uI%H\v uvc8b9D13177610 28 -- Set the FTP port by traversing /ftpconfig/ftp-port
M(h4V*s'H1Q:yW13177610 29 aNode := traverseDom(protNode, 'ftpconfig');ITPUB個人空間a3F}C v
30 aNode := traverseDom(aNode, 'ftp-port');ITPUB個人空間)q%R q|3O6q$W9D
31 textNode := dbms_xmldom.getFirstChild(aNode);
+|W,s'pz+D|#b Ci13177610 32 dbms_xmldom.setNodeValue(textNode, &ftpport);ITPUB個人空間e#B9e)~P
l
33
v2qrb o13177610 34 -- Set the FTP port by traversing /ftpconfig/ftp-portITPUB個人空間IATr4a-b r
35 aNode := traverseDom(protNode, 'httpconfig');ITPUB個人空間a1N` E
v[1]W
36 aNode := traverseDom(aNode, 'http-port');
mhNF0zBO13177610 37 textNode := dbms_xmldom.getFirstChild(aNode);
SKE%eF7q;A13177610 38 dbms_xmldom.setNodeValue(textNode, &httpport);ITPUB個人空間h'S1^-]2U"j(o
39 ITPUB個人空間"U0Z/d7GT#P
40 dbms_xdb.cfg_update(configxml);ITPUB個人空間t,e1r?_[1]{:i
41 commit;
,j%~5h9z9k'v!Lg13177610 42
QT!Q x'[13177610 43 end;ITPUB個人空間.R:y[1]ek6I T+n;f T([)K u{
44 /
[1]I1J$qxsvg7a]~13177610原值 32: dbms_xmldom.setNodeValue(textNode, &ftpport);ITPUB個人空間Q})f‑w$n G7Ig[1]z
新值 32: dbms_xmldom.setNodeValue(textNode, 7788);ITPUB個人空間T
y'v Q;v[
原值 38: dbms_xmldom.setNodeValue(textNode, &httpport);ITPUB個人空間 ob(}‑R6Yp$o0b‑D
新值 38: dbms_xmldom.setNodeValue(textNode, 8800);
PL/SQL過程已成功完成。
SQL>ITPUB個人空間r2U&W+j W
SQL>
jc!Y { a*@13177610SQL> drop function traverseDom;
函式已刪除。
這個指令碼需要SYS或者XDB使用者來呼叫,後面跟的兩個引數分別是FTP的埠和HTTP/WEBDAV的埠。
下面就可以通過埠7788來訪問ASM磁碟組了:
SQL> hostITPUB個人空間7a9N[1]i%w[1]u:fs
$ ftp
m
~ OQ0yeNX j13177610ftp> open ser1 7788
0nB#t1t X
I3A
i13177610Connected to ser1.
+wZ"|1c-vOf*AMC&b!b13177610220- ser1
sa#r l$d`13177610Unauthorised use of this FTP server is prohibited and may be subject to civil and criminal prosecution.ITPUB個人空間;Tb/h"?[1]wm%|P
220 ser1 FTP Server (Oracle XML DB/Oracle Database) ready.
3IL:j{Or)I-z&W
yRi13177610Name (ser1:root): systemITPUB個人空間 go I k;F"O%Q5{
331 pass required for SYSTEM
r9]$Sos/g n13177610Password:
‑I/l"Z(B#U7Z13177610230 SYSTEM logged inITPUB個人空間Ch;H({'P}\!G
Remote system type is Unix.ITPUB個人空間*^7tP6y BmI
N n
ftp> cd /sys/asm
oG qMa13177610250 CWD Command successfulITPUB個人空間3WkQW
U.i
ftp> ls
5h
? ZH'X!fr*m13177610200 PORT Command successfulITPUB個人空間k‑Y-WvO9D{)l` ` h3k
150 ASCII Data Connection
*d&ehj$~$p
p'{13177610DATAITPUB個人空間 ?YJ T;~a4d!sU
226 ASCII Transfer Complete
n#w w W(SE131776106 bytes received in 0.17 seconds (0.04 Kbytes/s)ITPUB個人空間%{,uy
w(f,l1nv.@.W"^
ftp> cd DATA
vt\
SKp[1]]'yz2\13177610250 CWD Command successfulITPUB個人空間tbZU1i:hG_ [ ^
ftp> ls
(f
A‑M6DRr%v7M13177610200 PORT Command successful
*i D ?f8j
C({2t&A,j13177610150 ASCII Data ConnectionITPUB個人空間\5f.ALiN L+|k
U
RACTESTITPUB個人空間/W Kr)N/M w
ASMTESTING
1kZ4}I t%s0bi13177610226 ASCII Transfer Complete
/a!}!Jk Xy"Q(FX1317761021 bytes received in 0.0021 seconds (9.58 Kbytes/s)
E Eto:d htZb QZ&S13177610ftp> cd RACTESTITPUB個人空間‑hs:f7~'`X
250 CWD Command successful
8Ulp8?l%h.P t
_D7~13177610ftp> lsITPUB個人空間~Q xcOR
200 PORT Command successful
Z.J5r&E`:J[1]QP:]\13177610150 ASCII Data Connection
6q7\g S(D;jL/u*o[1]w13177610CONTROLFILEITPUB個人空間,g`
CX?;E
ONLINELOG
;G,K!}'_;Y x13177610DATAFILEITPUB個人空間(} }\bId
TEMPFILEITPUB個人空間uv8qL1y^9R0T
PARAMETERFILE
(g/O.kL L13177610spfileractest.oraITPUB個人空間[
lF3|%[&ws.O@'R
backupITPUB個人空間 U)r!~F\$t G.S7a
226 ASCII Transfer CompleteITPUB個人空間~l4a C ^ Jo@
86 bytes received in 0.003 seconds (28.41 Kbytes/s)
%l
|c"~"h
])H13177610ftp> lcd /dataITPUB個人空間fO-t*K_c
Local directory now /data
0vS \g\ V`Q13177610ftp> cd DATAFILE
BE7n[1]Yd p‑\)HYH_13177610250 CWD Command successfulITPUB個人空間w6k‑kD HD/VPa)U
ftp> ls
/X'lw[p\&g13177610200 PORT Command successful
w:\ZSx[ b,m13177610150 ASCII Data ConnectionITPUB個人空間}D.L_
T*b)o |
SYSTEM.259.664395355
[1]}(A `"Xf#HN13177610SYSAUX.260.664395357ITPUB個人空間-H%qn,W:g
MJ
UNDOTBS1.261.664395359ITPUB個人空間6` u o z4bl
UNDOTBS2.263.664395371ITPUB個人空間j"|@&n
t8F L
?
USERS.264.664395373ITPUB個人空間Q
j9IsO/MEF
226 ASCII Transfer CompleteITPUB個人空間
p.o6z/\ H
113 bytes received in 0.0028 seconds (38.79 Kbytes/s)
.{ P@1LiO+G3s13177610ftp> bin
.i
kH f+o13177610200 Type set to I.ITPUB個人空間L-U'zN1ZS'LZC:Wwz
ftp> promptITPUB個人空間&K6`&G(b7\@5ag"r
Interactive mode off.
`DA#^.O6sv!y13177610ftp> mget SYSTEM.259.664395355ITPUB個人空間s&@*^\)If \-c l
200 PORT Command successfulITPUB個人空間R;x0po+e6i z
f-@*l
150 BIN Data ConnectionITPUB個人空間[1]d`U6CbL
226 BIN Transfer Complete
%g4~-^%D
@4m13177610local: SYSTEM.259.664395355 remote: SYSTEM.259.664395355ITPUB個人空間-iT
?[1]PS7IT-p
734011392 bytes received in 17 seconds (41380.50 Kbytes/s)
e|‑r(]o*wu R{!_13177610ftp> ls
?3BD
cU%G6Z4N13177610200 PORT Command successfulITPUB個人空間#kU{[1]B
W A
150 ASCII Data Connection
:^T]
@/B4c13177610SYSTEM.259.664395355
;TI(n,_d]+X13177610SYSAUX.260.664395357ITPUB個人空間*Z9fdg7_[U
UNDOTBS1.261.664395359
!n6b^ _`o$R3[13177610UNDOTBS2.263.664395371ITPUB個人空間V{SkEN2DS
USERS.264.664395373ITPUB個人空間?~Xi_+|hX4B
226 ASCII Transfer CompleteITPUB個人空間8DR3nd‑Nx
113 bytes received in 0.0037 seconds (29.51 Kbytes/s)ITPUB個人空間q1@ Z
\ C
ftp> cd ..ITPUB個人空間 yV gs C,R'z)h
250 CWD Command successful
%}
L9a4d{r4^ `| |+g13177610ftp> lsITPUB個人空間Jz8JaN2A1R'k!^ M:a
200 PORT Command successful
C
P.f l
~$Sh
r8L13177610150 ASCII Data Connection
.U D0D F3O|
mf3r13177610CONTROLFILE
f YA"k3X9l
M{13177610ONLINELOG
;`r$Yas?13177610DATAFILEITPUB個人空間U+C]I5E4h(F8}
TEMPFILEITPUB個人空間7h1g
}B;Z9H
PARAMETERFILE
#u+Jh[1]|6wJd'm13177610spfileractest.oraITPUB個人空間 O5Dfh+H
P M
P
`A
backup
‑T1C Pd]u7BG13177610226 ASCII Transfer Complete
yS*]{4~0?Nk1317761086 bytes received in 0.003 seconds (27.67 Kbytes/s)ITPUB個人空間%l|
A D8k._
P
ftp> cd backup
f$f^:A6s7q13177610250 CWD Command successful
S R-Pl
d };Jk%Z8s.\/g13177610ftp> send SYSTEM.259.664395355 system.dbfITPUB個人空間K%s8H2yQ/r8mv$q l
200 PORT Command successful
0?(s0~mIY E2U13177610150 BIN Data ConnectionITPUB個人空間9SdqGAvi@
z‑o
226 BIN Transfer CompleteITPUB個人空間.F[1]W/l-@;n,J
local: SYSTEM.259.664395355 remote: system.dbfITPUB個人空間$R+Yx^ e~4a;j8z,x
734011392 bytes sent in 9.5 seconds (75647.23 Kbytes/s)ITPUB個人空間!O!o$vQ8q%S |%c0f
ftp> ls
j‑W!EK2_m9Z o ZX‑`13177610200 PORT Command successfulITPUB個人空間(q @Q e!Q
j
150 ASCII Data ConnectionITPUB個人空間$wc-gL‑xm5u
02jplh5q_1_1
0ZY#[`*u13177610system.dbfITPUB個人空間 X\!dd7F,cv
226 ASCII Transfer Complete
}d2A(R,v~y1317761026 bytes received in 0.0025 seconds (10.13 Kbytes/s)
Aw!s%Z^tD9z} s13177610ftp> quit
`X]8S"['V!J*u13177610221 QUIT Goodbye.
上面展示了利用ftp功能,在作業系統和ASM之間讀寫檔案的操作。需要注意,ftp登陸需要一個非SYS的DBA賬號。
登陸後在/sys/asm下可以找到ASM磁碟組資訊。ftp的基本命令都可以使用,包括mkdir。
這個埠開啟之後,除了本機之外,其他伺服器也通過同樣的方法可以直接訪問ASM磁碟組。
3、SQLPLUS
SQL> select * from dict where table_name like 'V$ASM_%';
TABLE_NAME COMMENTS
------------------------------ ------------------------------------------
V$ASM_ALIAS Synonym for V_$ASM_ALIAS
V$ASM_CLIENT Synonym for V_$ASM_CLIENT
V$ASM_DISK Synonym for V_$ASM_DISK
V$ASM_DISKGROUP Synonym for V_$ASM_DISKGROUP
V$ASM_DISKGROUP_STAT Synonym for V_$ASM_DISKGROUP_STAT
V$ASM_DISK_STAT Synonym for V_$ASM_DISK_STAT
V$ASM_FILE Synonym for V_$ASM_FILE
V$ASM_OPERATION Synonym for V_$ASM_OPERATION
V$ASM_TEMPLATE Synonym for V_$ASM_TEMPLATE
9 rows selected
4、EM
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/13177610/viewspace-671733/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ORACLE 10g中ASMCMD使用及ASM檔案XML DB訪問-1Oracle 10gASMXML
- 設計模式 - ASM 中的訪問者模式設計模式ASM
- 如何在PowerShell中訪問cmd的con偽檔案
- ASM中多功控制檔案ASM
- JavaScriptFAQ(十九)——檔案訪問JavaScript
- 檔案和目錄的訪問控制(2)新增訪問控制
- EJB 訪問檔案系統的疑惑
- scala簡要:檔案訪問
- Tomcat中訪問資料庫使用屬性檔案問題Tomcat資料庫
- ASM之磁碟組中目錄檔案的管理ASM
- ASM 檔案與本地檔案的轉換ASM
- ios訪問win10共享檔案的操作步驟_ios如何訪問win10共享檔案iOSWin10
- IIS訪問共享檔案詳解
- 從ASM磁碟中複製檔案到本地檔案系統ASM
- 通過配置tomcat在瀏覽器訪問非專案中的檔案Tomcat瀏覽器
- win10系統中檔案拒絕訪問怎麼回事 win10系統檔案拒絕訪問的解決步驟Win10
- 在AIX,LINUX系統中訪問含特殊符號的檔案AILinux符號
- 全面學習和應用ORACLE ASM特性--(5)管理asm磁碟中的檔案OracleASM
- 從ASM磁碟中還原出檔案(二)ASM
- 從ASM磁碟中還原出檔案(一)ASM
- 訪問ASM的ONNN程式佔用大量CPUASM
- ASM檔案別名的分析ASM
- 【ASM學習】從ASM拷貝檔案的方法ASM
- 12c複製 RAC ASM中的密碼檔案到檔案系統ASM密碼
- java RandomAccessFile類(隨機訪問檔案)JavarandomMac隨機
- 檔案作為塊裝置訪問
- Linux 檔案訪問原語(轉)Linux
- 通過FTP訪問ASM磁碟組FTPASM
- 怎樣提高Windows Azure Cloud Service中的WebRole的檔案訪問許可權WindowsCloudWeb訪問許可權
- ASM與檔案系統之間copy資料檔案--檔案系統到ASMASM
- android怎麼訪問win10共享檔案_android如何訪問win10共享檔案AndroidWin10
- 移動資料檔案從檔案系統到ASM磁碟組中ASM
- Windows7 無法訪問共享檔案,域訪問解決方法。Windows
- 使用dbms_file_transfer從asm中抽取檔案ASM
- 區域網訪問共享檔案需要密碼怎麼辦?取消區域網共享檔案訪問密碼的方法密碼
- win共享檔案沒有許可權訪問怎麼辦 win10共享檔案許可權訪問的方法Win10
- 11.2環境ASM例項spfile放在ASM磁碟組的訪問方式ASM
- 技巧:在Silverlight中如何訪問外部xap檔案中UserControl