oracle实例名

Oracle数据库名:db_name,instance_name,ORACLE_SID,db_domain,global_name...一、数据库名1.数据库名的概念数据库名(db_name)就是一个数据库的标识,就像人的身份证号一样。

如果一台机器上装了多全数据库,那么每一个数据库都有一个数据库名。

在数据库安装或创建完成之后,参数DB_NAME被写入参数文件之中。

格式如下:############################################ Database Identification###########################################db_domain=""db_name=orcl在创建数据库时就应考虑好数据库名,并且在创建完数据库之后,数据库名不宜修改,即使要修改也会很麻烦。

因为,数据库名还被写入控制文件中,控制文件是以二进制型式存储的,用户无法修改控制文件的内容。

假设用户修改了参数文件中的数据库名,即修改DB_NAME的值。

但是在Oracle启动时,由于参数文件中的DB_NAME与控制文件中的数据库名不一致,导致数据库启动失败,将返回ORA-01103错误。

2.数据库名的作用数据库名是在安装数据库、创建新的数据库、创建数据库控制文件、修改数据结构、备份与恢复数据库时都需要使用到的。

有很多Oracle安装文件目录是与数据库名相关的,如:winnt: F:\oracle\product\10.2.0\oradata\DB_NAME\...Unix: /home/app/oracle/product/10.2.0/oradata/DB_NAME/...又如参数文件pfile:winnt: F:\oracle\product\10.2.0\admin\DB_NAME\pfile\init.ora.54200885729Unix: /home/app/oracle/product/10.2.0/admin/DB_NAME/pfile/init$ORACLE_SID.ora如果控制文件损坏或丢失,数据库将不能加载,这时要重新创建控制文件,方法是以nomount方式启动实例,然后以create controlfile命令创建控制文件,当然这个命令中也要指明DB_NAME。

3.修改数据库名建议:应在创建数据库时就确定好数据库名,数据库名不应作修改,因为修改数据库名是一件比较复杂的事情。

现在就来说明一下,如何在已创建数据之后,修改数据库名。

步骤如下:(1)关闭数据库。

(2)修改数据库参数文件中的DB_NAME参数的值为新的数据库名。

(3)以NOMOUNT方式启动实例,修建控制文件(有关创建控制文件的命令语法,请参考oracle文档)4.查询当前数据库名方法一: select name from v$database;方法二:show parameter db方法三:查看参数文件二、数据库实例名1.数据库实例名的概念先来解释以下,实例是什么东西。

实例是访问Oracle数据库所需的一部分计算机内存和辅助处理后台进程,是由进程和这些进程所使用的内存(SGA)所构成一个集合,它根本不需要一个与其相关联的数据库,没有任何数据文件也可以启动实例。

下面是Oralce的启动过程:sqlplus / as sysdbasql>startup nomount #启动了一个实例,现在SGA分配了,进程在运行,除数据库所有的东西都启动了sql>alter database mount #利用控制文件(init.ora文件中指定)定位重作文件、数据文件、临时文件sql>alter database open #数据库可供任何人通过这个实例访问。

所以可以这么理解:大家访问Oracle都是访问一个实例,但这个实例如果关联了数据库文件,就是可以访问的,如果没有,就会得到实例不可用的错误。

实例名指的是用于响应某个数据库操作的数据库管理系统的名称。

她同时也叫SID。

实例名是由参数instance_name决定的。

如果这个参数不被指定(即instance_name没有被指定为任何值),那么实例的名字由该用户的环境变量ORACLE_SID(注意这里是大写)决定。

在windows平台下,则是注册表中oracle_sid值决定。

2.实例和数据库实例和数据库之间的区别如下:(1)实例是临时的,它只在相关的进程和内存集合存在时存在;数据库是永久的,只要文件存在它就存在(2)一个实例在其生存期内可安装和打开单个数据库;数据库可以被很多实例安装和打开,或者一个接一个的实例安装和打开,或者由多个实例同时安装和打开(RAC) 顺便提一下RAC,简单来说RAC就是多个实例同时打开一个数据库文件的系统,在结构上是多台机器,每天机器运行一个实例,每个实例都打开同一个数据库(这个是用磁盘共享技术实现的),这些实例之间需要同步高速缓存,这样保证多个实例是完全一致的,不会相互冲突乃至覆盖。

