ORACLE数据文件名导致的奇怪问题

简介:   今天创建了一些表空间,准备做data guard来看看效果。 为了方便起见,我用gridcontrol来做,主库也开了Omf,省去了好多步骤。
 
今天创建了一些表空间,准备做data guard来看看效果。
为了方便起见,我用gridcontrol来做,主库也开了Omf,省去了好多步骤。
一路点下来,就等gc的那个状态变成对号了,结果装了近20分钟,alert日志开始报错。
 
********************  WARNING ***************************
The errors during Server autobackup are not fatal, as it
is attempted after sucessful completion of the command.
However, it is recomended to take an RMAN control file
backup as soon as possible because the Autobackup failed
with the following error:
ORA-19583: conversation terminated due to error
ORA-19914: unable to encrypt backup
ORA-28365: wallet is not open
我一看,主库的钱包是没开,然后开了钱包
alter system set encryption wallet open identified by oracle123;
 
 然后行这次应该没问题了吧,第二遍
简单清理了一下,继续
但是过了一会,还是同样的错误,还是大红叉。

Database mounted.
SQL> Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, Oracle Label Security, OLAP and Data Mining options
dgcreate.DGrenameFiles: ALTER DATABASE RENAME FILE '/u01/app/oracle/oradata/disk_4/system01.dbf' to '/u01/app/db/oradata/STDBY/datafile/o1_mf_system_88z23chp_.dbf'
dgcreate.DGrenameFiles: SELECT STATUS FROM V$DATAFILE WHERE NAME = '/u01/app/oracle/oradata/disk_4/system01.dbf'
dgcreate.DGrenameFiles: ALTER DATABASE RENAME FILE '/u01/app/oracle/oradata/disk_4/sysaux01.dbf' to '/u01/app/db/oradata/STDBY/datafile/o1_mf_sysaux_88z24s8m_.dbf'
dgcreate.DGrenameFiles: SELECT STATUS FROM V$DATAFILE WHERE NAME = '/u01/app/oracle/oradata/disk_4/sysaux01.dbf'
dgcreate.DGrenameFiles: ALTER DATABASE RENAME FILE '/u01/app/oracle/oradata/disk_1/tbs01.dbf' to '/u01/app/db/oradata/STDBY/datafile/o1_mf_tbs1_88z25q3r_.dbf'
dgcreate.DGrenameFiles: SELECT STATUS FROM V$DATAFILE WHERE NAME = '/u01/app/oracle/oradata/disk_1/tbs01.dbf'
dgcreate.DGrenameFiles: ALTER DATABASE RENAME FILE '/u01/app/oracle/oradata/disk_2/tbs02.dbf' to '/u01/app/db/oradata/STDBY/datafile/o1_mf_tbs1_88z265gd_.dbf'
dgcreate.DGrenameFiles: SELECT STATUS FROM V$DATAFILE WHERE NAME = '/u01/app/oracle/oradata/disk_2/tbs02.dbf'
dgcreate.DGrenameFiles: ALTER DATABASE RENAME FILE '/u01/app/oracle/oradata/disk_3/tbs03.dbf' to '/u01/app/db/oradata/STDBY/datafile/o1_mf_tbs1_88z26o67_.dbf'
dgcreate.DGrenameFiles: SELECT STATUS FROM V$DATAFILE WHERE NAME = '/u01/app/oracle/oradata/disk_3/tbs03.dbf'
dgcreate.DGrenameFiles: ALTER DATABASE RENAME FILE '/u01/app/oracle/oradata/disk_3/tbs3.dbf' to '/u01/app/db/oradata/STDBY/datafile/o1_mf_tbs3_88z274k8_.dbf'
dgcreate.DGrenameFiles: SELECT STATUS FROM V$DATAFILE WHERE NAME = '/u01/app/oracle/oradata/disk_3/tbs3.dbf'
dgcreate.DGrenameFiles: ALTER DATABASE RENAME FILE '/u01/app/oracle/oradata/disk_4/undotbs2.dbf' to '/u01/app/db/oradata/STDBY/datafile/o1_mf_undotbs2_88z27mbc_.dbf'
dgcreate.DGrenameFiles: SELECT STATUS FROM V$DATAFILE WHERE NAME = '/u01/app/oracle/oradata/disk_4/undotbs2.dbf'
dgcreate.DGrenameFiles: ALTER DATABASE RENAME FILE '/u01/app/oracle/oradata/disk_5/indx.dbf' to '/u01/app/db/oradata/STDBY/datafile/o1_mf_indx_88z282wc_.dbf'
SQL Error: ORA-01511: error in renaming log/data files
ORA-01516: nonexistent log file, datafile, or tempfile "/u01/app/oracle/oradata/disk_5/indx.dbf" (DBD ERROR: OCIStmtExecute)
 
