[20160718]关于dbv使用问题.txt

[20160718]关于dbv使用问题.txt

1.环境:
SYS@book> @ &r/ver1

PORT_STRING                    VERSION        BANNER
------------------------------ -------------- --------------------------------------------------------------------------------
x86_64/Linux 2.4.xx            11.2.0.4.0     Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

$ dbv help=y

DBVERIFY: Release 11.2.0.4.0 - Production on Tue Jul 19 08:40:16 2016

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

Keyword     Description                    (Default)
----------------------------------------------------
FILE        File to Verify                 (NONE)
START       Start Block                    (First Block of File)
END         End Block                      (Last Block of File)
BLOCKSIZE   Logical Block Size             (8192)
LOGFILE     Output Log                     (NONE)
FEEDBACK    Display Progress               (0)
PARFILE     Parameter File                 (NONE)
USERID      Username/Password              (NONE)
SEGMENT_ID  Segment ID (tsn.relfile.block) (NONE)
HIGH_SCN    Highest Block SCN To Verify    (NONE)
            (scn_wrap.scn_base OR scn)

--如果要检查asm里面的数据文件必须要使用USERID参数,偶然发现一个特殊的情况,输入口令错误一点问题都没有。

$ dbv file=+g0/xxxxx/DATAFILE/USERS.14423.772746091
DBVERIFY: Release 10.2.0.4.0 - Production on Tue Jul 19 08:42:37 2016
Copyright (c) 1982, 2007, Oracle.  All rights reserved.
DBV-00008: USERID must be specified for OSM files

$ dbv file=+g0/xxxxx/DATAFILE/USERS.14423.772746091 userid=aaaaaaa/aaaaaaaaaaaaaaaa
DBVERIFY: Release 10.2.0.4.0 - Production on Tue Jul 19 08:43:50 2016
Copyright (c) 1982, 2007, Oracle.  All rights reserved.
DBVERIFY - Verification starting : FILE = +g0/xxxxx/DATAFILE/USERS.14423.772746091
DBVERIFY - Verification complete
Total Pages Examined         : 8192
Total Pages Processed (Data) : 28
Total Pages Failing   (Data) : 0
Total Pages Processed (Index): 5
Total Pages Failing   (Index): 0
Total Pages Processed (Other): 8142
Total Pages Processed (Seg)  : 0
Total Pages Failing   (Seg)  : 0
Total Pages Empty            : 17
Total Pages Marked Corrupt   : 0
Total Pages Influx           : 0
Highest block SCN            : 0 (0.0)

---//很明显我没有这个用户。

2.分析:
$ strace -f -e open -o /tmp/aa dbv file=+g0/xxxxx/DATAFILE/USERS.14423.772746091 userid=aaaaaaa/aaaaaaaaaaaaaaaa

--你可以发现如下内容:
667   open("/u01/app/oracle/product/10.2.0/rac_db/dbs/orapwxxxxx", O_RDONLY) = 11
667   open("/u01/app/oracle/product/10.2.0/rac_db/dbs/orapwxxxxx", O_RDWR|O_SYNC) = 11

--实际上使用中打开口令文件。但是我改名口令文件也一样可以登录。实际上即使没有口令文件,在本机可以使用sqlplus / as sysdba登录。
--仔细检查可以发现还会打开类似的文件:
735   open("/u01/app/oracle/admin/xxxxx/adump/ora_735.aud", O_RDWR|O_CREAT|O_APPEND, 0660) = 11

--检查1个大文件看看:
$ dbv file=+g0/xxxxx/DATAFILE/xxxxx_32K.11485.772749347 BLOCKSIZE=32768 userid=aaa/aaa
..

$ pstree -p
...
        |-tmux(32731)-+-bash(306)---pstree(956)
        |             `-bash(867)---dbv(948)---oracle(949)


--可以发现还启动oracle进程。
$ tail -f  /u01/app/oracle/admin/xxxxx/adump/ora_949.aud

Tue Jul 19 09:05:37 2016
LENGTH : '137'
ACTION :[7] 'CONNECT'
DATABASE USER:[1] '/'
PRIVILEGE :[6] 'SYSDBA'
CLIENT USER:[6] 'oracle'
CLIENT TERMINAL:[5] 'pts/1'
STATUS:[1] '0'

--从这里可以发现实际上dbv的连接用户是sys。

SELECT b.spid
      ,a.username
      ,a.program
      ,a.sql_id
      ,a.module
  FROM v$session a, v$process b
WHERE spid = 949 AND a.paddr = b.addr

SYS@xxxxx> /
SPID   USERNAME             PROGRAM                        SQL_ID        MODULE
------ -------------------- ------------------------------ ------------- ------------------------------
1089   SYS                  dbverify@xxxxxdg2 (TNS V1-V3)  c4g0sp9sau3g1 dbverify@xxxxxdg2 (TNS V1-V3)

SYS@xxxxx> @ &r/sqlid c4g0sp9sau3g1
SQL_ID        SQLTEXT
------------- --------------------------------------------------------------------------
c4g0sp9sau3g1 begin sys.dbms_dbverify.dbv2(:file, :start, :end, :blkz, :o, :e, :s); end;

--从这个可以看出你还可以使用包sys.dbms_dbverify.dbv2来验证数据文件的完整性。

--如果你使用dbv检查数据文件。
$ dbv file=/u01/app/oracle/oradata/dbcn1/datafile/portal_his16.dbf
...

$ pstree
....
        |-tmux(44384)-+-bash(44385)---dbv(45214)
        |             |-bash(44424)---pstree(45219)
        |             `-bash(44462)

--可以发现这里dbv就没有连接数据库实例。

SYS@book> @ &r/desc_proc sys dbms_dbverify dbv2
INPUT OWNER PACKAGE_NAME OBJECT_NAME
sample : @desc_proc sys dbms_stats gather_%_stats


OWNER      PACKAGE_NAME         OBJECT_NAME SEQUENCE ARGUMENT_NAME        DATA_TYPE            IN_OUT    DATA_TYPE            DEFAULTED
---------- -------------------- ----------- -------- -------------------- -------------------- --------- -------------------- ----------
SYS        DBMS_DBVERIFY        DBV2               1 FNAME                VARCHAR2             IN        VARCHAR2             N
                                                   2 START_BLK            BINARY_INTEGER       IN        BINARY_INTEGER       N
                                                   3 END_BLK              BINARY_INTEGER       IN        BINARY_INTEGER       N
                                                   4 BLOCKSIZE            BINARY_INTEGER       IN        BINARY_INTEGER       N
                                                   5 OUTPUT               VARCHAR2             IN/OUT    VARCHAR2             N
                                                   6 ERROR                VARCHAR2             IN/OUT    VARCHAR2             N
                                                   7 STATS                VARCHAR2             IN/OUT    VARCHAR2             N
7 rows selected.

--但是不支持远程连接数据库。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值