数据库实例名(instance_name)用于对外部连接。

在操作系统中要取得与数据库的联系,必须使用数据库实例名。

例如,要去连接一个数据库服务器,就必须知道其数据库实例名,只知道数据库名是没有用的。

与数据库名不同,在数据安装或创建数据库之后,实例名可以被修改。

数据库名和实例名可以相同也可以不同。

在一般情况下,数据库名和实例名是一对一的关系,但如果在oracle并行服务器架构(即oracle实时应用集群)中,数据库名和实例名是一对多的关系(一个数据库对应多个实例,同一时间内用户只一个实例相联系,当某一实例出现故障,其它实例自动服务,以保证数据库安全运行) 。

3.查询当前数据库实例名方法一:select instance_name from v$instance;方法二:show parameter instance三、ORACLE_SID在实际中,对于数据库实例的标识有时使用实例名,有时使用ORACLE_SID,它们有什么区别呢?(ORACLE_SID)OS<----------------> ORACLE 数据库<--------(instance_name(实例名))上图表示实例名instance_name、ORACLE_SID与数据库及操作系统之间的关系,虽然这里列出的两个参数都是数据库实例名,但instance_name参数是ORACLE数据库的参数,此参数可以在参数文件中查询到;而ORACLE_SID参数则是操作系统环境变量,与ORACLE_BASE、ORACLE_HOME等用法相同,用于和操作系统交互。

也就是说,在操作系统中要想得到实例名,就必须使用ORACLE_SID。

且ORACLE_SID必须与instance_name的值一致,否则,你将会收到一个错误,在unix平台,是“ORACLE not available”,在winnt平台,是“TNS:协议适配器错误”。

四、数据库域名与全局数据库名1.概念与联系使用数据库名(da_name)对一个数据库进行唯一标识,这种表示对于单个数据库是足够的,但是随着由多个数据库构成的分布式数据库的普及,这种命令数据库的方法给数据库的管理造成一定的负担,因为各个数据库的名字可能一样,造成管理上的混乱。

为了解决这种情况,引入了db_domain参数,这样在数据库的标识是由db_name和db_domain两个参数共同决定的,避免了因为数据库重名而造成管理上的混乱。

这类似于互连网上的机器名的管理。

我们将db_name和db_domain两个参数用‘.’连接起来,表示一个数据库,并将该数据库的名称称为global_name,即它扩展了db_name。

db_name参数只能由字母、数字、’_’、’#’、’$’组成,而且最多8个字符。

数据库域名(db_domain):定义一个数据库所在的域,该域的命名同互联网的’域’没有任何关系,只是数据库管理员为了更好的管理分布式数据库而根据实际情况决定的。

当然为了管理方便,可以将其等于互联网的域。

全局数据库名(global_name):对一个数据库(Oracle database)的唯一标识,oracle建议用此种方法标识数据库。

该值是在创建数据库时决定的,缺省值为db_name. db_domain。

在以后对参数文件中db_name与db_domain参数的任何修改不影响global_name的值,如果要修改Global_name,只能用alter database rename global_name to <db_name.db_domain>命令进行修改,然后修改相应参数。

2.查询数据库域名方法一:select value from v$parameter where name = 'db_domain';方法二:show parameter domain方法三:在参数文件中查询3.例子全国交通GIS系统的分布式数据库,其中:吉林节点:jl.jtgis吉林长春节点:cc.jl.jtgis河北节点:hb.jtgis河北石家庄节点:sjz.hb.jtgis这些就是数据库域名,数据库域名在存在于参数文件中,她的参数是db_domain.全局数据库名=数据库名+数据库域名,如前述福建节点的全局数据库名是:orcl.jl.jtgis五、数据库服务名该参数是oracle8i新引进的。

在8i以前,我们用SID来表示数据库的一个实例,但是在Oracle的并行环境中,一个数据库对应多个实例,这样就需要多网络服务名,设置繁琐。

为了方便并行环境中的设置,引进了service_name参数。

该参数对应一个数据库,而不是一个实例,而且该参数有许多其它的好处。

该参数的缺省值为db_name.db_domain,即等于global_name.如果数据库有域名,则数据库服务名就是全局数据库名;否则,数据库服务名与数据库名相同。

一个数据库可以对应多个service_name,以便实现更灵活的配置。

该参数与SID没有直接关系,即service_name 不必与SID一样。

