这两个小家伙一直很困扰我,我总是弄不清除怎么回事。但是我发现我今天在做RMAN的时候,我错误的删除了,明天来上班还得想办法解决。哎,缺少基础知识的后果。
重做日志文件也叫联机日志文件,一般数据库有几个日志文件(例如有三个,编号分别为1,2,3)先写1,当1满时再写2,当2满时再写3,当3满时1就归档出来,产生一个文件写到磁盘上,这个文件就叫归档日志文件.1归档出来后,新的联机日志文件又写到1中,将原来的覆盖,(即联机日志是循环使用的).一般当产生一个检查点或联机日志写满一定程度时会产生一个归档日志文件.(只有数据库运行在归档模式并且初始化参数ARCHIVE_LOG_START等于TRUE时,ARCn进程才能被启动,进行自动归档。
)
今天看书看到了一句话是这么说的,要确保重做日志文件和归档日志文件的存在,我当时蒙了。怎么知道存在?后面我转念一向。重做日志文件不是物理文件三者中的一个么?我怎么笨到这个都忘记了。
select * from v$log;或者select * from v$logfile;就可以查询出来了。
这个想清楚了,那归档呢?我突然想起小哥哥说的一句话,你在查看是否是归档模式的时候不是就可以看见归档的位置么?我这次又晕乎了。确实天天在查看这个的时候,可是下面好像没有涉及路径吖。于是我又查USE_DB_RECOVERY_FILE_DEST这个东西。
SQL> archive log list;
数据库日志模式 存档模式
自动存档 启用
存档终点 USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列 2
下一个存档日志序列 4
当前日志序列 4
原来可以这样查看这个参数。
SQL> show parameter db_recovery_file_dest;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string E:\oracle\product\10.2.0/flash
_recovery_area
db_recovery_file_dest_size big integer 2G
这样就知道归档日志文件在哪里了,默认一般是在闪回区里面。看到这里,我突然想起,我今天做rman的时候删除了闪回区里面的东东,这下脑大了!!!
看到这个参数,不免又想,那应该怎么修改呢?于是又继续百度
方法如下:
SQL> archive log list;
数据库日志模式 存档模式
自动存档 启用
存档终点 USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列 2
下一个存档日志序列 4
当前日志序列 4
SQL> create pfile='d:\initwhora.ora' from spfile;
文件已创建。
SQL>
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> create spfile from pfile='d:\initwhora.ora';
文件已创建。
SQL> startup
ORA-01261: Parameter db_recovery_file_dest destination string cannot be translat
ed
ORA-01263: Name given for file destination directory is invalid
OSD-04018: ??????????????????????????
O/S-Error: (OS 2) ??????????????????????
(报这个错误,是因为归档的路径我是写了,但是在E里面没有简历相应的文件夹,建里就ok了)
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 612368384 bytes
Fixed Size 1250452 bytes
Variable Size 255855468 bytes
Database Buffers 352321536 bytes
Redo Buffers 2940928 bytes
数据库装载完毕。
数据库已经打开。
SQL> show parameter db_recovery_file_dest;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string E:\oracle\archivelog
db_recovery_file_dest_size big integer 2G
SQL>
但是能不能用,还得明天上班测试下。听前辈说,这样的结果就是归档还是没有保存到新建立的位置要设置
db_recovery_file_dest_size=0就可以啦。。。
也不知道是真是假
SQL> alter system set db_recovery_file_dest_size=4096m;
System altered.
这样修改。。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30633998/viewspace-1971622/
,如需转载,请注明出处,否则将追究法律责任。