ORACLE_SID
oracle sid与实例

oracle sid与实例
Oracle中的SID(System Identifier)是一个唯一标识数据库实例的字符串。
它用于在数据库环境中区分不同的数据库实例。
每个Oracle数据库实例都会分配一个唯一的SID,以便在系统上唯一标识该实例。
在Oracle数据库中,SID用于标识一个特定的数据库实例,并与该实例相关联。
它是Oracle实例名的一部分,通常与实例名一起使用,以唯一标识一个数据库实例。
要查找Oracle数据库的SID,可以使用多种方法。
其中一种常见的方法是查询Oracle的动态性能视图(Dynamic Performance Views),例如v$instance视图。
通过查询该视图,可以找到包含SID信息的记录。
此外,还可以通过其他工具和命令来查找Oracle数据库的SID。
例如,可以使用Oracle的SQL*Plus工具,并通过管理员权限连接到数据库,然后执行相应的查询命令来获取SID信息。
需要注意的是,SID是数据库系统的重要组成部分,并且对于数据库的管理和维护至关重要。
因此,在管理Oracle数据库时,需要正确配置和识别SID,以确保数据库的正常运行和管理。
Oracle实例名服务名请问SID和Service_Name有什么区别啊?

Oracle实例名服务名请问SID和Service_Name有什么区别啊?可以简单的这样理解:⼀个公司⽐喻成⼀台服务器,数据库是这个公司中的⼀个部门。
1.SID:⼀个数据库可以有多个实例(如RAC),SID是⽤来标识这个数据库内部每个实例的名字,就好像⼀个部门⾥,每个⼈都有⼀个⾃⼰的名字。
2.SERVICE_NAME:是这个数据库对外宣称的名字,外⾯的⼈要想连接我这个数据库,你就在客户端的连接串⾥写上service_name。
它就像⼀个部门的名字,这个部门的名称在看门⼤爷(listener)那⾥有登记,看门⼤爷⼀看你是要找SERVICE_NAME这个部门,就告诉你我们公司确实有这个部门,于是你就找到了,连接就建⽴了。
⼀句话来说就是:SID是对内的,是实例级别的⼀个名字,⽤来内部之间称呼⽤。
SERVICE_name是对外的,是数据库级别的⼀个名字,⽤来告诉外⾯的⼈,我数据库叫"SERVICE_NAME"。
你可以通过service_name参数指定这个名字是什么,可以有多个名字,名字随便起,叫狗蛋,翠花都没关系。
如果你不指定,默认的是Db_name. Db_domain,也就是global_name。
数据库⾥,还有ORACLE_SID,是告诉OS系统,我这个实例叫做什么。
这些易混淆的名字,你要记住,他们不是指数据库,就是指实例,就这两个东西,别⽆其它。
他们具体⽤哪个名字,是要看对谁⽽⾔,是什么场合。
是对数据库,还是对操作系统,还是对外部链接。
就像你对⽗母⽽⾔,你有⼩名叫⼳⼉;对同学⽽⾔,你有外号叫灯泡;对办事机构,你有正规的名字叫王⼩明。
但归根到底,是⼀回事。
分清楚这点,就不容易混了。
Oracle数据库例名SID的修改方法步骤

求知若饥,虚心若愚。
Oracle数据库例名SID的修改方法步骤Oracle数据库例名SID的修改方法步骤有时候我们需要修改Oracle数据库的实例名SID,下面是在Centos 6.5下修改ORACLE10.2的实例名的实例教程,感爱好学习的伴侣可以看下。
修改Oracle实例名系统环境:CentOS 6.5ORACLE版本:10.21、检查原来的数据库实例名$ echo $ORACLE_SIDorcl$ sqlplus / as sysdbaselect instance from v$thread;INSTANCE--------------------------------------------------------------------------------orcl2、关闭数据库shutdown immediate;exit;3、修改oracle用户的ORACLE_SID环境变量,如由orcl修改第1页/共3页学而不舍,金石可镂。
为linuxidc$ vi /home/oracle/.bash_profileexport ORACLE_SID=linuxidc$ source /home/oracle/.bash_profile4、修改/etc/oratab文件,将sid名由orcl修改为linuxidc $ vi /etc/oratablinuxidc:/u01/app/oracle/11.2/db_1:Y5、进入到$ORACLE_HOME/dbs名目将全部文件名中包含原来的sid的'修改为对应的新sid的$ cd $ORACLE_HOME/dbs$ mv hc_zf.dat hc_linuxidc.dat$ mv lkZF lklinuxidc$ mv orapwzf orapwlinuxidc$ mv spfilezf.ora spfilelinuxidc.ora6、重建口令文件由于口令文件改名后不能在新实例中使用,所以重建$ orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=123456 entries=5 force=y7、启动数据库$ sqlplus / as sysdbastartup8、检查数据库实例名第2页/共3页求知若饥,虚心若愚。
oracle 环境变量ORACLE_SID没设置导致连接数据库失败

