resetlogs 打开数据库时新生成日志位置问题
若系统中缺少联机日志,以resetlogs方式重建控制文件,那么当我们以alter database open resetlogs方式打开数据库时,新生成的联机日志会位于何处?
一:下面分别讨论几种情况
1 如果在重建控制文件语句中未指定日志条目,未指定omf参数,那么resetlogs 打开数据库时,自动创建的日志位于何处
2 如果在重建控制文件语句中未指定日志条目,仅指定了omf参数db_create_file_dest, 那么resetlogs 打开数据库时,自动创建的日志位于何处
3 如果在重建控制文件语句中指定了日志条目,指定了omf参数,那么resetlogs 打开数据库事,自动创建的日志位于何处
4 如果在重建控制文件语句中未指定日志条目,指定了omf参数db_create_file_dest和 db_create_online_log_dest_n 那么resetlogs 打开数据库时,自动创建的日志位于何处
二:实验
实验1 重建控制文件语句未指定日志条目,未指定omf参数,那么resetlogs打开数据库后日志位置
1 实验前提
重建控制文件中不指定日志条目语句如下
STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "ZBCRM" RESETLOGS ARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
DATAFILE
'/oracle/CRM/ZBCRM/system01.dbf',
'/oracle/CRM/ZBCRM/sysaux01.dbf',
'/oracle/CRM/ZBCRM/undotbs01.dbf',
'/oracle/CRM/ZBCRM/users01.dbf',
'/oracle/CRM/ZBCRM/sysaux02.dbf'
CHARACTER SET ZHS16GBK
;
参数文件中未指定omf参数
NAME VALUE
---------------------------------------- --------------------------------------------------
db_create_file_dest
db_create_online_log_dest_1
db_create_online_log_dest_2
db_create_online_log_dest_3
db_create_online_log_dest_4
db_create_online_log_dest_5
db_recovery_file_dest
db_recovery_file_dest_size 0
2 过程如下:
SQL> @/oracle/control1.sql
ORACLE instance started.
Total System Global Area 1152450560 bytes
Fixed Size 2225832 bytes
Variable Size 704645464 bytes
Database Buffers 436207616 bytes
Redo Buffers 9371648 bytes
Control file created.
SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-01589: must use RESETLOGS or NORESETLOGS option for database open
SQL> alter database open resetlogs;
Database altered.
SQL> select open_mode from v$database;
OPEN_MODE
--------------------
READ WRITE
SQL> col member for a50
SQL> select group#,member from v$logfile;
GROUP# MEMBER
---------- --------------------------------------------------
2 /oracle/app/db1/dbs/log2ZBCRM.dbf
1 /oracle/app/db1/dbs/log1ZBCRM.dbf
结果:当控制文件重建语句中未指定日志条目,也未设置omf参数,那么resetlogs 打开数据库后新创建的日志文件位于dbs目录下。
实验2 重建控制文件语句中未指定了日志位置,指定omf参数,那么resetlogs打开数据库后日志位置
1 实验前提
重建控制文件语句如下
STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "ZBCRM" RESETLOGS ARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
DATAFILE
'/oracle/CRM/ZBCRM/system01.dbf',
'/oracle/CRM/ZBCRM/sysaux01.dbf',
'/oracle/CRM/ZBCRM/undotbs01.dbf',
'/oracle/CRM/ZBCRM/users01.dbf',
'/oracle/CRM/ZBCRM/sysaux02.dbf'
CHARACTER SET ZHS16GBK
;
参数文件中指定omf参数
NAME VALUE
---------------------------------------- ----------------------------------------
db_create_file_dest /oracle/CRM/ZBCRM/
db_create_online_log_dest_1
db_create_online_log_dest_2
db_create_online_log_dest_3
db_create_online_log_dest_4
db_create_online_log_dest_5
db_recovery_file_dest
db_recovery_file_dest_size 0
2 实验过程如下:
[oracle@oracle ~]$ cat control1.sql
STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "ZBCRM" RESETLOGS ARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
DATAFILE
'/oracle/CRM/ZBCRM/system01.dbf',
'/oracle/CRM/ZBCRM/sysaux01.dbf',
'/oracle/CRM/ZBCRM/undotbs01.dbf',
'/oracle/CRM/ZBCRM/users01.dbf',
'/oracle/CRM/ZBCRM/sysaux02.dbf'
CHARACTER SET ZHS16GBK
;
[oracle@oracle ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.2.0 Production on Fri Jul 26 16:33:49 2013
Copyright (c) 1982, 2010, Oracle. All rights reserved.
Connected to an idle instance.
SQL> @/oracle/control1.sql
ORACLE instance started.
Total System Global Area 1152450560 bytes
Fixed Size 2225832 bytes
Variable Size 704645464 bytes
Database Buffers 436207616 bytes
Redo Buffers 9371648 bytes
Control file created.
SQL> alter database open resetlogs;
Database altered.
SQL> col member for a60
SQL> /
GROUP# MEMBER
---------- ------------------------------------------------------------
2 /oracle/CRM/ZBCRM/ZBCRM/onlinelog/o1_mf_2_8z4f4kon_.log
1 /oracle/CRM/ZBCRM/ZBCRM/onlinelog/o1_mf_1_8z4f4gcl_.log
结果:当重建控制文件语句中为指定日志条目,仅指定omf参数db_create_file_dest时,resetlogs打开数据库后,日志位于db_create_file_dest指定的目录。
实验3 重建控制文件语句指定日志条目,指定omf参数,那么resetlogs打开数据库后日志位置
1 实验前提
重建控制文件中指定日志条目语句如下
STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "ZBCRM" RESETLOGS ARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 '/oracle/CRM/ZBCRM/redo01.log' SIZE 200M BLOCKSIZE 512,
GROUP 2 '/oracle/CRM/ZBCRM/redo02.log' SIZE 200M BLOCKSIZE 512,
GROUP 3 '/oracle/CRM/ZBCRM/redo03.log' SIZE 200M BLOCKSIZE 512
-- STANDBY LOGFILE
DATAFILE
'/oracle/CRM/ZBCRM/system01.dbf',
'/oracle/CRM/ZBCRM/sysaux01.dbf',
'/oracle/CRM/ZBCRM/undotbs01.dbf',
'/oracle/CRM/ZBCRM/users01.dbf',
'/oracle/CRM/ZBCRM/sysaux02.dbf'
CHARACTER SET ZHS16GBK
;
2 omf 参数如下:
NAME VALUE
-------------------------------------------------- ------------------------------------------------------------
db_create_file_dest /oracle/CRM/ZBCRM/
db_create_online_log_dest_1 /oracle/CRM/ZBCRM/log1
db_create_online_log_dest_2 /oracle/CRM/ZBCRM/log2
db_create_online_log_dest_3
db_create_online_log_dest_4
db_create_online_log_dest_5
db_recovery_file_dest
db_recovery_file_dest_size 0
3 实验过程如下:
[oracle@oracle ~]$ cat control2.sql
STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "ZBCRM" RESETLOGS ARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 '/oracle/CRM/ZBCRM/redo01.log' SIZE 200M BLOCKSIZE 512,
GROUP 2 '/oracle/CRM/ZBCRM/redo02.log' SIZE 200M BLOCKSIZE 512,
GROUP 3 '/oracle/CRM/ZBCRM/redo03.log' SIZE 200M BLOCKSIZE 512
-- STANDBY LOGFILE
DATAFILE
'/oracle/CRM/ZBCRM/system01.dbf',
'/oracle/CRM/ZBCRM/sysaux01.dbf',
'/oracle/CRM/ZBCRM/undotbs01.dbf',
'/oracle/CRM/ZBCRM/users01.dbf',
'/oracle/CRM/ZBCRM/sysaux02.dbf'
CHARACTER SET ZHS16GBK
;
[oracle@oracle ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.2.0 Production on Fri Jul 26 16:52:26 2013
Copyright (c) 1982, 2010, Oracle. All rights reserved.
Connected to an idle instance.
SQL> @/oracle/control2.sql
ORACLE instance started.
Total System Global Area 1152450560 bytes
Fixed Size 2225832 bytes
Variable Size 704645464 bytes
Database Buffers 436207616 bytes
Redo Buffers 9371648 bytes
Control file created.
SQL> alter database open resetlogs;
Database altered.
SQL> col member for a50
SQL> select group#,member from v$logfile;
GROUP# MEMBER
---------- --------------------------------------------------
3 /oracle/CRM/ZBCRM/redo03.log
2 /oracle/CRM/ZBCRM/redo02.log
1 /oracle/CRM/ZBCRM/redo01.log
结果:当重建控制文件语句中指定日志条目,又指定了omf参数,那么新生成的日志文件位置以控制文件为准。
实验4 重建控制文件语句中未指定了日志位置,指定omf参数db_create_file_dest和 db_create_online_log_dest_n,那么resetlogs打开数据库后日志位置
1 实验前提
重建控制文件中指定日志条目语句如下
STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "ZBCRM" RESETLOGS ARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 '/oracle/CRM/ZBCRM/redo01.log' SIZE 200M BLOCKSIZE 512,
GROUP 2 '/oracle/CRM/ZBCRM/redo02.log' SIZE 200M BLOCKSIZE 512,
GROUP 3 '/oracle/CRM/ZBCRM/redo03.log' SIZE 200M BLOCKSIZE 512
-- STANDBY LOGFILE
DATAFILE
'/oracle/CRM/ZBCRM/system01.dbf',
'/oracle/CRM/ZBCRM/sysaux01.dbf',
'/oracle/CRM/ZBCRM/undotbs01.dbf',
'/oracle/CRM/ZBCRM/users01.dbf',
'/oracle/CRM/ZBCRM/sysaux02.dbf'
CHARACTER SET ZHS16GBK
;
2 omf 参数如下:
NAME VALUE
-------------------------------------------------- ------------------------------------------------------------
db_create_file_dest /oracle/CRM/ZBCRM/
db_create_online_log_dest_1 /oracle/CRM/ZBCRM/log1
db_create_online_log_dest_2 /oracle/CRM/ZBCRM/log2
db_create_online_log_dest_3
db_create_online_log_dest_4
db_create_online_log_dest_5
db_recovery_file_dest
db_recovery_file_dest_size 0
3 实验过程如下:
[oracle@oracle ~]$ cat control1.sql
STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "ZBCRM" RESETLOGS ARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
DATAFILE
'/oracle/CRM/ZBCRM/system01.dbf',
'/oracle/CRM/ZBCRM/sysaux01.dbf',
'/oracle/CRM/ZBCRM/undotbs01.dbf',
'/oracle/CRM/ZBCRM/users01.dbf',
'/oracle/CRM/ZBCRM/sysaux02.dbf'
CHARACTER SET ZHS16GBK
;
[oracle@oracle ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.2.0 Production on Fri Jul 26 17:01:24 2013
Copyright (c) 1982, 2010, Oracle. All rights reserved.
Connected to an idle instance.
SQL> @/oracle/control1.sql
ORACLE instance started.
Total System Global Area 1152450560 bytes
Fixed Size 2225832 bytes
Variable Size 704645464 bytes
Database Buffers 436207616 bytes
Redo Buffers 9371648 bytes
Control file created.
SQL> alter database open resetlogs;
Database altered.
SQL> col member for a60
SQL> select group#,member from v$logfile;
GROUP# MEMBER
---------- ------------------------------------------------------------
2 /oracle/CRM/ZBCRM/log1/ZBCRM/onlinelog/o1_mf_2_8z4grccs_.log
2 /oracle/CRM/ZBCRM/log2/ZBCRM/onlinelog/o1_mf_2_8z4grd0x_.log
1 /oracle/CRM/ZBCRM/log1/ZBCRM/onlinelog/o1_mf_1_8z4gr4yz_.log
1 /oracle/CRM/ZBCRM/log2/ZBCRM/onlinelog/o1_mf_1_8z4gr5p0_.log
结果:ofm参数中优先级db_create_online_log_dest_n高于db_create_file_dest
总结:通过以上实验不难看出,当resetlogs打开数据库时,生成新的日志文件位置由以下因素决定:
先以控制文件中记录的日志文件位置为准.如果控制文件中没日志位置信息,则会查omf参数,优先级为,先db_create_online_log_dest_n后db_create_file_dest。
如果未指定omf参数则生成日志文件的默认位置为:比如linux 就是dbs下。
resetlogs 打开数据库时新生成日志位置问题的更多相关文章
- 解决Oracle ORA-01033: ORACLE initialization or shutdown in progress错误 和 ORA-01589错误 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项
要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项 SQL> startupORACLE 例程已经启动. Total System Global Area 13533 ...
- SQL Server附加数据库时失败,提示:“未重新生成日志,因为有不止一个日志文件”
这个只能是试一下的方法,但不一定能成功,可以尝试如下几个方法: 1.登录远程桌面,然后以.登录SQL Server,并以Windows身份登录,然后再附加数据库时把日志文件删除. 2.试下这个脚本: ...
- sqlserver无ldf日志文件附加的方法(数据库没有完全关闭,无法重新生成日志)
数据库的ldf日志文件被删了,直接附加时报错:数据库没有完全关闭,无法重新生成日志 那怎么恢复数据呢?方法如下: 在数据库中新建一个同名的数据库(文件路径要与原来的相同,ldf的文件名也要相同),然后 ...
- Mysql数据库之Binlog日志使用总结
binlog二进制日志对于mysql数据库的重要性有多大,在此就不多说了.下面根据本人的日常操作经历,并结合网上参考资料,对binlog日志使用做一梳理: 一.binlog日志介绍1)什么是binlo ...
- (转)Mysql数据库之Binlog日志使用总结
使用mysqlbinlog提取二进制日志 原文:http://blog.csdn.net/leshami/article/details/41962243 MySQL binlog日志记录了MySQL ...
- mysql数据库安全性配置——日志记录
一:开启数据库日志记录 (1)在查看数据库是否开启日志记录,默认是OFF,即关闭状态.(可在数据库中执行该查询语句,也可在服务器端执行) show variables like 'log_bin'; ...
- MySQL/MariaDB数据库的各种日志管理
MySQL/MariaDB数据库的各种日志管理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.事务日志 (transaction log) 1>.Innodb事务日志相 ...
- Oracle Listener日志位置及压缩转移
近日由于Oracle Listener异常断开导致应用无法上传数据,需要从listener日志开始分析问题原因.此文介绍如何获取日志位置.由于日志文件大小问题,同时将日志文件进行压缩存放. alert ...
- eclipse从数据库逆向生成Hibernate实体类
做项目必然要先进行数据库表设计,然后根据数据库设计建立实体类(VO),这是理所当然的,但是到公司里做项目后,让我认识到,没有说既进行完数据库设计后还要再“自己”建立一变VO.意思是,在项目设计时,要么 ...
随机推荐
- Windows10系统常规优化及分析(批处理)
对于Win7来说,Win10除了UI的变动外,微软还根据用户体验做了一些功能的增强和更改,在我看来,Win10本身启动的服务都是为了系统运作更加完美而增加的,但是对于很多人来说,Win10的很多功能很 ...
- MTK Android 设置-选择日期格式 [管理和组织首选项,ListPreference,CheckBoxPreference,EditTextPreference,RingtonePreference]
###android.preference.ListPreference的一些特性 android:key 选项的名称或键 android:title 选项的标题 android:summary ...
- MySQL入门,第五部分,表结构的修改
ALTER TABLE <基本表名> [ ADD <新列名> <列数据类型> [列完整性约束] DROP COLUMN <列名> MODIFY < ...
- Erlang语言之简述及安装
1. 简述 Erlang在1991年由爱立信公司向用户推出了第一个版本,经过不断的改进完善和发展,在1996年爱立信又为所有的Erlang用户提供了一个非常实用且稳定的OTP软件库并在1998年发布了 ...
- 返回指定字符串位置的函数FIELD(S,S1,S2,...) 与 FIND_IN_SET(S1,S2) 函数
FIELD(S,S1,S2,...) 与 FIND_IN_SET(S,S1) 函数 ------> 这2个函数都是返回指定字符串在源串中的出现的位置(皆是第一次出现的位置),但2个函数的参数 ...
- iOS线程数量监控工具
简单却强大的线程监控工具 KKThreadMonitor :当线程过多或瞬间创建大量子线程(线程爆炸),控制台就打印出所有的线程堆栈.便于分析造成子线程过多或线程爆炸的原因. /******* 线程爆 ...
- 数据结构(C语言版)---线性表链式存储表示
1.单链表:线性表的链式存储. 1)特点:用一组任意的存储单元存储数据元素(存储单元可以连续,也可以不连续),逻辑上相邻的元素存储位置不一定相邻. 2)结点包括两个域:数据域(存储数据元素信息).指针 ...
- O - Employment Planning HDU - 1158
题目大意: 第一行一个n,表示共n个月份,然后第二行分别表示一个工人的聘请工资,月薪水,解雇工资.第三行是n个月每个月需要的工人的最少数目.然后求最少花费 题解: dp[i][j] 表示第i个月聘请j ...
- cmd命令行中查看、修改、删除与添加环境变量
注意:只在当前窗口生效!! 1.查看当前所有可用的环境变量:输入 set 即可查看. set 2.查看某个环境变量:输入 “set 变量名”即可 set python 3.修改环境变量 :输入 “se ...
- Python之学会测试,让开发更加高效(一)
前几天,听了公司某位大佬关于编程心得的体会,其中讲到了"测试驱动开发",感觉自己的测试技能薄弱,因此,写下这篇文章,希望对测试能有个入门.这段时间,笔者也体会到了测试的价值,一 ...