手动创建数据库通常包含如下操作步骤:(参照E:\资料\oracle资料及培训资料\手动创建oracle数据库\详解Oracle手动创建数据库几大步骤.txt)
1、确定新建数据库名称和实例名称;
2、确定数据库管理员的认证方式;
3、创建初始化参数文件;
4、创建实例;
5、连接并启动实例;
6、使用create database语句创建数据库;
7、创建附加的表空间;
8、运行脚本创建数据字典视图;
1、确定新建数据库名称和实例名称;
2、确定数据库管理员的认证方式;
3、创建初始化参数文件;
4、创建实例;
5、连接并启动实例;
6、使用create database语句创建数据库;
7、创建附加的表空间;
8、运行脚本创建数据字典视图;
mkdir d:\oracle\data\admin\book
mkdir d:\oracle\data\admin\book\bdump
mkdir d:\oracle\data\admin\book\udump
mkdir d:\oracle\data\admin\book\cdump
mkdir d:\oracle\data\admin\book\pfile
mkdir d:\oracle\data\admin\book\create
mkdir d:\oracle\data\admin\book\book
mkdir d:\oracle\data\admin\book\archive
mkdir d:\oracle\data\oradata\book
mkdir d:\oracle\data\admin\oradata\book
mkdir d:\oracle\data\flash_recovery_area
SET ORACLE_SID=book
oradim -new -sid book
orapwd file=d:/oracle/product/10.2.0/db_1/database/pwdbook.ora password=oracle entries=2
sqlplus /nolog
connect sys/oracle as sysdba
startup nomount
start e:\book.sql
附book.sql内容:(system01,sysaux01,temp01,undotbs)
create database book
datafile 'd:\oracle\data\oradata\book\system01.dbf' size 58M reuse autoextend on next 10240k maxsize unlimited
extent management local
sysaux datafile 'd:\oracle\data\oradata\book\sysaux01.dbf' size 58M reuse autoextend on next 10240k maxsize unlimited
default temporary tablespace temp
tempfile 'd:\oracle\data\oradata\book\temp01.dbf' size 20M reuse autoextend on next 640k maxsize unlimited
undo tablespace "UNDOTBS1"
datafile 'd:\oracle\data\oradata\book\undotbs01.dbf' size 58M reuse autoextend on next 10240k maxsize unlimited
logfile
group 1 ('d:\oracle\data\oradata\book\redo01.log') size 10240k,
group 2 ('d:\oracle\data\oradata\book\redo02.log') size 10240k,
group 3 ('d:\oracle\data\oradata\book\redo03.log') size 10240k
执行create database 语句的同时,自动执行$ORACLE_HOME dbmsadminsql.bsq脚本,创建SYSTEM表空间和SYSTEM回退段、建立SYS 和SYSTEM账号、建立数据字典基础表、建立数据字典索引、创建预定义角色等。
7、创建附加的表空间
用create database语句创建的数据库中只有(system01,sysaux01,temp01,undotbs)4个表空间,还需要创建其他
一些额外的表空间index01 ,users01,test01
7、创建附加的表空间
用create database语句创建的数据库中只有(system01,sysaux01,temp01,undotbs)4个表空间,还需要创建其他
一些额外的表空间index01 ,users01,test01
create tablespace test01\index\users
datafile 'd:\oracle\data\oradata\book\test01.dbf'
size 100M
autoextend on next 30M maxsize unlimited
logging
permanent
extent management local autoallocate
blocksize 8k
segment space management manual
flashback on;
在创建表空间时出现:ORA-01109:数据库未打开。
8.创建用户:
CREATE USER test IDENTIFIED BY "test"
DEFAULT TABLESPACE "TEST"
TEMPORARY TABLESPACE "TEMP"
PROFILE DEFAULT
QUOTA UNLIMITED ON "TEST";
GRANT UNDER ANY TABLE TO test WITH ADMIN OPTION;
GRANT UNDER ANY TYPE TO test WITH ADMIN OPTION;
GRANT UNDER ANY VIEW TO test WITH ADMIN OPTION;
GRANT "DBA" TO test WITH ADMIN OPTION;
GRANT "OLAP_DBA" TO test WITH ADMIN OPTION;
GRANT "OLAP_USER" TO test WITH ADMIN OPTION;
GRANT "SELECT_CATALOG_ROLE" TO test WITH ADMIN OPTION;
ALTER USER test DEFAULT ROLE "DBA", "OLAP_DBA", "OLAP_USER", "SELECT_CATALOG_ROLE";
ALTER USER test QUOTA UNLIMITED ON TEST;
CREATE USER test IDENTIFIED BY "test"
DEFAULT TABLESPACE "TEST"
TEMPORARY TABLESPACE "TEMP"
PROFILE DEFAULT
QUOTA UNLIMITED ON "TEST";
GRANT UNDER ANY TABLE TO test WITH ADMIN OPTION;
GRANT UNDER ANY TYPE TO test WITH ADMIN OPTION;
GRANT UNDER ANY VIEW TO test WITH ADMIN OPTION;
GRANT "DBA" TO test WITH ADMIN OPTION;
GRANT "OLAP_DBA" TO test WITH ADMIN OPTION;
GRANT "OLAP_USER" TO test WITH ADMIN OPTION;
GRANT "SELECT_CATALOG_ROLE" TO test WITH ADMIN OPTION;
ALTER USER test DEFAULT ROLE "DBA", "OLAP_DBA", "OLAP_USER", "SELECT_CATALOG_ROLE";
ALTER USER test QUOTA UNLIMITED ON TEST;
9.连接到实例book
C:\>sqlplus /nolog
SQL>connect sys/oracle as sysdba
或者
C:\>sqlplus sys/oracle as sysdba
用NOMOUNT选项启动实例
SQL>startup nomount pfile=e:\oracle\product\admin\book\pfile\initbook.ora
注:此时SGA被创建,Oracle后台进程也启动,但没有加载数据库
执行创建数据库的脚本createbook.sql命令:
SQL>@e:\oracle\product\admin\book\create\createbook.txt
创建数据字典:
SQL>@d:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\catalog.sql;
(加载常用的数据字典视图)
SQL>@d:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\catproc.sql;
(加载PL/SQL程序包)
SQL>connect SYSTEM/manager
SQL>@d:\oracle\product\10.2.0\db_1\sqlplus\admin\pupbld.sql;
(加载系统环境文件)
@d:\oracle\product\10.2.0\db_1\rdbms\admin\catalog.sql
@d:\oracle\product\10.2.0\db_1\rdbms\admin\catproc.sql
@d:\oracle\product\10.2.0\db_1\rdbms\admin\catexp7.sql
@d:\oracle\product\10.2.0\db_1\sqlplus\admin\caths.sql
@d:\oracle\product\10.2.0\db_1\sqlplus\admin\help\hlpbld.sql helpus.sql
@d:\oracle\product\10.2.0\db_1\rdbms\admin\catalog.sql
@d:\oracle\product\10.2.0\db_1\rdbms\admin\catproc.sql
@d:\oracle\product\10.2.0\db_1\rdbms\admin\catexp7.sql
@d:\oracle\product\10.2.0\db_1\sqlplus\admin\caths.sql
@d:\oracle\product\10.2.0\db_1\sqlplus\admin\help\hlpbld.sql helpus.sql
查询数据库文件:
SQL>select name from v$controlfile; (查看book数据库的控制文件)
SQL>select file_name from dba_data_files; (查看book数据库的数据文件)
SQL>select * from v$logfile; (查看book数据库的日志文件)
SQL> select name from v$tablespace; (查看book数据库的表空间)
创建其他的表空间:
完善数据库,创建spfile文件。
完善数据库,创建spfile文件。
SQL>create spfile from pfile='d:\oracle\data\admin\book\pfile\initbook.ora'; (创建spfile)
SQL>connect / as SYSDBA
SQL>shutdown
SQL>startup
问题及解决:
(startup nomount ORACLE
startup pfile=G:\oracle\product\10.2.0\db_1\database\initbook.ora
create pfile='G:\oracle\product\10.2.0\db_1\database\initbook.ora' from spfile;
SQL> startup nomount
SQL> startup nomount
ORA-00401: the value for parameter compatible is not supported by this release
解决:compatible=10.2.0.3.0改为:10.2.1.0
ORA-01081: 无法启动已在运行的 ORACLE - 请首先关闭它
解决:
shutdown immediate关闭再进行
startup nomount重新开启就可以了)
在创建表空间时出现:ORA-01109:数据库未打开。
解决:shutdown immediate关闭再进行
startup nomount重新开启就可以了)
start g:/oracle/product/10.2.0/db_1/rdbms/admin/catalog.sql
start g:/oracle/product/10.2.0/db_1/sqlplus/admin/pupbld.sql
net stop OracleServicebook
net start OracleServicebook
net stop OracleOraDb10g_home1TNSListener
net start OracleOraDb10g_home1TNSListener
(startup nomount ORACLE
startup pfile=G:\oracle\product\10.2.0\db_1\database\initbook.ora
create pfile='G:\oracle\product\10.2.0\db_1\database\initbook.ora' from spfile;
SQL> startup nomount
SQL> startup nomount
ORA-00401: the value for parameter compatible is not supported by this release
解决:compatible=10.2.0.3.0改为:10.2.1.0
ORA-01081: 无法启动已在运行的 ORACLE - 请首先关闭它
解决:
shutdown immediate关闭再进行
startup nomount重新开启就可以了)
在创建表空间时出现:ORA-01109:数据库未打开。
解决:shutdown immediate关闭再进行
startup nomount重新开启就可以了)
start g:/oracle/product/10.2.0/db_1/rdbms/admin/catalog.sql
start g:/oracle/product/10.2.0/db_1/sqlplus/admin/pupbld.sql
net stop OracleServicebook
net start OracleServicebook
net stop OracleOraDb10g_home1TNSListener
net start OracleOraDb10g_home1TNSListener
附参考资料:
(oracle10g复习一)oracle10g创建数据库的方法
分类: 数据库 2008-12-23 09:39 7286人阅读 评论(9) 收藏 举报
有段时间没有摸这个东西了,说起来也惭愧啊,现在的工作根本用不到甲骨文,但是我觉得这个东西以后还是很有用的,所以我觉得很有必要复习下了,下面我会就这个一话题做一个全面的复习计划,待续... ... ... ... ... ... ... ...
在Oracle中建库,通常有两种方法。一是使用Oracle的建库工具DBCA,这是一个图形界面工具,使用起来方便且很容易理解,因为它的界面友好、美观,而且提示也比较齐全。在Windows系统中,这个工具可以在Oracle程序组中打开(”开始”—“程序”—“ Oracle - OraDb10g_home1”—“ Configuration and Migration Tools”—“ Database Configuration Assistant”),也可以在命令行(”开始”—“运行”—“cmd”)工具中直接输入dbca来打开。另一种方法就是手工建库,下面我会一一举例说明。
第一:手工建库
手工建库比起使用DBCA建库来说,是比较麻烦的,但是如果我们学好了手工建库的话,就可以使我们更好地理解Oracle数据库的体系结构。手工建库需要经过几个步骤,每一个步骤都非常关键。它包括:
1、 创建必要的相关目录
2、 创建初始化参数文件
3、 设置环境变量Oracle_sid
4、 创建实例
5、 创建口令文件
6、 启动数据库到nomount(实例)状态
7、 执行建库脚本
8、 执行catalog脚本创建数据字典
9、 执行catproc创建package包
10、 执行pupbld
11、 由初始化参数文件创建spfile文件
12、 执行scott脚本创建scott模式
做完了以上的步骤之后就可以使用“SQL>alter database open;”打开数据库正常的使用了。下面,我将具体地把以上的几个步骤用实验展开来讲。
实验系统平台:Windows XP 数据库系统版本:Oracle Database 10G
Oracle的安装路径:D盘 创建的数据库名称:book
1、打开命令行工具,创建必要有相关目录
C:/>mkdir D:/oracle/product/10.2.0/admin/book
C:/>mkdir D:/oracle/product/10.2.0/admin/book/bdump
C:/>mkdir D:/oracle/product/10.2.0/admin/book/udump
C:/>mkdir D:/oracle/product/10.2.0/admin/book/cdump
C:/>mkdir D:/oracle/product/10.2.0/admin/book/pfile
C:/>mkdir D:/oracle/product/10.2.0/admin/book/create
C:/>mkdir D:/oracle/product/10.2.0/oradata/book
上面创建目录的过程也可以在Windows的图形界面中去创建。其中D:/oracle/product/10.2.0/admin/book目录下的几个子目录主要用于存放数据库运行过程中的跟踪信息。最重要的两个子目录是bdump和udump目录,bdump目录存放的是数据库运行过程中的各个后台进程的跟踪信息,当中alert文件是警告文件,其文件名称为alert_book.log,当数据库出现问题时,首先就可以去查看此文件以找出原因,手工创建过程中出现的各种问题往往也可以通过查看这个文件找到原因。udump目录存放和特定会话相关的跟踪信息。D:/oracle/product/10.2.0/oradata/book目录存放各种数据库文件,包括controlfile、datafile、logfile。
2、创建初始化参数文件
数据库系统启动时须要用初始化参数文件的设置分配内存、启动必要的后台进程的。因此,初始化参数文件创建的是否正确、参数设置是否正确关系着整个建库的“命运”。
创建初始化参数文件可以通过拷贝现有的初始化参数文件并将其做适当的修改即可,从而不必要用手工去一句一句地写出来,因为初始化参数文件的结构体系基本上都是一样的。在我们安装Oracle的时候,系统已经为我们安装了一个名为orcl的数据库,于是我们可以从它那里得到一份初始化参数文件。打开D:/oracle/product/10.2.0/admin/orcl/pfile,找到init.ora文件,把它拷贝到D:/oracle/product/10.2.0/bd_1/databse下,并将其改名为initbook.ora。接着用记事本的方式打开initbook.ora,修改以下的内容:
db_domain="" ------数据库域名
db_name=book
control_files=("D:/oracle/product/10.2.0/oradata/book/control01.ctl", "D:/oracle/product/10.2.0/oradata/book/control02.ctl", "D:/oracle/product/10.2.0/oradata/book/control03.ctl")
undo_management=AUTO ------Undo空间管理方式
undo_tablespace=UNDOTBS1 ------注意此处的“UNDOTBS1”要和建库脚步本中对应
background_dump_dest=D:/oracle/product/10.2.0/admin/book/bdump ------后台进程跟踪文件生成的位置
core_dump_dest=D:/oracle/product/10.2.0/admin/book/cdump
user_dump_dest=D:/oracle/product/10.2.0/admin/book/udump
3、打开命令行,设置环境变量oracle_sid
C:/>set oracle_sid=book
设置环境变量的目的地是在默认的情况下,指定命令行中所操作的数据库实例是book。
4、创建实例(即后台控制服务)
C:/>oradim –new –sid book
oradim是创建实例的工具程序名称,-new表明执行新建实例,-delete表明执行删掉实例,-sid指定实例的名称。
5、创建口令文件
C:/>orapwd file=D:/oracle/product/10.2.0/db_1/database/pwdbook.ora password=bookstore entries=5
orapwd是创建口令文件的工具程序名称,file参数指定口令文件所在的目录和文件名称,password参数指定sys用户的口令,entries参数指定数据库拥用DBA权限的用户的个数,当然还有一个force参数,表示是否强制覆盖。
请注意,这里的命令要一行输入,中间不得换行,否则会出现不必要的错误。
口令文件是专门存放sys用户的口令,因为sys用户要负责建库、启动数据库、关闭数据库等特殊任务,把以sys用户的口令单独存放于口令文件中,这样数据库未打开时也能进行口令验证。
6、启动数据库到nomount(实例)状态
C:/>sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on 星期二 12月 23 10:04:11 2008
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL>connect sys/oracle as sysdba ---这里是用sys连接数据库
已连接到空闲例程
SQL>startup nomount
ORACLE 例程已经启动。
Total System Global Area 285212672 bytes
Fixed Size 1248552 bytes
Variable Size 71303896 bytes
Database Buffers 205520896 bytes
Redo Buffers 7139328 bytes
Fixed Size 1248552 bytes
Variable Size 71303896 bytes
Database Buffers 205520896 bytes
Redo Buffers 7139328 bytes
SQL>
7、执行建库脚本
执行建库脚本,首先要有建库的脚本。(去哪找建库脚本呢?我又没有!)不用着急,请接着往下看。
得到一个符合自己要求的建库脚本有两种方法,一种方法是在自己的电脑上用DBCA来建,接照它的提示一步步地去做,在做到第十二步的时候,请选择“生成建库脚本”,然后就大功告成,你就可以到相应的目录上去找到那个脚本并适当地修它便可便用。另一种方法就是自己手工去写一份建库脚本,这也是这里要见意使用的方法,用记事本编辑如下的内容,并将其保存为文件名任取而后缀名为(*.sql)的SQL脚本,这里保存到E盘根本录下且文件名称为book.sql。
Create database book
datafile 'D:/oracle/product/10.2.0/oradata/book/system01.dbf' size 300M reuse autoextend on next 10240K maxsize unlimited
extent management local
sysaux datafile 'D:/oracle/product/10.2.0/oradata/book/sysaux01.dbf'
size 120M reuse autoextend on next 10240K maxsize unlimited
default temporary tablespace temp
tempfile 'D:/oracle/product/10.2.0/oradata/book/temp01.dbf' size 20M reuse autoextend on next 640K maxsize unlimited
undo tablespace "UNDOTBS1" --请注意这里的undo表空间要和参数文件对应
datafile 'D:/oracle/product/10.2.0/oradata/book/undotbs01.dbf' size 200M reuse autoextend on next 5120K maxsize unlimited
logfile
group 1 ('D:/oracle/product/10.2.0/oradata/book/redo01.log') size 10240K,
group 2 ('D:/oracle/product/10.2.0/oradata/book/redo02.log') size 10240K,
group 3 ('D:/oracle/product/10.2.0/oradata/book/redo03.log') size 10240K
接着就执行刚建的建库脚本:
SQL>start E:/book.sql
8、执行catalog脚步本创建数据字典
SQL>start D:/oracle/product/10.2.0/db_1/RDBMS/ADMIN/catalog.sql
9、执行catproc创建package包
SQL>start D:/oracle/product/10.2.0/db_1/RDBMS/ADMIN/catproc.sql
10、执行pupbld
在执行pupbld之前要把当前用户(sys)转换成system,即以system账户连接数据库。因为此数据库是刚建的,所以system的口令是系统默认的口令,即manager。你可以在数据库建好以后再来重新设置此账户的口令。
SQL>connect system/manager
SQL>start D:/oracle/product/10.2.0/db_1/sqlplus/admin/pupbld.sql
如果这一步出错了,多半是因为权限的问题,你可以换和角色登陆,一般就可以登陆了
SQL>connect system/manager as sysdba
11、由初始化参数文件创建spfile文件
SQL>create spfile from pfile;
12、执行scott脚本创建scott模式
SQL>start D:/oracle/product/10.2.0/db_1/RDBMA/ADMIN/scott.sql
13、把数据库打开到正常状态
SQL>alter database open;
14、以scott连接到数据库(口令为tiger),测试新建数据库是否可以正常运行
至此,整个数据库就已经建好了。接着你就可以在这个数据库上做你的事情了。
转载于:https://blog.51cto.com/xiahouyao123/723750