使用Dbnewid更改oracle的dbid和dbname

简介:
平台;redhat linux as5, oracle10g
内容介绍:本文介绍如何使用dbnewid修改oracle10gdbiddbname及操作程中常见的故障排除,其中dbid是标识数据库的内部标识符,dbname是标识数据库的名称.使用dbnewid可以避免重建控制文件。更改db_name的时候,由于数据库名还存在于参数文件中,因此,更改数据库名时也要更改相应的参数。如果使用了spfile,那么要重建它。另外,还需要重建密码文件。最后介绍了如何更改global_nameinstance_naem

1.更改dbnamedbid

查看现在的dbnamedbid
SQL> show parameter name;
NAME                                   TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_file_name_convert              string
db_name                                 string          denver
global_names                           boolean      denver
instance_name                          string         denver
oracle_trace_collection_name   string
oracle_trace_facility_name        string        oracled
plsql_native_make_file_name    string
service_names                          string         denver
可见dbname,dbid,instance_name, global_names都为denver
1.修改DBIDDBNAME
如果只更改dbid
SQL>! nid target=sys/password@denver
如果只更改db_name
SQL>! nid TARGET=sys/password@denver dbname=taaa setname=y
如果你想同时更改数据库名(db_name)和数据库IDdbid),
SQL> ! nid target=sys/password@denver dbname=aaa
:
SQL> ! nid target=sys dbname=aaa
本文同时更改dbiddbname
SQL> shutdown immediate
SQL> startup mount;
SQL> ! nid target=sys dbname=aaa
DBNEWID: Release 9.2.0.4.0 - Production
Copyright (c) 1995, 2002, Oracle Corporation.  All rights reserved.
Password: ( 输入密码 )
Connected to database DENVER (DBID=3973837782)
Control Files in database:
    /u01/oradata/denver/control01.ctl
    /u01/oradata/denver/control02.ctl
    /u01/oradata/denver/control03.ctl
Change database ID and database name DENVER to AAA? (Y/[N]) => y
Proceeding with operation
Changing database ID from 3973837782 to 1841424434
# 省略一部分
Shut down database and open with RESETLOGS option.
Succesfully changed database name and ID.
DBNEWID - Completed succesfully.
简单排错
1.如果数据文件不正常这一步很可能执行不成功,如下
SQL> select file#,status from v$datafile;
     FILE# STATUS
---------- -------------------
         1 SYSTEM
         2 ONLINE
         3 ONLINE
         4 ONLINE
         5 ONLINE
         6 RECOVER
把文件6恢复
SQL> recover datafile 6;
2.查看归档日志
有时候在归档方式下,没有归档日录,这时要新建一个归档日录
SQL> archive log list;
SQL> host ls -l /home/oracle/oracle/oradata/db2/arch
ls: /home/oracle/oracle/oradata/db2/arch: No such file or directory
[oracle@oracle ~]$ cd /home/oracle/oracle/oradata/db2/
[oracle@oracle db2]$ mkdir arch
2.重建参数文件
查看使用什么参数文件
SQL> show parameter spfile;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                                   string      ?/dbs/spfile@.ora
重建spfile
SQL> create pfile from spfile;
 
[oracle01@vfast dbs]$ vi initdenver.ora
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_name='aaa'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=denverXDB)'
*.fast_start_mttr_target=300
 
[oracle01@vfast dbs]$ mv spfiledenver.ora spfiledenver.ora.bak
SQL> create spfile from pfile;
3.修改密码文件
[oracle01@vfast ~]$ cd $ORACLE_HOME/dbs
[oracle01@vfast ~]$mv orapwdenver orapwdever.bak
[oracle01@vfast dbs]$ orapwd file=orapwdenver password=123456
4.resetlogs参数启动
SQL> shutdown immediate;
SQL>startup mount;
SQL> alter database open resetlogs;
SQL> show parameter name;
Database altered.
db_name                              string      aaa
global_names                          boolean     denver
instance_name                         string      denver
service_names                         string      aaa
数据库能启动了,db_nameservice_name也修改成功了
:更改global_names
修改global_names
SQL> alter database rename global_name to aaa;
Database altered.
:更改instance_name
SQL>alter system set instance_name=’aaa’ scope=spfile;
SQL>shutdown immediate;
SQL>startup;
现在再查看:
SQL> show parameter name;
Database altered.
db_name                              string      aaa
global_names                          boolean     aaa
instance_name                         string      aaa
service_names                         string      aaa
可见global_nameinstnace_name也更改了.




