修改数据库名(db_name)及实例名(Instance_name or Service_name)

操作系统版本:rhel6.5 (Red Hat Enterprise Linux Server release 6.5 (Santiago))

数据库版本:12.1.0.2.0

实验目的:

假设原来的数据库名为scp,要改成etdb,原实例名(service_name,instance_name)scp,要改成etdb.

当前数据库的db_name和instance_name:

SQL> select dbid,name from v$database;

      DBID NAME
---------- ---------
3247610670 SCP

SQL> show parameter name;

NAME                               TYPE           VALUE
------------------------------------ ----------- ------------------------------
cell_offloadgroup_name              string
db_file_name_convert                string
db_name                          string           scp
db_unique_name                      string           scp
global_names                       boolean          FALSE
instance_name                      string           scp
lock_name_space                   string
log_file_name_convert                string
pdb_file_name_convert                string
processor_group_name                 string
service_names                      string           scp

使用oracle自带的nid工具修改数据库的db_name:

SQL> shutdown immediate;       --先停止数据库
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount;       --nid需要在mount状态下才能做
ORACLE instance started.

Total System Global Area 2147483648 bytes
Fixed Size            2926472 bytes
Variable Size         1325402232 bytes
Database Buffers      805306368 bytes
Redo Buffers           13848576 bytes
Database mounted.
SQL> ! nid target=sys/hzsunssytem dbname=etdb   --nid是操作系统下执行的命令

DBNEWID: Release 12.1.0.2.0 - Production on Wed May 25 19:25:52 2016

Copyright (c) 1982, 2014, Oracle and/or its affiliates.  All rights reserved.

Connected to database SCP (DBID=3247610670)

Connected to server version 12.1.0

Control Files in database:
    /home/OracleData/scp/control01.ctl
    /home/OracleArch/fast_recovery_area/scp/control02.ctl

Change database ID and database name SCP to ETDB? (Y/[N]) => Y  --需要确认

Proceeding with operation
Changing database ID from 3247610670 to 637227457
Changing database name from SCP to ETDB
    Control File /home/OracleData/scp/control01.ctl - modified
    Control File /home/OracleArch/fast_recovery_area/scp/control02.ctl - modified
    Datafile /home/OracleData/scp/system01.db - dbid changed, wrote new name
    Datafile /home/OracleData/scp/sysaux01.db - dbid changed, wrote new name
    Datafile /home/OracleData/scp/undotbs01.db - dbid changed, wrote new name
    Datafile /home/OracleData/scp/users01.db - dbid changed, wrote new name
    Datafile /home/OracleData/scp/temp01.db - dbid changed, wrote new name
    Control File /home/OracleData/scp/control01.ctl - dbid changed, wrote new name
    Control File /home/OracleArch/fast_recovery_area/scp/control02.ctl - dbid changed, wrote new name
    Instance shut down              --此时数据库实例已经关闭

Database name changed to ETDB.
Modify parameter file and generate a new password file before restarting.
Database ID for database ETDB changed to 637227457.
All previous backups and archived redo logs for this database are unusable.
Database is not aware of previous backups and archived logs in Recovery Area.
Database has been shutdown, open database with RESETLOGS option.
Succesfully changed database name and ID.
DBNEWID - Completed succesfully.

SQL> conn / as sysdba;
Connected to an idle instance.   --连接到空闲实例
SQL>
SQL>
SQL> startup mount;      --启动数据库到mount状态
ORACLE instance started.

Total System Global Area 2147483648 bytes
Fixed Size            2926472 bytes
Variable Size         1325402232 bytes
Database Buffers      805306368 bytes
Redo Buffers           13848576 bytes
ORA-01103: database name ‘ETDB‘ in control file is not ‘SCP‘   --提示控制文件中的数据库名与实际的数据库名不匹配

SQL> alter system set db_name=etdb scope=spfile;

System altered.

SQL> shutdown immediate;
ORA-01507: database not mounted

ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.

Total System Global Area 2147483648 bytes
Fixed Size            2926472 bytes
Variable Size         1325402232 bytes
Database Buffers      805306368 bytes
Redo Buffers           13848576 bytes
Database mounted.
SQL> select dbid,name from v$database;

      DBID NAME
