Maison  >  Article  >  base de données  >  Oracle RMAN清除归档日志

Oracle RMAN清除归档日志

WBOY
WBOYoriginal
2016-06-07 15:13:411407parcourir

欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入 Oracle RMAN清除归档日志 1、清除归档日志的方式 a、手动删除 使用rm 或者find方式来删除,通过该方式删除之后,在RMAN下可以通过 crosscheck archivelog all 校验归档是否失效,如下面的操作: 1 2

欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入

  Oracle RMAN清除归档日志

  1、清除归档日志的方式

  a、手动删除

  使用rm 或者find方式来删除,通过该方式删除之后,在RMAN下可以通过 crosscheck archivelog all 校验归档是否失效,如下面的操作:

1

2

3

   rm -rf arch_816906485_1_10.arc 

find /u02/database/GOBO1/archive/ -ctime +0 -delete

RMAN> crosscheck archivelog all

  b、使用RMAN方式清除

  RMAN清除方式会自动清除磁盘上的归档日志文件,同时会释放控制文件中对应的归档日志的归档信息。

  可以基于不同的条件来清除归档日志,如基于SCN,基于SEQUENCE,基于TIME等方式。

  对于上述的三种方式又可以配合from, until, between .. and .. 等等子句来限定范围,方式灵活多变。

  下面的命令用于校验归档日志的有效性,列出无效的归档日志,以及以何种方式清除归档日志,列出几种常用的:

1

2

3

4

5

6

7

8

crosscheck archivelog all;                             --->校验日志的可用性

        list expired archivelog all;                           --->列出所有失效的归档日志 

        delete archivelog until sequence 16;                   --->删除log sequence为16及16之前的所有归档日志

        delete archivelog all completed before 'sysdate-7';    --->删除系统时间7天以前的归档日志,不会删除闪回区有效的归档日志

        delete archivelog all completed before 'sysdate - 1'--->同上,1天以前的

        delete archivelog from <font face="NSimsun">time</font> 'sysdate-1';               --->注意这个命令,删除系统时间1天以内到现在的归档日志

        delete noprompt archivelog all completed before 'sysdate';   --->该命令清除所有的归档日志

        delete noprompt archivelog all;                              --->同上一命令

  2、演练使用RMAN清除归档日志

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

<font face="NSimsun">[python]  </font>

<font face="NSimsun">robin@SZDB:~> export ORACLE_SID=GOBO1   </font>

<font face="NSimsun">robin@SZDB:~> rman target /   </font>

<font face="NSimsun">   </font> 

Recovery Manager: Release 10.2.0.3.0 - Production on <font face="NSimsun">Thu Jul 11 17:07:00 2013   </font>

<font face="NSimsun">   </font> 

Copyright (c) 1982, 2005, Oracle.  All <font face="NSimsun">rights reserved.   </font>

<font face="NSimsun">   </font> 

connected to target database: GOBO1 (DBID=733951103)  

<font face="NSimsun">   </font> 

<font face="NSimsun">RMAN> host;   </font>

<font face="NSimsun">   </font> 

robin@SZDB:~> cd /u02/database/GOBO1/archive/  

robin@SZDB:/u02/database/GOBO1/archive> ls        

<font face="NSimsun">arch_816906485_1_10.arc      arch_816906485_1_12.arc     </font>

<font face="NSimsun">arch_816906485_1_11.arc      arch_816906485_1_13.arc     </font>

    ............  

<font face="NSimsun">   </font> 

robin@SZDB:/u02/database/GOBO1/archive> rm -rf arch_816906485_1_10.arc arch_816906485_1_11.arc arch_816906485_1_12.arc  

robin@SZDB:/u02/database/GOBO1/archive> exit;  

<font face="NSimsun">exit                                            </font>

<font face="NSimsun">host command complete                           </font>

<font face="NSimsun">                                                </font> 

RMAN> crosscheck archivelog all;                   

<font face="NSimsun">released channel: ORA_DISK_1                                                                          </font>

<font face="NSimsun">allocated channel: ORA_DISK_1                                                                         </font>

