oracle 归档日志学习(一)
归档日志
1、查询数据是否为归档模式
select log_mode from v$database;
如果查询结果如下图,说明数据库当前是归档模式
如查询结果如下图,说明是数据库当前是非归档模式
2、开启数据库归档模式
开启数据归档模式,需要在 启动 oracle mount 模式下才能启动,所以需要停掉现启动的oracle ,使用mount模式启动,然后启动归档日志
- shutdown immediate 停掉现有数据库
- startup mount 启动oracle (mount 模式)
- alter database archivelog 开启数据库归档模式,反之(alter database noarchivelog 关闭数据库库归档模式)
- alter database open 启动数据库,归档设置完成
3、查看归档日志信息
archive log list
4、查看归档日志默认存储路径
show parameter db_recovery_file_dest 或 show parameter recovery
默认路径为:($ORACLE_BASE/flash_recovery_area)
5、查看归档日志闪回占用情况
select * from v$flash_recovery_area_usage;
6、查看归档日志文件数量
select * from v$recovery_file_dest;
7、归档日志文件修改
当出现ORA-00257: archiver error. Connect internal only, until freed错误连不上数据的时候
,如果数据库归档目标为USE_DB_RECOVERY_FILE_DEST且DB_RECOVERY_FILE_DEST目录为默认闪回空间目录时
方法一可采取增大闪回空间大小方式:
alter system set db_recovery_file_dest_size=8G scope=both;
方法二修改归档日志的路径
alter system set db_recovery_file_dest='location=E:\oracle_log' scope=both;
方法三修改归档日志的路径,将归档日志放到其他不受限制的路径下来解决这个问题,可通过下面的SQL来修改归档日志的存放路径
alter system set log_archive_dest_1=’location=E:\oracle_log’;
如果修改了log_archive_dest,可以查看 show parameter log_archive_desc 归档日志文件,查看归档模式情况,archive log list;,如果修改了归档日志不受限制,需要alter system switch logfile;
查看archiv log所在位置
show parameter log_archive_dest;
查看归档模式
archive log list;
alter system switch logfile;
通过切换日志,查看归档路径下是否有归档日志产生来验证归档路径设置是否正确,切换日志命令如下
alter system switch logfile;
方法二和方法三都是修改归档文件存储路径,具体区别是什么呢,要想理解具体区别就要先理解归档日志路径三个参数
1、DB_RECOVERY_FILE_DEST:闪回恢复区路径
show parameter db_recovery_file_dest;
2、LOG_ARCHIVE_DEST:LOG_ARCHIVE_DEST:指定归档文件存放的路径,该路径只能是本地磁盘,默认为’’。
show parameter LOG_ARCHIVE_DEST;
3、LOG_ARCHIVE_DEST_n:指定归档文件存放的路径,Oracle最多支持把日志文件归档到31个地方,n从1到31。归档地址可
以为本地磁盘,或者网络设备。
三个参数区别如下
1、 如果设置了DB_RECOVERY_FILE_DEST,就不能设置LOG_ARCHIVE_DEST,默认的归档日志存放于DB_RECOVERY_FILE_DEST
指定的闪回恢复区中。可以设置LOG_ARCHIVE_DEST_n,如果这样,那么归档日志不再存放于DB_RECOVERY_FILE_DEST中,
而是存放于LOG_ARCHIVE_DEST_n设置的目录中。如果想要归档日志继续存放在DB_RECOVERY_FILE_DEST中,可以通过如下
命令:alter system set log_archive_dest_1=’location=USE_DB_RECOVERY_FILE_DEST’;
2、 如果设置了LOG_ARCHIVE_DEST,就不能设置LOG_ARCHIVE_DEST_n和DB_RECOVERY_FILE_DEST。如果设置了
LOG_ARCHIVE_DEST_n,就不能设置LOG_ARCHIVE_DEST。也就是说,LOG_ARCHIVE_DEST参数和DB_RECOVERY_FILE_DEST、
LOG_ARCHIVE_DEST_n都不共存。而DB_RECOVERY_FILE_DEST和LOG_ARCHIVE_DEST_n可以共存。
3、 LOG_ARCHIVE_DEST只能与LOG_ARCHIVE_DUPLEX_DEST共存。这样可以设置两个归档路径。LOG_ARCHIVE_DEST设置一个
主归档路径,LOG_ARCHIVE_DUPLEX_DEST设置一个从归档路径。所有归档路径必须是本地的。
4、 如果LOG_ARCHIVE_DEST_n设置的路径不正确,那么Oracle会在设置的上一级目录归档。比如设置
LOG_ARCHIVE_DEST_1=’location=C:\archive1’,而OS中并没有archive1这个目录,那么Oracle会在C盘归档。
8、查看archive log 文件路径
show parameter log_archive_desc