---------- ---------
 637227457 ETDB

SQL> alter database open resetlogs;

Database altered.

 修改数据库的 instance_name:

SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> exit
Disconnected from Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
[[email protected] ~]$ sed -i s/"ORACLE_SID=scp"/"ORACLE_SID=etdb"/g  ~/.bash_profile
[[email protected] ~]$ source ~/.bash_profile
[[email protected] ~]$ env | grep ORACLE_SID
ORACLE_SID=etdb
[[email protected] ~]$ mv $ORACLE_HOME/dbs/spfilescp.ora $ORACLE_HOME/dbs/spfileetdb.ora
[[email protected] ~]$ sqlplus "/ as sysdba"

SQL*Plus: Release 12.1.0.2.0 Production on Wed May 25 23:49:44 2016

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

Connected to an idle instance.

SQL> startup
ORACLE instance started.

Total System Global Area 2147483648 bytes
Fixed Size            2926472 bytes
Variable Size         1325402232 bytes
Database Buffers      805306368 bytes
Redo Buffers           13848576 bytes
Database mounted.
Database opened.
SQL> show parameter name;

NAME                     TYPE     VALUE
------------------------------------ ----------- ------------------------------
cell_offloadgroup_name             string
db_file_name_convert             string
db_name                  string     ETDB
db_unique_name                 string     ETDB
global_names                 boolean     FALSE
instance_name                 string     etdb
lock_name_space              string
log_file_name_convert             string
pdb_file_name_convert             string
processor_group_name             string
service_names                 string     ETDB

SQL> alter system register;    --向listener注册

System altered.

SQL> host lsnrctl reload;

LSNRCTL for Linux: Version 12.1.0.2.0 - Production on 25-MAY-2016 23:52:04

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

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=dg1)(PORT=1521)))
The command completed successfully

SQL> host lsnrctl status;

LSNRCTL for Linux: Version 12.1.0.2.0 - Production on 25-MAY-2016 23:52:10

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

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=dg1)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 12.1.0.2.0 - Production
Start Date                25-MAY-2016 23:14:06
Uptime                    0 days 0 hr. 38 min. 4 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/product/12.1.0.2/dbhome_1/network/admin/listener.ora
Listener Log File         /u01/app/oracle/diag/tnslsnr/dg1/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=dg1.zytk.com)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Services Summary...
Service "ETDB" has 1 instance(s).
  Instance "etdb", status READY, has 1 handler(s) for this service...
Service "scpXDB" has 1 instance(s).
  Instance "etdb", status READY, has 1 handler(s) for this service...
The command completed successfully

 最后修改一下密码文件:

[[email protected] ~]$ orapwd file=$ORACLE_HOME/dbs/orapwetdb password=‘[email protected]#‘ entries=3

如果listener.ora、 tnsnames.ora文件中含有原来的 SERVICE_NAME 名称的话,用编辑器做相应的修改。

时间: 2024-10-07 03:23:21

修改数据库名(db_name)及实例名(Instance_name or Service_name)的相关文章

数据库名(DB_NAME)、实例名(Instance_name)、以及操作系统环境变量(ORACLE_SID)

数据库名(DB_NAME).实例名(Instance_name).以及操作系统环境变量(ORACLE_SID) 在ORACLE7.8数据库中只有数据库名(db_name)和数据库实例名(instance_name).在ORACLE8i.9i中出现了新的参数,即数据库域名(db_domain).服务名(service_name).以及操作系统环境变量(ORACLE_SID).这些都存在于同一个数据库中的标识,用于区分不同数据库的参数. 一.什么是数据库名(db_name)? 数据库名是用于区分数据

【ORACLE】Win2008R2修改oracle数据库实例名

需求说明:要求将windows平台的数据库实例名由orcl改为haha 参考: https://www.cnblogs.com/junnor/archive/2013/03/05/2945245.html https://www.cnblogs.com/tomatoes-/p/6130615.html http://blog.itpub.net/114562/viewspace-820776/   一.查看当前数据库实例名 二.创建控制文件的trace文件 找到刚才生产成的trace文件 tra

