联系:手机/微信(+86 17813235971) QQ(107644445)
标题:创建控制文件出现ORA-01565 ORA-27041 OSD-04002
作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]
oracle 在win平台上创建控制文件可能会出现ORA-01565 ORA-27041 OSD-04002错误
C:\Users\feicheng>sqlplus / as sysdba SQL*Plus: Release 11.2.0.4.0 Production on 星期六 9月 13 16:20:38 2014 Copyright (c) 1982, 2013, Oracle. All rights reserved. 连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> startup nomount; ORACLE 例程已经启动。 Total System Global Area 400846848 bytes Fixed Size 2281656 bytes Variable Size 188747592 bytes Database Buffers 201326592 bytes Redo Buffers 8491008 bytes SQL> CREATE CONTROLFILE REUSE DATABASE "XFF" NORESETLOGS NOARCHIVELOG 2 MAXLOGFILES 16 3 MAXLOGMEMBERS 3 4 MAXDATAFILES 100 5 MAXINSTANCES 8 6 MAXLOGHISTORY 292 7 LOGFILE 8 GROUP 1 'D:\ORACLE\ORADATA\XFF\REDO01.LOG' SIZE 50M BLOCKSIZE 512, 9 GROUP 2 'D:\ORACLE\ORADATA\XFF\REDO02.LOG' SIZE 50M BLOCKSIZE 512, 10 GROUP 3 'D:\ORACLE\ORADATA\XFF\REDO03.LOG' SIZE 50M BLOCKSIZE 512 11 DATAFILE 12 'D:\ORACLE\ORADATA\XFF\SYSTEM01.DBF', 13 'D:\ORACLE\ORADATA\XFF\SYSAUX01.DBF', 14 'D:\ORACLE\ORADATA\XFF\UNDOTBS01.DBF', 15 'D:\惜分飞\USERS01.DBF' 16 CHARACTER SET ZHS16GBK 17 ; CREATE CONTROLFILE REUSE DATABASE "XFF" NORESETLOGS NOARCHIVELOG * 第 1 行出现错误: ORA-01503: CREATE CONTROLFILE ?? ORA-01565: ???? 'D:\???\USERS01.DBF' ??? ORA-27041: ?????? OSD-04002: ???????????? O/S-Error: (OS 123) ????????????????????????????????
alert日志对应错误提示为
Sat Sep 13 16:27:48 2014 starting up 1 dispatcher(s) for network address '(ADDRESS=(PARTIAL=YES)(PROTOCOL=TCP))'... starting up 1 shared server(s) ... ORACLE_BASE from environment = D:\oracle Sat Sep 13 16:28:11 2014 CREATE CONTROLFILE REUSE DATABASE "XFF" NORESETLOGS NOARCHIVELOG MAXLOGFILES 16 MAXLOGMEMBERS 3 MAXDATAFILES 100 MAXINSTANCES 8 MAXLOGHISTORY 292 LOGFILE GROUP 1 'D:\ORACLE\ORADATA\XFF\REDO01.LOG' SIZE 50M BLOCKSIZE 512, GROUP 2 'D:\ORACLE\ORADATA\XFF\REDO02.LOG' SIZE 50M BLOCKSIZE 512, GROUP 3 'D:\ORACLE\ORADATA\XFF\REDO03.LOG' SIZE 50M BLOCKSIZE 512 DATAFILE 'D:\ORACLE\ORADATA\XFF\SYSTEM01.DBF', 'D:\ORACLE\ORADATA\XFF\SYSAUX01.DBF', 'D:\ORACLE\ORADATA\XFF\UNDOTBS01.DBF', 'D:\???\USERS01.DBF' CHARACTER SET ZHS16GBK WARNING: Default Temporary Tablespace not specified in CREATE DATABASE command Default Temporary Tablespace will be necessary for a locally managed database in future release Errors in file D:\ORACLE\diag\rdbms\xff\xff\trace\xff_ora_8136.trc: ORA-01565: ???? 'D:\???\USERS01.DBF' ??? ORA-27041: ?????? OSD-04002: 无法打开文件 O/S-Error: (OS 123) 文件名、目录名或卷标语法不正确。 ORA-1503 signalled during: CREATE CONTROLFILE REUSE DATABASE "XFF" NORESETLOGS NOARCHIVELOG MAXLOGFILES 16 MAXLOGMEMBERS 3 MAXDATAFILES 100 MAXINSTANCES 8 MAXLOGHISTORY 292 LOGFILE GROUP 1 'D:\ORACLE\ORADATA\XFF\REDO01.LOG' SIZE 50M BLOCKSIZE 512, GROUP 2 'D:\ORACLE\ORADATA\XFF\REDO02.LOG' SIZE 50M BLOCKSIZE 512, GROUP 3 'D:\ORACLE\ORADATA\XFF\REDO03.LOG' SIZE 50M BLOCKSIZE 512 DATAFILE 'D:\ORACLE\ORADATA\XFF\SYSTEM01.DBF', 'D:\ORACLE\ORADATA\XFF\SYSAUX01.DBF', 'D:\ORACLE\ORADATA\XFF\UNDOTBS01.DBF', 'D:\???\USERS01.DBF' CHARACTER SET ZHS16GBK
ORA-01565 ORA-27041 OSD-04002的含义大致为:在创建控制文件的时候,有数据文件无法不存在.
另外在alert日志里面也可以看到,sqlplus中的”D:\惜分飞\USERS01.DBF”变为了”D:\???\USERS01.DBF”导致无法定位到数据文件,从而在创建数据文件之时出现ORA-01565 ORA-27041 OSD-04002错误.
解决放方法:
1.创建控制文件语句中不含中文
C:\Users\feicheng>sqlplus / as sysdba SQL*Plus: Release 11.2.0.4.0 Production on 星期六 9月 13 16:32:09 2014 Copyright (c) 1982, 2013, Oracle. All rights reserved. 已连接到空闲例程。 SQL> STARTUP NOMOUNT ORACLE 例程已经启动。 Total System Global Area 400846848 bytes Fixed Size 2281656 bytes Variable Size 188747592 bytes Database Buffers 201326592 bytes Redo Buffers 8491008 bytes SQL> CREATE CONTROLFILE REUSE DATABASE "XFF" NORESETLOGS NOARCHIVELOG 2 MAXLOGFILES 16 3 MAXLOGMEMBERS 3 4 MAXDATAFILES 100 5 MAXINSTANCES 8 6 MAXLOGHISTORY 292 7 LOGFILE 8 GROUP 1 'D:\ORACLE\ORADATA\XFF\REDO01.LOG' SIZE 50M BLOCKSIZE 512, 9 GROUP 2 'D:\ORACLE\ORADATA\XFF\REDO02.LOG' SIZE 50M BLOCKSIZE 512, 10 GROUP 3 'D:\ORACLE\ORADATA\XFF\REDO03.LOG' SIZE 50M BLOCKSIZE 512 11 DATAFILE 12 'D:\ORACLE\ORADATA\XFF\SYSTEM01.DBF', 13 'D:\ORACLE\ORADATA\XFF\SYSAUX01.DBF', 14 'D:\ORACLE\ORADATA\XFF\UNDOTBS01.DBF', 15 'D:\xifenfei\USERS01.DBF' 16 CHARACTER SET ZHS16GBK 17 ; 控制文件已创建。
2.设置nls_lang为american_america.ZHS16GBK
C:\Users\feicheng>set NLS_LANG=american_america.ZHS16GBK C:\Users\feicheng>sqlplus / as sysdba SQL*Plus: Release 11.2.0.4.0 Production on Sat Sep 13 16:29:04 2014 Copyright (c) 1982, 2013, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> CREATE CONTROLFILE REUSE DATABASE "XFF" NORESETLOGS NOARCHIVELOG 2 MAXLOGFILES 16 3 MAXLOGMEMBERS 3 4 MAXDATAFILES 100 5 MAXINSTANCES 8 6 MAXLOGHISTORY 292 7 LOGFILE 8 GROUP 1 'D:\ORACLE\ORADATA\XFF\REDO01.LOG' SIZE 50M BLOCKSIZE 512, 9 GROUP 2 'D:\ORACLE\ORADATA\XFF\REDO02.LOG' SIZE 50M BLOCKSIZE 512, 10 GROUP 3 'D:\ORACLE\ORADATA\XFF\REDO03.LOG' SIZE 50M BLOCKSIZE 512 11 DATAFILE 12 'D:\ORACLE\ORADATA\XFF\SYSTEM01.DBF', 13 'D:\ORACLE\ORADATA\XFF\SYSAUX01.DBF', 14 'D:\ORACLE\ORADATA\XFF\UNDOTBS01.DBF', 15 'D:\惜分飞\USERS01.DBF' 16 CHARACTER SET ZHS16GBK 17 ; Control file created.
此时alert日志提示
Sat Sep 13 16:29:22 2014 CREATE CONTROLFILE REUSE DATABASE "XFF" NORESETLOGS NOARCHIVELOG MAXLOGFILES 16 MAXLOGMEMBERS 3 MAXDATAFILES 100 MAXINSTANCES 8 MAXLOGHISTORY 292 LOGFILE GROUP 1 'D:\ORACLE\ORADATA\XFF\REDO01.LOG' SIZE 50M BLOCKSIZE 512, GROUP 2 'D:\ORACLE\ORADATA\XFF\REDO02.LOG' SIZE 50M BLOCKSIZE 512, GROUP 3 'D:\ORACLE\ORADATA\XFF\REDO03.LOG' SIZE 50M BLOCKSIZE 512 DATAFILE 'D:\ORACLE\ORADATA\XFF\SYSTEM01.DBF', 'D:\ORACLE\ORADATA\XFF\SYSAUX01.DBF', 'D:\ORACLE\ORADATA\XFF\UNDOTBS01.DBF', 'D:\惜分飞\USERS01.DBF' CHARACTER SET ZHS16GBK WARNING: Default Temporary Tablespace not specified in CREATE DATABASE command Default Temporary Tablespace will be necessary for a locally managed database in future release Sat Sep 13 16:29:25 2014 Successful mount of redo thread 1, with mount id 3507744098 Completed: CREATE CONTROLFILE REUSE DATABASE "XFF" NORESETLOGS NOARCHIVELOG MAXLOGFILES 16 MAXLOGMEMBERS 3 MAXDATAFILES 100 MAXINSTANCES 8 MAXLOGHISTORY 292 LOGFILE GROUP 1 'D:\ORACLE\ORADATA\XFF\REDO01.LOG' SIZE 50M BLOCKSIZE 512, GROUP 2 'D:\ORACLE\ORADATA\XFF\REDO02.LOG' SIZE 50M BLOCKSIZE 512, GROUP 3 'D:\ORACLE\ORADATA\XFF\REDO03.LOG' SIZE 50M BLOCKSIZE 512 DATAFILE 'D:\ORACLE\ORADATA\XFF\SYSTEM01.DBF', 'D:\ORACLE\ORADATA\XFF\SYSAUX01.DBF', 'D:\ORACLE\ORADATA\XFF\UNDOTBS01.DBF', 'D:\惜分飞\USERS01.DBF' CHARACTER SET ZHS16GBK
通过此实验简单说明:在oracle使用该过程中,尽可能少用中文路径或者文件名