[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    CHECKPOINT_CHANGE# NAME                                                    BYTES
---------- ---------- ------- ---------- ------------------ -------------------------------------------------- ----------
         1          0 SYSTEM  READ WRITE            6438423 +DATA/test/datafile/system.270.762883167            775946240
         2          1 ONLINE  READ WRITE            6438423 +DATA/test/datafile/sysaux.269.762883167            597688320
         3          2 ONLINE  READ WRITE            6438423 +DATA/test/datafile/undotbs1.267.762883167          519045120
         4          4 ONLINE  READ WRITE            6438423 +DATA/test/datafile/users.266.762883167             722206720
         5          6 ONLINE  READ WRITE            6438423 +DATA/test/datafile/example.268.762883167           104857600
         6          7 ONLINE  READ WRITE            6438423 +DATA/test/datafile/tools.280.762943407             104857600
         7          8 ONLINE  READ WRITE            6438423 +DATA/test/datafile/test.284.770380219               10485760
         8         10 ONLINE  READ WRITE            6438423 +DATA/test/datafile/mssm.291.771757063              104857600
8 rows selected.

1.取出spfile看看:

SQL> SELECT GROUP_NUMBER, FILE_NUMBER, NAME FROM v$asm_alias WHERE upper(NAME) LIKE '%SPFILE%' GROUP BY GROUP_NUMBER, FILE_NUMBER, NAME;
GROUP_NUMBER FILE_NUMBER NAME
------------ ----------- ----------------------
           1         258 spfiletest.ora
           1         258 spfile.258.762881973
SQL> SELECT disk_kffxp, au_kffxp, xnum_kffxp FROM x$kffxp  WHERE GROUP_KFFXP=1 AND NUMBER_KFFXP=258;
DISK_KFFXP   AU_KFFXP XNUM_KFFXP
---------- ---------- ----------
         0         92          0
SQL> column path format a40
SQL> select DISK_NUMBER,GROUP_NUMBER,PATH from v$asm_disk;
DISK_NUMBER GROUP_NUMBER PATH
----------- ------------ ----------------------------------------
          1            0 /dev/raw/raw2
          0            1 /dev/raw/raw1

--注:当前 /dev/raw/raw2没有使用

# raw -qa
/dev/raw/raw1:  bound to major 8, minor 7
/dev/raw/raw2:  bound to major 8, minor 8
# cat /proc/partitions
major minor  #blocks  name
   8     0  142737408 sda
   8     1      40131 sda1
   8     2     200812 sda2
   8     3   20008957 sda3
   8     4          1 sda4
   8     5    3911796 sda5
   8     6   97667136 sda6
   8     7   16611178 sda7
   8     8    4289323 sda8

--从以上提示可以猜出spfile文件在/dev/sda7的92*Au size偏移处。

dd if=/dev/sda7 bs=1024k count=1 skip=92 f=spfile_test.ora
# strings spfile_test.ora
test.__db_cache_size=620756992
test.__java_pool_size=16777216
test.__large_pool_size=16777216
test.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
test.__pga_aggregate_target=654311424
test.__sga_target=973078528
test.__shared_io_pool_size=0
test.__shared_pool_size=301989888
test.__streams_pool_size=0
*.audit_file_dest='/u01/app/oracle/admin/test/adump'
*.audit_trail='db'
*.compatible='11.2.0.0.0'
*.control_files='+DATA/test/controlfile/current.272.762883123','+DATA/test/controlfile/current.271.762883125'#Restore Controlfile
*.db_block_size=8192
*.db_create_file_dest='+DATA'
*.db_domain='com'
*.db_file_multiblock_read_count=16
*.db_name='test'
*.db_recovery_file_dest='+DATA'
*.db_recovery_file_dest_size=1073741824
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=testXDB)'
*.log_archive_format='%t_%s_%r.dbf'
*.memory_target=0
*.nls_territory='AMERICA'
*.open_cursors=300
*.pga_aggregate_target=0
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.result_cache_max_result=100
*.result_cache_max_size=25165824
*.undo_tablespace='UNDOTBS1'
2.取出另外一个数据文件+DATA/test/datafile/test.284.770380219文件大小10485760。
10485760/1024/1024=10+加上os的块头8k,占用11M。
SQL> SELECT GROUP_NUMBER, FILE_NUMBER, NAME FROM v$asm_alias WHERE upper(NAME) LIKE '%TEST%' GROUP BY GROUP_NUMBER, FILE_NUMBER, NAME;
GROUP_NUMBER FILE_NUMBER NAME
------------ ----------- -------------------
           1         258 spfiletest.ora
           1         284 TEST.284.770380219
           1  4294967295 TEST

