昨天晚上在自己家里的台式计算机上,安装了个测试环境
操作系统:CENTOS5.4 64位
数据库软件:ORACLE11R2(11.2.0.2)
除了使用asmcmd命令之外,还可以通过FTP的方式访问ASM磁盘组中的文件。
默认情况,这个ftp的端口是关闭的,可以通过下面的命令打开:
SQL> @?/rdbms/admin/catxdbdbca.sql 7788 8800
SQL> SET FEEDBACK 1
SQL> SET NUMWIDTH 10
SQL> SET LINESIZE 80
SQL> SET TRIMSPOOL ON
SQL> SET TAB OFF
SQL> SET PAGESIZE 100
SQL>
SQL> define ftpport = &1
SQL> define httpport = &2
SQL> Rem Create a function to traverse the dom elements.
SQL> CREATE OR REPLACE FUNCTION traverseDom
2 (parnode dbms_xmldom.DOMNode, pathSeg VARCHAR2)
3 RETURN dbms_xmldom.DOMNode IS
4 nodeList dbms_xmldom.DOMNodeList;
5 anElement dbms_xmldom.DOMElement;
6 aNode dbms_xmldom.DOMNode;
7 BEGIN
8 -- Convert the passed in dom node to an element
9 anElement := dbms_xmldom.makeElement(parnode);
10
11 -- Select the path segment requested by the user
12 nodeList := dbms_xmldom.getChildrenByTagName(anElement, pathSeg);
13
14 -- get the first node out of the list
15 aNode := dbms_xmldom.item(nodeList, 0);
16
17 -- return that node (ignore errors here).
18 return aNode;
19 END;
20 /
Function created.
SQL>
SQL> declare
2 configxml sys.xmltype;
3 configdomdoc dbms_xmldom.DOMDocument;
4 textNode dbms_xmldom.DOMNode;
5 aNode dbms_xmldom.DOMNode;
6 protNode dbms_xmldom.DOMNode;
7 anElement dbms_xmldom.DOMElement;
8 listOfNodes dbms_xmldom.DOMNodeList;
9 aString VARCHAR2(100);
10 begin
11
12 -- Select the resource and set it into the config
13 select sys_nc_rowinfo$ into configxml from xdb.xdb$config ;
14
15 -- Create a dom document out of the xmltype
16 configdomdoc := dbms_xmldom.newDOMDocument(configxml);
17
18 -- Get the root Element of the dom
19 anElement := dbms_xmldom.getDocumentElement(configdomdoc);
20
21 -- Convert this to a node
22 aNode := dbms_xmldom.makeNode(anElement);
23
24 -- Traverse One Element Down At A Time.
25 aNode := traverseDom(aNode, 'sysconfig');
26 protNode := traverseDom(aNode, 'protocolconfig');
27
28 -- Set the FTP port by traversing /ftpconfig/ftp-port
29 aNode := traverseDom(protNode, 'ftpconfig');
30 aNode := traverseDom(aNode, 'ftp-port');
31 textNode := dbms_xmldom.getFirstChild(aNode);
32 dbms_xmldom.setNodeValue(textNode, &ftpport);
33
34 -- Set the FTP port by traversing /ftpconfig/ftp-port
35 aNode := traverseDom(protNode, 'httpconfig');
36 aNode := traverseDom(aNode, 'http-port');
37 textNode := dbms_xmldom.getFirstChild(aNode);
38 dbms_xmldom.setNodeValue(textNode, &httpport);
39
40 dbms_xdb.cfg_update(configxml);
41 commit;
42
43 end;
44 /
old 32: dbms_xmldom.setNodeValue(textNode, &ftpport);
new 32: dbms_xmldom.setNodeValue(textNode, 7788);
old 38: dbms_xmldom.setNodeValue(textNode, &httpport);
new 38: dbms_xmldom.setNodeValue(textNode, 8800);
PL/SQL procedure successfully completed.
SQL>
SQL>
SQL> drop function traverseDom;
Function dropped.
这个个脚本需要SYS或者XDB用户来调用,后面跟的两个参数分别是FTP的端口和HTTP/WEBDAV的端口。
下面就可以通过端口7788来访问ASM磁盘组了(FTP使用7788 端口,使用数据库的SYSTEM帐号和密码就可以登录)
截图如下:
也可以用WEB方式查看ASM文件系统信息(使用8800端口):
截图如下:
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8183550/viewspace-678586/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/8183550/viewspace-678586/