如何在UNIX/LINUX环境中创建Oracle9i 数据库

  创建数据库的步骤
创建一个可使用的数据库共需要六步来完成:其中三步用于创建数据库,其余三步用于设置数据库,让它可以使用。
1) 设置 操作系统环境变量 ORACLE_HOME ORACLE_SID PATH LD_LIBRARY_PATH
2)      编辑/创建initsid.ora参数文件。  
3)      SQL*Plus 中执行CREATE DATABASE命令。  
4)      运行所需的catalog.sqlcatproc.sql脚本。  
5)      运行pupbld.sql脚本。
6)      创建用户数据的表空间以及数据库所需的任何其它表空间  
 
 
二 设置环境
在创建数据库之前,必须配置 UNIX 环境,并且必须已安装了 Oracle9i Server
必须设置四个环境变量:ORACLE_HOMEORACLE_SIDPATHLD_LIBRARY_PATH
 
ORACLE_HOME是安装 Oracle9i Server 的顶级目录的完整路径。ORACLE_HOME目录应该由安装 Oracle9i Server 的人员提供,通常是 UNIX 管理员或 DBA
 
ORACLE_SID是给数据库例程分配的、可由用户定义的名称。操作系统使用ORACLE_SID(系统标识符)来区分在同一台计算机上运行的各个数据库例程。
 
PATH指定操作系统查找可执行程序(如 SQL*Plus)时要搜索的路径。Oracle9i 可执行程序位于$ORACLE_HOME/bin目录下,需要添加到PATH变量中。
 
LD_LIBRARY_PATH定义所需库文件的存储目录。
 
示例
Bourne Korn shell
$ ORACLE_HOME=/u01/oracle9i/product/9.0.1; export ORACLE_HOME
$ ORACLE_SID=testdb; export ORACLE_SID
$ PATH=/usr/bin:/usr/ccs/bin:$ORACLE_HOME/bin; export PATH
$ LD_LIBRARY_PATH=/usr/lib:$ORACLE_HOME/lib; export LD_LIBRARY_PATH
 
C shell
% setenv ORACLE_HOME /u01/oracle9i/product/9.0.1
% setenv ORACLE_SID testdb
% setenv PATH $PATH:$ORACLE_HOME/bin
% setenv LD_LIBRARY_PATH /usr/lib:$ORACLE_HOME/lib
 
三 编辑/创建 initsid.ora
每次数据库启动时,都会读取initsid.ora文件(可由用户配置的文本文件)。该文件中的参数将对数据库设置进行初始化。initsid.ora文件中的参数设置不仅在启动时影响数据库,而且还影响数据库的创建方式。在创建数据库之前,必须先配置initsid.ora文件。
在安装 Oracle9i Server 时,就会将一个示例init.ora文件存放在$ORACLE_HOME/dbs中。将该文件作为备份文件保存,不要修改该文件;创建该文件的一个副本,并包含ORACLE_SID的名称。
示例
$ cd $ORACLE_HOME/dbs
$ cp init.ora inittestdb.ora
示例init.ora文件中有很多注释,这些注释包含有关参数设置的建议。
initsid.ora中的参数不需要按顺序列出,如果多次列出某个参数,则使用该参数的最后一个设置Oracle9i Reference 中建议将参数按字母顺序列出以免重复。
应该对某些参数进行配置,其中包括db_namecontrol_filesbackground_dump_destuser_dump_destcore_dump_dest undo_management
将参数background_dump_destuser_dump_destcore_dump_dest设置为存放跟踪文件的完整路径位置:
         core_dump_dest         包含数据库生成的核心转储
         user_dump_dest             包含用户跟踪文件
         background_dump_dest包含后台进程的跟踪文件和 alert.log
db_name是数据库的名称,其用途与ORACLE_SID不同。ORACLE_SID是用于指定数据库例程的名称。db_nameORACLE_SID在多数情况下是相同的,但这并不是必需的。initsid.ora中的db_name必须与创建数据库时CREATE DATABASE命令中使用的数据库名称相同(区分大小写)。
control_files初始化参数为数据库指定每个控制文件的完整路径和文件名。在创建数据库时,它指定必须创建的控制文件。
undo_management初始化参数确定是由 Oracle 服务器自动处理还原数据,还是由 DBA 手动处理还原数据。在初始化文件中将undo_management设置为AUTO
附录 A 结尾附有一个示例inittestdb.ora文件。
 
四 创建数据库
在设置环境并配置initsid.ora后,就可以创建数据库了。Oracle 数据库是通过执行CREATE DATABASE命令创建的。CREATE DATABASE命令指定了日志文件的数量和位置、SYSTEM表空间、UNDO表空间和TEMP表空间的位置和大小,以及数据库使用的字符集(这并不是一个详尽的列表)。
可使用 Oracle 实用程序 SQL*Plus 创建数据库。UNIX SQL*Plus 可执行程序是sqlplus
在创建数据库时,Oracle9i 服务器仅识别SYS用户和SYSDBA角色。要创建数据库,必须以用户SYS和角色SYSDBA的身份连接到 SQL*Plus。可以使用以下两种方法之一完成该操作。
 
1如果连接 SQL*Plus UNIX 用户是管理员组的成员(在 Oracle9i Server 安装期间定义),则使用以下语法:
               $ sqlplus '/ as sysdba '
               或者
               $ sqlplus /nolog
       SQL> connect / as sysdba
