Oracle 修改oracle数据库名

by:授客 QQ1033553122

1.确保你有个可用于数据库恢复的,完整的数据库备份

2.确保数据库处于mount,非open状态,并且在加载前先以immediate方式关闭。如:

SQL>SHUTDOWN IMMEDIATE

SQL>STARTUP MOUNT

3.命令行状态下,指定一个具有SYSDBA权限的合法用户,必须指定数据库名DBNAME和SETNAME参数。例子:

% nid TARGET=SYS DBNAME=new_dbname SETNAME=YES

DBNEWID在尝试往文件读写前会执行控制文件的文件头header检查,然后给出确认提醒,改变控制文件中的数据库名,关闭数据库,退出,例子:

Control Files in database:

/oracle/TEST_DB/data/cf1.dbf

/oracle/TEST_DB/data/cf2.dbf

The following datafiles are offline clean:

/oracle/TEST_DB/data/tbs_61.dbf (23)

/oracle/TEST_DB/data/tbs_62.dbf (24)

/oracle/TEST_DB/data/temp3.dbf (3)

These files must be writable by this utility.

The following datafiles are read-only:

/oracle/TEST_DB/data/tbs_51.dbf (15)

/oracle/TEST_DB/data/tbs_52.dbf (16)

/oracle/TEST_DB/data/tbs_53.dbf (22)

These files must be writable by this utility.

Changing database name from PROD to TEST_DB

Control File /oracle/TEST_DB/data/cf1.dbf - modified

Control File /oracle/TEST_DB/data/cf2.dbf - modified

Datafile /oracle/TEST_DB/data/tbs_01.dbf - wrote new name

Datafile /oracle/TEST_DB/data/tbs_ax1.dbf - wrote new name

Datafile /oracle/TEST_DB/data/tbs_02.dbf - wrote new name

Datafile /oracle/TEST_DB/data/tbs_11.dbf - wrote new name

Datafile /oracle/TEST_DB/data/tbs_12.dbf - wrote new name

Datafile /oracle/TEST_DB/data/temp1.dbf - wrote new name

Control File /oracle/TEST_DB/data/cf1.dbf - wrote new name

Control File /oracle/TEST_DB/data/cf2.dbf - wrote new name

Instance shut down

Database name changed to TEST_DB.

Modify parameter file and generate a new password file before restarting.

Successfully changed database name.

DBNEWID - Completed successfully.

如果检查失败,那么DBNEWID中断并且停止与目标数据库的交互。你可以打开数据库,修复错误,然后继续DBNEWID操作或者不再继续。

4.设置初始参数文件PFILE中的DB_NAME初始化参数值为新的数据库名

注:DBNEWID功能不改变服务器参数文件SPFILE。因此,如果你用SPFILE来启动数据库,那么你必须由服务器参数文件SPFILE重新创建初始化参数文件,移除服务器参数文件,改变在初始化参数文件PFILE中的DB_NAME参数值,然后重新由PFILE创建SPFILE

5.创建一个新的密码文件

6.启动数据库

STARTUP

因为你只改变了数据库名,不是数据库ID,因此当你启动数据库时没必要用RESETLOGS选项。这意味着你之前所有的备份都是可用的。

参考资料:http://docs.oracle.com/cd/E16655_01/server.121/e17639/dbnewid.htm#i1004734

用ORAPWD创建密码文件

语法:

orapwd FILE=filename [ENTRIES=numusers] [FORCE={y|n}] [ASM={y|n}] [DBUNIQUENAME=dbname] [FORMAT={12|legacy}] [SYSBACKUP={y|n}] [SYSDG={y|n}]

[SYSKM={y|n}] [DELETE={y|n}] [INPUT_FILE=input-fname]

Argument

Description

FILE

如果没指定 DESCRIBE参数,那么指定给新密码文件的文件名,必须指明完整路径。如果你仅提供一个文件名,那么文件被生成在当前的目录下。 如果有指定DESCRIBE 参数,那么指定一个已经存在的密码文件的名字。

PASSWORD

sys用户的密码.如果没指定,将提示你输入密码。密码存储在创建的密码文件中。

ENTRIES

可选。文件允许的的最大用户帐号数

FORCE

可选。如果选择y,允许覆盖已经存在的密码文件。

ASM

可选。如果选择y,在一个Oracle ASM磁盘组中创建密码文件 。如果选n,缺省,在操作系统文件系统中创建密码文件 当 DBUNIQUENAME参数被指定时,密码文件是一个数据库密码文件,当DBUNIQUENAME参数不指定时,密码文件可以是一个数据库密码文件或一个oracle ASM密码文件。

