Oracle手动建库时出现问题

时间:2021-11-21 23:17:55
我是一个学生,最近在学习Oracle,手动建库时出现问题,请各位指教。
参照网上的手动建库的步骤:
1、创建初始化参数文件
2、设置环境变量oracle_sid
3、创建实例
4、创建口令文件
5、启动数据库到nomount状态
6、执行建库脚本——到这就出错了。
我执行了放在E盘根目录下的建库脚本 *.sql 文件时在屏幕上实现是一个数字14,如下
SQL>start E:\*.sql
   14
到这就什么都不显示了,我不知道为什么,敲下回车后有再次显示“SQL> ”,然后我按照后面的步骤创建数据字典,一大堆错误。我知道是执行建库脚本的时候出错了,我不知道是原因,请各位执教,谢谢了。。

8 个解决方案

#1


单根据楼主现在说的东西,我们没法分析啊?
问楼主两个问题:
1,你的建库脚本是怎么写的?
2,你创建的初始化参数文件是怎么写的?
这两个文件相对应吗?

#2


不好意思,我忘记把这两个文件贴出来了。
初始化参数:
###########################################
# Database Identification
###########################################
db_domain=com
db_name=Atm
###########################################
# File Configuration
###########################################
control_files=("E:\oracle\product\10.1.0\oradata\Atm\control01.ctl", "E:\oracle\product\10.1.0\oradata\Atm\control02.ctl", "E:\oracle\product\10.1.0\oradata\Atm\control03.ctl")
db_recovery_file_dest=E:\oracle\product\10.1.0\flash_recovery_area
db_recovery_file_dest_size=2147483648
###########################################
# System Managed Undo and Rollback Segments
###########################################
undo_management=AUTO
undo_tablespace=UNDOTBS1
###########################################
# Diagnostics and Statistics
###########################################
background_dump_dest=E:\oracle\product\10.1.0\admin\Atm\bdump
core_dump_dest=E:\oracle\product\10.1.0\admin\Atm\cdump
user_dump_dest=E:\oracle\product\10.1.0\admin\Atm\udump
以上是初始化参数,我贴上了修改过的部分,其他的部分我都没动过。

下面是建库脚本:
Create database Atm
datafile 'E:\oracle\product\10.1.0\oradata\Atm\system01.dbf' size 300M reuse autoextend on next 10240K maxsize unlimited
extent management local
sysaux datafile 'E:\oracle\product\10.1.0\oradata\Atm\sysaux01.dbf'
size 120M reuse autoextend on next 10240K maxsize unlimited
default temporary tablespace temp
tempfile 'E:\oracle\product\10.1.0\oradata\Atm\temp01.dbf' size 20M reuse autoextend on next 640K maxsize unlimited
undo tablespace "UNDOTBS1"
datafile 'E:\oracle\product\10.1.0\oradata\Atm\undotbs01.dbf' size 200M reuse autoextend on next 5120K maxsize unlimited
logfile
group 1 ('E:\oracle\product\10.1.0\oradata\Atm\redo01.log') size 10240K,
group 2 ('E:\oracle\product\10.1.0\oradata\Atm\redo02.log') size 10240K,
group 3 ('E:\oracle\product\10.1.0\oradata\Atm\redo03.log') size 10240K

请问我这样写有问题吗?,基本都是从其他数据库中拷过来的,基本没怎么动过。

#3


为什么不使用DBCA(Database configuration assistant)来建,在过程中可以控制所有需要的参数的。

#4


楼上的师兄,我知道用DBCA很方便,可是我想试试手动,因为我现在多数都是在linux上操,这次在XP上操作知识要实现一个MFC的程序,所以在这里请教了,如果各位如何手动建库,还请赐教。尤其是细节上,谢谢了

#5



