dbms_file_transfer这个包可以在两个位置传输文件,分别可以有以下位置:

a 从一个asm diskgroup传输到另外一个asm diskgroup

b 从一个asm diskgroup传输到本地磁盘文件

c 从本地磁盘文件传输到asm

d 从一个计算机传输到另外一台计算机

分别有三种方法:

a copy_file 文件从一个目录拷贝到另外一个目录,只能本地传输

b get_file 把远程的文件拷贝到本地的目录中

c put_file 把本地文件拷贝到远程的目录中

1、 创建一个测试表空间

SQL> create tablespace kel;

Tablespace created.

SQL> select file_name from dba_data_files where tablespace_name='KEL';

FILE_NAME
--------------------------------------------------------------------------------
+RECOVER/omf/datafile/kel.272.852423821

2、创建测试表

SQL> create table a (id int,name char(10)) tablespace kel;

Table created.

3、 插入测试数据

SQL> insert into a values (1,'aa');

1 row created.

4、 用analyze进行分析

SQL> analyze table a compute statistics;--对表进行分析

Table analyzed.
SQL> select blocks from user_tables where table_name='A';--数据表占用5个块

    BLOCKS
----------
5 SQL> select dbms_rowid.rowid_relative_fno(rowid) r_fno,--这个表的数据存放在数据文件5的12块上
2 dbms_rowid.rowid_block_number(rowid) b_no,id
3 from a order by 1,2; R_FNO B_NO ID
---------- ---------- ----------
5 12 1
5 12 1
5 12 1
5 12 1
5 12 1
5 12 1
5 12 1
5 12 1
5 12 1
5 12 1
5 12 1 R_FNO B_NO ID
---------- ---------- ----------
5 12 1
5 12 1
5 12 1
5 12 1
5 12 1 16 rows selected.

5、查看数据文件5的位置

SQL> select name from v$datafile where file#=5;

NAME
--------------------------------------------------------------------------------
+RECOVER/omf/datafile/kel.272.852423821

6、创建两个目录

SQL> create directory sd as '+recover/omf/datafile';--创建的时候,目录是必须存在的,否则会出现错误

Directory created.

SQL> create directory dd as '/home/oracle/backuptest';--删除目录的语法是drop directory name

Directory created.

7、 将数据文件offline

SQL> alter database datafile 5 offline;

Database altered.

8、 把文件从ASM拷贝到本地文件系统中

SQL> begin
2 dbms_file_transfer.copy_file('sd','KEL.272.852423821','dd','kel.dbf');
3 end;
4 / PL/SQL procedure successfully completed.

9、确认拷贝成功

[oracle@kel backuptest]$ ls -l kel.dbf
-rw-r----- 1 oracle oinstall 104865792 Jul 9 00:40 kel.dbf

10、对文件进行检查

[oracle@kel backuptest]$ dbv file=kel.dbf 

DBVERIFY: Release 10.2.0.1.0 - Production on Wed Jul 9 00:42:10 2014

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

DBVERIFY - Verification starting : FILE = kel.dbf

DBVERIFY - Verification complete

Total Pages Examined         : 12800
Total Pages Processed (Data) : 5
Total Pages Failing (Data) : 0
Total Pages Processed (Index): 0
Total Pages Failing (Index): 0
Total Pages Processed (Other): 11
Total Pages Processed (Seg) : 0
Total Pages Failing (Seg) : 0
Total Pages Empty : 12784
Total Pages Marked Corrupt : 0 ---表示文件没有坏块
Total Pages Influx : 0
Highest block SCN : 587508 (0.587508)

11、使用bbed破坏数据文件

查看bbed的两个参数文件:

