ORACLE新建实例打开已有的数据库--数据库与实例的区分测试

TOM说:数据库可被许多实例安装和打开,或者一个接一个的实例安装和打开,或者由多个实例同时安装和打开(即RAC)……一个数据库可以同时被许多实例安装和打开,这就是关于RAC的所有内容了。

下面我们测试一下看看,新建立一个实例,打开一个已经存在的数据库:

--1.查看一下现有实例(orasid)及数据库的信息
C:/Documents and Settings/yuechaotian>set oracle_sid=orasid

C:/Documents and Settings/yuechaotian>sqlplus
SQL*Plus: Release 9.2.0.1.0 - Production on 星期六 12月 22 12:05:26 2007
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
请输入用户名: / as sysdba
已连接到空闲例程。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 135338868 bytes
Fixed Size                   453492 bytes
Variable Size             109051904 bytes
Database Buffers           25165824 bytes
Redo Buffers                 667648 bytes
数据库装载完毕。
数据库已经打开。
SQL> set linesize 1000
SQL> show parameter spfile
NAME     TYPE        VALUE
-------- ----------- ------------------------------
spfile   string      %ORACLE_HOME%/DATABASE/SPFILE%
                                                 ORACLE_SID%.ORA
SQL> set wrap off
SQL> select * from v$controlfile;
STATUS NAME
------- -----------------------------------
        D:/ORACLE/ORADATA/ORA/CONTROL01.CTL
        D:/ORACLE/ORADATA/ORA/CONTROL02.CTL
        D:/ORACLE/ORADATA/ORA/CONTROL03.CTL
SQL> select name from v$datafile;
NAME
-----------------------------------
D:/ORACLE/ORADATA/ORA/SYSTEM01.DBF
D:/ORACLE/ORADATA/ORA/UNDOTBS01.DBF
D:/ORACLE/ORADATA/ORA/CWMLITE01.DBF
D:/ORACLE/ORADATA/ORA/DRSYS01.DBF
D:/ORACLE/ORADATA/ORA/EXAMPLE01.DBF
D:/ORACLE/ORADATA/ORA/INDX01.DBF
D:/ORACLE/ORADATA/ORA/ODM01.DBF
D:/ORACLE/ORADATA/ORA/TOOLS01.DBF
D:/ORACLE/ORADATA/ORA/USERS01.DBF
D:/ORACLE/ORADATA/ORA/XDB01.DBF
D:/ORACLE/ORADATA/TEST/TP_TEST01.DBF
NAME
-----------------------------------
D:/ORACLE/ORADATA/TEST/TP_BAK01.DBF
D:/ORACLE/ORADATA/TEST/TP_P1.DBF
D:/ORACLE/ORADATA/TEST/TP_P2.DBF
D:/ORACLE/ORADATA/TEST/TP_JB_MID.DBF
D:/ORACLE/ORADATA/TEST/TP_P3.DBF
已选择16行。
SQL> select * from v$logfile;
    GROUP# STATUS TYPE    MEMBER
---------- ------- ------- ---------------------------------
         5         ONLINE D:/ORACLE/ORADATA/ORA/REDO05.LOG
         4 STALE   ONLINE D:/ORACLE/ORADATA/ORA/REDO04.LOG
--2.关闭数据库及实例orasid,创建pfile文件
--   创建完毕后,修改pfile2.ora中的参数*.instance_name='orasid2'。(其实不修改也没关系,同样可以启动数据库)
SQL> shutdown
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> create pfile='d:/pfile2.ora' from spfile;
文件已创建。
SQL> exit
从Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production中断开
--3.创建新实例orasid2
C:/Documents and Settings/yuechaotian>oradim
ORADIM: <command> [options]。 请参阅手册。
请输入以下命令之一:
通过指定以下参数创建例程:
    -NEW -SID sid | -SRVC service [-INTPWD password] [-MAXUSERS number] [-STARTMODE a|m] [-PFILE file] [-TIMEOUT secs]