--后面那个是我实例的目录。TEST.284.770380219的NUMBER_KFFXP=284.

SQL> SELECT disk_kffxp, au_kffxp, xnum_kffxp FROM x$kffxp  WHERE GROUP_KFFXP=1 AND NUMBER_KFFXP=284;
DISK_KFFXP   AU_KFFXP XNUM_KFFXP
---------- ---------- ----------
         0       2676          0
         0       2677          1
         0       2672          2
         0       2673          3
         0       2674          4
         0       2675          5
         0       2576          6
         0       2577          7
         0       2578          8
         0       2579          9
         0       2580         10
11 rows selected.
SQL> column x format a60
SQL> select 'dd if=/dev/sda7 bs=1024k count=1 skip='||AU_KFFXP||'  >>test01.dbf' x from  x$kffxp 
WHERE GROUP_KFFXP=1 AND NUMBER_KFFXP=284 order by XNUM_KFFXP;
X
------------------------------------------------------------
dd if=/dev/sda7 bs=1024k count=1 skip=2676  >>test01.dbf
dd if=/dev/sda7 bs=1024k count=1 skip=2677  >>test01.dbf
dd if=/dev/sda7 bs=1024k count=1 skip=2672  >>test01.dbf
dd if=/dev/sda7 bs=1024k count=1 skip=2673  >>test01.dbf
dd if=/dev/sda7 bs=1024k count=1 skip=2674  >>test01.dbf
dd if=/dev/sda7 bs=1024k count=1 skip=2675  >>test01.dbf
dd if=/dev/sda7 bs=1024k count=1 skip=2576  >>test01.dbf
dd if=/dev/sda7 bs=1024k count=1 skip=2577  >>test01.dbf
dd if=/dev/sda7 bs=1024k count=1 skip=2578  >>test01.dbf
dd if=/dev/sda7 bs=1024k count=1 skip=2579  >>test01.dbf
dd if=/dev/sda7 bs=1024k count=1 skip=2580  >>test01.dbf
11 rows selected.

--将以上的输出作为执行文件执行,注意test01.dbf文件在当前目录不存在。

# ll test01.dbf
-rw-r--r-- 1 root root 11534336 Jan 15 16:49 test01.dbf

--恢复大小为11M比实际大,但是并不影响实际检测。

$ dbv file=test01.dbf
DBVERIFY: Release 11.2.0.1.0 - Production on Tue Jan 15 16:49:40 2013
Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.
DBVERIFY - Verification starting : FILE = /home/oracle/aulasm/test01.dbf
DBVERIFY - Verification complete
Total Pages Examined         : 1280
Total Pages Processed (Data) : 103
Total Pages Failing   (Data) : 0
Total Pages Processed (Index): 105
Total Pages Failing   (Index): 0
Total Pages Processed (Other): 146
Total Pages Processed (Seg)  : 0
Total Pages Failing   (Seg)  : 0
Total Pages Empty            : 926
Total Pages Marked Corrupt   : 0
Total Pages Influx           : 0
Total Pages Encrypted        : 0
Highest block SCN            : 3853639 (0.3853639)
$ dbv file='+DATA/test/datafile/test.284.770380219' userid=sys/XXXXX
DBVERIFY: Release 11.2.0.1.0 - Production on Tue Jan 15 17:00:07 2013
Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.
DBVERIFY - Verification starting : FILE = +DATA/test/datafile/test.284.770380219
DBVERIFY - Verification complete
Total Pages Examined         : 1280
Total Pages Processed (Data) : 103
Total Pages Failing   (Data) : 0
Total Pages Processed (Index): 105
Total Pages Failing   (Index): 0
Total Pages Processed (Other): 146
Total Pages Processed (Seg)  : 0
Total Pages Failing   (Seg)  : 0
Total Pages Empty            : 926
Total Pages Marked Corrupt   : 0
Total Pages Influx           : 0
Total Pages Encrypted        : 0
Highest block SCN            : 0 (0.0)
时间: 2024-09-20 00:00:24

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

[20121105]重建控制文件少一个数据文件的情况.txt