<font face="NSimsun">channel ORA_DISK_1: sid=1075 devtype=DISK                                                             </font>

archive log filename=/u02/database/GOBO1/archive/arch_816906485_1_9.arc recid=2085 stamp=817211151   

validation failed for <font face="NSimsun">archived log                                                                    </font>

archive log filename=/u02/database/GOBO1/archive/arch_816906485_1_10.arc recid=2086 stamp=817250793  

      ..............  

validation succeeded for <font face="NSimsun">archived log                                                                 </font>

archive log filename=/u02/database/GOBO1/archive/arch_816906485_1_90.arc recid=2166 stamp=820458049  

<font face="NSimsun">Crosschecked 83 objects                       </font>

<font face="NSimsun">   </font> 

RMAN> list expired archivelog all;  

<font face="NSimsun">   </font> 

List of <font face="NSimsun">Archived Log Copies   </font>

<font face="NSimsun">Key</font>     Thrd Seq     S Low Time          <font face="NSimsun">Name</font>  

<font face="NSimsun">------- ---- ------- - ----------------- ----   </font>

2086    1    10      X 20130604 11:05:51 /u02/database/GOBO1/archive/arch_816906485_1_10.arc  

2087    1    11      X 20130604 22:06:17 /u02/database/GOBO1/archive/arch_816906485_1_11.arc  

2088    1    12      X 20130605 19:30:53 /u02/database/GOBO1/archive/arch_816906485_1_12.arc  

<font face="NSimsun">   </font> 

RMAN> delete archivelog until sequence <font face="NSimsun">16;   </font>

<font face="NSimsun">   </font> 

<font face="NSimsun">released channel: ORA_DISK_1   </font>

<font face="NSimsun">allocated channel: ORA_DISK_1   </font>

<font face="NSimsun">channel ORA_DISK_1: sid=1075 devtype=DISK   </font>

<font face="NSimsun">   </font> 

List of <font face="NSimsun">Archived Log Copies   </font>

<font face="NSimsun">Key</font>     Thrd Seq     S Low Time          <font face="NSimsun">Name</font>  

<font face="NSimsun">------- ---- ------- - ----------------- ----   </font>

2084    1    8       A 20130604 09:53:17 /u02/database/GOBO1/archive/arch_816906485_1_8.arc  

                        .................  

2092    1    16      A 20130607 22:03:23 /u02/database/GOBO1/archive/arch_816906485_1_16.arc  

<font face="NSimsun">   </font> 

Do you really want to <font face="NSimsun">delete</font> the above objects (enter YES or NO)? yes  

          ...............  

<font face="NSimsun">deleted archive log   </font>

archive log filename=/u02/database/GOBO1/archive/arch_816906485_1_16.arc recid=2092 stamp=817516861  

<font face="NSimsun">Deleted 9 objects   </font>

<font face="NSimsun">   </font> 

RMAN> delete archivelog all completed before 'sysdate-7';  

<font face="NSimsun">   </font> 

<font face="NSimsun">released channel: ORA_DISK_1   </font>

<font face="NSimsun">allocated channel: ORA_DISK_1   </font>

<font face="NSimsun">channel ORA_DISK_1: sid=1075 devtype=DISK   </font>

<font face="NSimsun">   </font> 

List of <font face="NSimsun">Archived Log Copies   </font>

<font face="NSimsun">Key</font>     Thrd Seq     S Low Time          <font face="NSimsun">Name</font>  

<font face="NSimsun">------- ---- ------- - ----------------- ----   </font>

2093    1    17      A 20130608 00:01:00 /u02/database/GOBO1/archive/arch_816906485_1_17.arc  

2094    1    18      A 20130608 18:00:17 /u02/database/GOBO1/archive/arch_816906485_1_18.arc  

            ...........  

<font face="NSimsun">deleted archive log   </font>

archive log filename=/u02/database/GOBO1/archive/arch_816906485_1_72.arc recid=2148 stamp=819847035  

<font face="NSimsun">Deleted 56 objects               </font>

<font face="NSimsun">   </font> 

