在LINUX平台上手动创建多个实例(oracle11g)

本文档详细介绍了如何在LINUX环境下,以oracle用户登录,手动创建Oracle11g数据库实例的过程。包括复制参数文件、修改参数、创建相关目录、启动实例、创建数据库脚本以及配置监听和本地服务名称。

如果条件允许,可用图形化界面创建更方便快捷

以root用户登录,敲./dbca,如果跳不出图形化界面,就用下面的手动创建

以oracle用户登录

获取oracle安装路径

[oracle@linux] echo $ORACLE_HOME

[oracle@linux] cd $ORACLE_HOME

[oracle@linuxoracle/product/11g/db] cd  dbs

三、创建新实例的参数文件

[oracle@10.14.54.199 dbs]$ ls

hc_orcl2.dat  initdw.ora  initorcl.ora  lkORCL2    orapworcl2       spfileorcl.ora

hc_orcl.dat   init.ora    lkORCL        orapworcl  spfileorcl2.ora

[oracle@10.14.54.199 dbs]$ pwd

/oracle/inst1/product/10.2.0/db_1/dbs

[oracle@10.14.54.199 dbs]$ cp initorcl.ora initorcl3.ora

注:这里我们通过拷贝原实例参数文件的方法进行创建,然后再进行修改。

修改新实例的参数文件

orcl.__db_cache_size=184549376

orcl.__java_pool_size=4194304

orcl.__large_pool_size=4194304

orcl.__shared_pool_size=88080384

orcl.__streams_pool_size=0

*.audit_file_dest='/oracle/inst1/admin/orcl3/adump'

*.background_dump_dest='/oracle/inst1/admin/orcl3/bdump'

*.compatible='10.2.0.1.0'

*.control_files='/oracle/inst1/oradata/orcl3/control01.ctl','/oracle/inst1/oradata/orcl3/control02.ctl','/oracle/inst1/oradata/orcl3/control03.ctl'

*.core_dump_dest='/oracle/inst1/admin/orcl3/cdump'

*.db_block_size=8192

*.db_domain=''

*.db_file_multiblock_read_count=16

*.db_name='orcl3'

*.db_recovery_file_dest='/oracle/inst1/flash_recovery_area'

*.db_recovery_file_dest_size=2147483648

*.dispatchers='(PROTOCOL=TC

