Oracle工具之--ASM与文件系统及跨网络传输文件

简介:

 Oracle DBMS_FILE_TRANSFER可以实现文件系统和ASM磁盘组之间实现文件传输及ASM磁盘组之间跨网络的传输。

DBMS_FILE_TRANSFER:

    The DBMS_FILE_TRANSFER package provides procedures to copy a binary file within a database or to transfer a binary file between databases.


[oracle@node1 ~]$sqlplus / as sysdba

SQL> desc dbms_file_transfer

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
PROCEDURE COPY_FILE
  Argument Name                  Type                    In/Out Default?
  ------------------------------ ----------------------- ------ --------
  SOURCE_DIRECTORY_OBJECT        VARCHAR2                IN
  SOURCE_FILE_NAME               VARCHAR2                IN
  DESTINATION_DIRECTORY_OBJECT   VARCHAR2                IN
  DESTINATION_FILE_NAME          VARCHAR2                IN
PROCEDURE GET_FILE
  Argument Name                  Type                    In/Out Default?
  ------------------------------ ----------------------- ------ --------
  SOURCE_DIRECTORY_OBJECT        VARCHAR2                IN
  SOURCE_FILE_NAME               VARCHAR2                IN
  SOURCE_DATABASE                VARCHAR2                IN
  DESTINATION_DIRECTORY_OBJECT   VARCHAR2                IN
  DESTINATION_FILE_NAME          VARCHAR2                IN
PROCEDURE PUT_FILE
  Argument Name                  Type                    In/Out Default?
  ------------------------------ ----------------------- ------ --------
  SOURCE_DIRECTORY_OBJECT        VARCHAR2                IN
  SOURCE_FILE_NAME               VARCHAR2                IN
  DESTINATION_DIRECTORY_OBJECT   VARCHAR2                IN
  DESTINATION_FILE_NAME          VARCHAR2                IN
  DESTINATION_DATABASE           VARCHAR2                IN

案例1:

文件系统与ASM磁盘组之间文件传送:

1、查看datafile存储信息

1
2
3
4
5
6
7
8
9
10
SQL> select name  from  v$datafile;
NAME
--------------------------------------------------------------------------------
+DG1/prod/datafile/system .256.852292703
+DG1/prod/datafile/sysaux .257.852292707
+DG1/prod/datafile/undotbs1 .258.852292707
+DG1/prod/datafile/users .259.852292709
+DG1/prod/datafile/example .264.852292891
+DG1/prod/datafile/undotbs2 .265.852293259
6  rows selected.

2、建立传输目录

建立Oracle directory(ASM存储)

SQL> create directory asm_dir as '+DG1/prod/datafile';

Directory created.

建立Oracle directory(文件系统

[root@node2 ~]# mkdir /u01/bak

[root@node2 ~]# chown  oracle:dba /u01/bak

SQL> create directory fs_dir as '/u01/bak';

Directory created.

3、表空间做热备

16:04:26 SYS@ prod1>alter tablespace users begin backup;

Tablespace altered.


备份ASM磁盘组文件到文件系统:

SQL> exec dbms_file_transfer.copy_file('ASM_DIR','users.259.852292709','FS_DIR','users01.dbf');

PL/SQL procedure successfully completed.

参数信息:

1、源文件目录

2、源文件名

3、目标文件目录

4、目标文件

16:04:36 SYS@ prod1>alter tablespace users end backup;

Tablespace altered.


4、验证文件传送情况

[oracle@node2 ~]$ ls -lh /u01/bak

total 5.1M

-rw-r----- 1 oracle asmadmin 5.1M Jul  7 17:18 users01.dbf

文件传送成功!


5、从文件系统传送文件到ASM磁盘组

16:07:51 SYS@ prod2>exec dbms_file_transfer.copy_file('FS_DIR','users01.dbf' ,'ASM_DIR','TEST01.DBF');

PL/SQL procedure successfully completed.

Elapsed: 00:00:02.25

6、验证文件传送

ASMCMD>cd +dg1/prod/datafile

ASMCMD> ls

COPY_FILE.272.852394075

EXAMPLE.264.852292891

SYSAUX.257.852292707

SYSTEM.256.852292703

TBS1.269.852376681

TEST01.DBF

UNDOTBS1.258.852292707

UNDOTBS2.265.852293259

USERS.259.852387481

文件传送成功!


案例2:

跨网络从ASM磁盘组传输文件到ASM磁盘组


案例环境:

NODE1:

操作系统: Linux EL5

Oracle:   Oracle 10gR2

NODE2:

操作系统: Linux EL5

Oracle:   Oracle 11gR2


1、配置database link

NODE1:

TNSNAMES.ORA:

TEST =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.8.239)(PORT = 1521))

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = test1asm)

    )

  )