手动创建ORACLE数据库 
平台:Win Server 2003
数据库版本:10.1.0.2.0 Oracle 10g Release 1
1.创建数据库实例,实例名为testdb(只是Windows平台需要,Unix平台不需要)
C:\WINDOWS>oradim -new -sid testdb
Instance created.
2.为了sys用户可以连入数据库执行操作,先创建数据库的密码文件,密码文件的名称必须为PWDsid.ora
C:\WINDOWS>orapwd password=oracle file=E:\oracle\product\10.1.0\db_1\database\PWDtestdb.ora
3.创建下列目录,以存放数据文件和dump信息
#数据文件目录
E:\oracle\product\10.1.0\oradata\testdb
#background dump目录
E:\oracle\product\10.1.0\oradata\testdb\bdump
#core dump目录
E:\oracle\product\10.1.0\oradata\testdb\cdump
#user dump目录
E:\oracle\product\10.1.0\oradata\testdb\udump
4.在listener.ora中添加下列信息,把此数据库注册在监听器中(可选)
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = testdb)
      (ORACLE_HOME = E:\oracle\product\10.1.0\db_1)
      (service= testdb)
    )
  )

5.为了可以访问数据库,在tnsnames.ora添加下列信息

TESTDB =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = hengtian-98510d)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = testdb)
    )
  )

6.建立pfile文件E:\oracle\product\10.1.0\admin\testdb\pfile\init testdb.ora,文件的内容如下:
##############################################################################
# Copyright (c) 1991, 2001, 2002 by Oracle Corporation
##############################################################################
 
###########################################
# Job Queues
###########################################
job_queue_processes=10
 
###########################################
# Shared Server
###########################################
dispatchers="(PROTOCOL=TCP) (SERVICE=testdbXDB)"
 
###########################################
# Miscellaneous
###########################################
compatible=10.1.0.2.0
 
###########################################
# Security and Auditing
###########################################
remote_login_passwordfile=EXCLUSIVE
 
###########################################
# Sort, Hash Joins, Bitmap Indexes
###########################################
pga_aggregate_target=25165824
sort_area_size=65536
 
###########################################
# Database Identification
###########################################
db_domain=""
db_name=testdb
 
###########################################
# File Configuration
###########################################
control_files=("E:\oracle\product\10.1.0\oradata\testdb\control01.ctl", "E:\oracle\product\10.1.0\oradata\testdb\control02.ctl", "E:\oracle\product\10.1.0\oradata\testdb\control03.ctl")
db_recovery_file_dest=E:\oracle\product\10.1.0\flash_recovery_area
db_recovery_file_dest_size=2147483648
 
###########################################
# Pools
###########################################
java_pool_size=50331648
large_pool_size=8388608
shared_pool_size=83886080
 
###########################################
# Cursors and Library Cache
###########################################
open_cursors=300
 
###########################################
# System Managed Undo and Rollback Segments
###########################################
undo_management=AUTO
undo_tablespace=UNDOTBS1
 
###########################################
# Diagnostics and Statistics
###########################################
background_dump_dest=E:\oracle\product\10.1.0\admin\testdb\bdump
core_dump_dest=E:\oracle\product\10.1.0\admin\testdb\cdump
user_dump_dest=E:\oracle\product\10.1.0\admin\testdb\udump
 
###########################################
# Processes and Sessions
###########################################
processes=150
 
###########################################
# Cache and I/O
###########################################
db_block_size=8192
db_cache_size=25165824
db_file_multiblock_read_count=16
 