从Oracle8i开始的oracle网络组件,数据库与客户端连接的主机字符串使用的是数据库服务名。

之前用的是SID,即数据库实例名。

查询数据库服务名方法一:select value from v$parameter where name = 'service_name';方法二:show parameter service_name六、网络服务名网络服务名(net_service_name),又可以称为数据库别名(database alias)。

合集下载

Oracle的几个概念数据库名,全局数据库名,SID,实例,命名空间,schema

Oracle的几个概念数据库名,全局数据库名,SID,实例,命名空间,schema
实例发送请求,oracle实例负责向数据库获取数据。Oracle实例 = 内存结构+后台进程,所以Oracle实例是临时性的;可以通过startup nomount去启动实例,但是注意这时Oracle数据
库并没有启动,需要用open去启动数据库;一个实例只能对应一个数据库,一个数据库可以用多个实例;命名空间,有点复杂。命名空间定义了一组对象类型,在命名空间里,对象的名
Oracle9i 数据库的全域数据库名称;在您更改 DB_NAME 与 DB_DOMAIN 这两个起始参数后必须将 Oracle9i 数据库重新激活才会生效。此外,控制档也必须重新建立。 关于 DB_NAME
起始参数DB_NAME必须是文字字符串,且不能超过 8 个字符。在建立数据库的过程中,DB_NAME设定值会记录在资料文件、控制文件、以及重置日志文件之中。如果您激活 Oracle9i
的视图,至少,在一个schema中是不可能出现这种现象的;下面的对象类型有各自的命名空间:? Indexes? Constraints? Clusters? Database triggers? Private database links?
Dimensions所以你可以创建一个叫做myObject1的索引,即使在相同的schema中;不受Schema局限的对象类型(Non schema objects)有它们自己的命名空间,如下:? User roles?
而「网域名称」则是设定于 DB_DOMAIN 参数。这两个参数合并之后就可以在网际网络上唯一识别每一个 Oracle9i 数据库。举例来说,假设我们欲建立的 Oracle9i 数据库之全域数据库
名称为 ,那么可在起始参数档内设定下列两参数:DB_NAME = mydbDB_DOMAIN = Tips: 您可以执行 ALTER DATABASE RENAME GLOBAL_NAME 指令更改

登录oracle的五项条件

登录oracle的五项条件

登录oracle的五项条件登录Oracle的五项条件Oracle是世界上最大的关系数据库管理系统(RDBMS)供应商之一,被广泛应用于企业级的数据管理和处理中。

在使用Oracle数据库时,登录是最基本的操作之一。

下面将介绍登录Oracle数据库的五个条件。

1. 用户名登录Oracle数据库的第一个条件是正确的用户名。

数据库管理员(DBA)为每个用户创建一个唯一的用户名,用于标识用户的身份。

用户名是区分不同用户的重要标识,一个用户名可以对应一个或多个数据库对象(如表、视图、存储过程等)。

2. 密码登录Oracle数据库的第二个条件是正确的密码。

密码是保护用户数据安全的重要手段。

用户在登录时必须输入正确的密码才能成功登录数据库。

为了保障安全性,密码应该具备一定的复杂度,包含字母、数字和特殊字符,并定期更新以避免被猜测或破解。

3. 数据库实例名登录Oracle数据库的第三个条件是正确的数据库实例名。

数据库实例是指在计算机上运行的Oracle数据库的一个副本,它由内存和进程组成。

Oracle支持在同一台计算机上同时运行多个数据库实例,每个实例有唯一的实例名。

用户在登录时需要指定正确的实例名,才能连接到相应的数据库实例。

4. 主机名或IP地址登录Oracle数据库的第四个条件是正确的主机名或IP地址。

用户在登录时需要指定数据库所在服务器的主机名或IP地址,以便建立与数据库服务器的网络连接。

主机名是数据库服务器在网络上的唯一标识,用户可以通过主机名来访问数据库。

IP地址是网络中用于标识设备的一组数字,也可以用来访问数据库。

5. 端口号登录Oracle数据库的第五个条件是正确的端口号。

端口号是用于标识应用程序与数据库之间的通信接口。

Oracle数据库默认使用1521端口进行通信,用户在登录时需要指定正确的端口号,以便建立与数据库的有效连接。

登录Oracle数据库的五个条件分别是正确的用户名、密码、数据库实例名、主机名或IP地址以及端口号。

