目录
1. 数据库环境
(1) 现在一个数据库情况
(2) 待克隆的数据库
2. 准备abc实例的目录结构
3. 准备abc实例的参数文件
4. 创建控制文件SQL语句
5. 创建密码文件
6. 多实例监听与服务名配置
(1) 添加静态监听配置,实现单IP,多实例
(2) 命令服务配置
7. 拷贝orcl实例的数据文件
(1) 数据库必须在一致性状态下进行拷贝,需要关闭orcl数据库实例。
(2) 拷贝orcl实例的所有数据文件
8. 正启开始创建abc实例
(1) 通过abc SID启动数据库
(2) 启动abc实例到nomount状态
(3) 在nomount状态下创建生成控制文件,手动复制粘贴上面创建的生成控制文件语句。
(6) 添加一个临时数据文件
9. 更改Oracle数据库DBID
(1)在nid之前必须要shutdown immediate一次再mount状态;
(2) nid修改数据库名
(3) 验证数据库名修改,最终修改成功。
10. 配置实例开机自启动
(1) 配置oracle开机启动,加入abc实例自启动开关项
(2) 设置开机启动
(3) 登录到数据库服务器上手动的启动与关闭数据库实例方法
首页 数据库 mysql教程 Oracle10g多实例配置一例

Oracle10g多实例配置一例

Jun 07, 2016 pm 02:53 PM
实例 组织 背景 配置

背景: 一次甲方组织的部署方案讨论会上,各开发商都提出了自己的服务器要求,甲方只给一台数据库先临时过渡使用,要求整合几家应用oracle数据库; 我公司做为技术整合方虽然提出各种建议,最终无果,于是提出两种方案: 第一种:一个oracle数据库实例中多方案

背景: 一次甲方组织的部署方案讨论会上,各开发商都提出了自己的服务器要求,甲方只给一台数据库先临时过渡使用,要求整合几家应用oracle数据库; 我公司做为技术整合方虽然提出各种建议,最终无果,于是提出两种方案:  
第一种:一个oracle数据库实例中多方案(用户)方式部署,一个应用分配一个数据库帐号(用户)。    
第二种:一个是采用多实例方式部署,一个应用一个单独实例。

两种方案各有利弊;因各开发商都说自己数据敏感,于是提出选择了多实例部署的方案,多实例的方式就是在一个oracle数据库服务器创建多个数据库实例,同时运行,应用数据库层面互不干扰。 多实例创建方式很多种,这里以两个实例为例:

(1) 一个数据库实例创建好后,再直接采用DBCA创建另一个实例,适合全新安装,比较方便快速。  
(2) 通过现有一个实例数据库克隆一个数据库实例。    
(3) 通过rman备份恢复在本机恢复一个数据库实例。

安装多实例需要注意的问题,内存占用量大,两个数据库实例都要各自分配SGA,PGA等内存,对两个实例内存的分配注意控制,以免过多分配内存对主机系统造成影响。  
本文第二种方式部署多实例,仅只做安装测试,对于sga内存分配等内容本例忽略掉了, 通过本文对数据库的物理结构进行了一次复习,该方式对11g for linux版本一样适用。

1. 数据库环境

(1) 现在一个数据库情况

操作系统版本  : OEL5.8 x64  
数据库版本    : Oracle 10.2.0.5 x64    
数据库名      : orcl    
数据库SID     : orcl    
实例名        : orcl    
数据库文件路径: /u01/app/oracle/oradata/orcl/

(2) 待克隆的数据库

数据库名      : 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

#将orcl改为abc实例,注意路径是否正确。 
abc.__db_cache_size=293601280 
abc.__java_pool_size=4194304 
abc.__large_pool_size=4194304 
abc.__shared_pool_size=117440512 
abc.__streams_pool_size=0 
*.audit_file_dest='/u01/app/oracle/admin/abc/adump' 
*.background_dump_dest='/u01/app/oracle/admin/abc/bdump' 
*.compatible='10.2.0.5.0' 
*.control_files='/u01/app/oracle/oradata/abc/control01.ctl','/u01/app/oracle/oradata/abc/control02.ctl','/u01/app/oracle/oradata/abc 
/control03.ctl' 
*.core_dump_dest='/u01/app/oracle/admin/abc/cdump' 
*.db_block_size=8192 
*.db_domain='' 
*.db_file_multiblock_read_count=16 
*.db_name='abc' 
*.db_recovery_file_dest='/u01/app/oracle/flash_recovery_area' 
*.db_recovery_file_dest_size=2147483648 
*.dispatchers='(PROTOCOL=TCP) (SERVICE=abcXDB)' 
*.job_queue_processes=10 
*.open_cursors=300 
*.pga_aggregate_target=141557760 
*.processes=150 
*.remote_login_passwordfile='EXCLUSIVE' 
*.sga_target=425721856 
*.undo_management='AUTO' 
*.undo_tablespace='UNDOTBS1' 
*.user_dump_dest='/u01/app/oracle/admin/abc/udump'
登录后复制

 

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)    
    )    
  )