本文转自 vfast_chenxy 51CTO博客,原文链接:http://blog.51cto.com/chenxy/170183,如需转载请自行联系原作者

目录
相关文章
|
Oracle 算法 关系型数据库
Oracle如何修改数据库的DBID和DBNAME?
Oracle如何修改数据库的DBID和DBNAME?
441 0
|
21天前
|
存储 Oracle 关系型数据库
Oracle数据库的应用场景有哪些?
【10月更文挑战第15天】Oracle数据库的应用场景有哪些?
139 64
|
11天前
|
SQL Oracle 关系型数据库
Oracle数据库优化方法
【10月更文挑战第25天】Oracle数据库优化方法
23 7
|
11天前
|
Oracle 关系型数据库 数据库
oracle数据库技巧
【10月更文挑战第25天】oracle数据库技巧
15 6
|
11天前
|
存储 Oracle 关系型数据库
Oracle数据库优化策略
【10月更文挑战第25天】Oracle数据库优化策略
15 5
|
18天前
|
存储 Oracle 关系型数据库
数据库数据恢复—Oracle ASM磁盘组故障数据恢复案例
Oracle数据库数据恢复环境&故障: Oracle ASM磁盘组由4块磁盘组成。Oracle ASM磁盘组掉线 ,ASM实例不能mount。 Oracle数据库故障分析&恢复方案: 数据库数据恢复工程师对组成ASM磁盘组的磁盘进行分析。对ASM元数据进行分析发现ASM存储元数据损坏,导致磁盘组无法挂载。
|
20天前
|
监控 Oracle 关系型数据库
Oracle数据库性能优化
【10月更文挑战第16天】Oracle数据库性能优化是
21 1
|
2月前
|
Oracle 关系型数据库 数据库
数据库数据恢复—Oracle数据库文件出现坏块的数据恢复案例
打开oracle数据库报错“system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。 数据库没有备份,无法通过备份去恢复数据库。用户方联系北亚企安数据恢复中心并提供Oracle_Home目录中的所有文件,急需恢复zxfg用户下的数据。 出现“system01.dbf需要更多的恢复来保持一致性”这个报错的原因可能是控制文件损坏、数据文件损坏,数据文件与控制文件的SCN不一致等。数据库恢复工程师对数据库文件进一步检测、分析后,发现sysaux01.dbf文件损坏,有坏块。 修复并启动数据库后仍然有许多查询报错,export和data pump工具使用报错。从数据库层面无法修复数据库。
数据库数据恢复—Oracle数据库文件出现坏块的数据恢复案例
|
1月前
|
SQL 存储 Oracle
Oracle数据库SQL语句详解与应用指南
在数字化时代,数据库已成为各类企业和组织不可或缺的核心组件。Oracle数据库作为业界领先的数据库管理系统之一,广泛应用于各种业务场景。掌握Oracle数据库的SQL语句是数据库管理员、开发人员及运维人员的基本技能。本文将详细介绍Oracle数据库SQL语句的基本概念、语法、应用及最佳实践。一、Or
46 3
|
2月前
|
Oracle 关系型数据库 数据库
Oracle数据恢复—异常断电导致Oracle数据库数据丢失的数据恢复案例
Oracle数据库故障: 机房异常断电后,Oracle数据库启库报错:“system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。数据库没有备份,归档日志不连续。用户方提供了Oracle数据库的在线文件,需要恢复zxfg用户的数据。 Oracle数据库恢复方案: 检测数据库故障;尝试挂起并修复数据库;解析数据文件。