RMAN> list copy of <font face="NSimsun">database</font> archivelog all;  

<font face="NSimsun">   </font> 

<font face="NSimsun">   </font> 

List of <font face="NSimsun">Archived Log Copies   </font>

<font face="NSimsun">Key</font>     Thrd Seq     S Low Time          <font face="NSimsun">Name</font>  

<font face="NSimsun">------- ---- ------- - ----------------- ----   </font>

2149    1    73      A 20130703 23:17:13 /u02/database/GOBO1/archive/arch_816906485_1_73.arc  

2150    1    74      A 20130704 22:00:19 /u02/database/GOBO1/archive/arch_816906485_1_74.arc  

2151    1    75      A 20130704 22:04:40 /u02/database/GOBO1/archive/arch_816906485_1_75.arc  

                       ...............  

2164    1    88      A 20130709 23:19:34 /u02/database/GOBO1/archive/arch_816906485_1_88.arc  

2165    1    89      A 20130710 13:00:34 /u02/database/GOBO1/archive/arch_816906485_1_89.arc  

2166    1    90      A 20130710 22:02:44 /u02/database/GOBO1/archive/arch_816906485_1_90.arc  

<font face="NSimsun">   </font> 

RMAN> delete archivelog from <font face="NSimsun">time</font> 'sysdate-1';  

<font face="NSimsun">   </font> 

<font face="NSimsun">released channel: ORA_DISK_1   </font>

<font face="NSimsun">allocated channel: ORA_DISK_1   </font>

<font face="NSimsun">channel ORA_DISK_1: sid=1075 devtype=DISK   </font>

<font face="NSimsun">   </font> 

List of <font face="NSimsun">Archived Log Copies   </font>

<font face="NSimsun">Key</font>     Thrd Seq     S Low Time          <font face="NSimsun">Name</font>  

<font face="NSimsun">------- ---- ------- - ----------------- ----   </font>

2165    1    89      A 20130710 13:00:34 /u02/database/GOBO1/archive/arch_816906485_1_89.arc  

2166    1    90      A 20130710 22:02:44 /u02/database/GOBO1/archive/arch_816906485_1_90.arc  

<font face="NSimsun">   </font> 

Do you really want to <font face="NSimsun">delete</font> the above objects (enter YES or NO)? yes  

<font face="NSimsun">deleted archive log   </font>

archive log filename=/u02/database/GOBO1/archive/arch_816906485_1_89.arc recid=2165 stamp=820447373  

<font face="NSimsun">deleted archive log   </font>

archive log filename=/u02/database/GOBO1/archive/arch_816906485_1_90.arc recid=2166 stamp=820458049  

<font face="NSimsun">Deleted 2 objects   </font>

<font face="NSimsun">   </font> 

RMAN> delete archivelog all completed before 'sysdate - 1';  

<font face="NSimsun">   </font> 

<font face="NSimsun">released channel: ORA_DISK_1   </font>

<font face="NSimsun">allocated channel: ORA_DISK_1   </font>

<font face="NSimsun">channel ORA_DISK_1: sid=1075 devtype=DISK   </font>

<font face="NSimsun">   </font> 

List of <font face="NSimsun">Archived Log Copies   </font>

<font face="NSimsun">Key</font>     Thrd Seq     S Low Time          <font face="NSimsun">Name</font>  

<font face="NSimsun">------- ---- ------- - ----------------- ----   </font>

2149    1    73      A 20130703 23:17:13 /u02/database/GOBO1/archive/arch_816906485_1_73.arc  

              .......................  

2164    1    88      A 20130709 23:19:34 /u02/database/GOBO1/archive/arch_816906485_1_88.arc  

<font face="NSimsun">   </font> 

Do you really want to <font face="NSimsun">delete</font> the above objects (enter YES or NO)? yes  

     ................  

archive log filename=/u02/database/GOBO1/archive/arch_816906485_1_88.arc recid=2164 stamp=820414835  

<font face="NSimsun">Deleted 16 objects   </font>

<font face="NSimsun">   </font> 