然后我看到后台再反复重启有关共享服务器的进程,我想是不是也有一定的影响,
我先没关共享。看看这个数据文件先,
来到相应的目录
[oracle@oel1 disk_5]$ cd indx.dbf
bash: cd: indx.dbf: No such file or directory
[oracle@oel1 disk_5]$ ls
indx.dbf   PODD  temp01.dbf  tools.dbf
[oracle@oel1 disk_5]$ ll indx*
-rw-r----- 1 oracle dba 41951232 Oct 30 16:06 indx.dbf
[oracle@oel1 disk_5]$ ll indx.dbf
ls: indx.dbf: No such file or directory
[oracle@oel1 disk_5]$
 
奇怪的事情就发生了,我是眼睁睁的看着那个文件,但是就是ll不出来,
 
我想这还蹊跷,如果是drop tablespace xxx 没有including contents and datafiles cascade constraint 可能数据文件还不会立即删除,会保留相应的句柄,但是这个表空间我没做drop操作啊。
 
我查了下状态
SQL> select tablespace_name,status from dba_data_files;
TABLESPACE_NAME                STATUS
------------------------------ ---------
TBS3                           AVAILABLE
TBS1                           AVAILABLE
TBS1                           AVAILABLE
TBS1                           AVAILABLE
SYSAUX                         AVAILABLE
SYSTEM                         AVAILABLE
UNDOTBS2                       AVAILABLE
INDX                           AVAILABLE

查看datafile也看不出什么蹊跷。

可能是什么其他的地方吧。

我用如下的sql导处数据文件的状态。

select f.tablespace_name||'|'||f.file_name||'|'||f.autoextensible||'|'||f.bytes/1024/1024||'M' ||'|'|| t.initial_extent||'|'||t.next_extent||'|'||t.extent_management||'|'||t.segment_space_management||'|'||t.bigfile from dba_tablespaces t,dba_data_files f where t.tablespace_name=f.tablespace_name;

结果如下:

TBS1|/u01/app/oracle/oradata/disk_1/tbs01.dbf|NO|5M|1048576|1048576|LOCAL|AUTO|N
O

SYSAUX|/u01/app/oracle/oradata/disk_4/sysaux01.dbf|NO|325M|65536||LOCAL|AUTO|NO
UNDOTBS|/u01/app/oracle/oradata/disk_5/undotbs01.dbf|YES|200M|65536||LOCAL|MANUAL|NO

SYSTEM|/u01/app/oracle/oradata/disk_4/system01.dbf|NO|325M|65536||LOCAL|MANUAL|NO

EXAMPLE|/u01/app/oracle/oradata/disk_5/example.dbf|YES|400M|1048576|1048576|LOCAL|AUTO|NO

INDX|/u01/app/oracle/oradata/disk_5/indx.dbf |NO|40M|65536||LOCAL|AUTO|NO

最后一行的 indx.dbf后面还有个空格,原来是这个文件导致的!!!

我有个好习惯,之前执行的语句都保留了下来,一翻,验证了我的想法。

create tablespace example datafile '/u01/app/oracle/oradata/disk_5/example.dbf' size 400M autoextend on maxsize 4g extent management local uniform. size 1M;

create tablespace indx datafile '/u01/app/oracle/oradata/disk_5/indx.dbf 'size 40M;

接下来该处理这个问题了。

        10--文件号是10
/u01/app/oracle/oradata/disk_5/indx.dbf

SQL> alter database datafile 10 offline;

Database altered.

SQL> alter database rename file '/u01/app/oracle/oradata/disk_5/indx.dbf ' to '/u01/app/oracle/oradata/disk_5/indx.dbf'
  2  ;
alter database rename file '/u01/app/oracle/oradata/disk_5/indx.dbf ' to '/u01/app/oracle/oradata/disk_5/indx.dbf'
*
ERROR at line 1:
ORA-01511: error in renaming log/data files
ORA-01141: error renaming data file 10 - new file
'/u01/app/oracle/oradata/disk_5/indx.dbf' not found
ORA-01110: data file 10: '/u01/app/oracle/oradata/disk_5/indx.dbf '
ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory
Additional information: 3

貌似我写的文件空格不够标准???

SQL> select '|'||file_name||'|' from dba_data_files where file_id=10;

'|'||FILE_NAME||'|'
--------------------------------------------------------------------------------
|/u01/app/oracle/oradata/disk_5/indx.dbf |

