1.改变非归档模式到归档模式:
1)SQL> conn / as sysdba (以DBA身份连接数据库)
2)SQL> shutdown immediate;(立即关闭数据库)
3)SQL> startup mount (启动实例并加载数据库,但不打开)
4)SQL> alter database archivelog; (更改数据库为归档模式)
5)SQL> alter database open; (打开数据库)
6)SQL> alter system archive log start; (启用自动归档)
7)SQL> exit (退出)
使用RMAN做一次完全备份,因为非归档日志模式下产生的备份日志对于归档模式已经不可用。
SQL> archive log list; 数据库日志模式 非存档模式 自动存档 禁用 存档终点 USE_DB_RECOVERY_FILE_DEST 最早的联机日志序列 8 当前日志序列 10 SQL> select name,log_mode from v$database; NAME LOG_MODE --------- ------------ ORCL NOARCHIVELOG SQL> shutdown immediate; 数据库已经关闭。 已经卸载数据库。 ORACLE 例程已经关闭。 SQL> startup mount; ORACLE 例程已经启动。 Total System Global Area 855982080 bytes Fixed Size 2180544 bytes Variable Size 553650752 bytes Database Buffers 293601280 bytes Redo Buffers 6549504 bytes 数据库装载完毕。 SQL> alter database archivelog; 数据库已更改。 SQL> alter database open; 数据库已更改。 SQL> alter system archive log start; 系统已更改。 SQL> archive log lit; SP2-0718: 非法的 ARCHIVE LOG 选项 SQL> archive log list; 数据库日志模式 存档模式 自动存档 启用 存档终点 USE_DB_RECOVERY_FILE_DEST 最早的联机日志序列 8 下一个存档日志序列 10 当前日志序列 10 SQL>
2.改变归档模式到非归档模式:
1)SQL>shutdown normal 或shutdown immediate;
2)SQL>startup mount;
3)SQL>alter database noarchivelog;
4)SQL>alter database open;
SQL> shutdown immediate; 数据库已经关闭。 已经卸载数据库。 ORACLE 例程已经关闭。 SQL> startup mount; ORACLE 例程已经启动。 Total System Global Area 855982080 bytes Fixed Size 2180544 bytes Variable Size 553650752 bytes Database Buffers 293601280 bytes Redo Buffers 6549504 bytes 数据库装载完毕。 SQL> alter database noarchivelog; 数据库已更改。 SQL> alter database open; 数据库已更改。 SQL> archive log list; 数据库日志模式 非存档模式 自动存档 禁用 存档终点 USE_DB_RECOVERY_FILE_DEST 最早的联机日志序列 8 当前日志序列 10 SQL> select name,log_mode from v$database; NAME LOG_MODE --------- ------------ ORCL NOARCHIVELOG SQL>
3.归档相关命令
select name,log_mode from v$database;查看归档状态
archive log list;查看归档状态
archive log stop;
archive log start;
archive log list;
show parameters;
show parameters log_archive_start;
show parameters log_archive_max_process; #归档进程数
alter system set log_archive_max_process=5; #将归档进程数改为5
select * from v$bgprocess; #检察后台进程
执行手动归档:
(1)对所有没有归档的重做日志进行归档:
通过ALTER SYSTEM ARCHIVE LOG ALL;
(2)当前的重做日志文件进行归档:
ALTER SYSTEM ARCHIVE CURRENT
(3)指定日志序列号的重做日志文件进行归档
ALTER SYSTEM ARCHIVE LOG SEQUCNE 56;
(4)指定日志组编号的重做日志文件进行归档
ALTER SYSTEM ARCHIVE LOG GROUP 2
(5)指定联机的重做日志文件进行归档
ALTER SYSTEM ARCHIVE LOG
LOGFILE 'D:oracleoradataworkREDO01.LOG '
(6) 将下一个没有归档的重做日志文件组进行归档:
ALTER SYSTEM ARCHIVE LOG NEXT
4.指定归档日志文件路径:
动态修改归档路径:
SQL> alter system set log_archive_dest_1='location=/oracle/oracle10g/log/archive_log';
该语句含义是确定归档日志的路径,实际上Oracle 10g可以生成多份一样的日志,保存多个位置,以防不测
例如再添加一个日志位置可使用以下语句
SQL>alter system set log_archive_dest_2='location=/oracle/oracle10g/log2/archive_log';
也可以把联机重做日志归档到远程机器上,如:log_archive_dest_3='SERVICE=standby1';
或是修改初始何参数文件pfile,加入log_archive_dest_1='location=/oracle/oracle10g/……'
5、归档默认格式
SQL> show parameter log_archive_format; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ log_archive_format string %t_%s_%r.dbf
%t表示Thread Number %表示指定日志序列号 %r表示重置日志的ID resetlogs ID.
6、查看数据库中的归档进程
SQL> select * from v$bgprocess where paddr<>'00' and name like '%ARC%'; PADDR PSERIAL# NAME DESCRIPTION ERROR ---------------- ---------- ----- ---------------------------------------------------------------- ---------- 00000000DC1F6190 1 ARC0 Archival Process 0 0 00000000DF1CD448 1 ARC1 Archival Process 1 0 00000000DC1F6978 1 ARC2 Archival Process 2 448