ORACLERAC更改实例名

ORACLERAC更改实例名

ORACLERAC更改实例名规划后的实例名 fqzdbipfqzdb01 192.168.2.33fqzdb02 192.168.2.342.1.1 扫描磁盘(下⾯的操作没有特别提⽰,默认为两个节点都操作)在两个节点上使⽤root⽤户执⾏cfgmg命令识别同步过来的存储磁盘Method error (/usr/lib/methods/cfgpkcs11 -l pkcs11 ):0514-040 Error initializing a device into the kernel.---------报错可忽略扫描完成后,系统/dev⽬录下会⽣成hdisk2......hdisk33磁盘2.1.2 磁盘修改权限修改磁盘的权限⾄660,属组修改为Oracle⽤户组,打开no_reserve属性root⽤户在/dev⽬录下执⾏:chdev -l hdisk2 -a reserve_policy=no_reservechdev -l hdisk3 -a reserve_policy=no_reservechdev -l hdisk4 -a reserve_policy=no_reservechdev -l hdisk5 -a reserve_policy=no_reservechmod 660 rhdisk2chmod 660 rhdisk3chmod 660 rhdisk4chmod 660 rhdisk5chown grid:oinstall rhdisk2chown grid:oinstall rhdisk3chown grid:oinstall rhdisk4chown grid:oinstall rhdisk52.1.3 Mount Disk Group使⽤grid⽤户在两个节点上执⾏[root@prodb01a /]# su - grid[grid@prodb01a /home/grid]> sqlplus / as sysasmSQL*Plus: Release 12.1.0.2.0 Production on Thu Feb 14 11:54:51 2019Copyright (c) 1982, 2014, Oracle. All rights reserved.Connected to:Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit ProductionWith the Real Application Clusters and Automatic Storage Management optionsSQL> select name,state from v$asm_diskgroup;NAME STATE------------------------------ -----------DG_fqz_CRS MOUNTEDFQZDATADG DISMOUNTEDSQL> alter diskgroup FQZDATADG mount force;Diskgroup altered.2.1.4 启动数据库Oracle⽤户执⾏export ORACLE_SID=prodbsqlplus / as sysdbaSQL> startup pfile='/home/oracle/pfile.ora'2.2 修改相关名称实施步骤(本套数据库修改名称定为 prodb )2.2.1 数据库启动⾄mount状态RAC需要⾸先将cluster_database置为false后重启数据库⾄mount状态[oracle@prodb01a /home/oracle]> sqlplus / as sysdbaSQL*Plus: Release 12.1.0.2.0 Production on Thu Feb 14 11:05:48 2019Copyright (c) 1982, 2014, Oracle. All rights reserved.Connected to:Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit ProductionWith the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP, Advanced Analytics and Real Application Testing options[oracle@prodb01a /home/oracle]> sqlplus / as sysdbaSQL> startup mountORACLE instance started.Total System Global Area 4.2950E+10 bytesFixed Size 7727872 bytesVariable Size 1.3959E+10 bytesDatabase Buffers 2.8857E+10 bytesRedo Buffers 126488576 bytesDatabase mounted.SQL> quit2.2.2 修改Dbname、DbidOracle⽤户在1节点上使⽤nid命令执⾏[oracle@prodb01a /home/oracle]> nid target=/ dbname=prodbDBNEWID: Release 12.1.0.2.0 - Production on Thu Feb 14 11:11:00 2019Copyright (c) 1982, 2014, Oracle and/or its affiliates. All rights reserved.Connected to database PRODB (DBID=3182511783)Connected to server version 12.1.0Control Files in database:Change database ID and database name PRODB to prodb? (Y/[N]) => y ...........................Database name changed to prodbModify parameter file and generate a new password file before restarting.Database ID for database prodb changed to 3926312005.All previous backups and archived redo logs for this database are unusable.Database has been shutdown, open database with RESETLOGS option.Succesfully changed database name and ID.DBNEWID - Completed succesfully.2.2.3 重启数据库[oracle@prodb01a /home/oracle]> sqlplus / as sysdbaSQL*Plus: Release 12.1.0.2.0 Production on Thu Feb 14 11:12:20 2019Copyright (c) 1982, 2014, Oracle. All rights reserved.Connected to an idle instance.SQL> create pfile=’/home/oracle/pfile.ora’ from spfile=’+PRODBDATA2/PRODBST/spfilePRODB.ora’; SQL>exit[oracle@prodb01a /home/oracle]> vi pfile.ora修改db_name='prodb'去掉db_unique_name参数SQL> startup mount pfile=’/home/oracle/pfile.ora’ORACLE instance started.Total System Global Area 4.2950E+10 bytesFixed Size 7727872 bytesVariable Size 1.3959E+10 bytesDatabase Buffers 2.8857E+10 bytesRedo Buffers 126488576 bytesDatabase mounted.SQL> alter database open resetlogs;Database altered.SQL> show parameter db_nameNAME TYPE VALUE------------------------------------ ----------- ------------------------------db_name string prodb2.2.4 修改pfile中的实例名1节点实例名prodb12节点实例名PRODB修改参数⽂件(直接使⽤1节点已修改好的参数⽂件/home/oracle/pfile.ora,因此⽆需执⾏此步骤)[oracle@prodb01a /home/oracle]> sqlplus / as sysdbaSQL*Plus: Release 12.1.0.2.0 Production on Thu Feb 14 11:12:20 2019Copyright (c) 1982, 2014, Oracle. All rights reserved.Connected to an idle instance.SQL> shut immediateSQL>exit[oracle@prodb01a /home/oracle]> vi pfile.ora修改如下选项*.db_name='prodb'*.db_recovery_file_dest=''prodb1.instance_number=1PRODB.instance_number=2prodb1.undo_tablespace='UNDOTBS1'PRODB.undo_tablespace='UNDOTBS2'File created.2.2.5 修改Disk Droup Name将diskgroup name:BKSERVERDATA 修改为FQZDATADGGrid两个节点执⾏:[grid@prodb02a /home/grid]> sqlplus / as sysasmSQL*Plus: Release 12.1.0.2.0 Production on Thu Feb 14 14:47:50 2019Copyright (c) 1982, 2014, Oracle. All rights reserved.Connected to:Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit ProductionWith the Real Application Clusters and Automatic Storage Management optionsSQL> alter diskgroup PRODBDATA2 dismount;Diskgroup altered.Grid⽤户在1节点执⾏:[grid@prodb01a/home/oracle] renamedg phase=both dgname=PRODBDATA2 newdgname=FQZDATADG verbose=true 移除原Disk Group[grid@prodb01a/home/oracle] srvctl remove diskgroup -g PRODBDATA2 -f重建控制⽂件并修改其中数据⽂件、⽇志⽂件路径[oracle@prodb01a/home/oracle] vi pfile.ora修改cluster_database=falseSQL> startup mount pfile=‘/home/oracle/pfile.ora’;SQL> alter database backup controlfile to trace as ‘/home/oracle/con.trl’SQL>shut immediateSQL>startup nomount pfile=’/home/oracle/pfile.ora’;粘贴con.trl⽂件中内容并编辑新的磁盘组名,在sqlplus中运⾏SQL>CREATE CONTROLFILE REUSE DATABASE "prodb" RESETLOGS FORCE LOGGING NOARCHIVELOG MAXLOGFILES 320MAXLOGMEMBERS 5MAXDATAFILES 2000MAXINSTANCES 32MAXLOGHISTORY 2337LOGFILEGROUP 1 '+FQZDATADG/prodb/ONLINELOG/group_1.508.1000913293' SIZE 500M BLOCKSIZE 512, GROUP 2 '+FQZDATADG/prodb/ONLINELOG/group_2.509.1000913293' SIZE 500M BLOCKSIZE 512, GROUP 5 '+FQZDATADG/prodb/ONLINELOG/group_5.512.1000913295' SIZE 500M BLOCKSIZE 512, GROUP 6 '+FQZDATADG/prodb/ONLINELOG/group_6.513.1000913295' SIZE 500M BLOCKSIZE 512, GROUP 7 '+FQZDATADG/prodb/ONLINELOG/group_7.514.1000913295' SIZE 500M BLOCKSIZE 512, GROUP 8 '+FQZDATADG/prodb/ONLINELOG/group_8.515.1000913295' SIZE 500M BLOCKSIZE 512-- STANDBY LOGFILEDATAFILE'+FQZDATADG/PRODBst/datafile/system.350.998332449','+FQZDATADG/PRODBst/datafile/sysaux.358.998332809','+FQZDATADG/PRODBst/datafile/undotbs1.303.998331203','+FQZDATADG/PRODBst/datafile/undotbs2.370.998333315','+FQZDATADG/PRODBst/datafile/users.258.998330009','+FQZDATADG/PRODBst/datafile/tbs_acctchk.477.998335675',CHARACTER SET ZHS16GBK;SQL>alter database open resetlogs;[oracle@prodb01a/home/oracle] vi pfile.ora修改cluster_database=trueSQL>create spfile=’+FQZDATADG/prodb/spfileprodb.ora’ from pfile='/home/oracle/pfile.ora';SQL> shut immediateORA-01507: database not mountedORACLE instance shut down.2.2.6 重新注册数据库信息Oracle⽤户在⼀个节点上执⾏srvctl add database -d prodb -o /oracle/app/oracle/12.1.0 -p ’+FQZDATADG/prodb/spfileprodb.ora’srvctl add instance -d prodb -i prodb1 -n srvctl add instance -d prodb -i PRODB -n 启动数据库[Oracle@prodbdb01a/home/oracle] srvctl start database -d prodb⾄此完成prodb数据库迁移切换⼯作。

