Oracle 11g笔记——归档

来源:互联网 发布:淘宝抽奖活动是真的吗 编辑:程序博客网 时间:2024/06/05 16:56
一、归档的概念
归档:Oracle把填满的联机日志文件复制到一个或多个路径的过程。生成的文件叫归档日志文件(Archived Redo Log)。存放归档日志文件的路径叫归档路径。
     只有数据库运行在归档模式下才能进行归档,归档的过程一般由归档进程自动完成,一个数据库可以有一个或多个归档进程,归档进程的数量由初始化参数LOG_ARCHIVE_MAX_PROCESSES控制。
分类:非归档模式和归档模式
              1、非归档模式
若打开数据库运行在非归档模式,则联机日志文件不需要归档。当发生日志切换时,如果联机日志文件的状态为INACTIVE,日志书写进程(LGWR)将直接重用(覆盖)联机日志文件。
                 非归档模式只保护实例失败,不保护介质失败,当发生介质损坏时,DBA需要还原数据库的全备份,然后利用归档日志文件进行恢复,但非归档模式中对联机日志不做归档,因此会有数据的丢失。
                 在非归档模式下,DBA不能执行数据库的热备份(数据库运行时执行的备份),但DBA可以关闭数据库,执行数据库的冷备份。
                  
              2、归档模式
                 若打开数据库运行在归档模式:若联机日志文件没有归档,日志写进程不能重用(覆盖)联机日志文件。DBA可以启动归档进程,让它们自动完成联机日志文件的归档,DBA也可以手动归档联机日志文件。
归档路径参数:LOG_ARCHIVE_DEST、LOG_ARCHIVE_DEST_n(n从1到10)
 


二、例子
1、将数据库切换至归档模式
           (1)管理员身份连接数据库,查看归档状态:SQL>ARCHIVE LOG LIST;
           (2)关闭数据库:SQL>SHUTDOWN IMMEDIATE;
           (3)至目录%oracle_home%/dbs下修改初始化参数文件(PFILE)
                若不存在PFILE,需要根据SPFILE生成PFILE
                SQL>CREATE PFILE='....' FROM SPFILE='...'
                在PFILE文件中定义归档日志文件名的格式,如:
                LOG_ARCHIVE_FORMAT='log%t_%s_%r.arc'
                设置数据库为归档模式
           (4)重建SPFILE
                SQL>CREATE SPFILE='....' FROM PFILE='...'
           (5)启动数据库至MOUNT状态:SQL>STARTUP MOUNT
           (6)设置归档路径
                SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='LOCATION=/WXXRDB/ARCH1' SCOPE=BOTH;
                SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='LOCATION=/WXXRDB/ARCH2' SCOPE=BOTH;
                注:可以设置多个归档路径,LOCATION为关键字,指定归档路径的位置;SCOPE=BOTH表示永久性修改归档路径,并立即生效。
           (7)把数据库切换至归档模式:SQL>ALTER DATABASE ARCHIVELOG
           (8)查看数据库是否在归档模式:SQL>ARCHIVE LOG LIST;
                查看归档路径是否设置正确:SQL>SHOW PARAMETER LOG_ARCHIVE_DEST
           (9)打开数据库:SQL>ALTER DATABASE OPEN;


2、将数据库切换至非归档模式
           (1)管理员身份连接数据库,查看归档状态:SQL>ARCHIVE LOG LIST;
           (2)关闭数据库:SQL>SHUTDOWN IMMEDIATE;
           (3)启动数据库至MOUNT状态:SQL>STARTUP MOUNT
           (4)把数据库切换至归档模式:SQL>ALTER DATABASE NOARCHIVELOG
           (5)查看数据库是否在归档模式:SQL>ARCHIVE LOG LIST;
           (6)打开数据库:SQL>ALTER DATABASE OPEN;


3、手工归档联机日志文件
           (1)管理员身份连接数据库
           (2)手工归档日志文件
                 a.归档所有已经填满的联机日志文件
                   SQL>ALTER SYSTEM ARCHIVE LOG ALL;
                 b.归档当前的联机日志文件(该日志可能还没有填满)
                   SQL>ALTER SYSTEM ARCHIVE LOG CURRENT;
4、查看是否为归档模式:
           SQL>ARCHIVE LOG LIST;
           或
           SQL>select name,log_mode from v$database;


5、查看产生了哪些归档日志文件
           SQL>select name,sequence#,completion_time from v$archived_log order by sequence# desc;


6、查询启动了哪些归档进程
           SQL>select * from v$bgprocess where paddr<>'00' and name like '%ARC%';




0 0
原创粉丝点击