使用dd命令复制ASM磁盘的spfile

通过下面sql查询参数文件在ASM磁盘中的AU分布

SELECT x1.file_number,
       x1.name,
       x2.GROUP_KFFXP,
       x2.DISK_KFFXP,
       x2.AU_KFFXP,
       x3.path
  FROM (SELECT *
          FROM (SELECT t1.GROUP_NUMBER, t1.FILE_NUMBER, t2.NAME, rownum AS rn
                  FROM v$asm_file t1
                  LEFT JOIN v$asm_alias t2
                    ON t1.FILE_NUMBER = t2.FILE_NUMBER
                 WHERE t1.type = ‘PARAMETERFILE‘)
         WHERE rn = 1) x1
  JOIN x$kffxp x2
    ON x1.file_number = x2.number_kffxp
  JOIN v$asm_disk x3
    ON x3.GROUP_NUMBER = x2.GROUP_KFFXP
 18     AND x3.DISK_NUMBER = x2.disk_kffxp
 19  ;

FILE_NUMBER NAME		 GROUP_KFFXP DISK_KFFXP   AU_KFFXP PATH
----------- -------------------- ----------- ---------- ---------- ---------------
	265 spfileorcl.ora		   1	      0       1015 /dev/asm-diskb
	265 spfileorcl.ora		   1	      1       1018 /dev/asm-diskc

由于asm磁盘组是冗余方式,这里从其中一个disk复制即可

下面通过dd命令复制

[[email protected] ~]# dd if=/dev/asm-diskb skip=1015 of=/tmp/spfile01.ora bs=1024k count=1
1+0 records in
1+0 records out
1048576 bytes (1.0 MB) copied, 0.004159 seconds, 252 MB/s
[[email protected] ~]# strings /tmp/spfile01.ora 
orcl.__db_cache_size=96468992
orcl.__java_pool_size=4194304
orcl.__large_pool_size=4194304
orcl.__oracle_base=‘/u01/app/oracle‘#ORACLE_BASE set from environment
orcl.__pga_aggregate_target=150994944
orcl.__sga_target=268435456
orcl.__shared_io_pool_size=0
orcl.__shared_pool_size=155189248
orcl.__streams_pool_size=0
*.audit_file_dest=‘/u01/app/oracle/admin/orcl/adump‘
*.audit_trail=‘db‘
*.compatible=‘11.2.0.0.0‘
*.control_files=‘+DATA/orcl/controlfile/current.260.855531771‘,‘+FRA/orcl
/controlfile/current.256.855531771‘
*.db_block_size=8192
*.db_create_file_dest=‘+DATA‘
*.db_domain=‘‘
*.db_name=‘orcl‘
*.db_recovery_file_dest=‘+FRA‘
*.db_recovery_file_dest_size=4070572032
*.diagnostic_dest=‘/u01/app/oracle‘
*.dispatchers=‘(PROTOCOL=TCP) (SERVICE=orclXDB)‘
*.memory_target=418381824
*.nls_language=‘SIMPLIFIED CHINESE‘
*.nls_territory=‘CHINA‘
*.open_cursors=300
*.processes=150
*.remote_login_passwordfile=‘EXCLUSIVE‘
*.undo_tablespace=‘UNDOTBS1‘

也可以根据下面命令dd,由于默认AU size为1M,块为8k, 也就是1个au 等于 1m/8k=128个快,因此如果按照Oracle快计算可知要跳过1015*(1m/8k)=129920个数据快,那么从1299920到后面的连续128个数据块就是参数文件内容了,然后dd如下