通过指定以下参数编辑例程:
-EDIT -SID sid [-NEWSID sid] [-INTPWD passwd] [-STARTMODE a|m] [-PFILE file] [-SHUTMODE a|i|n] [-SHUTTYPE srvc|inst]
通过指定以下参数删除例程:
    -DELETE -SID sid | -SRVC service name
通过指定以下参数启动服务和例程:
    -STARTUP -SID sid [-USRPWD password] [-STARTTYPE srvc|inst|srvc,inst] [-PFILE filename]
通过指定以下参数关闭服务和例程:
    -SHUTDOWN -SID sid [-USRPWD password] [-SHUTTYPE srvc|inst|srvc,inst] [-SHUTMODE a | i | n]
通过指定以下参数查询帮助: -? | -h | -help
您为 -NEW 命令输入了无效的选项
C:/Documents and Settings/yuechaotian>oradim -new -sid orasid2 -intpwd test -maxusers 5 -startmode a -pfile 'd:/pfile2.ora'
--4.使用新创建的实例 orasid2 登录刚才 orasid 实例登录的数据库,并测试。
C:/Documents and Settings/yuechaotian>set oracle_sid=orasid2
C:/Documents and Settings/yuechaotian>sqlplus
SQL*Plus: Release 9.2.0.1.0 - Production on 星期六 12月 22 12:10:39 2007
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
请输入用户名: / as sysdba
已连接到空闲例程。
--4.1 此时实例orasid2尚未启动,不能做任何操作
SQL> alter database mount;
alter database mount
*
ERROR 位于第 1 行:
ORA-01034: ORACLE not available

SQL> shutdown
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
--4.2使用指定参数文件启动数据库
SQL> startup pfile=d:/pfile2.ora
ORACLE 例程已经启动。
Total System Global Area 135338868 bytes
Fixed Size                   453492 bytes
Variable Size             109051904 bytes
Database Buffers           25165824 bytes
Redo Buffers                 667648 bytes
数据库装载完毕。
数据库已经打开。
SQL> select status from v$instance;
STATUS
------------
OPEN
--4.3检查spfile:目前使用pfile登录的数据库
SQL> set linesize 1000
SQL> show parameter spfile
NAME     TYPE        VALUE
-------- ----------- ----------
spfile   string
--4.4检查实例名:orasid2
SQL> show parameter instance_name
NAME           TYPE        VALUE
-------------- ----------- --------
instance_name string      orasid2
--4.5 检查控制文件、数据文件、在线重做日志文件:与orasid打开的是同一个数据库
SQL> set wrap off
SQL> select * from v$controlfile;
STATUS NAME
------- ------------------------------------
        D:/ORACLE/ORADATA/ORA/CONTROL01.CTL
        D:/ORACLE/ORADATA/ORA/CONTROL02.CTL
        D:/ORACLE/ORADATA/ORA/CONTROL03.CTL
SQL> select name from v$datafile;
NAME
------------------------------------
D:/ORACLE/ORADATA/ORA/SYSTEM01.DBF
D:/ORACLE/ORADATA/ORA/UNDOTBS01.DBF
D:/ORACLE/ORADATA/ORA/CWMLITE01.DBF
D:/ORACLE/ORADATA/ORA/DRSYS01.DBF
D:/ORACLE/ORADATA/ORA/EXAMPLE01.DBF
D:/ORACLE/ORADATA/ORA/INDX01.DBF
D:/ORACLE/ORADATA/ORA/ODM01.DBF
D:/ORACLE/ORADATA/ORA/TOOLS01.DBF
D:/ORACLE/ORADATA/ORA/USERS01.DBF
D:/ORACLE/ORADATA/ORA/XDB01.DBF
D:/ORACLE/ORADATA/TEST/TP_TEST01.DBF
NAME
------------------------------------
D:/ORACLE/ORADATA/TEST/TP_BAK01.DBF
D:/ORACLE/ORADATA/TEST/TP_P1.DBF
D:/ORACLE/ORADATA/TEST/TP_P2.DBF
D:/ORACLE/ORADATA/TEST/TP_JB_MID.DBF
D:/ORACLE/ORADATA/TEST/TP_P3.DBF
已选择16行。
SQL> select * from v$logfile;
    GROUP# STATUS TYPE    MEMBER
