课程表

Oracle 基础教程

Oracle 进阶教程

Oracle PL/SQL

Oracle OEM

Oracle 备份和恢复

Oracle RAC

工具箱
速查手册

Oracle 归档与非归档的切换

当前位置:免费教程 » 数据库/运维 » Oracle

首先查看数据库现有模式可使用以下语句 :

  1. select name,log_mode from v$database;

也可以用下面的语句

  1. archive log list;(该方法需要as sysdba)
  2. SQL> archive log list
  3. Database log mode       No Archive Mode
  4. Automatic archival      Disabled
  5. Archive destination      /export/home/Oracle/product/8.1.7/dbs/arch
  6. Oldest online log sequence   28613
  7. Current log sequence     28615
  8. SQL> SELECT NAME,LOG_MODE FROM V$DATABASE;
  9. NAME    LOG_MODE
  10. --------  ------------
  11. BIGSUN   NOARCHIVELOG

对于非归档模式的数据库该为归档模式(主要以oracle 10g为参考)使用以下步骤:

1.使用如下语句

  1. SQL> alter system set log_archive_dest_1='location=/oracle/oracle10g/log/archive_log';

该语句含义是确定归档日志的路径,实际上Oracle 10g可以生成多份一样的日志,保存多个位置,以防不测。例如再添加一个日志位置可使用以下语句:

  1. SQL>alter system set log_archive_dest_2='location=/oracle/oracle10g/log2/archive_log';

2.关闭数据库

  1. SQL> shutdown immediate

3.启动数据mount状态:

  1. SQL> startup mount;

4、修改数据库为归档模式:

  1. SQL> alter database archivelog;

5、打开数据库,查询:

  1. SQL> alter database open;

修改日志文件命名格式:

  1. SQL> alter system set log_archive_max_processes = 5;
  2. SQL> alter system set log_archive_format = "archive_%t_%s_%r.log" scope=spfile;

修改完成后可以查看日志模式是否修改成功!

特别指出的是在Oracle 9i中还要修改参数log_archive_start = true才能生效,oracle 10g中已经废除了该参数,所以不需要设置该参数。

Oracle 9i启动归档

1,sqlplus "/ as sysdba" 在DOS命令行下运行进入SQL管理员操作控制台。

2,shutdown immediate;  关闭ORACLE数据库。

3,startup mount;       启动数据库到mount状态

4,alter database archivelog(noarchivelog); 启用(禁止)归档模式。

5,alter database open;  打开数据库。

6,archive log list; 查看是否开启了归档模式

7,archive log start(stop);   开启(停止)归档模式。

8, alter system switch logfile; --强制系统进行日志切换,可马上观察到归档日志的产生

归档模式转化为非归档模式 

在这里所有的操作要在数据库的那台机器上操作,用SYS用户进行登录,首先设置归档进程关闭。

  1. alter system set log_archive_start=false scope=spfile;

然后关闭数据库

shutdown immediate

再后面把数据库启动到mount的模式

startup mount

关闭flash闪回数据库模式,如果不关闭的话,在后面关闭归档日志的时候就会出现讨厌的ORA-38774错误。

alter database flashback off

接着把数据库改为非归档模式

alter database noarchivelog;

都修改好了以后,然后打开数据库

Alter database open;

察看一下归档日志的空间大小

select * from v$recovery_file_dest;

接着看一下log日志的状态

select * from v$log;

再看一下闪回日志使用状况

select * from v$flash_recovery_area_usage;

这些都没有问题以后,数据库问题就解决了。

转载本站内容时,请务必注明来自W3xue,违者必究。
 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号