DBUNIQUENAME

唯一的数据库名用于标识仅属于ASM磁盘组数据库密码文件。当数据库密码文件存储在ASM磁盘组中,该参数是必备的。当oracle ASM密码文件以设置ASM参数为Y的方式被创建时,该参数是被忽略的。

FORMAT

可选。如果为12,缺省,密码文件以oracle数据库12c的格式被创建 .这种格式支持SYSBACKUP, SYSDG, and SYSKM管理员权限,如果为legacy,密码文件为legacy 格式,oracle数据库12c以前的格式。当SYSBACKUP, SYSDG, or SYSKM被指定时,这个参数不可以被设置为legacy

SYSBACKUP

可选,如果为y,在密码文件中创建一个SYSBACKUP条目,要求输入密码。密码存储在创建的密码文件中。

SYSDG

可选。如果选择y,在密码文件中创建一个SYSDG条目,要求输入密码。密码存储在创建的密码文件。

SYSKM

可选。如果选择y,在密码文件中创建一个SYSKM条目,要求输入密码 。密码存储在创建的密码文件中。

DELETE

可选。如果选择y,删除指定的密码文件,如果选择n,缺省,创建指定的密码文件

INPUT_FILE

可选。密码输入文件的名字. ORAPWD把输入文件中的条目转移到密码文件。这个参数可以把密码文件从legacy格式转为oracle数据库12c格式。ORAPWD不能转移存储在Oracle ASM磁盘组中的输入文件。

DESCRIBE

描述指定的密码文件的属性,包括格式,(12c或legacy),和是否区分大小写。

ORAPWD命令行参数描述

FILE

这个参数设置要创建密码文件的名字。这是必须参数.

如果你指定位于Oracle ASM磁盘组,那么密码文件自动在集群结点中共享。当你用一个Oracle ASM磁盘组来存储密码文件并且没应用Oracle Manged文件,那么必须指定文件的全路径。当使用Oracle Managed Files,全路径是必须的。

如果不指定位于Oracle ASM磁盘组,那么密码文件名由操作系统来决定。有些操作系统要求密码文件有指定的格式并位于指定的位置。有的操作系统允许使用环境变量来指定密码文件的名字和位置。

以下表列出了不同平台上密码文件名字要求和位置要求

例如,一个sid为orcldw的数据库实例,在Linux上密码文件必须被命名为orapworcldw,在Windos平台上PWDorcldw.

如平台要求一个环境变量被设置为密码文件路径,那该平台上的Oracle实时应用集群环境中,每个实例的该环境变量必须指定同一个密码文件。.

对于一个 policy-managed Oracle RAC

数据库或者一个有db_unique_name_n(n为一个数字)形式的ORACLE_SID的Oracle RAC One Node

数据库,密码文件在使用前缀:ORACLE_HOME/dbs/orapwsid_prefix或
ORACLE_HOME\database\PWDsid_prefix.ora的文件中被搜索.sid_prefix (the
数据库名的前8个字符)用于查找密码文件。

注意:

1.保护你的密码文件和标识密码文件位置的环境变量对数据库系统的安全相当的重要。

2.等号左右无空格

……

更多信息请参考以下连接

http://docs.oracle.com/cd/E16655_01/server.121/e17636/dba.htm#i1006814


实例
:把数据库名改成Lai_Yu.1

C:\Documents and
Settings\Administrator.HAIXIA-6C5F59BA>sqlplus sys/abc123 as
sysdba

SQL*Plus: Release 11.2.0.1.0
Production on
星期五 1月
3 12:28:29 2014

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

连接到:

Oracle Database 11g Enterprise
Edition Release 11.2.0.1.0 - Production

With the Partitioning, OLAP, Data
Mining and Real Application Testing options

SQL> shutdown immediate

数据库已经关闭。

已经卸载数据库。

ORACLE
例程已经关闭。

SQL> startup mount

ORACLE
例程已经启动。

Total System Global Area  535662592
bytes

Fixed Size                 
1375792 bytes

Variable Size            
209715664 bytes

Database Buffers         
318767104 bytes

Redo Buffers               
5804032 bytes

数据库装载完毕。

SQL>

C:\Documents and
Settings\Administrator.HAIXIA-6C5F59BA>nid TARGET=SYS DBNAME=Lai_Yu.1
SETNAME=YES

DBNEWID: Release 11.2.0.1.0 -
Production on
星期五 1月
3 13:06:43 2014

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

