Oracle中如何使用dd复制asm中文件

随着数据库新版本的推广ASM肯定会越来越被重视,最近准备系统的学习下ASM,以备突发情况需要,这是asm深入学习第一篇,参考:dd复制ASM中的datafile

查询ASM某个数据文件AU信息

SQL> SELECT GROUP_NUMBER, FILE_NUMBER, NAME

2      FROM v$asm_alias

3  WHERE NAME LIKE '%USER%'

4   GROUP BY GROUP_NUMBER, FILE_NUMBER, NAME;

GROUP_NUMBER FILE_NUMBER NAME

------------ ----------- -----------------------------

2         259 USERS.259.776961317

SQL>  SELECT disk_kffxp, au_kffxp, xnum_kffxp

2    FROM x$kffxp

3     WHERE GROUP_KFFXP=2

4    AND NUMBER_KFFXP=259;

DISK_KFFXP   AU_KFFXP XNUM_KFFXP

---------- ---------- ----------

1        817          0

0        507          1

1        818          2

0        508          3

1        819          4

1        820          5

SQL> select DISK_NUMBER,GROUP_NUMBER,PATH from v$asm_disk

2 where GROUP_NUMBER=2 and DISK_NUMBER in(1,0);

DISK_NUMBER GROUP_NUMBER PATH

----------- ------------ -----------------------------------

1            2 /dev/oracleasm/disks/VOL4

0            2 /dev/oracleasm/disks/VOL3

查询ASM DISK对应的磁盘或者分区

[grid@rac1 ~]$ /etc/init.d/oracleasm querydisk -d VOL3

Disk "VOL3" is a valid ASM disk on device [8,17]

[grid@rac1 ~]$ /etc/init.d/oracleasm querydisk -d VOL4

Disk "VOL4" is a valid ASM disk on device [8,18]

[grid@rac1 ~]$ cat /proc/partitions |grep "8       17"

8       17    2409718 sdb1

[grid@rac1 ~]$ cat /proc/partitions |grep "8       18"

8       18    3879697 sdb2

更多精彩内容:http://www.bianceng.cn/database/Oracle/

dd操作磁盘或者分区

[root@rac1 ~]# dd if=/dev/sdb2 bs=1024k count=1 skip=817 of=/tmp/user_1.dbf

1+0 records in

1+0 records out

1048576 bytes (1.0 MB) copied, 0.188362 seconds, 5.6 MB/s

[root@rac1 ~]# dd if=/dev/sdb1 bs=1024k count=1 skip=507 of=/tmp/user_2.dbf

1+0 records in

1+0 records out

1048576 bytes (1.0 MB) copied, 0.259001 seconds, 4.0 MB/s

[root@rac1 ~]# dd if=/dev/sdb2 bs=1024k count=1 skip=818 of=/tmp/user_3.dbf

1+0 records in

1+0 records out

1048576 bytes (1.0 MB) copied, 0.182559 seconds, 5.7 MB/s

[root@rac1 ~]# dd if=/dev/sdb1 bs=1024k count=1 skip=508 of=/tmp/user_4.dbf

1+0 records in

1+0 records out

1048576 bytes (1.0 MB) copied, 0.10011 seconds, 10.5 MB/s

[root@rac1 ~]# dd if=/dev/sdb2 bs=1024k count=2 skip=819 of=/tmp/user_5.dbf

2+0 records in

2+0 records out

2097152 bytes (2.1 MB) copied, 0.22389 seconds, 9.4 MB/s

[root@rac1 ~]# ll /tmp/user_*

-rw-r--r-- 1 root root 1048576 Apr 29 18:50 /tmp/user_1.dbf

-rw-r--r-- 1 root root 1048576 Apr 29 18:51 /tmp/user_2.dbf

-rw-r--r-- 1 root root 1048576 Apr 29 18:51 /tmp/user_3.dbf

-rw-r--r-- 1 root root 1048576 Apr 29 18:51 /tmp/user_4.dbf

-rw-r--r-- 1 root root 2097152 Apr 29 18:51 /tmp/user_5.dbf

[root@rac1 ~]# dd if=/tmp/user_1.dbf bs=1024k count=1 of=/tmp/user_dd.dbf

1+0 records in

1+0 records out

1048576 bytes (1.0 MB) copied, 0.0104619 seconds, 100 MB/s

[root@rac1 ~]# dd if=/tmp/user_2.dbf bs=1024k count=1 seek=1 of=/tmp/user_dd.dbf

1+0 records in

1+0 records out

1048576 bytes (1.0 MB) copied, 0.0129077 seconds, 81.2 MB/s

[root@rac1 ~]# dd if=/tmp/user_3.dbf bs=1024k count=1 seek=2 of=/tmp/user_dd.dbf

1+0 records in

1+0 records out

1048576 bytes (1.0 MB) copied, 0.00737324 seconds, 142 MB/s

[root@rac1 ~]# dd if=/tmp/user_4.dbf bs=1024k count=1 seek=3 of=/tmp/user_dd.dbf

1+0 records in

1+0 records out

1048576 bytes (1.0 MB) copied, 0.0143482 seconds, 73.1 MB/s

[root@rac1 ~]# dd if=/tmp/user_5.dbf bs=1024k count=2 seek=4 of=/tmp/user_dd.dbf

2+0 records in

2+0 records out

2097152 bytes (2.1 MB) copied, 0.0809296 seconds, 25.9 MB/s

[root@rac1 ~]# ll /tmp/user_*

