利用nid修改数据库的DBID

简介: oracle在恢复中常用到dbid,dbid的作用是什么,它和db_name是不是一一对应关系?

1、运行nid,显示如下参数:

oracle@mydb 2014_02_15]$ nid
DBNEWID: Release 11.2.0.3.0 - Production on Sun Feb 16 00:10:38 2014

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

Keyword Description (Default)

TARGET Username/Password (NONE) - --指定数据库的用户名和密码
DBNAME New database name (NONE) ---创建新的数据库名以及DBID
LOGFILE Output Log (NONE)
REVERT Revert failed change NO
SETNAME Set a new database name only NO ---如果只更改数据库名,请指定SETNAME=Y
APPEND Append to output log NO
HELP Displays these messages NO

2、查出原来的DBID=2217289411
sys@OCM> SELECT NAME,DBID FROM V$DATABASE;
NAME DBID


OCM 2217289411

3、关闭数据库并启动到MOUNT
sys@OCM> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
sys@OCM> startup mount;
ORACLE instance started.
Total System Global Area 1006809088 bytes
Fixed Size 2233520 bytes
Variable Size 478153552 bytes
Database Buffers 419430400 bytes
Redo Buffers 106991616 bytes
Database mounted.

4、在LINUX命令提示符中运行nid命令,这里只更改DBID
sys@OCM> exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
You have new mail in /var/spool/mail/oracle
[oracle@mydb ~]$ nid target=system/oracle

DBNEWID: Release 11.2.0.3.0 - Production on Sun Feb 16 00:19:12 2014
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
Connected to database OCM (DBID=2217289411)
Connected to server version 11.2.0
Control Files in database:

/u01/app/oracle/oradata/ocm/control01.ctl
/u01/app/oracle/oradata/ocm/control02.ctl

Change database ID of database OCM? (Y/[N]) => y
Proceeding with operation
Changing database ID from 2217289411 to 2222218432

Control File /u01/app/oracle/oradata/ocm/control01.ctl - modified
Control File /u01/app/oracle/oradata/ocm/control02.ctl - modified
Datafile /u01/app/oracle/oradata/ocm/system01.db - dbid changed
Datafile /u01/app/oracle/oradata/ocm/sysaux01.db - dbid changed
Datafile /u01/app/oracle/oradata/ocm/undotbs01.db - dbid changed
Datafile /u01/app/oracle/oradata/ocm/users01.db - dbid changed
Datafile /u01/app/oracle/oradata/ocm/example01.db - dbid changed
Datafile /u01/app/oracle/oradata/ocm/tp1.db - dbid changed
Datafile /u01/app/oracle/oradata/ocm/tp2.db - dbid changed
Datafile /u01/app/oracle/oradata/ocm/tp3.db - dbid changed
Datafile /u01/app/oracle/oradata/ocm/temp01.db - dbid changed
Control File /u01/app/oracle/oradata/ocm/control01.ctl - dbid changed
Control File /u01/app/oracle/oradata/ocm/control02.ctl - dbid changed
Instance shut down

Database ID for database OCM changed to 2222218432.
All previous backups and archived redo logs for this database are unusable.
Database has been shutdown, open database with RESETLOGS option.
Succesfully changed database ID.
DBNEWID - Completed succesfully.

5、使用resetlogs打开数据库
[oracle@mydb ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.3.0 Production on Sun Feb 16 00:20:36 2014
Copyright (c) 1982, 2011, Oracle. All rights reserved.
Connected to an idle instance.
idle> startup mount;
ORACLE instance started.
Total System Global Area 1006809088 bytes
Fixed Size 2233520 bytes
Variable Size 478153552 bytes
Database Buffers 419430400 bytes
Redo Buffers 106991616 bytes
Database mounted.
idle> alter database open resetlogs;
Database altered.

6、查看数据库的DBID
idle> SELECT NAME,DBID FROM V$DATABASE;

NAME DBID


OCM 2222218432

由原来的DBID=2217289411变为DBID=2222218432.

相关文章
|
Oracle 算法 关系型数据库
Oracle如何修改数据库的DBID和DBNAME?
Oracle如何修改数据库的DBID和DBNAME?
405 0
|
SQL Oracle 关系型数据库
|
3天前
|
NoSQL 关系型数据库 MySQL
微服务架构下的数据库选择:MySQL、PostgreSQL 还是 NoSQL?
在微服务架构中,数据库的选择至关重要。不同类型的数据库适用于不同的需求和场景。在本文章中,我们将深入探讨传统的关系型数据库(如 MySQL 和 PostgreSQL)与现代 NoSQL 数据库的优劣势,并分析在微服务架构下的最佳实践。
|
4天前
|
存储 SQL 关系型数据库
使用MySQL Workbench进行数据库备份
【9月更文挑战第13天】以下是使用MySQL Workbench进行数据库备份的步骤:启动软件后,通过“Database”菜单中的“管理连接”选项配置并选择要备份的数据库。随后,选择“数据导出”,确认导出的数据库及格式(推荐SQL格式),设置存储路径,点击“开始导出”。完成后,可在指定路径找到备份文件,建议定期备份并存储于安全位置。
65 11
|
29天前
|
SQL 关系型数据库 MySQL
【揭秘】MySQL binlog日志与GTID:如何让数据库备份恢复变得轻松简单?
【8月更文挑战第22天】MySQL的binlog日志记录数据变更,用于恢复、复制和点恢复;GTID为每笔事务分配唯一ID,简化复制和恢复流程。开启binlog和GTID后,可通过`mysqldump`进行逻辑备份,包含binlog位置信息,或用`xtrabackup`做物理备份。恢复时,使用`mysql`命令执行备份文件,或通过`innobackupex`恢复物理备份。GTID模式下的主从复制配置更简便。
122 2
|
24天前
|
弹性计算 关系型数据库 数据库
手把手带你从自建 MySQL 迁移到云数据库,一步就能脱胎换骨
阿里云瑶池数据库来开课啦!自建数据库迁移至云数据库 RDS原来只要一步操作就能搞定!点击阅读原文完成实验就可获得一本日历哦~
|
27天前
|
关系型数据库 MySQL 数据库
RDS MySQL灾备服务协同解决方案构建问题之数据库备份数据的云上云下迁移如何解决
RDS MySQL灾备服务协同解决方案构建问题之数据库备份数据的云上云下迁移如何解决
|
5天前
|
存储 SQL 关系型数据库
一篇文章搞懂MySQL的分库分表,从拆分场景、目标评估、拆分方案、不停机迁移、一致性补偿等方面详细阐述MySQL数据库的分库分表方案
MySQL如何进行分库分表、数据迁移?从相关概念、使用场景、拆分方式、分表字段选择、数据一致性校验等角度阐述MySQL数据库的分库分表方案。
一篇文章搞懂MySQL的分库分表,从拆分场景、目标评估、拆分方案、不停机迁移、一致性补偿等方面详细阐述MySQL数据库的分库分表方案
|
4天前
|
SQL 监控 关系型数据库
MySQL数据库中如何检查一条SQL语句是否被回滚
检查MySQL中的SQL语句是否被回滚需要综合使用日志分析、事务状态监控和事务控制语句。理解和应用这些工具和命令,可以有效地管理和验证数据库事务的执行情况,确保数据的一致性和系统的稳定性。此外,熟悉事务的ACID属性和正确设置事务隔离级别对于预防数据问题和解决事务冲突同样重要。
15 2