内容简介:Oracle 从ASM复制文件到文件系统
工作中,有时需要把文件从ASM中复制到文件系统中或者反过来,做一些维护操作,本文介绍了4种复制文件的的方法:
- ASMCMD中的cp命令(11g)
- dbms_file_transfer包
- rman的convert或backup as copy
- FTP
下面分别介绍这4种方法
1、ASMCMD中的cp命令(11g)
cp命令是11g新增的命令,使用它可以轻松的把文件从ASM中复制到文件系统中或者反过来。还可以把ASM中的文件复制到网络上的其他服务器的文件系统中。
#从ASM复制到文件系统
[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
] >
#查看复制结果
[grid@rac1 ~]$ ll
/home/grid/users
.dbf
-rw-r-----. 1 grid oinstall 5251072 May 21 15:20
/home/grid/users
.dbf
#从文件系统复制到ASM
ASMCMD [+data
/orcl/datafile
] >
cp
/home/grid/users
.dbf +data
/orcl
copying
/home/grid/users
.dbf -> +data
/orcl/users
.dbf
#查看复制结果
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的详细使用情况可以使用help cp命令获得。
如果ASM的版本是11g以前的版本可以使用如下三种方法复制文件。
2、dbms_file_transfer包
这个包是从Oracle 9不开始提供的,利用这个包可以在两个位置之间传输文件,这两个位置可以是同一台计算机或者网络上的两台计算机。Oracle10g扩展了这个包的功能,可以完成从一个ASM Diskgroup拷贝到另一个ASM Diskgroup、从ASM Diskgroup拷贝到普通文件系统、从普通文件系统拷贝到ASM Diskgroup、从文件系统拷贝到文件系统或者RAW Device。这个包提供了3个方法,可以完成不同的任务。
方法 | 功能说明 |
copy_file | 完成文件从本地一个目录拷贝到本地的另一个目录,这个方法不能完成远程传输 |
get_file | 这个方法完成把远程的文件拷贝到本地的目录中,类似于下载 |
put_file | 这个方法完成本地文件传送到远程的目的,类似于上传 |
使用方法:
#创建目录
SQL>
create
directory asm_dir
as
'+data/ASM/DATAFILE/'
;
Directory created.
SQL>
create
directory os_dir
as
'/home/oracle'
;
Directory created.
#执行复制
SQL>
exec
dbms_file_transfer.copy_file(
'asm_dir'
,
'user2.dbf.272.944581345'
,
'os_dir'
,
'user.dbf'
);
PL/SQL
procedure
successfully completed.
#验证复制结果
[oracle@rac1 ~]$ ls -l /home/oracle/
user
.dbf
-rw-r
-----. 1 oracle asmadmin 5251072 May 21 15:49 /home/oracle/user.dbf
#进行反向复制
SQL>
exec
dbms_file_transfer.copy_file(
'os_dir'
,
'user.dbf'
,
'asm_dir'
,
'user2.dbf'
);
PL/SQL
procedure
successfully completed.
#验证
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命令是用于对数据文件进行字节格式转换的。Oracle可以在不同OS平台间进行表空间传(TTS),如果两个平台的字节格式不一致,则需要参数据文件进行格式转换,这个转换可以 在源数据库进行,也可以在目的数据库中执行。如果在源数据库中执行,则需要使用convert tablespace命令,如果在目的数据库中执行,则需要使用convert datafile命令。
虽然convert这个命令主要用于跨平台传输表空间,它也可以完成ASM和本地文件系统间拷贝文件,并且也是很简单的一种方法。
#使用
convert
datafile从ASM复制到文件系统
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
#验证
[oracle@rac1 ~]$ ls -l /home/oracle/user3.dbf
-rw-r
-----. 1 oracle asmadmin 5251072 May 21 16:00 /home/oracle/user3.dbf
#使用
convert
tablespace,使用时需要把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
#验证
[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
#从文件系统拷贝到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
#从日志中看出转换的文件名
#converted datafile=+DATA/orcl/datafile/users.274.944582713
#converted datafile=+DATA/orcl/datafile/users.274.944582713
3.2 backup as copy命令
backup as copy命令是以镜像���方式对文件进行备份,自然可以把文件从ASM复制到文件系统中。这也是从文件系统迁移到ASM时可以选择的方法之一。
#执行复制
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
#验证
[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方法可以像库中复制使用传统文件传输协议(FTP)对普通文件执行常规操作那样,对ASM文件和目录执行操作。通过这种方式访问ASM文件的典型应用是从一个数据库向另一个数据库中复制ASM文件。需要XML DB支持,配置起来最麻烦,有兴趣的同学可以参考《Oracle Database 11g RAC手册原书第2版》或官方文档: http://docs.oracle.com/cd/E11882_01/server.112/e18951/asmfiles.htm#BABJCCEI
以上所述就是小编给大家介绍的《Oracle 从ASM复制文件到文件系统》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- VirtualBox下快速创建新的虚拟机——复制vdi文件
- VirtualBox下快速创建新的虚拟机——复制vdi文件
- 利用slave_relay_log_info信息通过复制从库物理文件做主从
- MongoDB复制选举原理及复制集管理
- MySQL组复制MGR(二)-- 组复制搭建
- Redis系列(四):Redis的复制机制(主从复制)
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
无处安放的互联网隐私
【美】茱莉亚·霍维兹 【美】杰拉米·斯科 / 中国人民大学出版社有限公司 / 2017-7-1 / CNY 55.00
在当今互联网时代,我们的隐私权已经受到了威胁,政府或企业可以追踪我们的电话,搜索引擎可以记录我们的在线浏览记录以及恒温器的设置以及更多信息。在当代,保卫隐私权不只是简单地描述出存在的问题或者警告人们隐私权已经丧失,隐私权的护卫者们提出了解决策略。他们密切关注商业实践、公共政策和技术设计以及人物,应该继续下去吗?条件就是:有问题,让我们找到解决之道。一起来看看 《无处安放的互联网隐私》 这本书的介绍吧!