归档日志进程是一个可选的进程,该进程并不是在实例启动时启动,此进程的作用是将写满的重做日志文件的数据写到一个归档日志中,这个归档日志是用来介质故障时的数据库修复。生产环境强烈建议开启归档。 我们使用ps -ef | grep oracle 查看下oracle的经典的几个进程【系统监控进程、进程监控进程、重做日志写进程、数据库写进程、检查点进程】,发现没有归档进程??这是因为我们数据库没有开启归档,那么如何开启归档?? 登录sqlplus,开启归档 1.shutdown immediate; 2.startup mount; 3.alter database archivelog; 4.alter database open; 5.archive log list; 开启归档后,再此查看下归档进程是否存在 ps -ef | grep oracle 知道开归档之外还要知道如何关闭归档?? 关闭数据库 1.shutdown immediate 2.startup mount 3.alter database noarchivelog 4.archive log list 查看归档是否开启 查找归档文件路径 show parameter log_archive_format;查看归档日志格式,格式含义官方解释如下 %s ——log sequence number; 日志序列号 %t —— thread number; 重做线程编号 %r —— resetlogs ID that ensures unique names are constructed for the archived log files across multiple incarnations of the database; RESETLOGS的ID值 show parameter DB_RECOVERY_FILE_DEST;查看归档目录 归档目录里可以看到之前的已经归档的目录文件 那么想问菜鸡哥哥,归档什么时候会生成呢? 自动归档:当重做日志写满的时候,会面临2种选择,1:把以前的redo logfile擦除重新写;2:把写入的重做日志备份归档,再重新写; 通过使用归档日志(开启归档模式),可以保留所有重做历史记录,当数据库处于ARCHIVELOG模式并进行日志切换式,后台进程ARCH会将重做日志的内容保存到归档日志中。 手动归档:dba必须手动执行归档命令进行归档,ALTER SYSTEM ARCHIVELOG ALL;