Oracle 非归档(noarchive log)与归档(archive log)之间转换

(一)noarchive log 转至archive log

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

1. SQL> alter system set log_archive_dest_1='location=/oradata/archivelog';
该语句含义是确定归档日志的路径,实际上Oracle 10g可以生成多份一样的日志,保存多个位置,以防不测

例如再添加一个日志位置可使用以下语句
SQL>alter system set log_archive_dest_2='location=/oradata/archivelog2';

2.关闭数据库
SQL> shutdown immediate

3.启动数据mount状态:
SQL> startup mount;

4、修改数据库为归档模式:
SQL> alter database archivelog;

5、打开数据库,查询:
SQL> alter database open;

修改日志文件命名格式:
SQL> alter system set log_archive_max_processes = 5;
SQL> alter system set log_archive_format = "arc_%t_%s_%r.log" scope=spfile;、

SQL>shutdown immediate;
SQL>startup;

SQL>alter system switch logfile;

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


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

Oracle 9i启动归档
1,sqlplus "/ as sysdba"
2,shutdown immediate;
3,startup mount;      
4,alter database archivelog(noarchivelog); 启用(禁止)归档模式。
5,alter database open;
6,archive log list;
7,archive log start(stop);
8, alter system switch logfile; --强制系统进行日志切换,可马上观察到归档日志的产生

(二)archive log 转至 noarchive log
在这里所有的操作要在数据库的那台机器上操作,用SYS用户进行登录,首先设置归档进程关闭。
alter system set log_archive_start=false scope=spfile; (9i,10g不用)
然后关闭数据库
shutdown immediate
再后面把数据库启动到mount的模式
startup mount
关闭flash闪回数据库模式,如果不关闭的话,在后面关闭归档日志的时候就会出现讨厌的ORA-38774错误。 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;
这些都没有问题以后,数据库问题就解决了。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值