[oracle@kel backuptest]$ cat bbed.par --自己编辑生成的参数文件
blocksize=8192
listfile=list
mode=edit
[oracle@kel backuptest]$ cat list
5 /home/oracle/backuptest/kel.dbf 104865792 --表示的含义为文件号、文件名、文件大小
[oracle@kel backuptest]$ bbed parfile=bbed.par  --BBED的密码为blockedit
Password: BBED: Release 2.0.0.0.0 - Limited Production on Wed Jul 9 00:46:52 2014 Copyright (c) 1982, 2005, Oracle. All rights reserved. ************* !!! For Oracle Internal Use only !!! *************** BBED> set dba 5,12 --注意5,12的由来,注意上面分析的结果
DBA 0x0140000c (20971532 5,12) BBED> find /c a
File: /home/oracle/backuptest/kel.dbf (5)
Block: 12 Offsets: 7923 to 8191 Dba:0x0140000c
------------------------------------------------------------------------
61612020 20202020 20202c01 0202c102 0a616120 20202020 2020202c 010202c1
020a6161 20202020 20202020 2c010202 c1020a61 61202020 20202020 202c0102
02c1020a 61612020 20202020 20202c01 0202c102 0a616120 20202020 2020202c
010202c1 020a6161 20202020 20202020 2c010202 c1020a61 61202020 20202020
202c0102 02c1020a 61612020 20202020 20202c01 0202c102 0a616120 20202020
2020202c 010202c1 020a6161 20202020 20202020 2c010202 c1020a61 61202020
20202020 202c0102 02c1020a 61612020 20202020 20202c01 0202c102 0a616120
20202020 2020202c 010202c1 020a6161 20202020 20202020 2c010202 c1020a61
61202020 20202020 200106f4 f6 <32 bytes per line> BBED> dump /v dba 5,12 offset 2170 count 16
File: /home/oracle/backuptest/kel.dbf (5)
Block: 12 Offsets: 2170 to 2185 Dba:0x0140000c
-------------------------------------------------------
00000000 00000000 00000000 00000000 l ................ <16 bytes per line> BBED> modify 100 dba 5,12
File: /home/oracle/backuptest/kel.dbf (5)
Block: 12 Offsets: 2170 to 2185 Dba:0x0140000c
------------------------------------------------------------------------
64000000 00000000 00000000 00000000 <32 bytes per line> BBED> exit

12、再次检查数据文件

[oracle@kel backuptest]$ dbv file=kel.dbf 

DBVERIFY: Release 10.2.0.1.0 - Production on Wed Jul 9 00:49:44 2014

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

DBVERIFY - Verification starting : FILE = kel.dbf
Page 12 is marked corrupt
Corrupt block relative dba: 0x0140000c (file 5, block 12)
Bad check value found during dbv:
Data in bad block:
type: 6 format: 2 rdba: 0x0140000c
last change scn: 0x0000.0008f6f4 seq: 0x1 flg: 0x06
spare1: 0x0 spare2: 0x0 spare3: 0x0
consistency value in tail: 0xf6f40601
check value in block header: 0xaa87
computed block checksum: 0x64 DBVERIFY - Verification complete Total Pages Examined : 12800
Total Pages Processed (Data) : 4
Total Pages Failing (Data) : 0
Total Pages Processed (Index): 0
Total Pages Failing (Index): 0
Total Pages Processed (Other): 11
Total Pages Processed (Seg) : 0
Total Pages Failing (Seg) : 0
Total Pages Empty : 12784
Total Pages Marked Corrupt : 1 --数据文件出现坏块
Total Pages Influx : 0
Highest block SCN : 587507 (0.587507)

13、 把文件拷贝回ASM

SQL> begin
2 dbms_file_transfer.copy_file('dd','kel.dbf','sd','kel.dbf');
3 end;
4 / PL/SQL procedure successfully completed.

14、对文件进行更名

SQL> select name from v$datafile;

NAME
--------------------------------------------------------------------------------
+RECOVER/omf/datafile/system.256.852236093
+RECOVER/omf/datafile/undotbs1.258.852236095
+RECOVER/omf/datafile/sysaux.257.852236095
+RECOVER/omf/datafile/users.259.852236095
+RECOVER/omf/datafile/kel.272.852423821 SQL> alter tablespace kel rename datafile '+RECOVER/omf/datafile/kel.272.852423821'
2 to '+recover/omf/datafile/kel.dbf'; Tablespace altered. SQL> select name from v$datafile; NAME
--------------------------------------------------------------------------------
+RECOVER/omf/datafile/system.256.852236093
+RECOVER/omf/datafile/undotbs1.258.852236095
+RECOVER/omf/datafile/sysaux.257.852236095
+RECOVER/omf/datafile/users.259.852236095
+RECOVER/omf/datafile/kel.dbf

15、 将数据文件online

SQL> alter database datafile 5 online;
alter database datafile 5 online
*
ERROR at line 1:
ORA-01113: file 5 needs media recovery
ORA-01110: data file 5: '+RECOVER/omf/datafile/kel.dbf'

16 、恢复坏块

[oracle@kel backuptest]$ rman target /

Recovery Manager: Release 10.2.0.1.0 - Production on Wed Jul 9 00:57:03 2014

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

connected to target database: OMF (DBID=680034237)

RMAN> recover datafile 5;

Starting recover at 09-JUL-14
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=148 devtype=DISK starting media recovery
media recovery complete, elapsed time: 00:00:03 Finished recover at 09-JUL-14

17、 把数据文件online

SQL> alter database datafile 5 online;

Database altered.