orcl 创建实例

orcl 创建实例

orcl 创建实例Oracle数据库是目前广泛使用的关系型数据库管理系统之一,它的特点是稳定、可靠且具备较高的性能。

在使用Oracle数据库之前,我们需要先创建一个实例,这样才能进行后续的数据库操作。

创建Oracle实例的步骤如下:1. 安装Oracle数据库软件:首先需要下载并安装Oracle数据库软件,确保安装过程中没有出现错误。

安装完成后,可以在安装目录下找到数据库的可执行文件。

2. 配置初始化参数文件:在安装目录下创建一个文本文件,命名为init{实例名}.ora,其中{实例名}是你希望创建的实例的名称。

在该文件中,我们需要为实例配置一些初始化参数,例如内存大小、日志文件路径等。

这些参数的设置会影响到实例的性能和扩展性,所以需要根据实际需求进行调整。

3. 启动实例:在命令行中使用sqlplus工具,输入以下命令来启动实例:`sqlplus /nolog``connect / as sysdba``startup`这些命令的作用是启动sqlplus工具,并以sysdba角色连接到数据库实例,最后使用startup命令来启动实例。

如果一切顺利,你会看到一些启动信息,并且实例会进入运行状态。

4. 创建数据库:在实例启动后,我们可以使用CREATE DATABASE 语句来创建数据库。