LISTENER =  
  (DESCRIPTION_LIST =    
    (DESCRIPTION =    
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.233.150)(PORT = 1521))    
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))    
    )    
  )

(2) 命令服务配置

$ vi $ORACLE_HOME/network/admin/tnsnames.ora  
ABC =    
  (DESCRIPTION =    
    (ADDRESS_LIST =    
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.233.150)(PORT = 1521))    
    )    
    (CONNECT_DATA =    
      (SID = abc)    
      (SERVICE = DEDICATED)    
    )    
  )

ORCL =  
  (DESCRIPTION =    
    (ADDRESS_LIST =    
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.233.150)(PORT = 1521))    
    )    
    (CONNECT_DATA =    
      (SID = orcl)    
      (SERVICE = DEDICATED)    
    )    
  )

EXTPROC_CONNECTION_DATA =  
  (DESCRIPTION =    
    (ADDRESS_LIST =    
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))    
    )    
    (CONNECT_DATA =    
      (SID = PLSExtProc)    
      (PRESENTATION = RO)    
    )    
  )

$ lsnrctl stop  
$ lsnrctl start

LSNRCTL for Linux: Version 10.2.0.5.0 - Production on 14-11014 22:07:31

Copyright (c) 1991, 2010, Oracle.  All rights reserved.

Starting /u01/app/oracle/product/10.2.0/db_1/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 10.2.0.5.0 - Production  
System parameter file is /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.ora    
Log messages written to /u01/app/oracle/product/10.2.0/db_1/network/log/listener.log    
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=node1)(PORT=1521)))    
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC0)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=node1)(PORT=1521)))  
STATUS of the LISTENER    
------------------------    
Alias                     LISTENER    
Version                   TNSLSNR for Linux: Version 10.2.0.5.0 - Production    
Start Date                14-11014 22:07:31    
Uptime                    0 days 0 hr. 0 min. 0 sec    
Trace Level               off    
Security                  ON: Local OS Authentication    
SNMP                      OFF    
Listener Parameter File   /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.ora    
Listener Log File         /u01/app/oracle/product/10.2.0/db_1/network/log/listener.log    
Listening Endpoints Summary...    
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=node1)(PORT=1521)))    
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC0)))    
Services Summary...    
Service "PLSExtProc" has 1 instance(s).    
  Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...    
Service "abc" has 1 instance(s).    
  Instance "abc", status UNKNOWN, has 1 handler(s) for this service...    
Service "orcl" has 1 instance(s).    
  Instance "orcl", status UNKNOWN, has 1 handler(s) for this service...    
The command completed successfully

 

7. 拷贝orcl实例的数据文件

(1) 数据库必须在一致性状态下进行拷贝,需要关闭orcl数据库实例。

$ sqlplus / as sysdba;  
SQL> shutdown immediate;    
SQL> quit

(2) 拷贝orcl实例的所有数据文件

