下一步 上一步 目录

3. 创建数据库

现在 Oracle 服务器已经安装完成,我们需要创建一个数据库来测试安装。

如果您正在使用 Oracle 7.2.x 或更早版本,请阅读下面的故障排除章节。

3.1 创建初始化文件

复制 $ORACLE_HOME/dbs/init.ora$ORACLE_HOME/dbs/initorcl.ora


$ cd $ORACLE_HOME/dbs
$ cp init.ora initorcl.ora

通过添加以下行来修改它

db_name = orcl
COMPATIBLE=7.3.3.0.0

3.2 创建数据库安装脚本

$ORACLE_HOME/dbs 目录下创建一个名为 makedb.sql 的脚本文件


connect internal
startup nomount
set echo on
spool makedb.log
create database orcl
        maxinstances 1
        maxlogfiles  8
        datafile '$ORACLE_HOME/dbs/orcl_syst_01.dbf' size 40M reuse
        logfile
                '$ORACLE_HOME/dbs/orcl_redo_01.dbf' size 1M reuse,
                '$ORACLE_HOME/dbs/orcl_redo_02.dbf' size 1M reuse,
                '$ORACLE_HOME/dbs/orcl_redo_03.dbf' size 1M reuse;
@$ORACLE_HOME/rdbms/admin/catalog.sql
create tablespace rollback
        datafile '$ORACLE_HOME/dbs/orcl_roll_01.dbf' size 8.5M reuse;
create tablespace temp
        datafile '$ORACLE_HOME/dbs/orcl_temp_01.dbf' size 5M reuse 
        temporary;
create tablespace users
        datafile '$ORACLE_HOME/dbs/orcl_user_01.dbf' size 10M reuse;
create rollback segment r1 tablespace rollback
        storage ( optimal 5M );
alter rollback segment r1 online;
connect system/manager
@$ORACLE_HOME/rdbms/admin/catdbsyn.sql
connect internal
@$ORACLE_HOME/rdbms/admin/catproc.sql
connect system/manager
@$ORACLE_HOME/sqlplus/admin/pupbld.sql
spool off
exit

3.3 运行数据库安装脚本

启动 svrmgrl 并运行脚本


$ cd $ORACLE_HOME/dbs
$ svrmgrl

Oracle Server Manager Release 2.3.3.0.0 - Production

Copyright (c) Oracle Corporation 1994, 1995. All rights reserved.

Oracle7 Server Release 7.3.3.0.0 - Production Release
PL/SQL Release 2.3.3.0.0 - Production

SVRMGR> connect internal
Connected.
SVRMGR> startup nomount
ORACLE instance started.
Total System Global Area       4313312 bytes
Fixed Size                       41876 bytes
Variable Size                  4140364 bytes
Database Buffers                122880 bytes
Redo Buffers                      8192 bytes
SVRMGR> @makedb
<loads of messages>
SVRMGR> exit
Server Manager complete.

3.4 启动数据库

首先,我们需要手动启动数据库(我们稍后将自动化此过程)。要启动 Oracle 数据库,我们需要在内部连接时执行 startup 命令


$ svrmgrl

Oracle Server Manager Release 2.3.3.0.0 - Production

Copyright (c) Oracle Corporation 1994, 1995. All rights reserved.

Oracle7 Server Release 7.3.3.0.0 - Production Release
PL/SQL Release 2.3.3.0.0 - Production

SVRMGR> connect internal
Connected.
SVRMGR> startup
ORACLE instance started.
Total System Global Area       4313316 bytes
Fixed Size                       41876 bytes
Variable Size                  4140368 bytes
Database Buffers                122880 bytes
Redo Buffers                      8192 bytes
Database mounted.
Database opened.
SVRMGR> exit
Server Manager complete.

3.5 停止数据库

这里值得一提的是,在没有先关闭 Oracle 数据库的情况下重启 Linux 服务器,存在数据库损坏的风险。

因此,在执行 Linux shutdown 命令之前,明智的做法是先关闭数据库


$ svrmgrl

Oracle Server Manager Release 2.3.3.0.0 - Production

Copyright (c) Oracle Corporation 1994, 1995. All rights reserved.

Oracle7 Server Release 7.3.3.0.0 - Production Release
PL/SQL Release 2.3.3.0.0 - Production

SVRMGR> connect internal
Connected.
SVRMGR> shutdown
Database closed.
Database dismounted.
ORACLE instance shut down.
SVRMGR> exit
Server Manager complete.

3.6 创建默认用户

创建的数据库有两个自动创建的特殊用户。它们是


Username                Password

SYSTEM                  MANAGER
SYS                     change_on_install

这些用户通常用于保存数据库的标准数据字典信息。尽快将密码从默认值更改是一个好主意。

这可以通过以下方式实现


sqlplus system/manager

SQL*Plus: Release 3.3.3.0.0 - Production on Sat Feb 21 12:43:33 1998

Copyright (c) Oracle Corporation 1979, 1996.  All rights reserved.


Connected to:
Oracle7 Server Release 7.3.3.0.0 - Production Release

SQL> alter user system identified by <newpassword>;

User altered.

SQL> alter user sys identified by <newpassword>;

User altered.

SQL> exit;
Disconnected from Oracle7 Server Release 7.3.3.0.0 - Production Release
PL/SQL Release 2.3.3.0.0 - Production

由于用户 system/manager 类似于在 UNIX 机器上使用 root,我们需要创建一个权限较低的用户,以减少造成损坏的可能性。(请记住在尝试创建用户之前启动数据库)

连接到 SQL*Plus 并创建一个用户


$ sqlplus system/manager

SQL*Plus: Release 3.3.3.0.0 - Production on Sat Feb 21 12:43:33 1998

Copyright (c) Oracle Corporation 1979, 1996.  All rights reserved.


Connected to:
Oracle7 Server Release 7.3.3.0.0 - Production Release
PL/SQL Release 2.3.3.0.0 - Production

SQL> create user <user> identified by <psw> 
  2  default tablespace users 
  3  temporary tablespace temp;

User created.

SQL> grant connect, resource to <user>

Grant succeeded.

SQL> exit
Disconnected from Oracle7 Server Release 7.3.3.0.0 - Production Release
PL/SQL Release 2.3.3.0.0 - Production

现在您在系统上有了新用户,您可以试用新系统了。要登录到 Oracle 数据库


$ sqlplus <user>/<password>

如果完成时没有错误消息,那么您就拥有一个可用的 Oracle 数据库。如果您只想从这台服务器连接到此数据库,那么工作就完成了,请享用!

但是,如果您像大多数人一样希望配置网络软件以便可以从其他机器连接,请继续阅读。


下一步 上一步 目录