Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

70

积分

0

好友

22

主题
1#
发表于 2012-4-24 17:27:01 | 查看: 5773| 回复: 6
数据库为 NOARCHIVELOG 模式。

SQL> select name, state, type, total_mb, free_mb from v$asm_diskgroup;
NAME                           STATE       TYPE     TOTAL_MB    FREE_MB
------------------------------ ----------- ------ ---------- ----------
DG2                            MOUNTED     EXTERN     153597      40303
OCRVDG                    MOUNTED     EXTERN        2046       1564
DG1                            MOUNTED     EXTERN     102398          1

在不扩展组的情况下 如何能够解决此问题呢?
7#
发表于 2012-4-27 09:12:14
按您的提示我确认了一下,四个节点,其中一个节点的权限的确不对 是root:root
我修改过来了,查询了一下
SQL> select GROUP_NUMBER,DISK_NUMBER,MOUNT_STATUS,HEADER_STATUS,NAME,PATH from v$asm_disk;
GROUP_NUMBER DISK_NUMBER MOUNT_S HEADER_STATU NAME                           PATH
------------ ----------- ------- ------------ ------------------------------ ------------------------------
           0           0 CLOSED  MEMBER                                      /dev/raw/raw8
           0           1 CLOSED  MEMBER                                      /dev/raw/raw9
           3           1 CACHED  MEMBER       OCRVDG_0001                    /dev/raw/raw7
           3           0 CACHED  MEMBER       OCRVDG_0000                    /dev/raw/raw6
           2           2 CACHED  MEMBER       DG2_0002                       /dev/raw/raw5
           2           1 CACHED  MEMBER       DG2_0001                       /dev/raw/raw4
           2           0 CACHED  MEMBER       DG2_0000                       /dev/raw/raw3
           1           1 CACHED  MEMBER       DG1_0001                       /dev/raw/raw2
           1           0 CACHED  MEMBER       DG1_0000                       /dev/raw/raw1
SQL> ALTER DISKGROUP DG1 ADD DISK '/dev/raw/raw8';
ALTER DISKGROUP DG1 ADD DISK '/dev/raw/raw8'
*
ERROR at line 1:
ORA-15032: not all alterations performed
ORA-15033: disk '/dev/raw/raw8' belongs to diskgroup "DG1"

SQL> select GROUP_NUMBER,DISK_NUMBER,MOUNT_STATUS,HEADER_STATUS,NAME,PATH from v$asm_disk;
GROUP_NUMBER DISK_NUMBER MOUNT_S HEADER_STATU NAME                           PATH
------------ ----------- ------- ------------ ------------------------------ ------------------------------
           0           0 CLOSED  MEMBER                                      /dev/raw/raw8
           0          1 CLOSED  MEMBER                                      /dev/raw/raw9
           3           1 CACHED  MEMBER       OCRVDG_0001                    /dev/raw/raw7
           3           0 CACHED  MEMBER       OCRVDG_0000                    /dev/raw/raw6
           2           2 CACHED  MEMBER       DG2_0002                       /dev/raw/raw5
           2           1 CACHED  MEMBER       DG2_0001                       /dev/raw/raw4
           2           0 CACHED  MEMBER       DG2_0000                       /dev/raw/raw3
           1           1 CACHED  MEMBER       DG1_0001                       /dev/raw/raw2
           1           0 CACHED  MEMBER       DG1_0000                       /dev/raw/raw1
9 rows selected.

运行:
SQL> ALTER DISKGROUP DG1 ADD DISK '/dev/raw/raw8' force  
Diskgroup altered.

SQL> select GROUP_NUMBER,DISK_NUMBER,MOUNT_STATUS,HEADER_STATUS,NAME,PATH from v$asm_disk;
GROUP_NUMBER DISK_NUMBER MOUNT_S HEADER_STATU NAME                           PATH
------------ ----------- ------- ------------ ------------------------------ ------------------------------
           0           1 CLOSED  MEMBER                                      /dev/raw/raw9
           3           1 CACHED  MEMBER       OCRVDG_0001                    /dev/raw/raw7
           3           0 CACHED  MEMBER       OCRVDG_0000                    /dev/raw/raw6
           2           2 CACHED  MEMBER       DG2_0002                       /dev/raw/raw5
           2           1 CACHED  MEMBER       DG2_0001                       /dev/raw/raw4
           2           0 CACHED  MEMBER       DG2_0000                       /dev/raw/raw3
           1           1 CACHED  MEMBER       DG1_0001                       /dev/raw/raw2
           1           0 CACHED  MEMBER       DG1_0000                       /dev/raw/raw1
          1           2 CACHED  MEMBER       DG1_0002                       /dev/raw/raw8