---------- ------- ------- ---------------------------------
         5         ONLINE D:/ORACLE/ORADATA/ORA/REDO05.LOG
         4 STALE   ONLINE D:/ORACLE/ORADATA/ORA/REDO04.LOG
--5.那么我们新开一个session,使用原来的 orasid 实例登录一下现在的数据库看看
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.
C:/Documents and Settings/yuechaotian>set oracle_sid=orasid
C:/Documents and Settings/yuechaotian>sqlplus
SQL*Plus: Release 9.2.0.1.0 - Production on 星期六 12月 22 12:16:22 2007
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
请输入用户名: / as sysdba
已连接到空闲例程。
--5.1这时候实例 orasid 还没有启动,我们把它启动:
SQL> select status from v$instance;
select status from v$instance
*
ERROR 位于第 1 行:
ORA-01034: ORACLE not available

SQL> startup
ORACLE 例程已经启动。
Total System Global Area 135338868 bytes
Fixed Size                   453492 bytes
Variable Size             109051904 bytes
Database Buffers           25165824 bytes
Redo Buffers                 667648 bytes
ORA-01102: ??? EXCLUSIVE ????????
SQL> select status from v$instance;
STATUS
------------------------
STARTED
--5.2 现在数据库是nomount状态,我们mount一下看看会出现什么错误:
SQL> alter session set nls_language=american;
Session altered.
SQL> alter database mount;
alter database mount
*
ERROR at line 1:
ORA-01102: cannot mount database in EXCLUSIVE mode
--5.3 另一个非sysdba用户是不可以连接的
SQL> conn test/test
ERROR:
ORA-01033: ORACLE initialization or shutdown in progress

Warning: You are no longer connected to ORACLE.
SQL> conn / as sysdba
已连接。
SQL> select *from v$controlfile;
未选定行
SQL> set wrap on
SQL> show parameter control_files
NAME                                 TYPE                   VALUE
------------------------------------ ---------------------- ------------------------------
control_files                        string                 D:/oracle/oradata/ora/control0
                                                            1.ctl, D:/oracle/oradata/ora/c
                                                            ontrol02.ctl, D:/oracle/oradat
                                                            a/ora/control03.ctl
SQL> alter session set nls_language=american;
Session altered.
SQL> select *from v$logfile;
select *from v$logfile
             *
ERROR at line 1:
ORA-01507: database not mounted

SQL> alter database mount;
alter database mount
*
ERROR at line 1:
ORA-01102: cannot mount database in EXCLUSIVE mode
--6. 收尾:我们还是在会话1中把数据库关闭,并删除这个实例orasid2吧
SQL> shutdown
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> exit
从Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production中断开
C:/Documents and Settings/yuechaotian>oradim -delete -sid orasid2
--7.那么这时候会话2就可以打开数据库了
SQL> shutdown
ORA-01507: database not mounted

ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 135338868 bytes
Fixed Size                   453492 bytes
Variable Size             109051904 bytes
Database Buffers           25165824 bytes
Redo Buffers                 667648 bytes
数据库装载完毕。
数据库已经打开。
SQL>
我们用启动会话2是产生的错误(步骤5)来做为本次测试的结论吧:
ORA-01102 cannot mount database in EXCLUSIVE mode
Cause: Some other instance has the database mounted exclusive or shared.
Action: Shut down the other instance or mount in a compatible mode.

 