7.连入数据库,并创建spfile文件
C:\WINDOWS>set ORACLE_SID=testdb
C:\WINDOWS>sqlplus "sys/123 as sysdba"
SQL*Plus: Release 10.2.0.1.0 - Production on Sun Apr 20 21:17:42 2008
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
Connected to an SQL instance.
SQL>create spfile from pfile=’ E:\oracle\product\10.1.0\admin\testdb\pfile\inittestdb.ora’;
File created.
8.启动数据库到nomount
SQL>startup nomount
ORACLE instance started.
Total System Global Area  167772160 bytes
Fixed Size                  1247924 bytes
Variable Size             104858956 bytes
Database Buffers           54525952 bytes
Redo Buffers                7139328 bytes
SQL>
9.执行creata database脚本
SQL>@ E:\oracle\product\10.1.0\createDB.sql
Database created.
#createdb.sql脚本的具体内容如下:
CREATE DATABASE testdb
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXLOGHISTORY 1
MAXDATAFILES 100
MAXINSTANCES 1
user sys identified by oracle
user system identified by oracle
LOGFILE GROUP 1 ('E:\oracle\product\10.1.0\oradata\testdb\redo01.log') SIZE 10M REUSE,
GROUP 2 ('E:\oracle\product\10.1.0\oradata\testdb\redo02.log') SIZE 10M REUSE,
GROUP 3 ('E:\oracle\product\10.1.0\oradata\testdb\redo03.log') SIZE 10M REUSE
DATAFILE 'E:\oracle\product\10.1.0\oradata\testdb\system01.dbf' SIZE 250M REUSE
extent management local
SYSAUX DATAFILE 'E:\oracle\product\10.1.0\oradata\testdb\sysaux01.dbf' SIZE 240M REUSE
DEFAULT TEMPORARY TABLESPACE tempts1
TEMPFILE 'E:\oracle\product\10.1.0\oradata\testdb\temp01.dbf'
SIZE 20M REUSE
UNDO TABLESPACE undotbs1
DATAFILE 'E:\oracle\product\10.1.0\oradata\testdb\undotbs01.dbf'
SIZE 50M REUSE
CHARACTER SET ZHS16GBK
NATIONAL CHARACTER SET AL16UTF16; 
10.执行catalog.sql,创建数据库的数据字典视图
SQL>spool E:\catalog.log
SQL>@ E:\oracle\product\10.1.0\db_1\RDBMS\ADMIN\catalog.sql
SQL>spool off
11.执行catproc.sql,创建执行PL/SQL程序所需的所有包
SQL>spool E:\catproc.log
SQL>@ E:\oracle\product\10.1.0\db_1\RDBMS\ADMIN\catproc.sql
SQL>spool off
还需要执行这个脚本:create user出来的user登录会有warning:
Use system Login, and execute ppbld.sql.
sql>@ E:\oracle\product\10.1.0\db_1\sqlplus\admin\ppbld.sql;

到此数据库abc创建完毕,可以正常使用了
注:
1.pfile文件中undo_tablespace中的名字必需与create database中的相同,否则会出现ORA-01092:ORACLE instance terminated.Disconnection forced的错误。
2.数据字典视图不是都由catalog.sql创建,部分由catproc.sql创建,如:dba_data_files



以前学习的时候参考并修改的手册,你可以看看。

#6


引用 3 楼 luiseradl 的回复:
为什么不使用DBCA(Database configuration assistant)来建,在过程中可以控制所有需要的参数的。

建议先从DBCA开始入手

#7


文件看起来没有问题,
怎么会没有任何错误信息呢?
你必要的相关目录都创建了吗?如果创建了,bdump目录下应该有alert_xxx.log文件,看下!

#8




使用DBCA(Database configuration assistant)来建,在过程中可以控制所有需要的参数的。

#1


单根据楼主现在说的东西,我们没法分析啊?
问楼主两个问题:
1,你的建库脚本是怎么写的?
2,你创建的初始化参数文件是怎么写的?
这两个文件相对应吗?

#2


不好意思,我忘记把这两个文件贴出来了。
初始化参数:
###########################################
# Database Identification
###########################################
db_domain=com
db_name=Atm
###########################################
# File Configuration
###########################################
control_files=("E:\oracle\product\10.1.0\oradata\Atm\control01.ctl", "E:\oracle\product\10.1.0\oradata\Atm\control02.ctl", "E:\oracle\product\10.1.0\oradata\Atm\control03.ctl")
db_recovery_file_dest=E:\oracle\product\10.1.0\flash_recovery_area
db_recovery_file_dest_size=2147483648
###########################################
# System Managed Undo and Rollback Segments
###########################################
undo_management=AUTO
undo_tablespace=UNDOTBS1
###########################################
# Diagnostics and Statistics
###########################################
background_dump_dest=E:\oracle\product\10.1.0\admin\Atm\bdump
core_dump_dest=E:\oracle\product\10.1.0\admin\Atm\cdump
user_dump_dest=E:\oracle\product\10.1.0\admin\Atm\udump
以上是初始化参数,我贴上了修改过的部分,其他的部分我都没动过。