9 rows selected.
SQL> select disk_number, path, name, total_mb, free_mb from v$asm_disk where group_number =1;
DISK_NUMBER PATH                           NAME                             TOTAL_MB    FREE_MB
----------- ------------------------------ ------------------------------ ---------- ----------
          1 /dev/raw/raw2                  DG1_0001                            51199       1395
          0 /dev/raw/raw1                  DG1_0000                            51199       1395
          2 /dev/raw/raw8                  DG1_0002                            51199      48408


扩展完毕。

回复 只看该作者 道具 举报

6#
发表于 2012-4-26 21:10:01
ORA-15075: disk(s) are not visible cluster-wide

[oracle@vrh8 ~]$ oerr ora 15075
15075, 00000, "disk(s) are not visible cluster-wide"
// *Cause:   An ALTER DISKGROUP ADD DISK command specified a disk that
//           could not be discovered by one or more nodes in a RAC
//           cluster configuration.
// *Action:  Determine which disks are causing the problem from the
//           GV$OSM_DISK fixed view.  Check operating system permissions
//           for the device and the storage sub-system configuration on
//           each node in a RAC cluster that cannot identify the disk.



确认在 2个节点上  都存在 设备绑定正确 的/dev/raw/raw8  ,且权限正确


ls -l  /dev/raw/raw8


再次强调一下  不建议用 RAW 绑定设备, 建议使用 UDEV 或者 ASMLIB

回复 只看该作者 道具 举报

5#
发表于 2012-4-26 17:30:09
我选择了 ,添加磁盘的方式 有又遇到了些问题,请版主您指点。
set linesize 200 pagesize 999 newpage;
SQL> select group_number, name, state, type, total_mb, free_mb from v$asm_diskgroup;

GROUP_NUMBER NAME                           STATE       TYPE     TOTAL_MB    FREE_MB
------------ ------------------------------ ----------- ------ ---------- ----------
           1 DG1                            MOUNTED     EXTERN     102398          1
           2 DG2                            MOUNTED     EXTERN     153597      40303
           3 OCRVDG                         MOUNTED     EXTERN       2046       1564

SQL> select group_number, name, state, type, total_mb, free_mb from v$asm_diskgroup;

GROUP_NUMBER NAME                           STATE       TYPE     TOTAL_MB    FREE_MB
------------ ------------------------------ ----------- ------ ---------- ----------
           1 DG1                            MOUNTED     EXTERN     102398          1
           2 DG2                            MOUNTED     EXTERN     153597      40303
           3 OCRVDG                         MOUNTED     EXTERN       2046       1564

SQL> select disk_number, path, name, total_mb, free_mb from v$asm_disk where group_number =1;

DISK_NUMBER PATH                           NAME                             TOTAL_MB    FREE_MB
----------- ------------------------------ ------------------------------ ---------- ----------
          1 /dev/raw/raw2                  DG1_0001                            51199          0
          0 /dev/raw/raw1                  DG1_0000                            51199          1


SQL> col path format a30
SQL> col name format a30
SQL> select disk_number, path, name, total_mb, free_mb from v$asm_disk where group_number =1;

DISK_NUMBER PATH                           NAME                             TOTAL_MB    FREE_MB
----------- ------------------------------ ------------------------------ ---------- ----------
          1 /dev/raw/raw2                  DG1_0001                            51199          0
          0 /dev/raw/raw1                  DG1_0000                            51199          1

SQL> ALTER DISKGROUP DG1 ADD DISK '/dev/raw/raw8';
ALTER DISKGROUP DG1 ADD DISK '/dev/raw/raw8'
*
ERROR at line 1:
ORA-15032: not all alterations performed
ORA-15260: permission denied on ASM disk group


SQL> conn /  as sysasm
Connected.
SQL> show sga

Total System Global Area  283930624 bytes
Fixed Size                  2212656 bytes
Variable Size             256552144 bytes
ASM Cache                  25165824 bytes
SQL> ALTER DISKGROUP DG1 ADD DISK '/dev/raw/raw8';
ALTER DISKGROUP DG1 ADD DISK '/dev/raw/raw8'
*
ERROR at line 1:
ORA-15032: not all alterations performed
ORA-15075: disk(s) are not visible cluster-wide


[ 本帖最后由 swgsw 于 2012-4-26 17:31 编辑 ]

回复 只看该作者 道具 举报

4#
发表于 2012-4-25 10:27:47
就 脚本输出看

Diskgroup #3 确实只有1MB Free

考虑收缩 如 TEMP.262.771948289 这样的临时文件
考虑resize 那些大的有较多Free Space的permanent datafile

如果 上述手段无法获得更多空间, 仍需要扩展Diskgroup ,即考虑 给该DiskGroup加入新的Asm Disk 或者 resize原ASM DIsk