[[email protected] ~]# dd if=/dev/asm-diskb of=/tmp/spfile2.ora bs=8192 skip=129920 count=128 
128+0 records in
128+0 records out
1048576 bytes (1.0 MB) copied, 0.003003 seconds, 349 MB/s
[[email protected] ~]# strings /tmp/spfile2.ora 
orcl.__db_cache_size=96468992
orcl.__java_pool_size=4194304
orcl.__large_pool_size=4194304
orcl.__oracle_base=‘/u01/app/oracle‘#ORACLE_BASE set from environment
orcl.__pga_aggregate_target=150994944
orcl.__sga_target=268435456
orcl.__shared_io_pool_size=0
orcl.__shared_pool_size=155189248
orcl.__streams_pool_size=0
*.audit_file_dest=‘/u01/app/oracle/admin/orcl/adump‘
*.audit_trail=‘db‘
*.compatible=‘11.2.0.0.0‘
*.control_files=‘+DATA/orcl/controlfile/current.260.855531771‘,‘+FRA/orcl
/controlfile/current.256.855531771‘
*.db_block_size=8192
*.db_create_file_dest=‘+DATA‘
*.db_domain=‘‘
*.db_name=‘orcl‘
*.db_recovery_file_dest=‘+FRA‘
*.db_recovery_file_dest_size=4070572032
*.diagnostic_dest=‘/u01/app/oracle‘
*.dispatchers=‘(PROTOCOL=TCP) (SERVICE=orclXDB)‘
*.memory_target=418381824
*.nls_language=‘SIMPLIFIED CHINESE‘
*.nls_territory=‘CHINA‘
*.open_cursors=300
*.processes=150
*.remote_login_passwordfile=‘EXCLUSIVE‘
*.undo_tablespace=‘UNDOTBS1‘

可以看到两种dd方式内容一致。

下面是从disk /dev/asm-diskc中复制

[[email protected] ~]# dd if=/dev/asm-diskc of=/tmp/spfile3.ora bs=1024k skip=1018 count=1
1+0 records in
1+0 records out
1048576 bytes (1.0 MB) copied, 0.05252 seconds, 20.0 MB/s
[[email protected] ~]# strings /tmp/spfile3.ora 
orcl.__db_cache_size=96468992
orcl.__java_pool_size=4194304
orcl.__large_pool_size=4194304
orcl.__oracle_base=‘/u01/app/oracle‘#ORACLE_BASE set from environment
orcl.__pga_aggregate_target=150994944
orcl.__sga_target=268435456
orcl.__shared_io_pool_size=0
orcl.__shared_pool_size=155189248
orcl.__streams_pool_size=0
*.audit_file_dest=‘/u01/app/oracle/admin/orcl/adump‘
*.audit_trail=‘db‘
*.compatible=‘11.2.0.0.0‘
*.control_files=‘+DATA/orcl/controlfile/current.260.855531771‘,‘+FRA/orcl
/controlfile/current.256.855531771‘
*.db_block_size=8192
*.db_create_file_dest=‘+DATA‘
*.db_domain=‘‘
*.db_name=‘orcl‘
*.db_recovery_file_dest=‘+FRA‘
*.db_recovery_file_dest_size=4070572032
*.diagnostic_dest=‘/u01/app/oracle‘
*.dispatchers=‘(PROTOCOL=TCP) (SERVICE=orclXDB)‘
*.memory_target=418381824
*.nls_language=‘SIMPLIFIED CHINESE‘
*.nls_territory=‘CHINA‘
*.open_cursors=300
*.processes=150
*.remote_login_passwordfile=‘EXCLUSIVE‘
*.undo_tablespace=‘UNDOTBS1‘
时间: 2024-10-15 22:53:11

使用dd命令复制ASM磁盘的spfile的相关文章

用dd命令复制磁盘分区

用dd命令复制磁盘分区 首先是复制 复制前对写入的分区执行umount操作 sudo dd if=/dev/sda1 of=/dev/sda2 可以在另外一个终端输入这句,然后在原来的dd终端看到进度 watch -n 5 killall -USR1 dd 写完后发现新的分区UUID和大小都变成原来的的分区了. 然后处理分区大小问题. 进行检查,并修复参数. sudo e2fsck -f /dev/sda2 调整分区大小 sudo resize2fs /dev/sda2 再处理UUID的问题.

利用dd命令对Linux磁盘进行读写能力测试

在Linux中,对磁盘进行读写能力的测试,是一件非常必要的事情.虽然有一些很专业的软件去做这件事,但在某些情况下,由于技术能力限制,或用户并不需要很专业,这时就要考虑Linux内嵌命令dd了,它是一个简单易用,且功能略微强大的命令. 一.首先要了解两个特殊的设备 /dev/null:回收站.无底洞,可以把一些没用的东西丢进去 /dev/zero:产生字符,这样就可以模拟文件,不需要有文件就可以进行文件传输 二.读写能力测试 磁盘写能力测试: time dd if=/dev/zero of=/te