system@ora10g>
想象一下,你的目标是快速的进入到数据库中进行维护操作,但此时登录都遭遇障碍,会感到非常的别扭。更让人抓狂的是,如果此时使用连接串登录到数据库进行停起操作,结果将会处于更加惨烈境况:数据库将因为无法正常登录导致无法启动数据库。
With the Partitioning, Oracle Label Security, OLAP and Data Mining Scoring Engine options
sys@ora10g>
OK,此时问题处理完毕。
5.小结
这个案例给我们的启迪是什么?
1)系统默认的错误提示信息有时不具有参考价值。而且,某些情况下这些错误提示还可能给我们带来误导。原因很简单,系统默认的错误提示信息不可能囊括所有故障现象;
1)使用system用户尝试登录系统,此时便会收到报错如下信息
[oracle@asdlabdb01 ~]$ sqlplus system/sys
SQL*Plus: Release 10.2.0.3.0 - Production on Sat Aug 27 22:54:02 2010
Copyright (c) 1982, 2006, Oracle. All Rights Reserved.
SQL*Plus: Release 10.2.0.3.0 - Production on Sat Aug 27 22:54:48 2010
Copyright (c) 1982, 2006, Oracle. All Rights Reserved.
ORACLE_SID_实例名_数据库名

ORACLE_SID_实例名_数据库名详解:oracle10G 数据库名、实例名、ORACLE_SID、数据库域名、全局数据库名、服务名.一、数据库名Db_name数据库= 重做文件+ 控制文件+ 数据文件+ 临时文件数据库是永久的,是一个文件的集合。
数据库名就是一个数据库的标识,就像人的身份证号一样。
它用参数DB_NAME表示,如果一台机器上装了多个数据库,那么每一个数据库都有一个数据库名。
在数据库安装或创建完成之后,参数DB_NAME被写入参数文件之中。
格式如下:DB_NAME=myorcl 在创建数据库时就应考虑好数据库名,并且在创建完数据库之后,数据库名不宜修改,即使要修改也会很麻烦。
因为,数据库名还被写入控制文件中,控制文件是以二进制型式存储的,用户无法修改控制文件的内容。
假设用户修改了参数文件中的数据库名,即修改DB_NAME 的值。
但是在Oracle启动时,由于参数文件中的DB_NAME与控制文件中的数据库名不一致,导致数据库启动失败,将返回ORA-01103错误。
数据库名的作用:数据库名是在安装数据库、创建新的数据库、创建数据库控制文件、修改数据结构、备份与恢复数据库时都需要使用到的。
有很多Oracle安装文件目录是与数据库名相关的,如:winnt: d:\oracle\product\10.1.0\oradata\DB_NAME\...Unix:/home/app/oracle/product/10.1.0/oradata/DB_NAME/...pfile:winnt:d:\oracle\product\10.1.0\admin\DB_NAME\pfile\ini.ora Unix: /home/app/oracle/product/10.1.0/admin/DB_NAME/pfile/i nit$ORA CLE_SID.ora跟踪文件目录:winnt:/home/app/oracle/product/10.1.0/admin/DB_NAME/bdump/... 另外,在创建数据时,careate database命令中的数据库名也要与参数文件中DB_NAME参数的值一致,否则将产生错误。
如何修改oracle?SID