-rw-r--r-- 1 root root 1048576 Apr 29 18:50 /tmp/user_1.dbf

-rw-r--r-- 1 root root 1048576 Apr 29 18:51 /tmp/user_2.dbf

-rw-r--r-- 1 root root 1048576 Apr 29 18:51 /tmp/user_3.dbf

-rw-r--r-- 1 root root 1048576 Apr 29 18:51 /tmp/user_4.dbf

-rw-r--r-- 1 root root 2097152 Apr 29 18:51 /tmp/user_5.dbf

时间: 2024-10-31 08:02:17

Oracle中如何使用dd复制asm中文件的相关文章

[20130115]测试从asm中取出spfile文件以及一个数据文件.txt

[20130115]测试从asm中取出spfile文件以及一个数据文件.txt 参考: http://www.xifenfei.com/3019.html 使用dd复制asm中文件 SQL> column name format a50 SQL> select file#,ts#,status,enabled,checkpoint_change#,name,bytes  from v$datafile;      FILE#        TS# STATUS  ENABLED    CHEC

Oracle如何在ASM中定位文件的分布

  我们将尝试找出文件的AU分布,然后根据AU分布定位磁盘所在的位置,设置有可能利用操作系统层面的工具拷贝ASM其中的数据出来.我将使用两个例子来说明如何查看au分布. 0. spfile 查看当前的spfile: sys@GT11G> show parameter spfile; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ spfile strin

oracle中分区无法识别导致asm diskgroup无法mount问题解决办法

有客户咨询由于主机重启之后,导致四个磁盘组中的data2磁盘组无法mount(报ORA-15032,ORA-15017,ORA-15063),数据库无法open,让我们帮忙分析解决 Wed Mar 09 18:10:53 2016 NOTE: Assigning number (1,1) to disk (/dev/oracleasm/disks/VOL011) Wed Mar 09 18:10:53 2016 ERROR: no read quorum in group: required 1

Oracle中如何找回ASM中的数据文件

很多时候由于asm不能正常启动,导致数据丢失.下面提供两种方法找回asm中的数据文件 一.使用AMDU工具 AMDU是Oracle 11g里自带的一个免费的工具,用于分析ASM磁盘组的元数据以及从不能mount的磁盘组中往外抽取数据文件"NOTE:553639.1 Placeholder for AMDU binaries and using with ASM 10g"明确指出:AMDU也可用于10g,并提供了可用于10g的AMDU的各个操作系统的版本供大家下载. 1.设置LD_LIB

oracle中配置客户端连接到ASM实例

对于Oracle 网络配置,我们通常通过negmgr或者netca来完成客户端连接到数据库实例.而对于连接到ASM实例,同样可以实现从客户端来进行连接.不过Oracle并未为我们提供工具来完成配置,我们可以通过手动配置监听以及客户端tnsnames来实现.本文对此给出描述与示例. 1.服务器端.客户端的环境    #服务器端环境,host信息    oracle@bo2dbp:~> cat /etc/hosts |grep vip    192.168.7.61   bo2dbp-vip.2go

sql-将一个数据库中的所有表复制到另一个数据库中

问题描述 将一个数据库中的所有表复制到另一个数据库中 两个数据库不在一个服务器上!!! 比如我本机的ip地址为11.12.13.15 数据库名称为sqljiang 登陆名和密码分别为sa和sa123 服务器的ip为22.33.55.66 数据库名称为sqlfwqsjl 服务器中的数据库是空的 现在我想将本机sqljiang中的所有信息完整复制到服务器中,包括表结构. 表中的数据.视图.存储过程等,如何通过脚本实现. 由于服务器没有这么大的权限,因此不能通过直接还原数据库备份的方法... 解决方案

sybase复制服务器中数据同步与复制技术

美国Sybase公司研制的一种关系型数据库系统,是一种典型的UNIX或WindowsNT平台上客户机/服务器环境下的大型数据库系统. Sybase提供了一套应用程序编程接口和库,可以与非Sybase数据源及服务器集成,允许在多个数据库之间复制数据,适于创建多层应用.系统具有完备的触发器.存储过程.规则以及完整性定义,支持优化查询,具有较好的数据安全性.Sybase通常与SybaseSQLAnywhere用于客户机/服务器环境,前者作为服务器数据库,后者为客户机数据库,采用该公司研制的PowerB

简单讲解MySQL中的多源复制_Mysql

 近日ORACLE发布几个新的功能在最新的Mysql5.7.2的版本上,由此有了此篇文章.大多数的改善是在数据库性能和复制相关的功能上,这个新版本会带给我们不可思议的效果. 在这篇文章里,我将要用一些简单的步奏来尝试了解这新的多源复制工作原理以及我们怎样进行自己的测试.需要说明的是,这还是一个开发版本,不是给生产环境准备的.因此这篇文章是打算给那些想了解此新功能的人,看看它是如何在应用中工作的,都是在临时环境中进行相关操作. 什么是多源复制? 首先,我们需要清楚 multi-master 与mu

12c的asm中混搭11g DB和12c DB,报错ora-600

客户的一个数据库,是12c的cluster环境,这个环境中有11g的db和12c的db.当客户准备在一个diskgroup上的数据库拉起来的时候(这个cluster是放多个测试库,是从几十个生产库的disk通过存储级复制的方式,集中起来的.生产库那边一个cluster只有一个database,只有2个diskgroup(DATA和FRA),但是这个测试库集中了多个生产库,所以上面有70个多diskgroup),报错了: ORA-15001:diskgroup "DATA_MIDG" d