今天得到消息,公司全面预算项目有数据库服务器的磁盘有坏道,为了保险起见需要修改它的归档路径.于是以下为实践内容备忘记录:
--登陆oracle进入mount模式
D:/>sqlplus / as sysdba
SQL>shutdown immediate
SQL>startup mount
--设置归档日志的格式
SQL>alter system set log_archive_format='TRP%s%t%r.log' scope=spfile;
--不小心设置路径错误(没有这个目录)
SQL>alter system set log_archive_dest_1 = 'location=/oracle/arch/ora10g' scope=spfile;
--结果..oracle挂了(真脆弱)数据库启动不了,报错
SQL> startup nomount
ORA-01078: failure in processing system parameters
ORA-01565: error in identifying file 'E:\oracle\product\10.2.0\db_1/dbs/spfileTRP.ora'
ORA-27041: unable to open file
OSD-04002: ????????????
O/S-Error: (OS 2) ??????????????????????
--哎,怎么办?搞了半天没办法,先使用原始监听文件启动数据库(init.ora.872011152544为最原始的ora文件)
D:/>startup pfile='E:\oracle\product\10.2.0\admin\TRP\pfile\init.ora.872011152544'
ORACLE 例程已经启动。
Total System Global Area 612368384 bytes
Fixed Size 1250428 bytes
Variable Size 167775108 bytes
Database Buffers 436207616 bytes
Redo Buffers 7135232 bytes
数据库装载完毕。
数据库已经打开。
SQL> exit
---使用RMAN进入,恢复备份控制文件
D>rman target /
--恢复到该文件(但是报错,可能是因为我9号改了log_archive_dest导至)
RMAN> restore spfile from 'G:\Trp_work\backup\database\TRPTOONE_20120708_340.BAK';
--干脆恢复到最新的10号凌晨的备份(autobackup 默认最新)
RMAN> restore spfile from autobackup;
启动 restore 于 10-7月 -12
使用通道 ORA_DISK_1
恢复区域目标: E:\oracle\product\10.2.0/flash_recovery_area
用于搜索的数据库名 (或数据库的唯一名称): TRP
通道 ORA_DISK_1: 在恢复区域中找到自动备份
通道 ORA_DISK_1: 已找到的自动备份: E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TRP\AUTOBACKUP\2012_
07_10\O1_MF_S_788233257_7ZP60R1K_.BKP
通道 ORA_DISK_1: 从自动备份复原 SPFILE 已完成
完成 restore 于 10-7月 -12
***************************************终于还原了,靠..
--恢复之后结束了,继续设置log_archive_dest_1吧。。
--看了个什么XX蛋疼的文章,按它来弄下吧
SQL> alter system set db_recovery_file_dest = '' scope=spfile;
系统已更改。
SQL> alter system set log_archive_dest = '' scope=spfile;
系统已更改。
--记得加location=,不然会报错
SQL> alter system set log_archive_dest_1 = 'location=G:\Trp_work\ORACLE_ARCHIVE\TRP' scope=spfile;
--需要重新启动数据库(用alter database open没效果)
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。
---1.查看修改效果
SQL> archive log list;
数据库日志模式 存档模式
自动存档 启用
存档终点 G:\Trp_work\ORACLE_ARCHIVE\TRP
最早的联机日志序列 818
下一个存档日志序列 820
当前日志序列 820
---2.查看修改效果(执行一个修改事务改张表,然后手动写下日志)
SQL> alter system switch logfile;
系统已更改。
*********(这个时候去查看G:\Trp_work\ORACLE_ARCHIVE\TRP下面已经生成归档文件)
******但是一看,咋怎么才一个地方呢?..而且看了下闪回区居然发现是空的..
SQL>show parameter db_recovery
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string
db_recovery_file_dest_size big integer 2G
--没办法,只能重新再设置回去。。
SQL> alter system set db_recovery_file_dest = 'E:\oracle\product\10.2.0\flash_recovery_area' scope=spfile;
--然后要重新启动数据库OK(这个时候才发现db_recovery_file_dest闪回区根本不用改..)
*************************分割线
************当时在想,我设置了log_archive_dest_1,再设置个log_archive_dest不就2个归档目录了吗?哈哈,我太聪明了..(事实证明是傻)
SQL> alter system set log_archive_dest = 'E:\oracle\product\10.2.0\flash_recovery_area\TRP\ARCHIVELO
G' scope=spfile;
--结果悲剧,结果又挂了。。(这是一个很经典的问题,主要是由于log_archive_dest与log_archive_dest_n这两个参数是不能够同时设置值、共存的。
)
SQL> startup
ORA-16019: cannot use LOG_ARCHIVE_DEST_1 with LOG_ARCHIVE_DEST or LOG_ARCHIVE_DUPLEX_DEST
--没办法直接重新创建个ora文件,改改重新启动吧,已经对oracle比较了解了。(使用这个pfile重新启动数据库)
SQL> create pfile='d:\init.ora' from spfile;
--文本编辑器打开init.ora,去掉、注释掉log_archive_dest这行设置,然后用这个文件启动oracle
SQL> startup pfile='d:\init.ora';
ORACLE 例程已经启动。
Total System Global Area 612368384 bytes
Fixed Size 1250428 bytes
Variable Size 188746628 bytes
Database Buffers 415236096 bytes
Redo Buffers 7135232 bytes
数据库装载完毕。
数据库已经打开。
--Oracle被正常的打开了,好了,有救了。把spfile create 回去oracle_home\db_1\database\xxxx
SQL> create spfile='E:\oracle\product\10.2.0\db_1\database\SPFILETRP.ORA' from pfile='D:\init.ora'
---终于恢复了,但是测试了一下,只有一个归档路径就是log_archive_dest_1的..怎么办?
*********************分割线.第二天设置个log_archive_dest_2再测试看看吧
SQL> alter system set log_archive_dest_2 = 'location=E:\oracle\product\10.2.0\flash_recovery_area\TRP\ARCHIVELOG' scope=spfile;
--设置完毕OK~再测试下(重新启动数据库)
---2.查看修改效果(执行一个修改事务改张表,然后手动写下日志)
SQL> alter system switch logfile;
*********(这个时候去查看2处地方有没有都生成归档文件,或者直接查询select recid, name, first_time from v$archived_log;)
****************终于OK了,下面总结下一次搞定的命令.
1.数据库启动到mount
D:/>sqlplus / as sysdba
SQL>shutdown immediate
SQL>startup mount
2.把默认路径设置空,然后设置log_archive_dest_1,log_archive_dest_2不同的归档路径
SQL> alter system set log_archive_dest = '' scope=spfile;
SQL> alter system set log_archive_dest_1 = 'location=G:\Trp_work\ORACLE_ARCHIVE\TRP' scope=spfile;
SQL> alter system set log_archive_dest_1 = 'location=E:\oracle\product\10.2.0\flash_recovery_area\TRP\ARCHIVELOG' scope=spfile;
3.重新启动数据库,然后查看效果
SQL>shutdown immediate
SQL>startup
SQL> archive log list;
数据库日志模式 存档模式
自动存档 启用
存档终点 E:\oracle\product\10.2.0\flash_recovery_area\TRP\ARCHIVELOG
最早的联机日志序列 822
下一个存档日志序列 824
当前日志序列 824
---随便执行一个事务操作动作,然后执行下面写归档命令(然后查看2处地方有没有都生成归档文件)
SQL> alter system switch logfile;
**********************下面总结恢复命令
---使用RMAN进入,恢复备份控制文件
D:>rman target /
--恢复到某个备份文件
RMAN> restore spfile from 'G:\Trp_work\backup\database\TRPTOONE_20120708_340.BAK';
--恢复到最新的备份(autobackup 默认最新)
RMAN> restore spfile from autobackup;
--restore为还原
--recover为恢复
**********************************
-----原始监听文件路径E:\oracle\product\10.2.0\admin\TRP\pfile\init.ora.872011152544
-----控制文件损坏使用另外一个ora启动
SQL> startup pfile='d:\init.ora';
--根据spfile创建个ora文件
SQL> create pfile='d:\init.ora' from spfile;
----重新根据某个ora创建一个新的控制文件
SQL> create spfile='E:\oracle\product\10.2.0\db_1\database\SPFILETRP.ORA' from pfile='D:\init.ora'
分享到:
相关推荐
ORACLE归档路径优先级,从事oracle的朋友希望对你们有帮助
学习资料 Oracle归档模式命令
#功能:自动删除ORACLE归档日志文件 #删除方式:rman ,deletearchivelog #调用方式:可单独调用,或在job_clean_archivlog.sh脚本中根据需要调用见另外的附件) ##############################################
oracle RAC集群修改归档日志路径,更改完成后续重启服务
如何正确删除Oracle归档日志,oralce归档日志清理.
oracle的重做日志文件,会记录数据库的任何操作,包括DML和DDL语句,数据结构的更改等. 当数据被以外的修改删除,或者instance,disk失败,也可以用重做日志文件进行恢复.所以有必要把数据文件和重做日志文件放在两块不同...
oracle 归档日志 管理
oracle归档日志笔记,oracle归档日志笔记
很实用的操作手册,对于oracle不是很熟的人也可以进行oracle数据库归档日志挖掘。
#功能:当空间占用率高于60%时自动删除ORACLE归档日志文件 # #删除方式:高于60%时使用rman+deletearchivelog,高于79%时使用武力删除 #调用方式:可单独调用,或配置定时任务自动执行脚本(会调用clean_archivelog....
ORACLE归档模式的设置 ORACLE归档模式的设置 ORACLE归档模式的设置
Oracle归档日志非常重要,对归档日志的管理更加重要,本文主要讲解Oracle归档日志方面的各种管理,值得收藏。
ORACLE归档日志设置,CDC数据库设置
oracle 归档模式oracle 归档模式oracle 归档模式oracle 归档模式oracle 归档模式oracle 归档模式oracle 归档模式
oracle归档日志开启之后,会产生大量的日志,需要定时清理以及不重要的数据库可以不开启归档模式,下面介绍一下oracle归档开启、关闭以及日志的删除。
Oracle清除归档日志
oracle归档日志步骤+RMAN步骤 . set ORACLE_SID=EKP sqlplus /nolog conn / as sysdba SQL> archive log list; show parameter db_reco show parameter log_archive alter system set db_recovery_file_...
介绍 使用 oracle中 归档与非归档的区别.
oracle 归档日志详解,包括允许模式,分类等。