Oracle 修改oracle数据库名
Oracle 修改oracle数据库名
by:授客 QQ:1033553122
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数据库名的更多相关文章
- oracle修改表字段名时报错:ORA-00054:资源正忙,但指定以NOWAIT方式获取资源,或者超时失效的问题
打开sql plus select session_id from v$locked_object;查询出oracle锁定的会话ID SELECT sid, serial#, username, os ...
- oracle 修改表空间名
1.登录使用sys用户登录 sqlplus sys/ as sysdba 2.修改表空间名字 SQL> alter tablespace 旧表空间名 rename to 新表空间名; 表空间已更 ...
- 安全快速修改Mysql数据库名的5种方法
1. RENAME DATABASE db_name TO new_db_name这个..这个语法在mysql 5.1.7中被添加进来,到了5.1.23又去掉了.据说有可能丢失数据.还是不要用的好.详 ...
- Oracle修改表结构字段名和字段长度
添加字段的语法:alter table tablename add (column datatype [default value][null/not null],….); 修改字段的语法:alter ...
- CentOS上oracle 11g R2数据库安装折腾记
1.虚拟机上centos镜像的获取.这里推荐网易镜像站中的CentOS7版本(其他开源镜像站亦可).这里给出链接: http://mirrors.163.com/centos/7.3.1611/iso ...
- java使用jdbc连接oracle(其他数据库类似)
最基本的Oracle数据库连接代码: 1.右键项目->构建路径->配置构建路径,选择第三项“库”,然后点击“添加外部Jar”,选择“D:\Oracle\app\oracle\product ...
- 【ORACLE】Win2008R2修改oracle数据库实例名
需求说明:要求将windows平台的数据库实例名由orcl改为haha 参考: https://www.cnblogs.com/junnor/archive/2013/03/05/2945245.ht ...
- 详解:数据库名、实例名、ORACLE_SID、数据库域名、全局数据库名、服务名及手工脚本创建oracle数据库
数据库名.实例名.数据库域名.全局数据库名.服务名 , 这是几个令很多初学者容易混淆的概念.相信很多初学者都与我一样被标题上这些个概念搞得一头雾水.我们现在就来把它们弄个明白. 一.数据库名 什么是数 ...
- 修改oracle实例名orcl为demo
修改oracle实例名有六步: 1.sqlplus username/password as sysdba登陆,然后从spfile文件创建pfile文件 :create pfile from spfi ...
随机推荐
- 06-01 Java 二维数组格式、二维数组内存图解、二维数组操作
二维数组格式1 /* 二维数组:就是元素为一维数组的一个数组. 格式1: 数据类型[][] 数组名 = new 数据类型[m][n]; m:表示这个二维数组有多少个一维数组. n:表示每一个一维数组的 ...
- Odoo 学习地址
Odoo官文文档: https://www.odoo.com/zh_cn/page/docs http://www.odoo.com/documentation/8.0/ Odoo中文文档推荐: ht ...
- C语言写了一个socket server端,适合windows和linux,用GCC编译运行通过
////////////////////////////////////////////////////////////////////////////////* gcc -Wall -o s1 s1 ...
- (转) lsof 一切皆文件
原文:https://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/lsof.html lsof(list open files)是一个查看当前系统文 ...
- 关于C++11中的std::move和std::forward
std::move是一个用于提示优化的函数,过去的c++98中,由于无法将作为右值的临时变量从左值当中区别出来,所以程序运行时有大量临时变量白白的创建后又立刻销毁,其中又尤其是返回字符串std::st ...
- C#基础篇三流程控制2
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace P01R ...
- Linux信号和trap命令的使用
目录 信号介绍 信号列表 控制信号 Ctrl+c显示指定内容 使Ctrl+c无任何操作 处理多个信号 处理所有信号 恢复信号 实现跳板机(实例) 信号介绍 运行Shell脚本时,如果按下快捷键Ctrl ...
- Centos7 开启端口
CentOS7默认没有使用iptables,所以通过编辑iptables的配置文件来开启80端口是不可以的. CentOS 7 采用了 firewalld 防火墙. 如要查询是否开启80端口: [ro ...
- java实现跳跃表
先贴上一个MIT跳跃表公开课链接:http://open.163.com/movie/2010/12/7/S/M6UTT5U0I_M6V2TTJ7S.html redis中的有序链表结构就是在跳跃表的 ...
- GOROOT、GOPATH和project目录说明
go env环境查看 用go env 可查看当前go环境变量. $ go env GOARCH="amd64" GOBIN="" GOEXE="&qu ...