回复 只看该作者 道具 举报

3#
发表于 2012-4-25 08:37:37
SQL> select group_kfdat "group #",
  2          number_kfdat "disk #",
  3          count(*) "# AU's"
  4   from x$kfdat a
  5   where v_kfdat = 'V'
  6   and not exists (select *
  7                   from x$kfdat b
  8                   where a.group_kfdat = b.group_kfdat
  9                   and a.number_kfdat = b.number_kfdat
10                   and b.v_kfdat = 'F')
11   group by GROUP_KFDAT, number_kfdat;

   group #     disk #     # AU's
---------- ---------- ----------
         3          1      51520
         
         
         
select disk_number "1" , free_mb
from v$asm_disk
where group_number = 3
order by 2;

          1    FREE_MB
---------- ----------
         1          0
         0          1
         
         
         
SQL> set linesize 200 pagesize 999 newpage;
SQL> select name, file_number
  2   from v$asm_alias
  3   where group_number in (select group_kffxp
  4                                              from x$kffxp
  5                                              where group_kffxp=3
  6                                              and disk_kffxp in (0,1)
  7                                              and au_kffxp != 4294967294
  8                                              and number_kffxp >= 256)
  9   and file_number in (select number_kffxp
10                                     from x$kffxp
11                                     where group_kffxp=3
12                                     and disk_kffxp in (0,1)
13                                     and au_kffxp != 4294967294
14                                     and number_kffxp >= 256)
15   and system_created='Y';

NAME                                                                   FILE_NUMBER
---------------------------------------------------------------------- -----------
Current.256.771948275                                                          256
group_1.257.771948275                                                         257
group_2.258.771948275                                                         258
SYSTEM.259.771948277                                                        259
SYSAUX.260.771948283                                                        260
UNDOTBS1.261.771948289                                                   261
TEMP.262.771948289                                                             262
UNDOTBS2.263.771948301                                                   263
UNDOTBS3.264.771948303                                                   264
UNDOTBS4.265.771948305                                                   265
USERS.266.771948307                                                          266
group_7.267.771952507                                                         267
group_8.268.771952509                                                          268
group_5.269.771952509                                                          269
group_6.270.771952509                                                          270
group_3.271.771952511                                                          271
group_4.272.771952511                                                          272
spfile.273.771952511                                                               273
HISDATA02.274.772141809                                                    274
BUSINESS01.275.774545421                                                  275
BUSINESS02.276.774545633                                                  276
BUSINESS03.277.774545925                                                  277
BUSINESS04.278.774545949                                                   278
DATA01.279.774546239                                                           279
DATA02.280.774546401                                                           280
DATA03.281.774546523                                                           281
DATA04.282.774546581                                                           282
DATA05.283.774546651                                                           283
INDEX04.284.774546921                                                          284
HISDATA05.285.775327767                                                      285
HISDATA04.286.775327829                                                      286

31 rows selected.

回复 只看该作者 道具 举报

2#
发表于 2012-4-24 22:33:17
首先 应当检查 DISKGROUP 的实际使用状况, 以及那些 文件耗费了最多的ASM disk space:

在ASM instance下运行以下脚本,并贴出输出:
注意替换 脚本中*** disk group number ***  和*** disk list from #1 above ***的内容
  1. select group_kfdat "group #",
  2.        number_kfdat "disk #",
  3.        count(*) "# AU's"
  4. from x$kfdat a
  5. where v_kfdat = 'V'
  6. and not exists (select *
  7.                 from x$kfdat b
  8.                 where a.group_kfdat = b.group_kfdat
  9.                 and a.number_kfdat = b.number_kfdat
  10.                 and b.v_kfdat = 'F')
  11. group by GROUP_KFDAT, number_kfdat;


  12. select disk_number "Disk #", free_mb
  13. from v$asm_disk
  14. where group_number = *** disk group number ***
  15. order by 2;


  16. select name, file_number
  17. from v$asm_alias
  18. where group_number in (select group_kffxp
  19.                                            from x$kffxp
  20.                                            where group_kffxp=*** disk group number ***
  21.                                            and disk_kffxp in (*** disk list from #1 above ***)
  22.                                            and au_kffxp != 4294967294
  23.                                            and number_kffxp >= 256)
  24. and file_number in (select number_kffxp
  25.                                   from x$kffxp
  26.                                   where group_kffxp=*** disk group number ***
  27.                                   and disk_kffxp in (*** disk list from #1 above ***)
  28.                                   and au_kffxp != 4294967294
  29.                                   and number_kffxp >= 256)
  30. and system_created='Y';
复制代码

回复 只看该作者 道具 举报

您需要登录后才可以回帖 登录 | 注册

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-12-25 00:49 , Processed in 0.051108 second(s), 22 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569