SQL code手动创建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