RMAN> sql " alter system archive log current";  

<font face="NSimsun">   </font> 

sql statement:  alter system archive log current  

<font face="NSimsun">   </font> 

RMAN> list copy of archivelog all;  

<font face="NSimsun">   </font> 

<font face="NSimsun">   </font> 

List of <font face="NSimsun">Archived Log Copies   </font>

<font face="NSimsun">Key</font>     Thrd Seq     S Low Time          <font face="NSimsun">Name</font>  

<font face="NSimsun">------- ---- ------- - ----------------- ----   </font>

2167    1    91      A 20130711 01:00:48 /u02/database/GOBO1/archive/arch_816906485_1_91.arc  

<font face="NSimsun">   </font> 

RMAN> delete noprompt archivelog all completed before 'sysdate';  

<font face="NSimsun">   </font> 

<font face="NSimsun">released channel: ORA_DISK_1   </font>

<font face="NSimsun">allocated channel: ORA_DISK_1   </font>

<font face="NSimsun">channel ORA_DISK_1: sid=1075 devtype=DISK   </font>

<font face="NSimsun">   </font> 

List of <font face="NSimsun">Archived Log Copies   </font>

<font face="NSimsun">Key</font>     Thrd Seq     S Low Time          <font face="NSimsun">Name</font>  

<font face="NSimsun">------- ---- ------- - ----------------- ----   </font>

2167    1    91      A 20130711 01:00:48 /u02/database/GOBO1/archive/arch_816906485_1_91.arc  

<font face="NSimsun">deleted archive log   </font>

archive log filename=/u02/database/GOBO1/archive/arch_816906485_1_91.arc recid=2167 stamp=820517964  

<font face="NSimsun">Deleted 1 objects</font>

  3、清除归档日志简单的shell脚本

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

<font face="NSimsun">[python]  </font>

<font face="NSimsun">#对于RAC环境或者ASM需要清除archive,使用shell脚本调用RMAN是比较妥当的方式   </font>

<font face="NSimsun">#其次,如果你的archive位于闪回区,制定合理的保留策略,也可以让Oracle自动老化无用的归档日志   </font>

<font face="NSimsun">robin@SZDB:~/dba_scripts/custom/bin> more clean_arch.sh    </font>

# +-------------------------------------------------------+  

# +    Clean archived log as specified time               <font face="NSimsun">|   </font>

<font face="NSimsun"># +    Author : Robinson                                  |   </font>

# +    Blog   :<font face="NSimsun">|   </font>

<font face="NSimsun"># +    Usage  :                                           |    </font>

<font face="NSimsun"># +         clean_arch.sh $ORACLE_SID                     |   </font>

# +-------------------------------------------------------+  

<font face="NSimsun">#   </font>

<font face="NSimsun">#!/bin/bash    </font>

# --------------------  

<font face="NSimsun"># Define variable   </font>

# --------------------  

<font face="NSimsun">   </font> 

if [ -f ~/.bash_profile ]; then  

<font face="NSimsun">. ~/.bash_profile   </font>

<font face="NSimsun">fi   </font>

<font face="NSimsun">   </font> 

if [ -z "${1}" ];then  

    echo "Usage: "  

    echo "      `basename $0` ORACLE_SID"  

    exit 1  

<font face="NSimsun">fi   </font>

<font face="NSimsun">   </font> 

<font face="NSimsun">ORACLE_SID=$1;                 export ORACLE_SID    </font>

<font face="NSimsun">$ORACLE_HOME/bin/rman log=/users/robin/log/rman.log </font>

<font face="NSimsun">connect</font> <font face="NSimsun">target /   </font>

<font face="NSimsun">run{   </font>

crosscheck archivelog all;  

<font face="NSimsun">delete</font> noprompt expired archivelog all;  

<font face="NSimsun">delete</font> noprompt archivelog all completed before 'sysdate - 1';  

<font face="NSimsun">}   </font>

<font face="NSimsun">exit;   </font>

<font face="NSimsun">EOF</font>

  exit

Oracle RMAN清除归档日志

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn