当前位置导航:炫浪网>>网络学院>>编程开发>>Oracle教程

在UNIX环境下创建第二个数据库实例


  
  前言
  -----------------------------------------------------------------------
  以下介绍一种方法在UNIX环境下创建第二个数据库实例(基于ORACLE7,ORACLE8环境下,处理基本相同)。为了更好的理解以下步骤,推荐阅读以下资料
  --ORACLE管理员指南:第二章(创建数据库)
  --SQL语言参考手册:创建数据库命令部分
  设置UNIX环境
  -----------------------------------------------------------------------
  在创建数据库实例时,ORACLE会检查UNIX环境变量,确定要创建什么实例。
  因此,必须在创建第二个数据库实例前设置好你的数据库实例名字;即设置好以下变量:
  ORACLE_SID - 设为你的新的ORACLE实例的名字
  ORACLE_HOME - 设置为ORACLE安装的完全路径
  PATH - 必须包含$ORACLE_HOME/bin这个搜索路径
  可以在UNIX SHELL环境下,用以下命令设置:
  对于sh(bash):ORACLE_SID XXX;export ORACLE_SID
  对于csh :setenv ORACLE_SID XXX
  检查变量是否正确,用以下命令:
  echo $ORACLE_SID(回车)
  系统将显示新的ORACLE_SID环境变量。
  警告:不设置新的ORACLE_SID,直接执行以下步骤,将会覆盖掉你原有的数据库实例及其数据、数据文件!请慎重、仔细!
  
  创建第二个数据库实例
  -----------------------------------------------------------------------
  
  这种方法是在SQL*DBA下,通过输入CREATE DATABASE命令来实现。
  这种方法比较灵活,例如:你可以指定MAXDATAFILES(最大数据文件数)参数,可以指定SYSTEM表空间使用多个数据文件,等等。当然,手工操作,失误的可能性就相对大一些。在添加时,不会自动创建LOG来记录你所指定的创建参数。
  详细步骤:
  1. 设置UNIX环境变量(详细步骤方法如上所述)。假设新的SID为"SID2"。
  2. 为新的实例创建一个新的INITSID2.ORA文件,可以通过COPY一份标准的INIT文件来实现
  % cp $ORACLE_HOME/dbs/init.ora $ORACLE_HOME/dbs/initSID2.ora
  3. 修改initSID2.ora,将db_name参数改为新的SID名称;
  原语句:db_name=DEFAULT 新语句: db_name=SID2
  4. 用命令行方式启动SQLDBA:
  svrmgrl
  5. 连接上新的实例,用NOMOUNT参数启动实例:
  SVRMGR> connect internal
  Connected.
  SVRMGR> startup nomount
  ORACLE instance started.
  SVRMGR>
  6. 参阅SQL语法手册中"CREATE DATABASE"的命令,编写创建命令。
  语法:
  CREATE DATABASE [database]
  [CONTROLFILE REUSE]
  [LOGFILE [GROUP integer] filespec [, [GROUP integer] filespec] ...]
  [MAXLOGFILES integer ]
  [MAXLOGMEMBERS integer]
  [MAXLOGHISTORY integer]
  [DATAFILE filespec [, filespec] ...]
  [MAXDATAFILES integer]
  [MAXINSTANCES integer]
  [ARCHIVELOG | NOARCHIVELOG]
  [EXCLUSIVE]
  [CHARACTER SET charset]
  例如:
  SVRMGR> create database SID2
  2> logfile group 1 ('oracle_home/dbs/log1SID2.dbf') size 500K,
  3> group 2 ('oracle_home/dbs/log2SID2.dbf') size 500K
  4> datafile 'oracle_home/dbs/dbsSID2.dbf' size 20M
  5> maxdatafiles 50;
  7. 执行完成以上语句后,立刻巡行$ORACLE_HOME/rdbms/admin目录下的catalog.sql 脚本。这个脚本必须用INTERNAL用户或者SYS用户来执行。
  注意:如果安装了一些其他产品,catproc.sql脚本也必须要执行。建议都 执行一下。
  SVRMGR>@$ORACLE_HOME/rdbms/admin/catalog.sql
  SVRMGR>@$ORACLE_HOME/rdbms/admin/catproc.sql
  8. 执行完成后,SYSTEM表空间和SYSTEM回滚段都已经存在了。然而,在其他表空间创建之前,必须先在SYSEM表空间上创建并激活第二回滚段。
  创建回滚段的语法如下:
  CREATE ROLLBACK SEGMENT 回滚段名称
  TABLESPACE SYSTEM
  STORAGE (...);
  激活回滚段的语法如下:
  ALTER ROLLBACK SEGMENT 回滚段名称 ONLINE;
  9. 至此数据库实例创建已经基本完成,你需要再创建一些用户表空间来使用。这就要根据你的实际应用自行决定了。
  10. 修改/etc/oratab文件,添加上新的实例的记录。这个文件用来在启动主机时自动启动数据库。
  以上步骤可以完成创建一个数据库实例的过程。此外,你也可以利用ORACLE提供的一些工具来实现,例如:在ORACLE 8i下的$ORACLE_HOME/bin/dbassist.
相关内容
赞助商链接