口令:

已连接数据库 MYORCL (DBID=241062891)

已连接服务器版本 11.2.0

数据库中的控制文件数:

C:\APP\ADMINISTRATOR\ORADATA\MYORCL\CONTROL01.CTL

C:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\MYORCL\CONTROL02.CTL

是否将数据库 MYORCL
的数据库名更改为 LAI_YU.1? (Y/[N]) => y

操作继续进行

将数据库名从 MYORCL
更改为 LAI_YU.1

控制文件 C:\APP\ADMINISTRATOR\ORADATA\MYORCL\CONTROL01.CTL -

已修改

控制文件 C:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\MYORCL\CONTROL02.CTL
-
已修改

数据文件 C:\APP\ADMINISTRATOR\ORADATA\MYORCL\SYSTEM01.DB -

已写入新名称

数据文件 C:\APP\ADMINISTRATOR\ORADATA\MYORCL\SYSAUX01.DB -

已写入新名称

数据文件C:\APP\ADMINISTRATOR\ORADATA\MYORCL\UNDOTBS01.DB -

已写入新名称

数据文件 C:\APP\ADMINISTRATOR\ORADATA\MYORCL\USERS01.DB -

已写入新名称

数据文件 C:\APP\ADMINISTRATOR\ORADATA\MYORCL\EXAMPLE01.DB -

已写入新名称

数据文件 C:\APP\ADMINISTRATOR\ORADATA\MYORCL\TEMP01.DB -

已写入新名称

控制文件 C:\APP\ADMINISTRATOR\ORADATA\MYORCL\CONTROL01.CTL -

已写入新名称

控制文件 C:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\MYORCL\CONTROL02.CTL
-
已写入新名称

实例关闭

数据库名已更改为 LAI_YU.1。

修改参数文件并在重新启动前生成新的口令文件。

已成功更改数据库名。

DBNEWID -
已成功完成。

更改初始化参数文件中的db_name值为你要的新的数据库名

估计是文件类型被关联导致,,正常的显示如下

SQL> create spfile from
pfile='C:\app\Administrator\admin\myorcl\pfile\init.ora';

create spfile from
pfile='C:\app\Administrator\admin\myorcl\pfile\init.ora'

*

第 1
行出现错误:

ORA-03113:
通信通道的文件结尾

进程 ID: 3552

会话 ID: 125
序列号: 5

解决方法:退出sqlplus,再登录sqlplus,如下

SQL> exit

从 Oracle Database 11g Enterprise
Edition Release 11.2.0.1.0 - ProductionWith the Partitioning, OLAP,
Data Mining and Real Application Testing options

断开

C:\Documents and
Settings\Administrator.HAIXIA-6C5F59BA>sqlplus sys/abc123 as
sysdba

SQL*Plus: Release 11.2.0.1.0
Production on
星期五 1月
3 13:47:06 2014

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

已连接到空闲例程。

已连接到空闲例程。

SQL> create spfile from
pfile='C:\app\Administrator\admin\myorcl\pfile\init.ora'
;

create spfile from
pfile='C:\app\Administrator\admin\myorcl\pfile\init.ora'

*

第 1
行出现错误:

ORA-01078: failure in processing
system parameters

LRM-00109: could not open parameter
file

'C:\APP\ADMINISTRATOR\ADMIN\MYORCL\PFILE\INIT.ORA'

解决方法:加上类型

SQL> create spfile from
pfile='C:\app\Administrator\admin\myorcl\pfile\init.ora.
611201394741';

文件已创建。

C:\Documents and
Settings\Administrator.HAIXIA-6C5F59BA>orapwd
file=C:\app\Administrator\product\11.2.0\dbhome_1\database\PWDmyorcl.ora
ENTRIES=30 FORCE=y

Enter password for SYS:

C:\Documents and
Settings\Administrator.HAIXIA-6C5F59BA>

SQL>startup

ORACLE
例程已经启动。

Total System Global Area  535662592
bytes

Fixed Size                 
1375792 bytes

Variable Size            
180355536 bytes

Database Buffers         
348127232 bytes

Redo Buffers               
5804032 bytes

数据库装载完毕。

数据库已经打开。

SQL>

