前言 ----------------------------------------------------------------------- 以下介绍一种方法在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.
|