Oracle 数据库名、实例名、Oracle_SID

本文参考自ORACLE 数据库名.实例名.ORACLE_SID的区别,纯属读书笔记,加深记忆 在ORACLE7.8数据库中只有数据库名(db_name)和数据库实例名(instance_name).在ORACLE8i.9i中出现了新的参数,即数据库域名(db_domain).服务名(service_name).以及操作系统环境变量(ORACLE_SID).这些都存在于同一个数据库中的标识,用于区分不同数据库的参数. 1.数据库名 数据库名是用于区分数据的标识,是以二进制形式存储于数据库控制文件中

Oracle 修改实例名 SID

修改ORACLE实例名 系统环境:CentOS 6.5 ORACLE版本:10.2 1.检查原来的数据库实例名 $ echo $ORACLE_SID orcl $ sqlplus / as sysdba > select instance from v$thread; INSTANCE -------------------------------------------------------------------------------- orcl 2.关闭数据库 > shutdown

SQL Server服务器名称与默认实例名不一致的修复方法

SQL Server服务器名称与默认实例名不一致的修复方法 分类: 个人累积 SQl SERVER 数据库复制2011-08-10 09:49 10157人阅读 评论(0) 收藏 举报 sql server服务器sqlservermicrosoftserver远程连接 [sql] view plaincopy --原因分析: --SERVERPROPERTY 函数的 ServerName 属性与@@SERVERNAME 返回相似的信息. --ServerName 属性提供Windows 服务器和

数据库名(db_name) 实例名(instance_name) 服务名(service_name)

数据库名(db_name) 数据库的标识,就像人的身份证号一样,数据库名是在安装数据库.创建新的数据库.创建数据库控制文件.修改数据结构.备份与恢复数据库时都需要使用到的. select name from v$database;--查询当前数据名 数据库实例名(instance_name) 数据库实例名是用于和操作系统进行联系的标识,就是说数据库和操作系统之间的交互用的是数据库实例名. 在一般情况下,数据库名和实例名是一对一的关系,但如果在oracle并行服务器架构(即oracle实时应用集群

oracle 实例名和服务名以及数据库名区别

一.数据库名什么是数据库名?数据库名就是一个数据库的标识,就像人的身份证号一样.他用参数DB_NAME表示,如果一台机器上装了多全数据库,那么每一个数据库都有一个数据库名.在数据库安装或创建完成之后,参数DB_NAME被写入参数文件之中.格式如下:DB_NAME=myorcl...在 创建数据库时就应考虑好数据库名,并且在创建完数据库之后,数据库名不宜修改,即使要修改也会很麻烦.因为,数据库名还被写入控制文件中,控制文件是以二 进制形式存储的,用户无法修改控制文件的内容.假设用户修改了参数文件中

数据库名、实例名、数据库域名、全局数据库名、服务名

数据库名.实例名.数据库域名.全局数据库名.服务名 , 这是几个令很多初学者容易混淆的概念.相信很多初学者都与我一样被标题上这些个概念搞得一头雾水.我们现在就来把它们弄个明白. 1数据库名   什么是数据库名?  数据库名就是一个数据库的标识,就像人的身份证号一样.他用参数DB_NAME表示,如果一台机器上装了多全数据库,那么每一个数据库都有一个数据库名.在数据库安装或创建完成之后,参数DB_NAME被写入参数文件之中.格式如下:DB_NAME=myorcl...在创建数据库时就应考虑好数据库名

创建Oracle数据库、数据库名与实例名与SID之间的关系(图文详解)

目录 目录 软件环境 前言 安装Oracle监听程序 启动停止监听程序 创建数据库 数据库名db_name 数据库实例名instance_name 数据库名与实例名的关系 操作系统环境变量ORACLE_SID 软件环境 操作系统 RHEL 6.1 软件环境 Oracle10gr2 前言 在上一篇RHEL6.1 安装 Oracle10gr2 (图文.解析)中记录了如何成功的在RHEL6.1安装Oracle10gr2,但是在安装的过程中没有创建数据库,本篇主要记录了如果创建数据库和监听程序. 安装O