例如,下面的命令将创建一个名为orcl的数据库:`CREATE DATABASE orclUSER sys IDENTIFIED BY sysUSER system IDENTIFIED BY systemLOGFILE GROUP 1 ('/path/to/logfile1', '/path/to/logfile2') SIZE 100MDATAFILE '/path/to/datafile1' SIZE 500MCHARACTER SET utf8;`在上述命令中,我们指定了数据库的名称、sys和system用户的密码、日志文件和数据文件的路径以及字符集等信息。

详解数据库名

详解数据库名

详解:数据库名、实例名、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参数的值一致,否则将产生错误。

oracle查看实例名方法

oracle查看实例名方法

从事编程的朋友们可能都会遇到连接连接Oracle时会出现oracle url无效的问题,下面小编就教大家oracle查看实例名方法来帮助各位解决这个问题。

oracle查看实例名在两个配置文件里面分别是listener.ora和tnsnames.ora。

路径是:D:Oracle9i_9.2networkadmin,里面写明了远程连接的实例名和端口号,也就是SERVICE_NAME。

同时oracle查看实例名还有另外一种方法就是用SQL语句查询。

用管理员身份system登陆后输入“show parameter service_name;”命令便可查看出来。

以上oracle查看实例名方法只是个人经验总结出来的,不足之处还望大家指点指点。

更多信息请查看IT技术专栏。

Oracle数据库、实例、表空间、用户、数据库对象

Oracle数据库、实例、表空间、⽤户、数据库对象Oracle是⼀种数据库管理系统,是⼀种关系型的数据库管理系统。

通常情况了我们称的“数据库”,包含了物理数据、数据库管理系统、内存、操作系统进程的组合体,就是指这⾥所说的数据库管理系统。

完整的Oracle数据库通常由两部分组成:Oracle数据库和数据库实例。