<think>好的,我现在需要帮助用户找到Oracle数据库的安装和配置教程。用户的问题很明确,但我要仔细分析已有的引用内容,确保回答准确。 首先,用户提供的引用有两个:[^1]和[^2]。引用[^1]详细列出了安装步骤,包括下载、解压、安装程序启动、配置选项等,看起来是完整的指南。引用提到了Oracle SQL Developer的安装,属于客户端配置部分。我需要将这些内容整合起来,分步骤呈现。 接下来,我要确保按照用户的要求使用中文,并且结构清晰。步骤需要详细但不过于复杂,可能还需要补充一些常见问题,比如系统要求或安装失败的解决方法,但根据引用内容,可能没有这些信息。不过用户没有提到需要额外信息,所以可能不需要添加。 然后,检查是否需要生成相关问题。用户示例中有相关问题部分,所以必须包含。根据安装配置的主题,相关问题可能涉及系统要求、客户端工具、静默安装、验证安装的方法以及卸载步骤。需要确保每个问题都主题相关,并且基于已有的引用内容。 需要注意引用标识的位置,比如在步骤末尾自然地添加或[^2]。例如,在下载安装包和解压步骤后引用,在配置Oracle SQL Developer时引用。 另外,用户要求使用行内数学表达式用$...$,但这个问题可能不涉及数学公式,所以可能不需要使用。但如果有变量或代码,需要正确格式化。例如,代码块要用三个反引号包裹,并注明语言。 最后,要确保回答符合系统级指令,比如分步骤、结构清晰、引用正确,并且生成的相关问题合理。需要避免使用Markdown格式,除了代码块,但根据用户示例,代码块是允许的。 现在,整理步骤:下载安装包、解压、启动安装程序、选择安装类型、配置目录、配置选项、数据库详细信息、实例配置、执行安装、完成后的配置、验证安装、附加步骤。客户端工具部分在引用[^2]中,需要单独作为一步或子步骤。 可能还需要注意用户是否需要区分服务器安装和客户端安装,根据引用内容,引用是数据库安装,引用[^2]是客户端配置,所以应在教程中分开说明。 检查是否有遗漏的步骤,比如配置网络连接和管理工具,这些在引用的第11步中提到,需要包含在配置数据库部分。 现在,可以开始组织回答,确保每个步骤简明,引用正确,并生成相关问题。</think>以下是Oracle数据库安装和配置的详细教程,结合官方推荐流程和社区实践总结: ### 一、Oracle数据库安装步骤 1. **下载安装包** 访问Oracle官网下载对应版本(如19c或21c),选择操作系统匹配的安装文件。 2. **解压安装包** 将ZIP文件解压到目标目录,确保路径不含中文或特殊字符,例如: ```bash unzip LINUX.X64_193000_db_home.zip -d /opt/oracle ``` 3. **启动安装程序** 运行解压目录中的`setup.exe`(Windows)或`runInstaller`(Linux),出现图形化安装界面。 4. **选择安装类型** | 选项 | 推荐选择 | |-----------------|-----------------| | 创建数据库 | ✅ 新用户首选 | | 仅安装软件 | 高级配置时使用 | 5. **配置系统参数** - 设置`ORACLE_HOME`路径(如`/u01/app/oracle/product/19.0.0/dbhome_1`) - 配置`SYS`和`SYSTEM`管理员密码(需包含大小写字母+数字) 6. **数据库详细信息** ```plaintext 全局数据库名:orcl SID:orcl 字符集:AL32UTF8(推荐国际通用编码) ``` 7. **完成安装** 安装进度条完成后,会生成包含数据库访问地址的摘要信息,记录`https://localhost:5500/em`等关键URL。 --- ### 二、配置数据库连接 1. **网络配置** 修改`$ORACLE_HOME/network/admin/tnsnames.ora`,添加服务名映射: ```conf ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) ) ``` 2. **安装客户端工具** 下载Oracle SQL Developer并配置连接: - 新建连接时输入步骤6中的SID和端口号 - 测试连接确保状态显示"成功" --- ### 三、验证安装 执行基础SQL命令验证: ```sql SELECT * FROM v$version; ``` 预期返回类似: ```plaintext Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值