使用dd命令测试linux磁盘读写速度的方法

1.先熟悉两个特殊的设备:(1)/dev/null:回收站.无底洞.(2)/dev/zero:产生字符. 2.测试磁盘写能力 复制代码 代码如下: time dd if=/dev/zero of=/testw.dbf bs=4k count=100000 因为/dev//zero是一个伪设备,它只产生空字符流,对它不会产生IO,所以,IO都会集中在of文件中,of文件只用于写,所以这个命令相当于测试磁盘的写能力.命令结尾添加oflag=direct将跳过内存缓存,添加oflag=sync将跳过h

使用dd命令克隆整个系统

神奇的ghost的原理是什么呢?不就是数据复制吗?Linux下的dd命令不就是最强大的数据复制工具! 既然如此,我为什么要使用g4l这样复杂的工具呢?一条dd命令不就可以帮我实现任意复杂的镜像复制和恢复的需求了吗?管他是grub,还是ext4,btrfs,FAT32,NTFS...dd面前众生平等. 进入Linux操作系统,打开命令行,执行如下命令: sudo  fdisk -u -l 可以查看所有磁盘上的所有分区的尺寸和布局情况. -u,让start和end中数字的单位是512字节,也就是一个

使用dd命令克隆整个系统(转)

神奇的ghost的原理是什么呢?不就是数据复制吗?Linux下的dd命令不就是最强大的数据复制工具! 既然如此,我为什么要使用g4l这样复杂的工具呢?一条dd命令不就可以帮我实现任意复杂的镜像复制和恢复的需求了吗?管他是grub,还是ext4,btrfs,FAT32,NTFS...dd面前众生平等. 进入Linux操作系统,打开命令行,执行如下命令: sudo  fdisk -u -l 可以查看所有磁盘上的所有分区的尺寸和布局情况. -u,让start和end中数字的单位是512字节,也就是一个

在linux上用dd命令实现ghost功能

转自:http://blog.jobbole.com/90978/ ghost和g4l 安装操作系统,速度太慢,整个过程太冗长乏味了. 安装过程中,需要回答若干问题,系统需要安装无数个软件,创建和写入无数的文件.因为涉及到大量的文件定位和读写,速度一定是快不起来的. Windows下我们常常使用ghost系统来备份和刻录操作系统.ghost可以clone整个系统的镜像,然后在新的电脑上恢复,相当简单.用ghost系统安装操作系统比使用安装光盘安装系统要快捷多了,也不需要回答任何问题了. 那么,我

Linux数据备份与恢复 dump、restore、dd命令

dump命令:备份分区.文件或目录 在Linux系统中 dump 命令是没有安装的,所以先安装一下 dump 命令,安装命令如下: [[email protected] -]# yum -y install dump dump 命令可以支持 0-9 共 10 个备份级别.其中,0 级别指的就是完全备份,1-9 级别都是增量备份级别. 也就是说,当我们备份一份数据时,第一次备份应该使用 0 级别,会把所有数据完全备份一次:第二次备份就可以使用 1 级别了,它会和 0 级别进行比较,把 0 级别备份

Linux 中用 dd 命令来测试硬盘读写速度

https://blog.51cto.com/moerjinrong/2286323 Linux 中用 dd 命令来测试硬盘读写速度dd 是 Linux/UNIX 下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换. dd 命令通用语法格式如下: dd if=path/to/input_file of=/path/to/output_file bs=block_size count=number_of_blocks 1 命令简介 1.1 主要选项 指定数字的地

dd命令的使用

1.dd命令的使用 dd命令用于复制文件并对源文件的内容进行转换和格式化处理,在有需要的时候可以使用dd命令对物理磁盘进行操作,使用dd对磁盘操作时,最好使用块设备文件. (1)命令语法 dd (选项) (2)常用参数说明 if=filename:输入文件名,默认为标准输入,即指定源文件. of=filename:输出文件名,默认为标准输出,即指定目的文件 ibs=bytes:一次读入bytes个字节,即指定一个块大小为bytes个字节. obs=bytes:一次输出bytes个字节,即指定一个