[20121105]重建控制文件少一个数据文件的情况.txt 我的测试数据库经常做各种测试,resetlogs很多次,产生很多incarnation.今天想通过重建控制文件来清除这些信息. 我的控制文件的脚本是以前建立的,少包括一个数据文件.自己就拿这个做一个测试看看. 建立控制文件少包括'/u01/app/oracle11g/oradata/test/test01.dbf' STARTUP NOMOUNT CREATE CONTROLFILE REUSE DATABASE "TEST"

[20130116]ASM未正常启动,使用dd找回数据文件.txt

[20130116]ASM未正常启动,使用dd找回数据文件.txt 参考链接:http://www.xifenfei.com/3025.html,自己为了加强理解,重做一次. SQL> column name format a50 SQL> select file#,ts#,status,enabled,checkpoint_change#,name,bytes  from v$datafile;      FILE#        TS# STATUS  ENABLED    CHECKPO

Shell脚本中引用、调用另一个脚本文件的2种方法

  这篇文章主要介绍了Shell脚本中引用.调用另一个脚本文件的2种方法,本文介绍了两种方法的语法,然后给出实际使用实例和一些要注意的地方,需要的朋友可以参考下 在Java,Python中,可以用import的方式来进行脚本或模块之间调用,例如: 代码如下: >>> import math >>> math.sqrt(4) 2.0 在Shell中要如何调用别的shell脚本,或别的脚本中的变量,函数呢? 方法一: . ./subscript.sh 方法二: source

javaweb-java web程序中,如何加载一个keystore 文件??(keystore文件在项目中)

问题描述 java web程序中,如何加载一个keystore 文件??(keystore文件在项目中) 比如我有一个xx.keystore 如果是java 程序的话,用file file=new file("文件路径"): 一定可以. 但是web'程序如何加载???求解...先在这里谢谢了. 解决方案 请问楼主问的是Https加载证书的例子?

国际化-QT工程中如何多个UI文件使用一个.qrc文件

问题描述 QT工程中如何多个UI文件使用一个.qrc文件 10C VS2010 创建了一个QT项目,在其中又添加了一个UI,想让两个UI同时使用工程中的同一个.qrc文件进行国际化配置(ts文件翻译),请大神赐教!!!在线等,,急!! 解决方案 1.在qt designer中打开新添加的ui:2.在qt designer的资源浏览器中点击"编辑资源":3.在出现的编辑资源对话框上点击"打开资源文件"按钮,选择qrc文件即可. 解决方案二: Qt .qrc文件qt中的

一个数据文件最小能够到多小?

一个数据文件最小能够到多小?以8K block size为例. 在Locally Managed Tablespace(LMT)中,如果是System Allocate的话. 1.LMT的数据文件需要1个block存储datafile header,还需要7个block存储bitmap block,这样是8 个block,一共64K 2.需要保证有至少一个extent的空间,在System Allocate中第一个extent会是64K 因此最小只能到128K.尝试缩小到更小的话,会碰到ORA-

[20141106]建立控制文件与丢失数据文件问题

[20141106]建立控制文件与丢失数据文件问题.txt --前一阵子,帮别人恢复系统,主数据库硬盘损坏,dataguard能够只读打开,查询没有问题,安全起见在另外的机器 --建立新系统,把dataguard的数据文件拷贝到新机器,建立新的控制文件,但是open resetlogs后发现,丢失一些数 --据文件,感觉很奇怪,询问以后才明白,有一些表空间是read only的,当然解决也很简单, --参考链接: http://blog.itpub.net/267265/viewspace-74

oracle中alter database create datafile 导致数据文件丢失恢复

alter database create datafile导致原始数据文件丢失 有客户一个小系统找我们恢复,通过Oracle Database Recovery Check 检测之后我们红框部分发现一奇怪现象 1.文件头fuzzy为NO,不符合数据库异常crash常识,也和其他文件该状态不匹配 2.文件的创建时间,scn均和checkpoint时间,scn一致(也就是说该文件是创建之后就checkpoint,然后就没有其他操作) 3.文件开始应用的归档为5,110和其他数据文件要求的3115相

abap 怎么从数据表中取出值 赋给一个变量

问题描述 我只知道如何从数据表取出一条数据,然后呢怎么将一条数据中的一个字段值赋给一个变量??selectsingle<字段>into<wa>from<数据表>where<条件>.我得到wa之后怎么从里面取其中一个数据?? 解决方案 本帖最后由 strivedl 于 2011-09-18 08:59:15 编辑解决方案二:i=wa-field.MOVEwa-fieldTOi.解决方案三:这样可以吗?是不是首先要声明i是wa-field类型的变量,然后再mov