① Oracle数据库是⼀系列物理⽂件的集合;组成Oracle数据库的⽂件可以分成三个类型:数据⽂件(data file)、重做⽇志⽂件(redo log file)和控制⽂件(control file)。

数据⽂件保存数据,Oracle中可以存在任意数量的数据⽂件;重做⽇志⽂件跟SQL Server的事务⽇志⽂件⼀样⽤来保存对数据更改的记录,在系统恢复阶段需要⽤到;控制⽂件是⼀些特别的⼩⽂件,⽤来保存⼀些⾄关重要的关于数据库的信息,没有这个⽂件的话,实例就⽆法打开数据库。

除了数据⽂件、重做⽇志⽂件、控制⽂件之外,数据库还包含参数⽂件(parameter file)、密码⽂件(password file)和可选的归档⽇志⽂件(archive log files)。

② Oracle数据库实例则是⼀组Oracle后台进程/线程以及在服务器分配的共享内存区。

当Oracle启动时,它和SQL Server⼀样要先占⽤⼀些服务器内存⽤于执⾏操作,这个内存区域——SGA(System Global Area)——被分为数个不同的结构,在创建SGA的同时也会启动⼀系列的后台进程⽤于和SGA进⾏交互,在这⾥这些分配的内存空间和后台进程组合起来就是Oracle实例了。

请注意这⾥并没有提到数据库,实际上Oracle实例在没有数据库或是数据库不能访问时也是跑的很好的,在安装Oracle时,我们可以选择只安装软件,完了之后再安装数据库。

Oracle系统启动时,⾸先在内存中创建数据库实例,然后由实例找到保存在磁盘中的数据库,最后打开数据库让⽤户操作。

如何区分Oracle的数据库,实例,服务名,SID

什么是数据库,其实很简单,数据库就是存储数据的一种媒介。

比如常用的文件就是一种,在Oracle10G中,数据的存储有好几种。

第一种是文件形式,也就是在你的磁盘中创建一批文件,然后在这些文件中存储信息。

第二种就是磁盘阵列形式,这个是什么意思呢,这个就是说明数据库不是存放为某个文件,而是把一个或者多个磁盘格式化成Oracle的一种格式了,等于整个磁盘就是存放Ora cle数据库的,不能作为别的用途。

这样的优点是存储性能高,因为不再借助别的文件格式了,而是把整个磁盘都成为Oracle最适应的文件系统格式。

当然还可能有别的形式,比如网络什么的。

不过我们最常用的还是文件格式的,在文件格式中,数据库指的就是那些数据文件,控制文件以及REDO文件等等一系列文件。

而什么是Instance呢,Instance其实就是指的操作系统中一系列的进程以及为这些进程所分配的内存块。

在Oracle中,我们可以新建一个Oracle的Insta nce,这个时候虽然有了进程还有SGA等一系列的内存快,但是这个时候并没有把数据库文件读取进来。

所以只是一个实例,在后来,你可以通过命令手动或者自动地把数据库文件加载进我们的数据库Instance中,这个时候的数据库才可以让我们真正的开始访问操作。

所以说,数据库的应用如果想实现,数据库和数据库Instance是缺一不可的,如果只有数据库的那些文件,那么,只能代表数据在这个文件中,但是我们无法直接进行操作。

而如果只有数据库Instance,那么我们虽然可以急性操作,但是也不知道操作哪些数据,操作生成的数据也无法保存等等。

所以,当一个Or acle Instance真正Load了一个Oracle Database了以后,数据库才可以被我们使用。

在这里要注意一点的是,Oracle的实例在启动以后,只能load一次数据库,如果想把数据库与Instance断开,然后再重新挂在一个数据库Instance,那么就需要你首先把数据库Instance进程结束,然后重新建立这个instance的一个进程,再load另外一个数据库。

ORACLE_SID

详解: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参数的值一致,否则将产生错误。

修改oracle实例名详解