Oracle 修改oracle数据库名的更多相关文章

  1. oracle修改表字段名时报错:ORA-00054:资源正忙,但指定以NOWAIT方式获取资源,或者超时失效的问题

    打开sql plus select session_id from v$locked_object;查询出oracle锁定的会话ID SELECT sid, serial#, username, os ...

  2. oracle 修改表空间名

    1.登录使用sys用户登录 sqlplus sys/ as sysdba 2.修改表空间名字 SQL> alter tablespace 旧表空间名 rename to 新表空间名; 表空间已更 ...

  3. 安全快速修改Mysql数据库名的5种方法

    1. RENAME DATABASE db_name TO new_db_name这个..这个语法在mysql 5.1.7中被添加进来,到了5.1.23又去掉了.据说有可能丢失数据.还是不要用的好.详 ...

  4. Oracle修改表结构字段名和字段长度

    添加字段的语法:alter table tablename add (column datatype [default value][null/not null],….); 修改字段的语法:alter ...

  5. CentOS上oracle 11g R2数据库安装折腾记

    1.虚拟机上centos镜像的获取.这里推荐网易镜像站中的CentOS7版本(其他开源镜像站亦可).这里给出链接: http://mirrors.163.com/centos/7.3.1611/iso ...

  6. java使用jdbc连接oracle(其他数据库类似)

    最基本的Oracle数据库连接代码: 1.右键项目->构建路径->配置构建路径,选择第三项“库”,然后点击“添加外部Jar”,选择“D:\Oracle\app\oracle\product ...

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

    需求说明:要求将windows平台的数据库实例名由orcl改为haha 参考: https://www.cnblogs.com/junnor/archive/2013/03/05/2945245.ht ...

  8. 详解:数据库名、实例名、ORACLE_SID、数据库域名、全局数据库名、服务名及手工脚本创建oracle数据库

    数据库名.实例名.数据库域名.全局数据库名.服务名 , 这是几个令很多初学者容易混淆的概念.相信很多初学者都与我一样被标题上这些个概念搞得一头雾水.我们现在就来把它们弄个明白. 一.数据库名 什么是数 ...

  9. 修改oracle实例名orcl为demo

    修改oracle实例名有六步: 1.sqlplus username/password as sysdba登陆,然后从spfile文件创建pfile文件 :create pfile from spfi ...

随机推荐

  1. 机器学习基础——模型参数评估与选择

    当看过一些简单的机器学习算法或者模型后,对于具体问题该如何评估不同模型对具体问题的效果选择最优模型呢. 机器学习分类 1. 经验误差.泛化误差 假如m个样本中有a个样本分类错误 错误率:E = a / ...

  2. 使用安装 php-memcache-client

    1.memcache:是一个高效的分布式内存对象缓存系统 2.  IES---请求--->服务器(apace) | | |---->会查看memcache.是否有IES想要的内容--> ...

  3. 使用Docker发布应用

    新建spring boot应用demo-docker,添加web依赖 <dependency> <groupId>org.springframework.boot</gr ...

  4. ThreadPoolExecutor 中的 shutdown() 、 shutdownNow() 、 awaitTermination() 的用法和区别

    Java并发编程中在使用到ThreadPoolExecutor时,对它的三个关闭方法(shutdown().shutdownNow().awaitTermination())的异同点如下: shutd ...

  5. Java - replace a character at a specific index in a string?

    String are immutable in Java. You can't change them. You need to create a new string with the charac ...

  6. 配置Zookeper

    在整个的codis架构之中,codis-proxy将作为所有的codis-server的对外的代理,而在整个的处理之中,codis-proxy所保存的数据一定是所有的codis-server的信息,那 ...

  7. Web Components实践开发Tab组件

    本文是对web components的一次实践,最终目的是做出一个tab组件,本文涉及Custom Elements(自定义元素).HTML Imports(HTML导入).HTML Template ...

  8. 29-hadoop-使用phtonenix工具&分页&数据导入

    因为rowkey一般有业务逻辑, 所以不可以直接使用rowkey进行分页, startkey, endkey 想要使用SQL语句对Hbase进行查询,需要使用Apache的开源框架Phoenix. 安 ...

  9. 学了近一个月的java web 感想

    对于每天学习的新知识进行一定的总结,是有必要的. 之前我学的每一门知识,我都没有怎么总结自己的问题,也没有怎么去想想该怎样才能学的更好,把知识掌握的更牢固.从现在开始呢,我会每半个月,或每一个月总结总 ...

  10. <context:component-scan>子标签:<context:include-filter>和<context:exclude-filter>使用时要注意的地方

    在Spring MVC中的配置中一般会遇到这两个标签,作为<context:component-scan>的子标签出现. 但在使用时要注意一下几点: 1.在很多配置中一般都会吧Spring ...