$ cp /u01/app/oracle/oradata/orcl/*.dbf /u01/app/oracle/oradata/abc/  
$ ll /u01/app/oracle/oradata/abc/    
total 738672    
-rw-r----- 1 oracle oinstall 262152192 Nov 14 22:12 sysaux01.dbf    
-rw-r----- 1 oracle oinstall 461381632 Nov 14 22:12 system01.dbf    
-rw-r----- 1 oracle oinstall  20979712 Nov 14 22:12 temp01.dbf    
-rw-r----- 1 oracle oinstall  26222592 Nov 14 22:12 undotbs01.dbf    
-rw-r----- 1 oracle oinstall   5251072 Nov 14 22:12 users01.dbf    
$

 

8. 正启开始创建abc实例

(1) 通过abc SID启动数据库

[oracle@node1 ~]$ export ORACLE_SID=abc  
[oracle@node1 ~]$ sqlplus / as sysdba;

SQL*Plus: Release 10.2.0.5.0 - Production on 14 22:18:52 2014

Copyright (c) 1982, 2010, Oracle.  All Rights Reserved.

Connected to an idle instance.

SQL>

(2) 启动abc实例到nomount状态

因为有abc实例的pfile参数文件,可以将数据库启动到nomount状态.

SQL> startup nomount;  
ORACLE instance started.

Total System Global Area  427819008 bytes  
Fixed Size                  2096792 bytes    
Variable Size             125829480 bytes    
Database Buffers          293601280 bytes    
Redo Buffers                6291456 bytes    
SQL>

(3) 在nomount状态下创建生成控制文件,手动复制粘贴上面创建的生成控制文件语句。

SQL> 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    
18  ;

Control file created.

SQL>    
SQL>

(4) resetlogs启动数据库

resetlogs启动数据库同时重新生成创建redo日志文件。

SQL> alter database open resetlogs;

Database altered.

(5) 通过abc实例的pfile文件创建spfile文件

SQL> create spfile from pfile;

(6) 添加一个临时数据文件

SQL> alter tablespace temp add tempfile '/u01/app/oracle/oradata/abc/temp01.dbf'

 

9. 更改Oracle数据库DBID

(1)在nid之前必须要shutdown immediate一次再mount状态;

SQL> shutdown immediate;  
SQL> startup mount;    
SQL> quit

(2) nid修改数据库名

[oracle@node1 ~]$ nid target=sys

DBNEWID: Release 10.2.0.5.0 - Production on 14 22:46:50 2014

Copyright (c) 1982, 2007, Oracle.  All rights reserved.

Password:    
Connected to database ABC (DBID=1390560469)

Connected to server version 10.2.0

Control Files in database:  
    /u01/app/oracle/oradata/abc/control01.ctl    
    /u01/app/oracle/oradata/abc/control02.ctl    
    /u01/app/oracle/oradata/abc/control03.ctl

Change database ID of database ABC? (Y/[N]) => y

Proceeding with operation  
Changing database ID from 1390560469 to 1819805470    
    Control File /u01/app/oracle/oradata/abc/control01.ctl - modified    
    Control File /u01/app/oracle/oradata/abc/control02.ctl - modified    
    Control File /u01/app/oracle/oradata/abc/control03.ctl - modified    
    Datafile /u01/app/oracle/oradata/abc/system01.dbf - dbid changed    
    Datafile /u01/app/oracle/oradata/abc/undotbs01.dbf - dbid changed    
    Datafile /u01/app/oracle/oradata/abc/sysaux01.dbf - dbid changed    
    Datafile /u01/app/oracle/oradata/abc/users01.dbf - dbid changed    
    Datafile /u01/app/oracle/oradata/abc/temp01.dbf - dbid changed    
    Control File /u01/app/oracle/oradata/abc/control01.ctl - dbid changed    
    Control File /u01/app/oracle/oradata/abc/control02.ctl - dbid changed    
    Control File /u01/app/oracle/oradata/abc/control03.ctl - dbid changed    
Instance shut down

(3) 验证数据库名修改,最终修改成功。

$ sqlplus /nolog  
SQL> conn / as sysdba;    
SQL> startup mount;    
SQL> alter database open resetlogs;    
SQL> select dbid,name from v$database;

      DBID NAME     
---------- ---------    
1819805470 ABC      

SQL>

 

10. 配置实例开机自启动

(1) 配置oracle开机启动,加入abc实例自启动开关项

# vi /etc/oratab    
orcl:/u01/app/oracle/product/10.2.0/db_1:Y    
abc:/u01/app/oracle/product/10.2.0/db_1:Y

 

(2) 设置开机启动

# vi /etc/rc.local    
#!/bin/sh    
su - oracle -c "lsnrctl start"    
su - oracle -c "dbstart"

 

(3) 登录到数据库服务器上手动的启动与关闭数据库实例方法

进入orcl实例的方法;  
$ export ORACLE_SID=orcl    
$ sqlplus /nolog    
SQL> conn /as sysdba    
SQL> startup;

进入abc实例的方法;  
$ export ORACLE_SID=abc    
$ sqlplus /nolog    
SQL> conn /as sysdba    
SQL> startup

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

<🎜>:泡泡胶模拟器无穷大 - 如何获取和使用皇家钥匙
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系统,解释
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆树的耳语 - 如何解锁抓钩
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1670
14
CakePHP 教程
1428
52
Laravel 教程
1329
25
PHP教程
1274
29
C# 教程
1256
24
Linux系统中GDM的工作原理及配置方法 Linux系统中GDM的工作原理及配置方法 Mar 01, 2024 pm 06:36 PM

标题:Linux系统中GDM的工作原理及配置方法在Linux操作系统中,GDM(GNOMEDisplayManager)是一种常见的显示管理器,用于控制图形用户界面(GUI)登录和用户会话管理。本文将介绍GDM的工作原理和配置方法,以及提供具体的代码示例。一、GDM的工作原理GDM是GNOME桌面环境下的显示管理器,负责启动X服务器并提供登录界面,用户输

了解Linux Bashrc:功能、配置与使用方法 了解Linux Bashrc:功能、配置与使用方法 Mar 20, 2024 pm 03:30 PM

了解LinuxBashrc:功能、配置与使用方法在Linux系统中,Bashrc(BourneAgainShellruncommands)是一个非常重要的配置文件,其中包含了系统启动时自动运行的各种命令和设置。Bashrc文件通常位于用户的家目录下,是一个隐藏文件,它的作用是为用户自定义设置Bashshell的环境。一、Bashrc的功能设置环境

win11系统如何配置工作组 win11系统如何配置工作组 Feb 22, 2024 pm 09:50 PM

Win11系统如何配置工作组工作组是一种在局域网中连接多台计算机的方式,它允许计算机之间共享文件、打印机和其他资源。在Win11系统中,配置工作组非常简单,只需按照以下步骤操作即可。步骤1:打开“设置”应用程序首先,点击Win11系统的“开始”按钮,然后在弹出的菜单中选择“设置”应用程序。你也可以使用快捷键“Win+I”打开“设置”。步骤2:选择“系统”在“设置”应用程序中,你会看到多个选项。请点击“系统”选项,进入系统设置页面。步骤3:选择“关于”在“系统”设置页面中,你会看到多个子选项。请点

Linux系统中如何配置和安装FTPS Linux系统中如何配置和安装FTPS Mar 20, 2024 pm 02:03 PM

标题:Linux系统中如何配置和安装FTPS,需要具体代码示例在Linux系统中,FTPS是一种安全的文件传输协议,与FTP相比,FTPS通过TLS/SSL协议对传输的数据进行加密,提高了数据传输的安全性。在本文中,将介绍如何在Linux系统中配置和安装FTPS,并提供具体的代码示例。步骤一:安装vsftpd打开终端,输入以下命令安装vsftpd:sudo

ppt背景怎么全部替换 ppt背景怎么全部替换 Mar 25, 2024 pm 04:25 PM

PPT背景替换是一种重要的操作,可快速统一演示文稿的视觉风格。通过修改幻灯片母版或使用“格式背景”功能,可以快速替换整个演示文稿的背景。此外,某些PPT版本还提供批量替换功能,可以轻松替换所有幻灯片的背景。在替换背景时,应注意选择与演示文稿主题相符的背景,并确保背景清晰度和分辨率符合要求。

美图秀秀如何换照片背景底色 美图秀秀如何换照片背景底色 Apr 08, 2024 pm 03:56 PM

1、打开美图秀秀软件,选择【图片美化】,从相册中导入照片。2、点击底部工具栏的【抠图】,选择【背景替换】功能。3、在【背景】选项中,从纯色方框中挑选所需底色,或上传自定义图片。4、确认选择后,点击【保存】即可完成底色更换。

CentOS7系统安装和配置 DRBD?实现高可用性和数据冗余教程! CentOS7系统安装和配置 DRBD?实现高可用性和数据冗余教程! Feb 22, 2024 pm 02:13 PM

DRBD(DistributedReplicatedBlockDevice)是一种用于实现数据冗余和高可用性的开源解决方案。下面是在CentOS7系统上安装和配置DRBD的教程:安装DRBD:打开终端并以管理员身份登录到CentOS7系统。运行以下命令以安装DRBD软件包:sudoyuminstalldrbd配置DRBD:编辑DRBD配置文件(通常位于/etc/drbd.d目录下),配置DRBD资源的设置。例如,可以定义主节点和备份节点的IP地址、端口和设备等。确保主节点和备份节点之间可以通过网

MyBatis Generator配置参数解读及最佳实践 MyBatis Generator配置参数解读及最佳实践 Feb 23, 2024 am 09:51 AM

MyBatisGenerator是MyBatis官方提供的一个代码生成工具,可以帮助开发人员快速生成符合数据库表结构的JavaBean、Mapper接口以及XML映射文件。在使用MyBatisGenerator进行代码生成的过程中,配置参数的设置是至关重要的。本文将从配置参数的角度出发,深入探讨MyBatisGenerator的

See all articles