Oracle的日志归档相关问题研究---------一:
1、 查看日志是否归档
SQL> SELECT LOG_MODE FROM V$DATABASE;
LOG_MODE
------------
NOARCHIVELOG
2、 修改数据库为归档模式
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE例程已经关闭。
SQL> startup mount
ORACLE例程已经启动。
Total System Global Area 1.0255E+10 bytes
Fixed Size 2184632 bytes
Variable Size 4596959816 bytes
Database Buffers 5637144576 bytes
Redo Buffers 18923520 bytes
数据库装载完毕。
SQL> ALTER DATABASE ARCHIVELOG;
数据库已更改。
SQL> SELECT log_mode FROM V$DATABASE;
LOG_MODE
------------
ARCHIVELOG
3、 将归档模式改成不归档
SQL> SHUTDOWN IMMEDIATE
数据库已经关闭。
已经卸载数据库。
ORACLE例程已经关闭。
SQL> startup mount
ORACLE例程已经启动。
Total System Global Area 1.0255E+10 bytes
Fixed Size 2184632 bytes
Variable Size 4596959816 bytes
Database Buffers 5637144576 bytes
Redo Buffers 18923520 bytes
数据库装载完毕。
SQL> alter database noarchivelog;
数据库已更改。
SQL> alter database open
2 /
数据库已更改。
SQL> SELECT log_mode FROM V$DATABASE;
LOG_MODE
------------
NOARCHIVELOG
日志文件默认存放在flash_recovery_area里保存,通过recover参数,查看路径和空间大小
SQL> show parameter recover
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string D:\app\Administrator\flash_rec overy_area
db_recovery_file_dest_size big integer 3912M
recovery_parallelism integer 0
还有个参数为db_recover
SQL> show parameter db_recover
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string D:\app\Administrator\flash_rec overy_area
db_recovery_file_dest_size big integer 3912M
个人理解recover和db_recover参数的区别是,前者是针对实例的,后者是针对数据库的,所以后者没有recovery_parallelism这个和实例有关的参数,个人理解,仅供参考;
如果你将日志模式设置成归档,当时没有修改路径和db_recovery_file_dest_size参数,数据库运行一段时间就会报ORA-00257: archiver error. Connect internal only, until freed.错误,此时查看V$FLASH_RECOVERY_AREA_USAGE
视图:
SQL> select * from v$flash_recovery_area_usage;
FILE_TYPE PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES
-------------------- ------------------ ------------------------- ---------------
CONTROL FILE 0 0 0
REDO LOG 0 0 0
ARCHIVED LOG 98.99 0 58
BACKUP PIECE 0 0 0
IMAGE COPY 0 0 0
FLASHBACK LOG 0 0 0
FOREIGN ARCHIVED LOG 0 0 0
已选择7行。
归档文件将使用了98.99%的空间,已经没有空间再存放归档日志了,此时数据库就hang住了,解决办法就是修改db_recovery_file_dest_size的大小或者是清除一些不用的归档日志。
注:在oracle11.2.0版本以上已经将V$FLASH_RECOVERY_AREA_USAGE
废弃掉了,取而代之的是
V$RECOVERY_AREA_USAGE这个视图;
V$RECOVERY_AREA_USAGE
V$RECOVERY_AREA_USAGE displays usage information about recovery areas.
Column |
Datatype |
Description |
FILE_TYPE |
VARCHAR2(20) |
File type:
|
PERCENT_SPACE_USED |
NUMBER |
Percent of the recovery area that is in use |
PERCENT_SPACE_RECLAIMABLE |
NUMBER |
Percent of the recovery area that is reclaimable |
NUMBER_OF_FILES |
NUMBER |
Number of files in the recovery area |
4、 怎么修改归档文件的路径:
SQL> show parameter LOG_ARCHIVE_DEST;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest string
log_archive_dest_1 string
log_archive_dest_10 string
log_archive_dest_11 string
log_archive_dest_12 string
log_archive_dest_13 string
log_archive_dest_14 string
log_archive_dest_15 string
log_archive_dest_16 string
log_archive_dest_17 string
log_archive_dest_18 string
log_archive_dest_state_10 string enable
log_archive_dest_state_11 string enable
log_archive_dest_state_12 string enable
log_archive_dest_state_13 string enable
log_archive_dest_state_14 string enable
log_archive_dest_state_15 string enable
log_archive_dest_state_16 string enable
log_archive_dest_state_17 string enable
log_archive_dest_state_18 string enable
log_archive_dest_state_19 string enable
log_archive_dest_state_2 string enable
log_archive_dest.和LOG_ARCHIVE_DEST_n区别
使用log_archive_dest参数最多可设置2个归档路径,通过log_archive_dest设置一个主归档路径,通过LOG_ARCHIVE_DUPLEX_DEST 参
数设置一个从归档路径。所有的路径必须是本地的,该参数的设置格式如下:
LOG_ARCHIVE_DEST = '/disk1/archive'
LOG_ARCHIVE_DUPLEX_DEST = '/disk2/archive'
LOG_ARCHIVE_DEST_n 参数可以设置最多10个不同的归档路径,通过设置关键词location或service,该参数指向的路径可以是本地或远
程的。
LOG_ARCHIVE_DEST_1 = 'LOCATION = /disk1/archive'
LOG_ARCHIVE_DEST_2 = 'LOCATION = /disk2/archive'
LOG_ARCHIVE_DEST_3 = 'LOCATION = /disk3/archive'
如果要归档到远程的standby数据库,可以设置service:LOG_ARCHIVE_DEST_4 = 'SERVICE = standby1'
可见,这两个参数都可以设置归档路径,不同的是后者可以设置远程归档到standby端,而前者只能归档到本地,且最多同时归档到2个
路径下。
下篇地址:http://blog.csdn.net/cupid1102/article/details/7899289
-------------------------未完待续-------------------------------