<think>嗯,用户现在问的是在Linux下的Oracle 11g如何用SQL创建多个实例。首先,我需要确认用户的需求。他们可能是在管理数据库服务器,需要部署多个实例,可能是为了不同的应用或测试环境。但用户可能对Oracle的架构不太熟悉,因为实例和数据库的概念有时候容易混淆。 首先,Oracle中的实例(Instance)和数据库(Database)是不同的。实例是一组内存结构和进程,而数据库是物理文件的集合。每个实例通常对应一个数据库,但RAC环境下多个实例可以访问一个数据库。不过用户提到的是创建多个实例,可能是指独立的实例各自管理自己的数据库。 接下来,我需要回忆Oracle 11g的创建实例的步骤。通常,创建实例涉及到使用DBCA(Database Configuration Assistant)工具,或者手动创建。但用户特别提到用SQL,这可能意味着他们希望通过SQL命令来完成,但实际上,创建实例涉及的操作不仅仅是SQL,还包括环境配置、参数文件设置等。 可能用户误解了如何通过SQL来创建实例,或者希望用SQL脚本自动化这个过程。需要指出的是,Oracle实例创建主要依赖于工具和手动配置,而不是单纯的SQL语句。因此,可能需要分步骤说明,包括使用DBCA、手动创建方法,以及每个实例需要的参数文件、目录结构等。 另外,用户可能是在Linux环境下操作,需要注意权限问题,比如Oracle用户的环境变量设置,ORACLE_SID的配置,以及监听器的配置。每个实例需要有唯一的SID,监听器需要注册新的实例,以便客户端连接。 还需要考虑存储路径,比如数据文件、控制文件、日志文件的位置,确保不同实例的文件不会冲突。可能需要为每个实例创建单独的目录,并设置相应的参数文件指向这些目录。 用户可能遇到的常见问题包括环境变量未正确设置,导致实例启动失败,或者监听器未配置导致无法连接。需要提醒用户检查这些配置,并提供验证步骤,比如通过SQL*Plus连接实例,或者查看监听器状态。 最后,是否需要提供脚本示例或分步命令,比如如何复制参数文件,修改相关参数,使用CREATE DATABASE语句等。但手动创建数据库比较复杂,容易出错,通常推荐使用DBCA,特别是对于新手来说更安全。 总结下来,回答应该分步骤说明使用DBCA和手动创建的方法,强调实例和数据库的关系,环境变量的配置,以及注意事项,避免用户操作时出现常见错误。同时,需要明确说明单独使用SQL无法直接创建实例,而是需要结合多个步骤和工具。</think>在Oracle 11g中创建多个实例需要结合操作系统级配置和数据库工具操作。以下是分步骤实现指南: --- ### **核心概念区分** 1. **实例(Instance)** = 内存结构(SGA) + 后台进程(PMON/SMON等) 2. **数据库(Database)** = 物理文件集合(数据文件/控制文件/日志文件) 3. **每个实例对应一个数据库**(非RAC环境) --- ### **创建实例的完整流程** **以Linux系统为例,假设已安装Oracle 11g软件** #### **步骤1:操作系统准备** ```bash # 创建实例的专用用户组(可选) sudo groupadd -g 54322 oinstall_new sudo useradd -u 54321 -g oinstall_new -d /home/oracle_new oracle_new # 创建文件系统目录 sudo mkdir -p /u01/app/oracle/oradata/NEWSID sudo chown -R oracle_new:oinstall_new /u01/app/oracle/oradata/NEWSID ``` #### **步骤2:设置环境变量** ```bash # 切换到新Oracle用户 su - oracle_new # 修改环境变量配置文件(如.bashrc) export ORACLE_SID=NEWSID export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1 export PATH=$PATH:$ORACLE_HOME/bin ``` #### **步骤3:创建密码文件** ```bash orapwd file=$ORACLE_HOME/dbs/orapwNEWSID password=your_password entries=5 ``` #### **步骤4:创建参数文件** ```bash # 复制现有模板 cp $ORACLE_HOME/dbs/init.ora $ORACLE_HOME/dbs/initNEWSID.ora # 编辑关键参数 vi $ORACLE_HOME/dbs/initNEWSID.ora ``` ```properties db_name=NEWDB # 数据库名(需唯一) instance_name=NEWSID # 实例名 control_files=(/u01/app/oracle/oradata/NEWSID/control01.ctl) memory_target=1G ``` #### **步骤5:通过SQL*Plus创建数据库** ```sql -- 连接到空闲实例 sqlplus / as sysdba > STARTUP NOMOUNT; -- 执行建库语句 CREATE DATABASE NEWDB USER SYS IDENTIFIED BY your_password USER SYSTEM IDENTIFIED BY your_password LOGFILE GROUP 1 ('/u01/app/oracle/oradata/NEWSID/redo01.log') SIZE 50M, GROUP 2 ('/u01/app/oracle/oradata/NEWSID/redo02.log') SIZE 50M DATAFILE '/u01/app/oracle/oradata/NEWSID/system01.dbf' SIZE 500M SYSAUX DATAFILE '/u01/app/oracle/oradata/NEWSID/sysaux01.dbf' SIZE 300M DEFAULT TABLESPACE users DATAFILE '/u01/app/oracle/oradata/NEWSID/users01.dbf' SIZE 100M; ``` #### **步骤6:后续配置** ```sql -- 创建必要数据字典 @?/rdbms/admin/catalog.sql @?/rdbms/admin/catproc.sql ``` --- ### **验证多实例运行** ```bash # 查看进程 ps -ef | grep pmon # 应显示类似: ora_pmon_NEWSID ora_pmon_ORIGSID ``` --- ### **连接不同实例** ```bash # 通过SQL*Plus连接指定实例 sqlplus sys/your_password@NEWSID as sysdba # 修改tnsnames.ora添加新实例连接描述符 NEWSID = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = your_host)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = NEWDB) ) ) ``` --- ### **关键注意事项** 1. **SID唯一性**:每个实例的`ORACLE_SID`必须全局唯一 2. **端口冲突**:确保监听器配置(`listener.ora`)正确分离端口 3. **资源限制**:通过`/etc/security/limits.conf`限制各实例内存/进程数 4. **备份策略**:每个实例需要独立的热备份/RMAN配置 --- ### **推荐工具** ```bash # 使用DBCA图形化工具创建更安全 dbca ``` 选择"Create a Database"选项可交互式完成实例创建,自动处理文件路径和参数配置。 如果需要批量部署,可通过DBCA静默模式: ```bash dbca -silent -createDatabase \ -templateName General_Purpose.dbc \ -gdbname NEWDB -sid NEWSID \ -responseFile NO_VALUE \ -characterSet AL32UTF8 \ -memoryPercentage 40 \ -emConfiguration LOCAL ```
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值