配置db-link:

16:25:21 SYS@ prod2>create public database link

16:25:35   2  test connect to scott identified by tiger using 'TEST';

Database link created.

验证db-link

16:26:01 SYS@ prod2>select * from emp@test;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
  EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
       7369  SMITH      CLERK            7902  17 -DEC -80         800                     20
       7499  ALLEN      SALESMAN         7698  20 -FEB -81        1600         300          30
       7521  WARD       SALESMAN         7698  22 -FEB -81        1250         500          30
       7566  JONES      MANAGER          7839  02 -APR -81        2975                     20
       7654  MARTIN     SALESMAN         7698  28 -SEP -81        1250        1400          30
       7698  BLAKE      MANAGER          7839  01 -MAY -81        2850                     30
       7782  CLARK      MANAGER          7839  09 -JUN -81        2450                     10
       7788  SCOTT      ANALYST          7566  19 -APR -87        3000                     20
       7839  KING       PRESIDENT             17 -NOV -81        5000                     10
       7844  TURNER     SALESMAN         7698  08 -SEP -81        1500           0          30
       7876  ADAMS      CLERK            7788  23 -MAY -87        1100                     20
       7900  JAMES      CLERK            7698  03 -DEC -81         950                     30
       7902  FORD       ANALYST          7566  03 -DEC -81        3000                     20
       7934  MILLER     CLERK            7782  23 -JAN -82        1300                     10
14  rows selected.

2、创建文件传输目录(node2)

1
2
3
4
5
6
7
8
16 : 23 : 59  SYS@ test1asm>select name  from  v$datafile;
NAME
-----------------------------------------------------------------------------------------
+DG1/test1asm/datafile/system01.dbf
+DG1/test1asm/datafile/undotbs01.dbf
+DG1/test1asm/datafile/sysaux01.dbf
+DG1/test1asm/datafile/users01.dbf
Elapsed:  00 : 00 : 00.15

16:24:08 SYS@ test1asm>create directory test_asm as '+dg1/test1asm/datafile';

Directory created.

Elapsed: 00:00:00.11

16:36:24 SYS@ test1asm>grant read ,write on directory test_asm to public;

Grant succeeded.

3、从node1上传文件到node2

16:40:14 SYS@ prod2>exec dbms_file_transfer.put_file('ASM_DIR','TEST01.DBF','test_asm','TEST001.DBF','TEST');

PL/SQL procedure successfully completed.

参数信息:

1、源文件目录

2、源文件

3、目标文件目录

4、目标文件

5、db-link

4、验证文件传输

ASMCMD> cd datafile

ASMCMD> ls

FILE_TRANSFER.266.852395843

SYSAUX.259.848848797

SYSTEM.258.848848793

TEST001.DBF

UNDOTBS1.260.848848799

USERS.261.848848801

sysaux01.dbf

system01.dbf

undotbs01.dbf

users01.dbf

文件传输成功!


5、配置NODE2 DATABASE LINK

TNSNAMES.ORA:

PROD2 =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.8.24)(PORT = 1521))

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = TAF)

    )

  )


[oracle@rh55 admin]$ sqlplus '/as sysdba'

SQL*Plus: Release 10.2.0.1.0 - Production on Tue Jul 8 16:45:01 2014

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

Connected to:

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production

With the Partitioning, OLAP and Data Mining options

16:45:02 SYS@ test1asm>create public database link prod

16:45:15   2  connect to scott identified by tiger using 'prod2';

Database link created.

16:49:28 SYS@ prod2>grant read,write on directory asm_dir to public;

Grant succeeded.


6、从node1下载文件到node2

16:50:14 SYS@ prod2>exec dbms_file_transfer.get_file('ASM_DIR','TEST01.DBF','prod','test_asm','TEST002.DBF');

PL/SQL procedure successfully completed.

参数信息:

1、源文件目录

2、源文件

3、db-link

4、目标文件目录

5、目标文件

7、在node2验证文件

ASMCMD> ls

FILE_TRANSFER.266.852395843

SYSAUX.259.848848797

SYSTEM.258.848848793

TEST002.DBF

UNDOTBS1.260.848848799

USERS.261.848848801

sysaux01.dbf

system01.dbf

undotbs01.dbf

users01.dbf

文件下载成功!


故障案例:


文件传输出现以下错误:

16:34:06 SYS@ prod2>exec dbms_file_transfer.put_file('ASM_DIR','TEST01.DBF','TEST_ASM','TEST001.DBF','TEST');

BEGIN dbms_file_transfer.put_file('ASM_DIR','TEST01.DBF','TEST_ASM','TEST001.DBF','TEST'); END;