dbms_file_transfer使用简介的更多相关文章

  1. ASP.NET Core 1.1 简介

    ASP.NET Core 1.1 于2016年11月16日发布.这个版本包括许多伟大的新功能以及许多错误修复和一般的增强.这个版本包含了多个新的中间件组件.针对Windows的WebListener服 ...

  2. MVVM模式和在WPF中的实现(一)MVVM模式简介

    MVVM模式解析和在WPF中的实现(一) MVVM模式简介 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在 ...

  3. Cassandra简介

    在前面的一篇文章<图形数据库Neo4J简介>中,我们介绍了一种非常流行的图形数据库Neo4J的使用方法.而在本文中,我们将对另外一种类型的NoSQL数据库——Cassandra进行简单地介 ...

  4. REST简介

    一说到REST,我想大家的第一反应就是“啊,就是那种前后台通信方式.”但是在要求详细讲述它所提出的各个约束,以及如何开始搭建REST服务时,却很少有人能够清晰地说出它到底是什么,需要遵守什么样的准则. ...

  5. Microservice架构模式简介

    在2014年,Sam Newman,Martin Fowler在ThoughtWorks的一位同事,出版了一本新书<Building Microservices>.该书描述了如何按照Mic ...

  6. const,static,extern 简介

    const,static,extern 简介 一.const与宏的区别: const简介:之前常用的字符串常量,一般是抽成宏,但是苹果不推荐我们抽成宏,推荐我们使用const常量. 执行时刻:宏是预编 ...

  7. HTTPS简介

    一.简单总结 1.HTTPS概念总结 HTTPS 就是对HTTP进行了TLS或SSL加密. 应用层的HTTP协议通过传输层的TCP协议来传输,HTTPS 在 HTTP和 TCP中间加了一层TLS/SS ...

  8. 【Machine Learning】机器学习及其基础概念简介

    机器学习及其基础概念简介 作者:白宁超 2016年12月23日21:24:51 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现的深入理解.本系列文章是作者结 ...

  9. Cesium简介以及离线部署运行

    Cesium简介 cesium是国外一个基于JavaScript编写的使用WebGL的地图引擎,一款开源3DGIS的js库.cesium支持3D,2D,2.5D形式的地图展示,可以自行绘制图形,高亮区 ...

随机推荐

  1. lintcode:Fibonacci 斐波纳契数列

    题目: 斐波纳契数列 查找斐波纳契数列中第 N 个数. 所谓的斐波纳契数列是指: 前2个数是 0 和 1 . 第 i 个数是第 i-1 个数和第i-2 个数的和. 斐波纳契数列的前10个数字是: 0, ...

  2. Zookeeper安装部署

    Zookeeper安装 1. 安装 wget http://www.apache.org/dist//zookeeper/zookeeper-3.3.6/zookeeper-3.3.6.tar.gz ...

  3. 向安富利(Avnet)学什么?

    这个只做电子元器件分销的企业,居然能数次进入<财富>排行榜.看来,这是一个在供应链上创造价值的高手.在企业竞争已经集中到供应链竞争的今天,安富利的成功之道,无疑具有特别的意义. 2000年 ...

  4. Splunk作为日志分析平台与Ossec进行联动

    背景: Ossec安装后用了一段时间的analogi作为ossec的报警信息显示平台,但是查看报警分类信息. 以及相关图标展示等方面总有那么一点点的差强人意,难以分析.因此使用逼格高一点的splunk ...

  5. WCF 简单示例

    WCF(Windows Communication Foundation,WCF)是基于Windows平台下开发和部署服务的软件开发包(Software Development Kit,SDK).WC ...

  6. command-t插件使用说明

    类似于SourceInsight的Project Window,快速浏览项目里的文件 \t或:CommandT打开该插件 g:CommandTTraverseSCM设置搜索工程的根目录 tab在提示窗 ...

  7. Android开发之执行定时任务AlarmManager,Timer,Thread

    1.Thread:使用线程方式2.Timer是java的特性3.AlarmManager:AlarmManager将应用与服务分割开来后,使得应用程序开发者不用 关心具体的服务,而是直接通过Alarm ...

  8. 在Windows下通过命令行或者.bat文件统计一个目录中文件数量

    在Windows下面怎样通过命令行统计一个目录中文件的数量,或者说,如果在一个.bat文件中,统计一个目录中的文件数量? 我原来以为是不可能的,要编一个vbs程序什么的,后来到网上找了下,发现还真是可 ...

  9. hdu 4952 Number Transformation (找规律)

    题目链接 题意:给你个x,k次操作,对于第i次操作是:要找个nx,使得nx是>=x的最小值,且能整除i,求k次操作后的数 分析: 经过打表找规律,会发现最后的x/i,这个倍数会趋于一个固定的值, ...

  10. hdu4576 概率dp n^2的矩阵

    这个题目看网上好多题解都是直接O(n*m)卡过.我是这么做的. 对于m次操作,统计每个w的次数.然后对每个w做矩阵乘法. 这样直接做矩阵乘法是会TLE的. 又由于这里的矩阵很特殊,一次乘法可以降维成O ...