如何修改oracle SID问题描述:我以前默认的 ORACLE_SID 是orcl ,现在我想做数据同步,必须的有不同的 ORACLE_SID ,以便区分开来。
现在仅需要简单的几个步骤就可以修改好ORACLE_SID;1.首先shutdown immediate (注意不要shutdown abort)2.修改oracle用户的环境变量:~/.bash_prfile[oracle@oracle ~]$ vi .bash_profile把 export ORACLE_SID=orcl 这一行的 orcl 改为你想改的名称;我该为 export ORACLE_SID=morcl然后保存并退出;3.修改/etc/oratab 文件;在文件的最后一行将orcl 改为morclmorcl:/u01/app/oracle/product/10.2.0:N4. 接下来就应该修改oracle 目录里边的文件 cd /$ORACLE_HOME/dbs 把所有包含orcl 的文件名,修改为包含morcl 的文件名mv hc_orcl.dat hc_morcl.datmv lkORCL lkMORCLmv spfileorcl.ora spfilemorcl.oramv orapworcl orapwmorcl5.重建口令文件我的用户名密码为:oracle@oracle[oracle@oracle dbs]$ orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SIDpassword=oracle entries=5 force=y5. 检查ORACLE_SID 是否生效 echo $ORACLE_SID 如果为生效,则可以重启机子,让 ORACLE_SID生效[oracle@oracle dbs]$ echo $ORACLE_SIDmorcl[oracle@oracle dbs]$6.确认oracle_sid 修改好了就可启动数据库了,然我们拭目以待吧::.....SQL>SQL> startupORACLE instance started.Total System Global Area 167772160 bytesFixed Size 1218316 bytesVariable Size 62916852 bytesDatabase Buffers 100663296 bytesRedo Buffers 2973696 bytesDatabase mounted.Database opened.SQL>SQL>SQL>7.确认oracle database 内部已经SID 已经修改SQL>SQL> select instance from V$thread;INSTANCE--------------------------------------------------------------------------------morcl SQL>ok 大功告成!。
ORACLE数据库名、实例名、ORACLE_SID的区别
ORACLE数据库名、实例名、ORACLE_SID的区别----------------------------------------------------------------------------------------------------------------------------------我的总结:ORACLE_SID是在开启数据库startup的时候找默认的参数⽂件(spfile<ORACLE_SID>)只是为了⽅便找到参数⽂件,这也就是为什么在只安装数据库软件的时候可以指定ORACLE_SID的原因,因为它和数据库和实例没有根本的关系,只是为了⽅便数据库中的instance_name可以和ORACLE_SID不同,也可以和db_name不同Linux命令 ps -ef|grep ora_ 后台进程ora_smon_orclora oracle数据库进程smon进程名orcl 数据库服务器实例名 --⽼师讲错了,应该是ORACLE_SID----------------------------------------------------------------------------------------------------------------------------------数据库名(DB_NAME)、实例名(Instance_name)、以及操作系统环境变量(ORACLE_SID) 在ORACLE7、8数据库中只有数据库名(db_name)和数据库实例名(instance_name)。
在ORACLE8i、9i中出现了新的参数,即数据库域名(db_domain)、服务名(service_name)、以及操作系统环境变量(ORACLE_SID)。
这些都存在于同⼀个数据库中的标识,⽤于区分不同数据库的参数。
⼀、什么是数据库名(db_name)? 数据库名是⽤于区分数据的内部标识,是以⼆进制⽅式存储于数据库控制⽂件中的参数,在数据安装或创建之后将不得修改。
[最新]Linux修改数据库的sid和dbname查看oracle实例
有时我们需要修改数据库的sid和dbname,除了使用rman进行备份恢复之外,也可以通过手工方式修改,主要由两个主要过程完成:1、修改实例名(SID)2、修改数据库名(dbname)下面演示将数据库sid和dbname由orcl修改为cnhtm的过程:1、修改实例名(sid)1.1、检查原来的数据库实例名(sid)oracle@oracle[/home/oracle]> echo $ORACLE_SIDorcloracle@oracle[/home/oracle]> sqlplus / as sysdbaSQL*Plus: Release 10.2.0.1.0 - Production on Sun Dec 20 11:14:49 2009Copyright (c) 1982, 2005, Oracle. All rights reserved.Connected to:Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - ProductionWith the Partitioning, OLAP and Data Mining optionssys@ORCL> select instance from v$thread;INSTANCE--------------------------------------------------------------------------------orcl1.2、关闭数据库注意不能用shutdown abort,只能是shutdown immediate或shutdown normalsys@ORCL> shutdown immediateDatabase closed.Database dismounted.ORACLE instance shut down.sys@ORCL> exitDisconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - ProductionWith the Partitioning, OLAP and Data Mining options1.3、修改oracle用户的ORACLE_SID环境变量,如由orcl修改为cnhtmoracle@oracle[/home/oracle]> cat ~/.bash_profile|grep -i sidORACLE_SID=cnhtmexport ORACLE_BASE ORACLE_HOME ORACLE_SID PATH1.4、修改/etc/oratab文件,将sid名由旧的修改为新的,如从orcl修改为cnhtmoracle@oracle[/home/oracle]> cat /etc/oratab......cnhtm:/oracle/app/10.1:Y+ASM:/oracle/app/10.1:Y1.5、进入到$ORACLE_HOME/dbs目录将所有文件名中包含原来的sid的修改为对应的新sid的如我对如下文件修改为其后对应的文件hc_orcl.dat->hc_cnhtm.datlkORCL->lkCNHTMorapworcl->orapwcnhtmsnapcf_orcl.f->snapcf_cnhtm.fspfileorcl.ora->spfilecnhtm.ora1.6、使新修改的ORACLE_SID环境变量生效oracle@oracle[/oracle/app/10.1/dbs]> . ~/.bash_profileoracle@oracle[/oracle/app/10.1/dbs]> echo $ORACLE_SIDcnhtm1.7、重建口令文件因为口令文件改名后不能在新实例中使用,所以重建oracle@oracle[/oracle/app/10.1/dbs]> orapwdfile=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=oracle entries=5 force=y oracle@oracle[/oracle/app/10.1/dbs]> ls -lrt orapw*-rw-r----- 1 oracle oinstall 2048 Dec 20 11:27 orapwcnhtm1.8、启动数据库oracle@oracle[/oracle/app/10.1/dbs]> sqlplus / as sysdbaSQL*Plus: Release 10.2.0.1.0 - Production on Sun Dec 20 11:29:53 2009 Copyright (c) 1982, 2005, Oracle. All rights reserved.Connected to an idle instance.idle> startupORACLE instance started.Total System Global Area 167772160 bytesFixed Size 1218292 bytesVariable Size 62916876 bytesDatabase Buffers 96468992 bytesRedo Buffers 7168000 bytesDatabase mounted.Database opened.1.9、检查数据库实例名通过如下语句检查数据库实例名,发现实例名已经由orcl变成cnhtmidle> select instance from v$thread;INSTANCE--------------------------------------------------------------------------------cnhtm2、修改数据库名(dbname)虽然已经修改过了实例名(sid),但是数据库的名称(dbname还是原来的名称orcl)idle> conn / as sysdbaConnected.sys@ORCL> show parameter nameNAME TYPE VALUE------------------------------------ ----------- ------------------------------db_file_name_convert stringdb_name string orcldb_unique_name string orclglobal_names boolean FALSEinstance_name string cnhtmlock_name_space stringlog_file_name_convert stringservice_names string orcl可以通过如下步骤修改数据库名(dbname)2.1、首先切换一下在线日志,使数据库做checkpointsys@ORCL> alter system archive log current;System altered.2.2、生成重建控制文件的脚本sys@ORCL> alter database backup controlfile to trace resetlogs;Database altered.2.3、关闭数据库,需要干净关闭,不能shutdown abortsys@ORCL> shutdown immediateDatabase closed.Database dismounted.ORACLE instance shut down.sys@ORCL> exitDisconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - ProductionWith the Partitioning, OLAP and Data Mining options2.4、进入$ORACLE_BASE/admin/<sid>/udump目录中,找到最新生成的trc文件,这就是重建控制文件的脚本oracle@oracle[/oracle/admin/orcl/udump]> ls -lrttotal 2608-rw-r----- 1 oracle oinstall 577 Nov 7 13:37 orcl_ora_12020.trc......-rw-r----- 1 oracle oinstall 4407 Dec 20 11:36 cnhtm_ora_7789.trc2.5、将找到的trc文件复制一份,并命名为ccf.sqloracle@oracle[/oracle/admin/orcl/udump]> cp cnhtm_ora_7789.trc ccf.sql2.6、修改ccf.sql查找STARTUP NOMOUNT语句,将这一行上面的所有行都删除查找所有以--开始的行,把这些行删除查找所有的orcl修改为cnhtm,所有的ORCL修改为CNHTM找到CREATE CONTROLFILE REUSE DATABASE...语句,将其中的REUSE修改为SET 找到RECOVER DATABASE USING BACKUP CONTROLFILE语句,将其用双横线(--)注释掉如果有精力,可以修改这个脚本中的datafile和logfile部分使用新的文件名称,其实这部分不修改也可以,我为了测试的目的进行了修改,修改后要记得去重命名数据文件和log文件,将对应的数据文件和log文件与这里的名称相对应我修改后的ccf.sql文件内容如下STARTUP NOMOUNTCREATE CONTROLFILE set DATABASE "cnhtm" RESETLOGS ARCHIVELOG MAXLOGFILES 16MAXLOGMEMBERS 3MAXDATAFILES 100MAXINSTANCES 8MAXLOGHISTORY 292LOGFILEGROUP 1 '+DATA/cnhtm/onlinelog/group_1.LOG' SIZE 100M,GROUP 2 '+DATA/cnhtm/onlinelog/group_2.LOG' SIZE 100M,GROUP 3 '+DATA/cnhtm/onlinelog/group_3.LOG' SIZE 100M,GROUP 4 '+DATA/cnhtm/onlinelog/group_4.LOG' SIZE 100MDATAFILE'+DATA/cnhtm/datafile/system01.DBF','+DATA/cnhtm/datafile/undotbs101.DBF','+DATA/cnhtm/datafile/sysaux01.DBF','+DATA/cnhtm/datafile/users01.DBF','+DATA/cnhtm/datafile/example01.DBF','+DATA/cnhtm/datafile/tbs_lmt01.DBF','+DATA/cnhtm/datafile/tbs_lmt_201.DBF','+DATA/cnhtm/datafile/tbs_lmt_301.DBF'CHARACTER SET ZHS16GBK;--RECOVER DATABASE USING BACKUP CONTROLFILE;ALTER DATABASE OPEN RESETLOGS;ALTER TABLESPACE TEMP ADD TEMPFILE'+DATA/cnhtm/tempfile/temp.269.705923003'SIZE 104857600 REUSE AUTOEXTEND ON NEXT 104857600 MAXSIZE 32767M;2.7、修改数据文件、在线日志文件名如果上一步修改了ccf.sql文件中的datafile和logfile段的文件名,这里要将这些文件名重命令为与其一致。
Oracle SID及密码问题解决
1.Oracle卸载后再次安装,设置的SID相同出现“指定的SID在本机上已经存在。
请指定一个不同的SID。
”SID简介SID也就是安全标识符(Security Identifiers),是标识用户、组和计算机帐户的唯一的号码。
在第一次创建该帐户时,将给网络上的每一个帐户发布一个唯一的 SID。
Windows 2000 中的内部进程将引用帐户的 SID 而不是帐户的用户或组名。
如果创建帐户,再删除帐户,然后使用相同的用户名创建另一个帐户,则新帐户将不具有授权给前一个帐户的权力或权限,原因是该帐户具有不同的 SID 号。
安全标识符也被称为安全 ID 或 SID。
SID的作用用户通过验证后,登陆进程会给用户一个访问令牌,该令牌相当于用户访问系统资源的票证,当用户试图访问系统资源时,将访问令牌提供给 Windows NT,然后Windows NT 检查用户试图访问对象上的访问控制列表。
如果用户被允许访问该对象,Windows NT将会分配给用户适当的访问权限。
访问令牌是用户在通过验证的时候有登陆进程所提供的,所以改变用户的权限需要注销后重新登陆,重新获取访问令牌。
SID号码的组成如果存在两个同样SID的用户,这两个帐户将被鉴别为同一个帐户,原理上如果帐户无限制增加的时候,会产生同样的SID,在通常的情况下SID是唯一的,他由计算机名、当前时间、当前用户态线程的CPU耗费时间的总和三个参数决定以保证它的唯一性。
一个完整的SID包括:? 用户和组的安全描述? 48-bit的ID authority? 修订版本? 可变的验证值Variable sub-authority values例:S-1-5-21-31044058 8- 2 500 36847- 5 803 895 05-500我们来先分析这个重要的SID。
第一项S表示该字符串是SID;第二项是SID的版本号,对于 2000来说,这个就是1;然后是标志符的颁发机构(identifier authority),对于2000内的帐户,颁发机构就是NT,值是5。
oracle查询sid的语句
oracle查询sid的语句Oracle是一种关系型数据库管理系统,可以通过查询语句来检索和获取所需的数据。
在Oracle中,可以使用不同的查询语句来获取SID(System Identifier)信息。
下面是一些列举出来的查询语句,用于获取Oracle数据库的SID信息。
1. 使用V$INSTANCE视图查询SID:```SELECT INSTANCE_NAME, INSTANCE_NUMBERFROM V$INSTANCE;```通过查询V$INSTANCE视图,可以获取当前数据库实例的名称(INSTANCE_NAME)和实例编号(INSTANCE_NUMBER)等信息。
2. 使用V$DATABASE视图查询SID:```SELECT NAME, DBIDFROM V$DATABASE;```通过查询V$DATABASE视图,可以获取当前数据库的名称(NAME)和数据库ID(DBID)等信息。
3. 使用V$THREAD视图查询SID:```SELECT THREAD#, NAMEFROM V$THREAD;```通过查询V$THREAD视图,可以获取当前数据库的线程号(THREAD#)和线程名称(NAME)等信息。
4. 使用SELECT语句查询SID:```SELECT SYS_CONTEXT('USERENV', 'SID') AS SIDFROM DUAL;```通过使用SYS_CONTEXT函数查询用户环境变量(USERENV)中的SID信息,可以获取当前会话的SID。
5. 使用查看数据库参数查询SID:```SHOW PARAMETER SID;```通过使用SHOW PARAMETER命令,可以查看数据库参数中的SID信息。
6. 使用SELECT语句查询SID和SERIAL#:```SELECT SID, SERIAL#FROM V$SESSIONWHERE AUDSID = USERENV('SESSIONID');```通过查询V$SESSION视图,可以获取当前会话的SID和SERIAL#等信息。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
详解:oracle10G 数据库名、实例名、ORACLE_SID【转载】数据库名、实例名、数据库域名、全局数据库名、服务名,这是几个令很多初学者容易混淆的概念。
相信很多初学者都与我一样被标题上这些个概念搞得一头雾水。
我们现在就来把它们弄个明白。
一、数据库名什么是数据库名?数据库名就是一个数据库的标识,就像人的身份证号一样。
他用参数DB_NAME表示,如果一台机器上装了多全数据库,那么每一个数据库都有一个数据库名。
在数据库安装或创建完成之后,参数DB_NAME被写入参数文件之中。
格式如下:DB_NAME=myorcl...在创建数据库时就应考虑好数据库名,并且在创建完数据库之后,数据库名不宜修改,即使要修改也会很麻烦。
因为,数据库名还被写入控制文件中,控制文件是以二进制型式存储的,用户无法修改控制文件的内容。
假设用户修改了参数文件中的数据库名,即修改DB_NAME 的值。
但是在Oracle启动时,由于参数文件中的DB_NAME与控制文件中的数据库名不一致,导致数据库启动失败,将返回ORA-01103错误。
数据库名的作用数据库名是在安装数据库、创建新的数据库、创建数据库控制文件、修改数据结构、备份与恢复数据库时都需要使用到的。
有很多Oracle安装文件目录是与数据库名相关的,如:winnt: d:\oracle\product\10.1.0\oradata\DB_NAME\...Unix: /home/app/oracle/product/10.1.0/oradata/DB_NAME/...pfile:winnt: d:\oracle\product\10.1.0\admin\DB_NAME\pfile\ini.oraUnix: /home/app/oracle/product/10.1.0/admin/DB_NAME/pfile/init$ORACLE_SID.ora跟踪文件目录:winnt: /home/app/oracle/product/10.1.0/admin/DB_NAME/bdump/...另外,在创建数据时,careate database命令中的数据库名也要与参数文件中DB_NAME参数的值一致,否则将产生错误。
同样,修改数据库结构的语句alter database,当然也要指出要修改的数据库的名称。
如果控制文件损坏或丢失,数据库将不能加载,这时要重新创建控制文件,方法是以nomount 方式启动实例,然后以create controlfile命令创建控制文件,当然这个命令中也是指指DB_NAME。
还有在备份或恢复数据库时,都需要用到数据库名。
总之,数据库名很重要,要准确理解它的作用。
查询当前数据名方法一:select name from v$database;方法二:show parameter db方法三:查看参数文件。
修改数据库名前面建议:应在创建数据库时就确定好数据库名,数据库名不应作修改,因为修改数据库名是一件比较复杂的事情。
那么现在就来说明一下,如何在已创建数据之后,修改数据库名。
步骤如下:1.关闭数据库。
2.修改数据库参数文件中的DB_NAME参数的值为新的数据库名。
3.以NOMOUNT方式启动实例,修建控制文件(有关创建控制文件的命令语法,请参考oracle 文档)二、数据库实例名什么是数据库实例名?数据库实例名是用于和操作系统进行联系的标识,就是说数据库和操作系统之间的交互用的是数据库实例名。
实例名也被写入参数文件中,该参数为instance_name,在winnt平台中,实例名同时也被写入注册表。
数据库名和实例名可以相同也可以不同。
在一般情况下,数据库名和实例名是一对一的关系,但如果在oracle并行服务器架构(即oracle实时应用集群)中,数据库名和实例名是一对多的关系。
这一点在第一篇中已有图例说明。
查询当前数据库实例名方法一:select instance_name from v$instance;方法二:show parameter instance方法三:在参数文件中查询。
数据库实例名与ORACLE_SID虽然两者都表是oracle实例,但两者是有区别的。
instance_name是oracle数据库参数。
而ORACLE_SID是操作系统的环境变量。
ORACLD_SID用于与操作系统交互,也就是说,从操作系统的角度访问实例名,必须通过ORACLE_SID。
在winnt不台,ORACLE_SID还需存在于注册表中。
且ORACLE_SID必须与instance_name的值一致,否则,你将会收到一个错误,在unix平台,是“ORACLE not available”,在winnt平台,是“TNS:协议适配器错误”。
数据库实例名与网络连接数据库实例名除了与操作系统交互外,还用于网络连接的oracle服务器标识。
当你配置oracle 主机连接串的时候,就需要指定实例名。
当然8i以后版本的网络组件要求使用的是服务名SERVICE_NAME。
这个概念接下来说明。
三、数据库域名什么是数据库域名?在分布工数据库系统中,不同版本的数据库服务器之间,不论运行的操作系统是unix或是windows,各服务器之间都可以通过数据库链路进行远程复制,数据库域名主要用于oracle 分布式环境中的复制。
举例说明如:全国交通运政系统的分布式数据库,其中:福建节点:fj.jtyz福建厦门节点:xm.fj.jtyz江西:jx.jtyz江西上饶:sr.jx.jtyz这就是数据库域名。
数据库域名在存在于参数文件中,他的参数是db_domain.查询数据库域名方法一:select value from v$parameter where name = 'db_domain';方法二:show parameter domain方法三:在参数文件中查询。
全局数据库名全局数据库名=数据库名+数据库域名,如前述福建节点的全局数据库名是:oradb.fj.jtyz 四、数据库服务名什么是数据库服务名?从oracle9i版本开始,引入了一个新的参数,即数据库服务名。
参数名是SERVICE_NAME。
如果数据库有域名,则数据库服务名就是全局数据库名;否则,数据库服务名与数据库名相同。
查询数据库服务名方法一:select value from v$parameter where name = 'service_name';方法二:show parameter service_name方法三:在参数文件中查询。
数据库服务名与网络连接从oracle8i开如的oracle网络组件,数据库与客户端的连接主机串使用数据库服务名。
之前用的是ORACLE_SID,即数据库实例名创建Oracle数据库(以Oracle10g为例)有两种创建数据库的方式,一种是以命令行脚本方式,即手动方式创建;另一种是利用Oracle 提供的数据库配置向导来创建。
本篇主要介绍在Unix和Windows下以命令行脚本方式创建Oracle数据库。
一个完整的数据库系统,应包括一个物理结构、一个逻辑结构、一个内存结构和一个进程结构,如果要创建一个新的数据库,则这些结构都必须完整的建立起来。
一、在Unix下创建数据库1.确定数据库名、数据库实例名和服务名关于数据库名、数据库实例名和服务名,我之前有专门用一篇来详细介绍。
这里就不再说明了。
2.创建参数文件参数文件很确定了数据库的总体结构。
Oracle10g有两种参数文件,一个是文本参数文件,一种是服务器参数文件。
在创建数据库时先创建文本参数文件,在数据库创建后,可以由文件参数文件创建服务器参数文件。
文本参数文件的取名方式为initORACLE_SID.ora,其中,ORACLE_SID是数据库实例名。
其名称及路径为:/home/app/oracle/product/10.1.0/admin/DB_NAME/pfile/initORACLE_SID.ora其中,DB_NAME为数据库名。
所以,应创建一个以之命名的目录,并将文本参数文件存放在上述目录中。
假设新创建的数据库名为MYORACLE,SID与数据库名一致。
则上述目录实际为:/home/app/oracle/product/10.1.0/admin/MYORACLE/pfile/initMYORACLE.ora1)参数文件的介绍参数文件决定着数据库的总体结构,用于设置数据库的近260个系统参数。
下面分类别说明一下各参数的作用,关于参数的详细使用说明请参考Oracle官方参考文档。
a.数据库标识类参数DB_NAME: 数据库名,此参数在创建数据前决定,数据库创建后修改时,必须建控制文件DB_DOMAIN: 数据库域名,用于区别同名数据库。
数据库名与域名一起构成了全局数据库名INSTANCE_NAME: 数据库实例名,可以与数据库相同SERVICE_NAMES: 数据库服务名,与全局数据库名相同如果没有域名,则服务名就是数据库名b.日志管理类参数LOG_ARCHIVE_START: 是否启动自动归档进程ARCHLOG_ARCHIVE_DEST: 归档日志文件存储目录LOG_ARCHIVE_FORMAT: 归档日志文件的默认文件存储格式LOG_ARCHIVE_DUPLEX_DEST: 归档日志文件镜像存储目录(Oracle8以上)LOG_ARCHIVE_DEST_n: 归档日志文件存储目录(Oracle8i以上)LOG_ARCHIVE_DEST_STATE_n: 设置参数LOG_ARCHIVE_DEST_n失效或生效LOG_ARCHIVE_MAX_PROCESSES: 设置自动归档进程的个数LOG_ARCHIVE_MIN_SUCCEED_DEST: 设置最少的成功归档日志存储目录的个数LOG_CHECKPOINT_INTERVAL: 根据日志数量设置检验点频率LOG_CHECKPOINT_TIMEOUT: 根据时间间隔设置检验点频率c.内存管理参数DB_BLOCK_SIZE: 标准数据块大小DB_nK_CACHE_SIZE: 非标准数据块数据缓冲区大小SHARED_POOL_SIZE: 共享池大小控制参数,单位为字节DB_CACHE_SIZE: 标准数据块数据缓冲区大小DB_BLOCK_BUFFERS: 数据缓冲区大小,9i之后已放弃使用LOG_BUFFER: 日志缓冲区大小SORT_AREA_SIZE: 排序区大小LARGE_POOL_SIZE: 大池大小JAVA_POOL_SIZE: Java池大小d.最大许可用户数量限制参数LICENSE_MAX_SESSIONS:数据库可以连接的最大会话数LICENSE_MAX_USERS:数据库支持的最大用户数LICENSE_MAX_WARNING:数据库最大警告会数(会话数据达到这个值时,产生新会话时就会产生警告信息)e.系统跟踪信息管理参数USER_DUMP_DEST:用户跟踪文件生成的设置BACKGROUND_DUMP_DEST:后台进程跟踪文件生成的位置MAX_DUMPFILE_SIZE:跟踪文件的最大尺寸f.系统性能优化与动态统计参数SQL_TRACE:设置SQL跟踪TIMED_STATICS:设置动态统计AUDIT_TRAIL:启动数据库审计功能g.其他系统参数CONTROL_FILES:控制文件名及路径Undo_MANAGMENT:Undo空间管理方式ROLLBACK_SEGMENTS:为这个例程分配的回退段名OPEN_CURSORS:一个用户一次可以打开的游标的最大值PROCESSES:最大进程数,包括后台进程与服务器进程IFILE:另一个参数文件的名字DB_RECOVERY_FILE_DEST:自动数据库备份目录DB_RECOVERY_FILE_SIZE:数据库备份文件大小2)参数文件样式db_name=myoracleinstance_name=myoracledb_domain=service_names=control_files=(/home/app/oracle/product/10.1.0/oradata/myoracle/control01.ctl,/home/app/oracle/product/10.1.0/oradata/myoracle/control02.ctl,/home/app/oracle/product/10.1.0/oradata/myoracle/control03.ctl)db_block_size=8192user_dump_dest=/home/app/oracle/product/10.1.0/admin/myoracle/udumpbackground_dump_dest=/home/app/oracle/product/10.1.0/admin/myoracle/bdumpcore_dump_dest=/home/app/oracle/product/10.1.0/admin/myoracle/cdumpdb_recovery_file_dest=/home/app/oracle/product/10.1.0/flash_recover_areadb_recovery_file_size=100G...3.设置操作系统参数$ORACLE_SID=myoracle$export ORACLE_SID4.启动实例并创建数据库在创建数据库之前,首先要以新的数据库参数启动数据库实例,因为这时数据库的控制文件还没有产生,不能MOUNT或OPEN数据库。