While starting up oracle using following command i get following error:
SQL> startup
ORACLE instance started.
Total System Global Area 288141312 bytes
Fixed Size 2252504 bytes
Variable Size 230687016 bytes
Database Buffers 50331648 bytes
Redo Buffers 4870144 bytes
ORA-00205: error in identifying control file, check alert log for more info
When i check alert logs, i see following message:
Wed Nov 02 05:45:35 2016
ALTER DATABASE MOUNT
ORA-00210: cannot open the specified control file
ORA-00202: control file: '/optware/oracle/11.2.0.4/db_1/dbs/<sid>_control2'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
ORA-00210: cannot open the specified control file
ORA-00202: control file: '/optware/oracle/11.2.0.4/db_1/dbs/<sid>_control1'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
However when i check list of control files, i see location but dont know why file for control were not created:
SQL> show parameter CONTROL_FILES
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
control_files string /optware/oracle/11.2.0.4/db_1/
dbs/<sid>_control1, /optwar
e/oracle/11.2.0.4/db_1/dbs/<sid>_control2
DB Creation script:
CREATE DATABASE "mydb"
MAXINSTANCES 8
MAXLOGHISTORY 1
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
DATAFILE '/optware/oradata/mydb/system.dbf' SIZE 1024M REUSE AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED
EXTENT MANAGEMENT LOCAL
SYSAUX DATAFILE '/optware/oradata/mydb/sysaux.dbf' SIZE 1024M REUSE AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED
SMALLFILE DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE '/optware/oradata/mydb/temp.dbf' SIZE 1500M REUSE AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED
SMALLFILE UNDO TABLESPACE "UNDOTB_mydb" DATAFILE '/optware/oradata/mydb/undotbs2.dbf' SIZE 500M REUSE AUTOEXTEND ON NEXT 5120K MAXSIZE UNLIMITED
CHARACTER SET AL32UTF8
NATIONAL CHARACTER SET UTF8
LOGFILE GROUP 1 ('/optware/oradata/mydb/redo1_a1.rdo', '/optware/oradata/mydb/redo1_b1.rdo') SIZE 20M,
GROUP 2 ('/optware/oradata/mydb/redo1_a2.rdo', '/optware/oradata/mydb/redo1_b2.rdo') SIZE 20M,
GROUP 3 ('/optware/oradata/mydb/redo1_a3.rdo', '/optware/oradata/mydb/redo1_b3.rdo') SIZE 20M
USER SYS IDENTIFIED BY "Welcome3" USER SYSTEM IDENTIFIED BY "Welcome3";
Please help
Besides the OP's solution (he had some extra whitespace in the wrong place in the init.ora file), I encountered the exact same errors about controlfiles when I attempted to set a "hidden" parameter_disable_highres_ticks to an apparently invalid value.
Related
I created a completely new Oracle database and I am trying to import a DMP file from a full backup of another database and I am getting several errors.
Command:
impdp system/welcome1 full=yes directory=BACKUPSDR dumpfile=bck_full_AXISPROD_15012018.dmp logfile=bck_full_AXISPROD_15012018.LOG
Error:
Processing object type DATABASE_EXPORT/TABLESPACE
ORA-39083: Object type TABLESPACE failed to create with error:
ORA-02236: invalid file name
Failing sql is:
CREATE UNDO TABLESPACE "UNDOTBS1" DATAFILE SIZE 209715200 AUTOEXTEND ON NEXT 5242880 MAXSIZE 32767M BLOCKSIZE 8192 EXTENT MANAGEMENT LOCAL AUTOALLOCATE
The following doesn't have to be right, but might give you some ideas.
I've formatted a long you posted, just to emphasize --> here:
ORA-02236: invalid file name
CREATE UNDO TABLESPACE "UNDOTBS1"
DATAFILE --> here
SIZE 209715200 AUTOEXTEND ON
NEXT 5242880 MAXSIZE 32767M
BLOCKSIZE 8192 EXTENT
MANAGEMENT LOCAL AUTOALLOCATE
Datafile name is, as you can see, missing. Is it valid?
If you - in the source database - extract DDL used to create tablespaces, such as the following example on my 11g XE, you'll see something like this:
SQL> select dbms_metadata.get_ddl ('TABLESPACE', tablespace_name)
2 from dba_tablespaces;
CREATE UNDO TABLESPACE "UNDOTBS1"
DATAFILE 'C:\ORACLEXE\APP\ORACLE\ORADATA --> here
CREATE TABLESPACE "SYSAUX"
DATAFILE --> here
SIZE 10485760
AUTOEXTEND ON NEXT 104
UNDO tablespace contains datafile name. SYSAUX does not. How come? If you show current value of DB_CREATE_FILES_DEST (which, if set, tells Oracle where to create datafiles by default):
SQL> show parameter DB_CREATE_FILE_DEST;
db_create_file_dest string
you might see something. In my XE, that parameter isn't set.
Therefore, I suppose that IMPDP expected the same datafile location as it was set in the source database. If it doesn't exist, it raised the error.
Could you check it?
If it appears that it is the cause of your problems, you should extract CREATE TABLESPACE commands (as I did), modify datafile names so that they aren't invalid any more and pre-create tablespaces. If you're unsure of how large they should be, run
SQL> select tablespace_name, sum(bytes) / (1024 * 1024) size_in_MB
2 from dba_segments
3 group by tablespace_name;
SYSAUX 643,8125
UNDOTBS1 10,1875
USERS 4,1875
SYSTEM 355,875
Then repeat the IMPDP and exclude tablespaces, such as
exclude=tablespace:"IN ('UNDOTBS1', 'USERS')"
As you can see in the SQL listed, DATAFILE does not have a value. This means that Oracle will try to create a datafile at the default location. If that location is not set, CREATE will fail.
You can check the default location for tablespaces with
SQL> show parameter DB_CREATE_FILE_DEST;
NAME TYPE VALUE
--------------------- -------- ------------------------------
db_create_file_dest string
Above, it has no value. To set the value, use alter system set:
SQL> alter system set DB_CREATE_FILE_DEST='/ORCL/u02/app/oracle/oradata/ORCL/orclpdb1';
System altered.
SQL> show parameter DB_CREATE_FILE_DEST;
NAME TYPE VALUE
--------------------- -------- ------------------------------------------
db_create_file_dest string /ORCL/u02/app/oracle/oradata/ORCL/orclpdb1
Here, /ORCL/u02/app/oracle/oradata/ORCL/orclpdb1 is the path for tables spaces in the first pluggable database (PDB), using the Oracle 12.2.0.1 container from https://container-registry.oracle.com/
I have an oracle database which has problems preventing it from opening.
To overcome the issues, I tried following steps:
First I mounted database:
SQL> startup mount;
ORA-32004: obsolete and/or deprecated parameter(s) specified
ORACLE instance started.
Total System Global Area 1.2560E+10 bytes
Fixed Size 2171344 bytes
Variable Size 6878662192 bytes
Database Buffers 5670699008 bytes
Redo Buffers 8601600 bytes
Database mounted.
After that, I recovered database as below:
SQL> recover database until cancel;
ORA-00279: change 338584095 generated at 11/22/2016 08:41:55 needed for thread 1
ORA-00289: suggestion : /oracle/app/product/11g/db/dbs/arch1_9218_833801667.dbf
ORA-00280: change 338584095 for thread 1 is in sequence #9218
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
cancel
ORA-01547: warning: RECOVER succeeded but OPEN RESETLOGS would get error below
ORA-01194: file 1 needs more recovery to be consistent
ORA-01110: data file 1: '/oracle/app/oradata/ora11g/system01.dbf'
ORA-01112: media recovery not started
After this I tried to alter open database as below:
SQL> alter database open resetlogs;
alter database open resetlogs
*
ERROR at line 1:
ORA-01194: file 1 needs more recovery to be consistent
ORA-01110: data file 1: '/oracle/app/oradata/ora11g/system01.dbf'
and finally I tried recovering system01 datafile as below:
SQL> recover datafile 1;
ORA-00283: recovery session canceled due to errors
ORA-00314: log 2 of thread 1, expected sequence# 9218 doesn't match 9215
ORA-00312: online log 2 thread 1: '/oracle/app/oradata/ora11g/redo02.log'
as you can see in the final error "ORA-00314: log 2 of thread 1, expected sequence# 9218 doesn't match 9215" there is a sequence mismatch between the logfile redo02.log and the server.
How can this mismatch occur and what can I do to fix this?
PS: Since database cannot be opened, I cannot switch logfile and since redo02.log is the current logfile, I cannot drop or clean it.
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS
---------- ---------- ---------- ---------- ---------- --- ----------------
FIRST_CHANGE# FIRST_TIME
------------- ------------------
1 1 0 52428800 1 NO UNUSED
338564041 22-NOV-16
3 1 0 52428800 1 NO UNUSED
338544000 22-NOV-16
2 1 9218 52428800 1 NO CURRENT
338584094 22-NOV-16
My situation is that I have to create a new Oracle database using only scripts (so please do not advice me using DBCA)
My script is as below:
CreateDB.bat
set ORACLE_SID=testdb
oradim -new -sid %ORACLE_SID% -intpwd test -startmode M
copy init.ora D:\oracle\product\10.2.0\db_1\database\inittestdb.ora
sqlplus sys/test as sysdba #D:\Script\CreateDB.sql
==> "init.ora" is the file I copy from the DB created using DBCA
CreateDB.sql
CREATE SPFILE='D:\oracle\product\10.2.0\db_1\dbs\spfiletestdb.ora' FROM
PFILE='D:\oracle\product\10.2.0\db_1\database\inittestdb.ora';
startup nomount PFILE='D:\oracle\product\10.2.0\db_1\database\inittestdb.ora';
create database testdb
logfile group 1 ('D:\oracle\product\10.2.0\oradata\testdb\redo1.log') size 100M,
group 2 ('D:\oracle\product\10.2.0\oradata\testdb\redo2.log') size 100M,
group 3 ('D:\oracle\product\10.2.0\oradata\testdb\redo3.log') size 100M
character set JA16SJIS
national character set AL16UTF16
datafile 'D:\oracle\product\10.2.0\oradata\testdb\system01.dbf'
size 500M
autoextend on
next 100M maxsize unlimited
extent management local
sysaux datafile 'D:\oracle\product\10.2.0\oradata\testdb\sysaux01.dbf'
size 100M
autoextend on
next 100M
maxsize unlimited
DEFAULT TABLESPACE tbs_1
DATAFILE 'D:\oracle\product\10.2.0\oradata\testdb\tbs01.dbf'
SIZE 200M REUSE
DEFAULT temporary TABLESPACE tempts1
tempfile 'D:\oracle\product\10.2.0\oradata\testdb\temp01.dbf'
SIZE 200M REUSE
undo tablespace undotbs
datafile 'D:\oracle\product\10.2.0\oradata\testdb\undotbs01.dbf'
SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;
The above return error [ORA-30012: undo tablespace 'UNDOTBS01.DBF' does not exist or of wrong type].
At first, as i check the init.ora file, I found out that the parameter for UNTO tablespace have different name for UNDO file, so I change it to match the file name in my script.
Old:
undo_management=AUTO
undo_tablespace=UNDOTBS1.DBF
New:
undo_management=AUTO
undo_tablespace=UNDOTBS01.DBF
and delete the database (yes, even when error, the database is still created, just cannot be used) and re-run everthing again, and same error occurs.
I have research for 2 days and still cannot find any solution.
All the script above is following the guide on Oracle website:
http://docs.oracle.com/cd/B19306_01/server.102/b14231/create.htm
The OS is Windows Server 2003.
Database is Oracle 10g Standard Edition.
UPDATED 1:
Thank Mat, UNDO tablespace problem is solved :D
Now, next error pop-up.
Completed: ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TEMPTS1
Wed May 21 09:11:38 2014
Errors in file d:\oracle\product\10.2.0\admin\testdb\udump\testdb_ora_3416.trc:
ORA-00604: error occurred at recursive SQL level 1
ORA-02236: invalid file name
However, it is actually due to the missing of datafile option for [DEFAULT TABLESPACE tbs_1].
I have update the CREATE script above.
UPDATED 2:
A new problem occurred when I create a user for this database.
I have created a new topic for it on this link:
Oracle 10g: ORA-12154 when connect to database with newly created user
Any help will be appreciated.
The undo_tablespace parameter takes the name of the tablespace, not of the datafile.
You should have
undo_tablespace=UNDOTBS
in your parameter file to match your database creation script.
I've created a database in oracle 11g with the following commands:
oradim -NEW -SID TA -STARTMODE auto
sqlplus /as sysdba /nolog #CreateDatabase.sql
conn / as sysdba
CREATE SPFILE='C:/Databases/Tamiflu/tamifludb.ora' FROM PFILE='C:/Databases/Tamiflu/inittamiflu.ora';
SHUTDOWN
startup nomount pfile="C:/Databases/Tamiflu/inittamiflu.ora';
CREATE DATABASE db name
USER SYS IDENTIFIED BY EuroRSCG1
USER SYSTEM IDENTIFIED BY EuroRSCG1
LOGFILE GROUP 1 ('C:/Databases/Tamiflu/Logs/redo01.log') SIZE 100M,
GROUP 2 ('C:/Databases/Tamiflu/Logs/redo02.log') SIZE 100M,
GROUP 3 ('C:/Databases/Tamiflu/Logs/redo03.log') SIZE 100M
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXLOGHISTORY 1
MAXDATAFILES 100
MAXINSTANCES 1
CHARACTER SET US7ASCII
NATIONAL CHARACTER SET AL16UTF16
DATAFILE 'C:/Databases/Tamiflu/Data/system01.dbf' SIZE 325M REUSE
EXTENT MANAGEMENT LOCAL
SYSAUX DATAFILE 'C:/Databases/Tamiflu/Data/sysaux01.dbf' SIZE 325M REUSE
DEFAULT TABLESPACE tbs_1
DEFAULT TEMPORARY TABLESPACE tempts1
TEMPFILE 'C:/Databases/Tamiflu/Data/temp01.dbf'
SIZE 20M REUSE
UNDO TABLESPACE undotbs
DATAFILE 'C:/Databases/Tamiflu/Data/undotbs01.dbf'
SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;
It successfully executes.
Then when I try to view the DB in SQL Developer, it says it doesn't know the SID. But I established the SID earlier.
I don't know how to clear oracle's SID cache or. What to do now.
A few things don't add up here
The instance is named ta
The database init.ora file is named tamiflu
The create database statement is not correct. what is the database name ? db_name?
All of these values should be consistent.
This is a practice assignment where I have to create a table space with two datafiles. We have to use the exact naming conventions that are given to us. I believe I have it right, but I get this error: "ORA-00972: identifier is too long". I think I'm getting this because the path and filename are so long. The question is, how do I get around this?
Thanks!
CREATE TABLESPACE CTTT444_tbs
DATAFILE "C:\oracle\product\10.2.0\oradata\cttt444_1.dbf" SIZE 15M,
DATAFILE "C:\oracle\product\10.2.0\oradata\cttt444_2.dbf" SIZE 15M,
AUTOEXTEND ON
NEXT 5m
MAXSIZE 100m);
File specification should be single quotes. Try:
CREATE TABLESPACE CTTT444_tbs
DATAFILE 'C:\oracle\product\10.2.0\oradata\cttt444_1.dbf' SIZE 15M,
DATAFILE 'C:\oracle\product\10.2.0\oradata\cttt444_2.dbf' SIZE 15M
AUTOEXTEND ON
NEXT 5m
MAXSIZE 100m;
It also looks like you have some syntax errors in the command (such as the right parenthesis).
FYI for those with the same issue. This seemed to work for me.
CREATE TABLESPACE CTTT444_tbs
DATAFILE 'C:\oracle\product\10.2.0\oradata\cttt444_1.dbf' SIZE 15M,
'C:\oracle\product\10.2.0\oradata\cttt444_2.dbf' SIZE 15M
AUTOEXTEND ON
NEXT 5m
MAXSIZE 100m;
OR
CREATE TABLESPACE CTTT444_tbs
DATAFILE 'C:\oracle\product\10.2.0\oradata\cttt444.dbf' SIZE 15M
AUTOEXTEND ON
NEXT 5m
MAXSIZE 100m;
ALTER TABLESPACE CMIS420_tbs ADD DATAFILE 'C:\oracle\product\10.2.0\oradata\cttt444.dbf' SIZE 15M;