2. 如果连接 SQL*Plus UNIX 用户不是管理员组的成员,则管理员必须创建数据库的口令文件,并且必须使用在口令文件中给SYS分配的口令。以下语法假定在口令文件中给SYS分配的口令是oracle  
               $ sqlplus 'sys/change_on_install as sysdba'
               或者
               $ sqlplus /nolog
       SQL> connect sys/change_on_install as sysbda
 
创建和执行 SQL 语句的步骤是:
1.创建一个包含CREATE DATABASE命令的 SQL 脚本。(附录 A 的结尾附有一个创建数据库的示例脚本。)
2.使用上面所示的两种方法之一,以SYS AS SYSDBA的身份连接到 SQL*Plus
3.在NOMOUNT模式下启动数据库。
4.执行 SQL 脚本。
 
 
示例
% sqlplus 'sys/change_on_install as sysdba'
SQL> startup nomount
ORACLE instance started.
Total System Global Area   21790532 bytes
Fixed Size                   278340 bytes
Variable Size               16777216 bytes
Database Buffers            4194304 bytes
Redo Buffers                 540672 bytes
SQL> @crdbtestdb.sql
SQL> CREATE DATABASE testdb
 2     LOGFILE
 3       GROUP 1 ('$HOME/ORADATA/testdb/redolog_testdb_01.rdo') SIZE 10M,
 4       GROUP 2 ('$HOME/ORADATA/testdb/redolog_testdb_02.rdo') SIZE 10M
 5     DATAFILE '$HOME/ORADATA/testdb/system_01_testdb.dbf' SIZE 100M
 6        AUTOEXTEND ON NEXT 5M MAXSIZE 150M
 7     DEFAULT TEMPORARY TABLESPACE temp
 8        TEMPFILE '$HOME/ORADATA/testdb/temp_testdb_01.dbf' SIZE 15M
 9        AUTOEXTEND ON NEXT 5M MAXSIZE 30M
 10     CHARACTER SET WE8ISO8859P1
 11     NATIONAL CHARACTER SET AL16UTF16
 12 ;
Statement processed.
 
五  运行脚本
必须在创建数据库之后运行脚本catalog.sqlcatproc.sql,这两个脚本位于$ORACLE_HOME/rdbms/admin目录中。catalog.sql脚本用于创建数据字典视图;catproc.sql用于创建使用 PL/SQL 所需的程序包和过程。
必须以SYS的身份运行这两个脚本。在创建脚本之前,确保数据库已打开。
示例
% sqlplus /nolog
SQL> CONNECT / AS SYSDBA
SQL> @$ORACLE_HOME/rdbms/admin/catalog.sql
SQL> @$ORACLE_HOME/rdbms/admin/catproc.sql
在系统不忙的时候,运行这两个脚本总共需要 35 65 分钟。
在运行这些脚本后,验证对象是否有效。以下查询可返回所有无效的对象。
SQL> SELECT   owner,object_name,object_type
 2 FROM     dba_objects
 3 WHERE    status = 'INVALID'
 4 ORDER BY owner,object_type,object_name;
 
运行pupbld.sql
pupbld.sql脚本用于创建产品用户配置文件(Product User Profile)表以及相关的过程,该脚本位于$ORACLE_HOME/sqlplus/admin目录中。运行此脚本还可在每次用户连接到 SQL*Plus 时防止生成警告消息。必须以用户SYSTEM的身份运行此脚本。
$ sqlplus system/manager
SQL> @$ORACLE_HOME/sqlplus/admin/pupbld.sql
 
创建表空间
创建安装所需的其它表空间。
在数据库的安装过程中,通常创建以下表空间:
         users          用户数据
         tools         用户SYSTEM创建的对象(可选)
应该创建这两个表空间。
示例
SQL> create tablespace USERS
 2 datafile '$HOME/ORADATA/testdb/users_testdb_01.dbf' SIZE 25M
 3 PERMANENT
 4 EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K
 5 SEGMENT SPACE MANAGEMENT auto;
 
六 小结
        设置ORACLE_HOME ORACLE_SIDPATHLD_LIBRARY_PATH
        编辑initsid.ora
        执行CREATE DATABASE命令。
        运行catalog.sqlcatproc.sql脚本。
        运行pupbld.sql脚本。
        创建数据库所需的表空间。
         
示例inittestdb.ora
background_dump_dest=$HOME/ADMIN/BDUMP
compatible=9.0.0
control_files=$HOME/ORADATA/testdb/ctrl_01_sid.ctl
core_dump_dest=$HOME/ADMIN/CDUMP
db_block_size=4096
db_cache_size=4M
db_domain=world
db_name=testdb
global_names=TRUE
instance_name=testdb
max_dump_file_size=10240
remote_login_passwordfile=exclusive
service_names=testdb
shared_pool_size=8M
undo_management=AUTO
user_dump_dest=$HOME/ADMIN/UDUMP
 
创建数据库的示例脚本
CREATE DATABASE testdb
   LOGFILE
      GROUP 1 ('$HOME/ORADATA/testdb/redolog_testdb_01.rdo') SIZE 10M,
      GROUP 2 ('$HOME/ORADATA/testdb/redolog_testdb_01.rdo') SIZE 10M
   DATAFILE '$HOME/ORADATA/testdb/system_testdb_01.dbf' SIZE 100M
      AUTOEXTEND ON NEXT 5M MAXSIZE 150M
   DEFAULT TEMPORARY TABLESPACE temp
      TEMPFILE '$HOME/ORADATA/testdb/temp_testdb_01.dbf' SIZE 15M
      AUTOEXTEND ON NEXT 5M MAXSIZE 30M
   CHARACTER SET ZHS16CGB231280
   NATIONAL CHARACTER SET AL16UTF16
 
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值