*

ERROR at line 1:

ORA-06564: object TEST_ASM does not exist

ORA-02063: preceding line from TEST

ORA-06512: at "SYS.DBMS_FILE_TRANSFER", line 60

ORA-06512: at "SYS.DBMS_FILE_TRANSFER", line 168

ORA-06512: at line 1

Elapsed: 00:00:04.71

解决方法:

Directory没有做授权!

16:36:24 SYS@ test1asm>grant read ,write on directory test_asm to public;


Grant succeeded.











本文转自 客居天涯 51CTO博客,原文链接:http://blog.51cto.com/tiany/1436029,如需转载请自行联系原作者
目录
相关文章
|
2月前
|
运维 网络协议 安全
【Shell 命令集合 网络通讯 】Linux 网络抓包工具 tcpdump命令 使用指南
【Shell 命令集合 网络通讯 】Linux 网络抓包工具 tcpdump命令 使用指南
44 0
|
2月前
|
Shell Linux C语言
【Shell 命令集合 网络通讯 】Linux 查看系统中的UUCP日志文件 uulog命令 使用指南
【Shell 命令集合 网络通讯 】Linux 查看系统中的UUCP日志文件 uulog命令 使用指南
31 0
|
2月前
|
XML Java 数据库连接
struts+hibernate+oracle+easyui实现lazyout组件的简单案例——hibernate的config文件(hibernate.cfg.xml)
struts+hibernate+oracle+easyui实现lazyout组件的简单案例——hibernate的config文件(hibernate.cfg.xml)
12 0
|
2月前
|
数据采集 JavaScript 前端开发
实用工具推荐:适用于 TypeScript 网络爬取的常用爬虫框架与库
实用工具推荐:适用于 TypeScript 网络爬取的常用爬虫框架与库
|
2天前
|
安全 Linux 网络安全
【专栏】Linux 网络扫描工具:nmap,涨知识的时间到了!
【4月更文挑战第28天】nmap, 开源网络扫描工具,用于探测主机、网络信息,包括开放端口、服务类型、OS等。本文分三部分介绍:1) nmap简介与基本原理;2) 使用方法和高级技巧,如脚本扩展;3) 实际应用,如网络安全评估、系统管理和渗透测试。学习nmap需注意合规性,持续探索新技巧,以提升网络管理与安全能力。一起开始nmap的探索之旅吧!
|
11天前
|
安全 网络安全 网络虚拟化
《计算机网络简易速速上手小册》第3章:计算机网络设备和工具(2024 最新版)
《计算机网络简易速速上手小册》第3章:计算机网络设备和工具(2024 最新版)
30 1
|
11天前
|
运维 Oracle 安全
Oracle的三重奏:密码文件、警告文件与跟踪文件
【4月更文挑战第19天】Oracle数据库的三大守护者:密码文件保护系统免受未经授权访问,如同宝藏的“密码锁”;警告文件似“哨兵”,记录错误信息,助于及时解决问题;跟踪文件扮演“侦探”角色,详尽记录操作,便于性能优化和故障排查。这三份文件共同确保数据王国的安全与稳定。作为管理员,重视并善用它们是关键。
|
11天前
|
运维 Oracle 关系型数据库
Oracle服务器参数文件:数据王国的“调控大师”
【4月更文挑战第19天】Oracle服务器参数文件,数据库的“调控大师”,掌控着内存管理、进程调度等关键设置。通过参数调整如SGA_MAX_SIZE和PROCESSES,实现性能优化和故障防控。虽然挑战重重,但成功的性能调优带来无尽成就感。它在备份恢复中也扮演重要角色,保障数据一致性与可用性。成为真正的“调控大师”,为数据王国效力!
|
11天前
|
运维 Oracle 关系型数据库
Oracle日志文件:数据王国的“记事本”
【4月更文挑战第19天】Oracle日志文件是数据库稳定运行的关键,记录数据变更历史,用于恢复和故障处理。它们协调并发操作,确保数据一致性和完整性。日志文件实时写入操作信息并定期刷新到磁盘,便于数据恢复。然而,日志文件需备份和归档以保证安全性,防止数据丢失。日志文件,数据王国的“记事本”,默默守护数据安全。
|
11天前
|
存储 Oracle 安全
Oracle控制文件:数据王国的导航仪
【4月更文挑战第19天】Oracle控制文件是数据库的关键组件,存储结构信息和元数据,用于数据库启动、恢复。它指引数据库找到所需文件,保证数据完整性。控制文件的多重备份和定期更新确保其安全可靠。作为数据库导航仪,它对管理员理解和维护数据库至关重要,为数据存储和恢复提供关键支持。

推荐镜像

更多