时间:2021-07-01 10:21:17 帮助过:70人阅读
背景:一次甲方组织的部署方案讨论会上,各开发商都提出了自己的服务器要求,甲方只给一台数据库先临时过渡使用,要求整合几家应用oracle数据库;我公司做为技术整
背景: 一次甲方组织的部署方案讨论会上,各开发商都提出了自己的服务器要求,甲方只给一台数据库先临时过渡使用,要求整合几家应用oracle数据库; 我公司做为技术整合方虽然提出各种建议,最终无果,于是提出两种方案:
第一种:一个oracle数据库实例中多方案(用户)方式部署,一个应用分配一个数据库帐号(用户)。
第二种:一个是采用多实例方式部署,一个应用一个单独实例。
两种方案各有利弊;因各开发商都说自己数据敏感,于是提出选择了多实例部署的方案,多实例的方式就是在一个oracle数据库服务器创建多个数据库实例,同时运行,应用数据库层面互不干扰。 多实例创建方式很多种,这里以两个实例为例:
(1) 一个数据库实例创建好后,再直接采用DBCA创建另一个实例,适合全新安装,比较方便快速。
(2) 通过现有一个实例数据库克隆一个数据库实例。
(3) 通过rman备份恢复在本机恢复一个数据库实例。
安装多实例需要注意的问题,内存占用量大,两个数据库实例都要各自分配SGA,PGA等内存,对两个实例内存的分配注意控制,以免过多分配内存对主机系统造成影响。
本文第二种方式部署多实例,仅只做安装测试,对于sga内存分配等内容本例忽略掉了, 通过本文对数据库的物理结构进行了一次复习,该方式对11g for linux版本一样适用。
操作系统版本 : OEL5.8 x64
数据库版本 : Oracle 10.2.0.5 x64
数据库名 : orcl
数据库SID : orcl
实例名 : orcl
数据库文件路径: /u01/app/oracle/oradata/orcl/
数据库名 : abc
数据库SID : abc
实例名 : abc
数据库文件路径: /u01/app/oracle/oradata/abc/
说明:两个数据库实例采用不同目录结构与数据库名称。
2. 准备abc实例的目录结构
# su - oracle
$ mkdir -p /u01/app/oracle/admin/abc/{adump,bdump,cdump,dpdump,udump,pfile}
$ mkdir -p /u01/app/oracle/oradata/abc/
3. 准备abc实例的参数文件
通过现有orcl实例的参数文件进行修改。
$ sqlplus /nolog
SQL> conn / as sysdba;
SQL> create pfile from spfile;
SQL> host cp $ORACLE_HOME/dbs/initorcl.ora $ORACLE_HOME/dbs/initabc.ora
SQL> host vi $ORACLE_HOME/dbs/initabc.ora
4. 创建控制文件SQL语句
由于控制文件中包括数据库文件位置,实例名等数据,需要重新根据新的实例名与数据文件及文件路径创建控制文件。
根据control文件跟踪文件创建控制文件。
SQL> alter database backup controlfile to trace;
# 查看刚才创建的跟综文件的文件名:
SQL> oradebug setmypid
SQL> oradebug tracefile_name
/u01/app/oracle/admin/orcl/udump/orcl_ora_4044.trc
SQL> ! cat /u01/app/oracle/admin/orcl/udump/orcl_ora_4044.trc
# 按如下格式,如果有其它数据文件,,可以按此格式加入。
CREATE CONTROLFILE set DATABASE "ABC" RESETLOGS NOARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 '/u01/app/oracle/oradata/abc/redo01.log' SIZE 50M,
GROUP 2 '/u01/app/oracle/oradata/abc/redo02.log' SIZE 50M,
GROUP 3 '/u01/app/oracle/oradata/abc/redo03.log' SIZE 50M
-- STANDBY LOGFILE
DATAFILE
'/u01/app/oracle/oradata/abc/system01.dbf',
'/u01/app/oracle/oradata/abc/undotbs01.dbf',
'/u01/app/oracle/oradata/abc/sysaux01.dbf',
'/u01/app/oracle/oradata/abc/users01.dbf'
CHARACTER SET ZHS16GBK
;
5. 创建密码文件
$ orapwd file=$ORACLE_HOME/dbs/orapwabc password=oracle entries=10
6. 多实例监听与服务名配置(1) 添加静态监听配置,实现单IP,多实例
$ vi $ORACLE_HOME/network/admin/listener.ora
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(SID_NAME = orcl)
(ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1)
(SID_NAME = orcl)
)
(SID_DESC =
(SID_NAME = abc)
(ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1)
(SID_NAME = abc)
)
)