SQL> alter database rename file '/u01/app/oracle/oradata/disk_5/indx.dbf 'to '/u01/app/oracle/oradata/disk_5/indx.dbf1';
alter database rename file '/u01/app/oracle/oradata/disk_5/indx.dbf 'to '/u01/app/oracle/oradata/disk_5/indx.dbf1'
*
ERROR at line 1:
ORA-01511: error in renaming log/data files
ORA-01141: error renaming data file 10 - new file
'/u01/app/oracle/oradata/disk_5/indx.dbf1' not found
ORA-01110: data file 10: '/u01/app/oracle/oradata/disk_5/indx.dbf '
ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory
Additional information: 3

还是不行,晕了,这个问题还真是费劲啊。

这样做,

[oracle@oel1 disk_5]$ ll
total 54856
-rw-r----- 1 oracle dba  5251072 Oct 30 18:01 indx.dbf
drwxr-x--- 4 oracle dba     4096 Oct 30 10:27 PODD
-rw-r----- 1 oracle dba 20979712 Oct 30 08:34 temp01.dbf
-rw-r----- 1 oracle dba 50339840 Oct 30 18:01 tools.dbf
[oracle@oel1 disk_5]$ mv indx* indx.dbf1

SQL> alter database datafile 10 offline;

Database altered.

SQL> alter database rename file '/u01/app/oracle/oradata/disk_5/indx.dbf ' to '/u01/app/oracle/oradata/disk_5/indx.dbf1'
  2  ;

Database altered.
终于搞定了。

第5遍开始做dg

这次很快。中途抛了几个ORA错误提提神,影响不啊,最后终于看到了一个对号。

查看后台,正常了。

MRP0: Background Managed Standby Recovery process started (STDBY)
Managed Standby Recovery not using Real Time Apply
Media Recovery Waiting for thread 1 sequence 235
Tue Oct 30 17:57:22 2012
Completed: ALTER DATABASE RECOVER MANAGED STANDBY DATABASE  THROUGH ALL SWITCHOVER DISCONNECT  NODELAY


 



目录
相关文章
|
29天前
|
存储 Oracle 关系型数据库
【赵渝强老师】Oracle的还原数据
Oracle数据库中的还原数据(也称为undo数据或撤销数据)存储在还原表空间中,主要用于支持查询的一致性读取、实现闪回技术和恢复失败的事务。文章通过示例详细介绍了还原数据的工作原理和应用场景。
【赵渝强老师】Oracle的还原数据
|
4月前
|
SQL 运维 Oracle
【迁移秘籍揭晓】ADB如何助你一臂之力,轻松玩转Oracle至ADB的数据大转移?
【8月更文挑战第27天】ADB(Autonomous Database)是由甲骨文公司推出的自动化的数据库服务,它极大简化了数据库的运维工作。在从传统Oracle数据库升级至ADB的过程中,数据迁移至关重要。
73 0
|
4月前
|
数据采集 Oracle 关系型数据库
实时计算 Flink版产品使用问题之怎么实现从Oracle数据库读取多个表并将数据写入到Iceberg表
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
28天前
|
SQL Oracle 关系型数据库
【赵渝强老师】Oracle的联机重做日志文件与数据写入过程
在Oracle数据库中,联机重做日志文件记录了数据库的变化,用于实例恢复。每个数据库有多组联机重做日志,每组建议至少有两个成员。通过SQL语句可查看日志文件信息。视频讲解和示意图进一步解释了这一过程。
|
28天前
|
SQL Oracle 关系型数据库
【赵渝强老师】Oracle的数据文件
在Oracle数据库中,数据库由多个表空间组成,每个表空间包含多个数据文件。数据文件存储实际的数据库数据。查询时,如果内存中没有所需数据,Oracle会从数据文件中读取并加载到内存。可通过SQL语句查看和管理数据文件。附有视频讲解及示例。
|
2月前
|
Oracle 关系型数据库 数据库
oracle数据创建同义词
oracle数据创建同义词
52 0
|
4月前
|
SQL 监控 Oracle
Oracle数据误删不用怕,跟我来学日志挖掘
Oracle数据误删不用怕,跟我来学日志挖掘
61 0
|
4月前
|
SQL Oracle 关系型数据库
Oracle误删数据怎么恢复?
Oracle误删数据怎么恢复?
50 0
|
4月前
|
SQL Oracle Java
实时计算 Flink版产品使用问题之采集Oracle数据时,为什么无法采集到其他TABLESPACE的表
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
4月前
|
分布式计算 Oracle 关系型数据库
实时计算 Flink版产品使用问题之获取Oracle的数据时无法获取clob类型的数据,该怎么办
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。

推荐镜像

更多