下面是建库脚本:
Create database Atm
datafile 'E:\oracle\product\10.1.0\oradata\Atm\system01.dbf' size 300M reuse autoextend on next 10240K maxsize unlimited
extent management local
sysaux datafile 'E:\oracle\product\10.1.0\oradata\Atm\sysaux01.dbf'
size 120M reuse autoextend on next 10240K maxsize unlimited
default temporary tablespace temp
tempfile 'E:\oracle\product\10.1.0\oradata\Atm\temp01.dbf' size 20M reuse autoextend on next 640K maxsize unlimited
undo tablespace "UNDOTBS1"
datafile 'E:\oracle\product\10.1.0\oradata\Atm\undotbs01.dbf' size 200M reuse autoextend on next 5120K maxsize unlimited
logfile
group 1 ('E:\oracle\product\10.1.0\oradata\Atm\redo01.log') size 10240K,
group 2 ('E:\oracle\product\10.1.0\oradata\Atm\redo02.log') size 10240K,
group 3 ('E:\oracle\product\10.1.0\oradata\Atm\redo03.log') size 10240K

请问我这样写有问题吗?,基本都是从其他数据库中拷过来的,基本没怎么动过。

#3


为什么不使用DBCA(Database configuration assistant)来建,在过程中可以控制所有需要的参数的。

#4


楼上的师兄,我知道用DBCA很方便,可是我想试试手动,因为我现在多数都是在linux上操,这次在XP上操作知识要实现一个MFC的程序,所以在这里请教了,如果各位如何手动建库,还请赐教。尤其是细节上,谢谢了

#5



手动创建ORACLE数据库 
平台:Win Server 2003
数据库版本:10.1.0.2.0 Oracle 10g Release 1
1.创建数据库实例,实例名为testdb(只是Windows平台需要,Unix平台不需要)
C:\WINDOWS>oradim -new -sid testdb
Instance created.
2.为了sys用户可以连入数据库执行操作,先创建数据库的密码文件,密码文件的名称必须为PWDsid.ora
C:\WINDOWS>orapwd password=oracle file=E:\oracle\product\10.1.0\db_1\database\PWDtestdb.ora
3.创建下列目录,以存放数据文件和dump信息
#数据文件目录
E:\oracle\product\10.1.0\oradata\testdb
#background dump目录
E:\oracle\product\10.1.0\oradata\testdb\bdump
#core dump目录
E:\oracle\product\10.1.0\oradata\testdb\cdump
#user dump目录
E:\oracle\product\10.1.0\oradata\testdb\udump
4.在listener.ora中添加下列信息,把此数据库注册在监听器中(可选)
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = testdb)
      (ORACLE_HOME = E:\oracle\product\10.1.0\db_1)
      (service= testdb)
    )
  )

5.为了可以访问数据库,在tnsnames.ora添加下列信息

TESTDB =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = hengtian-98510d)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = testdb)
    )
  )

6.建立pfile文件E:\oracle\product\10.1.0\admin\testdb\pfile\init testdb.ora,文件的内容如下:
##############################################################################
# Copyright (c) 1991, 2001, 2002 by Oracle Corporation
##############################################################################
 
###########################################
# Job Queues
###########################################
job_queue_processes=10
 
###########################################
# Shared Server
###########################################
dispatchers="(PROTOCOL=TCP) (SERVICE=testdbXDB)"
 
###########################################
# Miscellaneous
###########################################
compatible=10.1.0.2.0
 
###########################################
# Security and Auditing
###########################################
remote_login_passwordfile=EXCLUSIVE
 
###########################################
# Sort, Hash Joins, Bitmap Indexes
###########################################
pga_aggregate_target=25165824
sort_area_size=65536
 
###########################################
# Database Identification
###########################################
db_domain=""
db_name=testdb
 
###########################################
# File Configuration
###########################################
control_files=("E:\oracle\product\10.1.0\oradata\testdb\control01.ctl", "E:\oracle\product\10.1.0\oradata\testdb\control02.ctl", "E:\oracle\product\10.1.0\oradata\testdb\control03.ctl")
db_recovery_file_dest=E:\oracle\product\10.1.0\flash_recovery_area
db_recovery_file_dest_size=2147483648
 
###########################################
# Pools
###########################################
java_pool_size=50331648
large_pool_size=8388608
shared_pool_size=83886080
 
###########################################
# Cursors and Library Cache
###########################################
open_cursors=300
 
###########################################
# System Managed Undo and Rollback Segments
###########################################
undo_management=AUTO
undo_tablespace=UNDOTBS1
 
