以下内容在11G环境为基础的,10g版本会有一些差别,比如开启归档需要多设置参数log_archive_start=true,10g环境可以点击文章最后链接访问其他别的文章。
开启归档日志后应该做一个全库备份的,否则没有备份文件,开启归档日志是没有意义的。
查看归档模式状态:
SQL> archive log list;
数据库日志模式 非存档模式
自动存档 禁用
存档终点 USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列 47
当前日志序列 49
查看日志状态:
SQL> select group#,status,archived from v$log;
GROUP# STATUS ARCHIVED
---------- ----------------- -------------------------------
1 CURRENT NO
2 ACTIVE NO
3 ACTIVE NO
开启归档过程:
1.关库
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
2.启动到mount
SQL> startup mount
ORACLE 例程已经启动。
Total System Global Area 780824576 bytes
Fixed Size 2217424 bytes
Variable Size 599788080 bytes
Database Buffers 176160768 bytes
Redo Buffers 2658304 bytes
数据库装载完毕。
3.开启归档
SQL> alter database archivelog;
数据库已更改。
4.数据库启动到open
SQL> alter database open;
数据库已更改。
5.验证:
SQL> archive log list;
数据库日志模式 存档模式
自动存档 启用
存档终点 USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列 1
下一个存档日志序列 3
当前日志序列 3
禁用归档的过程:
1.关库:
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
2.启动到mount
SQL> startup mount
ORACLE 例程已经启动。
Total System Global Area 780824576 bytes
Fixed Size 2217424 bytes
Variable Size 599788080 bytes
Database Buffers 176160768 bytes
Redo Buffers 2658304 bytes
数据库装载完毕。
3.禁用归档:
SQL> alter database noarchivelog;
数据库已更改。
4.数据库启动到 open:
SQL> alter database open;
数据库已更改。
5.验证:
SQL> archive log list;
数据库日志模式 非存档模式
自动存档 禁用
存档终点 USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列 2
当前日志序列 4
修改归档目录:
1.修改参数:
SQL> alter system set log_archive_dest_1='location=/home/oracle/files' scope=spfile;
系统已更改。
*如果需要多个归档位置可使用如下命令;
SQL> alter system set log_archive_dest_2='location=/home/oracle/files_2' scope=spfile;
系统已更改。
2.使修改的参数生效:
由于之前的修改只是对spfile做的,并未对内存生效,要使其生效需要重启数据库。
3.修改归档目录的大小:
SQL> alter system set db_recovery_file_dest_size=2G;
系统已更改。
查看归档文件在操作系统上的位置:
sql> select name from v$archived_log; 而后在操作系统中确认查询所列出的文件
其他:
查看日志记录模式:
SQL> select log_mode from v$database;
LOG_MODE
------------------------------------
NOARCHIVELOG
查询数据库是否在归档模式中:
SQL> select archiver from v$instance;
ARCHIVER
---------------------
STOPPED
sql> alter system set log_archive_format=''arch_%d_%t_%r_%s.log'' #设置归档日记命名格式
show parameters log_archive_max_process; #归档进程数
alter system set log_archive_max_process=5; #将归档进程数改为5
select * from v$bgprocess; #检察后台进程
log_archive_start=true开启自动归档,否则只能手工归档,如果是关闭了归档,则设置该参数为false
相关数据字典
V$ARCHIVED_LOG
V$ARCHIVE_DEST
V$LOG_HISTORY
V$DATABASE
扩展:
1.oracle 如何关闭打开归档日志: http://www.jb51.net/article/32296.htm
2.Oracle关闭和开启归档日志: http://www.2cto.com/database/201203/1
3.开启和关闭归档模式: http://tophandxing.blog.163.com/blog/static/1097148201241575052263/