修改oracle实例名(sid)和数据库名(db_name)有时我们需要修改数据库的sid和dbname,除了使用rman进行备份恢复之外,也可以通过手工方式修改,主要由两个主要过程完成:1、修改实例名(SID)2、修改数据库名(dbname)下面演示将数据库sid和dbname由orcl修改为bi118的过程:1、修改实例名(sid)1.1、检查原来的数据库实例名(sid)oracle@oracle[/home/oracle]> echo $ORACLE_SIDorclsys@ORCL> select instance from v$thread;INSTANCE--------------------------------------------------------------------------------orcl1.2、关闭数据库注意不能用shutdown abort,只能是shutdown immediate或shutdown normalsys@ORCL> shutdown immediate1.3、修改oracle用户的ORACLE_SID环境变量,如由orcl修改为bi118oracle@oracle[/home/oracle]> cat ~/.bash_profile|grep -i sidORACLE_SID=bi118export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH1.4、修改/etc/oratab文件,将sid名由旧的修改为新的,如从orcl修改为bi118oracle@oracle[/home/oracle]> cat /etc/oratab1.5、进入到$ORACLE_HOME/dbs目录将所有文件名中包含原来的sid的修改为对应的新sid的如我对如下文件修改为其后对应的文件hc_orcl.dat->hc_bi118.datlkORCL->lkbi118orapworcl->orapwbi118snapcf_orcl.f->snapcf_bi118.fspfileorcl.ora->spfilebi118.ora1.6、使新修改的ORACLE_SID环境变量生效oracle@oracle[/oracle/app/10.1/dbs]> . ~/.bash_profileoracle@oracle[/oracle/app/10.1/dbs]> echo $ORACLE_SIDbi1181.7、重建口令文件因为口令文件改名后不能在新实例中使用,所以重建oracle@oracle[/oracle/app/10.1/dbs]> orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=oracle entries=5 force=yoracle@oracle[/oracle/app/10.1/dbs]> ls -lrt orapw*-rw-r----- 1 oracle oinstall 2048 Dec 20 11:27 orapwbi1181.8、启动数据库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变成bi118idle> select instance from v$thread;INSTANCE--------------------------------------------------------------------------------bi1182、修改数据库名(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 bi118lock_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 immediate2.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 bi118_ora_7789.trc2.5、将找到的trc文件复制一份,并命名为ccf.sqloracle@oracle[/oracle/admin/orcl/udump]> cp bi118_ora_7789.trc ccf.sql2.6、修改ccf.sql查找STARTUP NOMOUNT语句,将这一行上面的所有行都删除查找所有以--开始的行,把这些行删除查找所有的orcl修改为bi118,所有的ORCL修改为bi118找到CREATE CONTROLFILE REUSE DATABASE...语句,将其中的REUSE修改为SET找到RECOVER DATABASE USING BACKUP CONTROLFILE语句,将其用双横线(--)注释掉如果有精力,可以修改这个脚本中的datafile和logfile部分使用新的文件名称,其实这部分不修改也可以,我为了测试的目的进行了修改,修改后要记得去重命名数据文件和log文件,将对应的数据文件和log文件与这里的名称相对应我修改后的ccf.sql文件内容如下STARTUP NOMOUNTCREATE CONTROLFILE set DATABASE "bi118" RESETLOGS ARCHIVELOGMAXLOGFILES 16MAXLOGMEMBERS 3MAXDATAFILES 100MAXINSTANCES 8MAXLOGHISTORY 292LOGFILEGROUP 1 '+DATA/bi118/onlinelog/group_1.LOG' SIZE 100M,GROUP 2 '+DATA/bi118/onlinelog/group_2.LOG' SIZE 100M,GROUP 3 '+DATA/bi118/onlinelog/group_3.LOG' SIZE 100M,GROUP 4 '+DATA/bi118/onlinelog/group_4.LOG' SIZE 100MDATAFILE'+DATA/bi118/datafile/system01.DBF','+DATA/bi118/datafile/undotbs101.DBF','+DATA/bi118/datafile/sysaux01.DBF','+DATA/bi118/datafile/users01.DBF','+DATA/bi118/datafile/example01.DBF','+DATA/bi118/datafile/tbs_lmt01.DBF','+DATA/bi118/datafile/tbs_lmt_201.DBF','+DATA/bi118/datafile/tbs_lmt_301.DBF'CHARACTER SET ZHS16GBK;--RECOVER DATABASE USING BACKUP CONTROLFILE;ALTER DATABASE OPEN RESETLOGS; ----------这行若没有,可以手动增加上去2.7、修改数据文件、在线日志文件名如果上一步修改了ccf.sql文件中的datafile和logfile段的文件名,这里要将这些文件名重命令为与其一致。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档