###########################################
# Diagnostics and Statistics
###########################################
background_dump_dest=E:\oracle\product\10.1.0\admin\testdb\bdump
core_dump_dest=E:\oracle\product\10.1.0\admin\testdb\cdump
user_dump_dest=E:\oracle\product\10.1.0\admin\testdb\udump
 
###########################################
# Processes and Sessions
###########################################
processes=150
 
###########################################
# Cache and I/O
###########################################
db_block_size=8192
db_cache_size=25165824
db_file_multiblock_read_count=16
 

7.连入数据库,并创建spfile文件
C:\WINDOWS>set ORACLE_SID=testdb
C:\WINDOWS>sqlplus "sys/123 as sysdba"
SQL*Plus: Release 10.2.0.1.0 - Production on Sun Apr 20 21:17:42 2008
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
Connected to an SQL instance.
SQL>create spfile from pfile=’ E:\oracle\product\10.1.0\admin\testdb\pfile\inittestdb.ora’;
File created.
8.启动数据库到nomount
SQL>startup nomount
ORACLE instance started.
Total System Global Area  167772160 bytes
Fixed Size                  1247924 bytes
Variable Size             104858956 bytes
Database Buffers           54525952 bytes
Redo Buffers                7139328 bytes
SQL>
9.执行creata database脚本
SQL>@ E:\oracle\product\10.1.0\createDB.sql
Database created.
#createdb.sql脚本的具体内容如下:
CREATE DATABASE testdb
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXLOGHISTORY 1
MAXDATAFILES 100
MAXINSTANCES 1
user sys identified by oracle
user system identified by oracle
LOGFILE GROUP 1 ('E:\oracle\product\10.1.0\oradata\testdb\redo01.log') SIZE 10M REUSE,
GROUP 2 ('E:\oracle\product\10.1.0\oradata\testdb\redo02.log') SIZE 10M REUSE,
GROUP 3 ('E:\oracle\product\10.1.0\oradata\testdb\redo03.log') SIZE 10M REUSE
DATAFILE 'E:\oracle\product\10.1.0\oradata\testdb\system01.dbf' SIZE 250M REUSE
extent management local
SYSAUX DATAFILE 'E:\oracle\product\10.1.0\oradata\testdb\sysaux01.dbf' SIZE 240M REUSE
DEFAULT TEMPORARY TABLESPACE tempts1
TEMPFILE 'E:\oracle\product\10.1.0\oradata\testdb\temp01.dbf'
SIZE 20M REUSE
UNDO TABLESPACE undotbs1
DATAFILE 'E:\oracle\product\10.1.0\oradata\testdb\undotbs01.dbf'
SIZE 50M REUSE
CHARACTER SET ZHS16GBK
NATIONAL CHARACTER SET AL16UTF16; 
10.执行catalog.sql,创建数据库的数据字典视图
SQL>spool E:\catalog.log
SQL>@ E:\oracle\product\10.1.0\db_1\RDBMS\ADMIN\catalog.sql
SQL>spool off
11.执行catproc.sql,创建执行PL/SQL程序所需的所有包
SQL>spool E:\catproc.log
SQL>@ E:\oracle\product\10.1.0\db_1\RDBMS\ADMIN\catproc.sql
SQL>spool off
还需要执行这个脚本:create user出来的user登录会有warning:
Use system Login, and execute ppbld.sql.
sql>@ E:\oracle\product\10.1.0\db_1\sqlplus\admin\ppbld.sql;

到此数据库abc创建完毕,可以正常使用了
注:
1.pfile文件中undo_tablespace中的名字必需与create database中的相同,否则会出现ORA-01092:ORACLE instance terminated.Disconnection forced的错误。
2.数据字典视图不是都由catalog.sql创建,部分由catproc.sql创建,如:dba_data_files



以前学习的时候参考并修改的手册,你可以看看。

#6


引用 3 楼 luiseradl 的回复:
为什么不使用DBCA(Database configuration assistant)来建,在过程中可以控制所有需要的参数的。

建议先从DBCA开始入手

#7


文件看起来没有问题,
怎么会没有任何错误信息呢?
你必要的相关目录都创建了吗?如果创建了,bdump目录下应该有alert_xxx.log文件,看下!

#8




使用DBCA(Database configuration assistant)来建,在过程中可以控制所有需要的参数的。