我的情况是我必须仅使用脚本创建一个新的Oracle数据库(所以请不要使用DBCA建议我)
我的脚本如下:
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"是我从使用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;
以上返回错误[ORA-30012:撤消表空间' UNDOTBS01.DBF'不存在或错误的类型]。
首先,当我检查init.ora文件时,我发现UNTO表空间的参数对于UNDO文件具有不同的名称,因此我将其更改为与我的脚本中的文件名匹配。
旧:
undo_management=AUTO
undo_tablespace=UNDOTBS1.DBF
新:
undo_management=AUTO
undo_tablespace=UNDOTBS01.DBF
并删除数据库(是的,即使出现错误,仍然创建数据库,只是无法使用)并再次重新运行everthing,并发生同样的错误。
我有2天的研究,仍然找不到任何解决方案。
以上所有脚本都遵循Oracle网站上的指南: http://docs.oracle.com/cd/B19306_01/server.102/b14231/create.htm
操作系统是Windows Server 2003。
数据库是Oracle 10g标准版。
更新1:
感谢Mat,UNDO表空间问题解决了:D
现在,下一个错误弹出。
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
但实际上,这是因为缺少[DEFAULT TABLESPACE tbs_1]的数据文件选项。
我已经更新了上面的CREATE脚本。
更新2:
为此数据库创建用户时出现了新问题。 我在这个链接上为它创建了一个新主题: Oracle 10g: ORA-12154 when connect to database with newly created user
任何帮助将不胜感激。
答案 0 :(得分:2)
undo_tablespace
参数采用表空间的名称,而不是数据文件的名称。
你应该
undo_tablespace=UNDOTBS
在您的参数文件中以匹配您的数据库创建脚本。