[20200407]nid修改DBID还原.txt --//别人问的问题,改错dbid是否可以修改回来。 $ nid DBNEWID: Release 11.2.0.4.0 - Production on Tue Apr 7 11:36:23 2020 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. Keyword Description (Default) ---------------------------------------------------- TARGET Username/Password (NONE) DBNAME New database name (NONE) LOGFILE Output Log (NONE) REVERT Revert failed change NO ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ SETNAME Set a new database name only NO APPEND Append to output log NO HELP Displays these messages NO --//nid有一个REVERT参数可以反转,看看是否有效。 1.环境: SCOTT@book> @ ver1 PORT_STRING VERSION BANNER ------------------------------ -------------- -------------------------------------------------------------------------------- x86_64/Linux 2.4.xx 11.2.0.4.0 Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production SCOTT@book> select name,open_mode,dbid,db_unique_name from v$database; NAME OPEN_MODE DBID DB_UNIQUE_NAME ---- ---------- ---------- --------------- BOOK READ WRITE 1337401710 book --//dbid= 1337401710 2.使用nid修改dbid --//关闭数据库启动到mount状态。 SYS@book> shutdown immediate Database closed. Database dismounted. ORACLE instance shut down. SYS@book> startup mount ORACLE instance started. Total System Global Area 643084288 bytes Fixed Size 2255872 bytes Variable Size 205521920 bytes Database Buffers 427819008 bytes Redo Buffers 7487488 bytes Database mounted. $ nid TARGET=/ DBNEWID: Release 11.2.0.4.0 - Production on Tue Apr 7 11:43:18 2020 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. Connected to database BOOK (DBID=1337401710) Connected to server version 11.2.0 Control Files in database: /mnt/ramdisk/book/control01.ctl /mnt/ramdisk/book/control02.ctl Change database ID of database BOOK? (Y/[N]) => y Proceeding with operation Changing database ID from 1337401710 to 1477856022 Control File /mnt/ramdisk/book/control01.ctl - modified Control File /mnt/ramdisk/book/control02.ctl - modified Datafile /mnt/ramdisk/book/system01.db - dbid changed Datafile /mnt/ramdisk/book/sysaux01.db - dbid changed Datafile /mnt/ramdisk/book/undotbs01.db - dbid changed Datafile /mnt/ramdisk/book/users01.db - dbid changed Datafile /mnt/ramdisk/book/example01.db - dbid changed Datafile /mnt/ramdisk/book/tea01.db - dbid changed Datafile /mnt/ramdisk/book/temp01.db - dbid changed Control File /mnt/ramdisk/book/control01.ctl - dbid changed Control File /mnt/ramdisk/book/control02.ctl - dbid changed Instance shut down Database ID for database BOOK changed to 1477856022. 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 ID. DBNEWID - Completed succesfully. 3.检查验证: SYS@book> startup mount ORACLE instance started. Total System Global Area 643084288 bytes Fixed Size 2255872 bytes Variable Size 205521920 bytes Database Buffers 427819008 bytes Redo Buffers 7487488 bytes Database mounted. SYS@book> select name,open_mode,dbid,db_unique_name from v$database; NAME OPEN_MODE DBID DB_UNIQUE_NAME ---- --------- ---------- -------------- BOOK MOUNTED 1477856022 book --//dbid = 1477856022 $ nid TARGET=/ REVERT=YES DBNEWID: Release 11.2.0.4.0 - Production on Tue Apr 7 11:45:44 2020 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. Connected to database BOOK (DBID=1477856022) NID-00128: Cannot revert change of database, change not in progress Reversion of database changes failed during validation - database is intact. DBNEWID - Completed with validation errors. --//已经无法该会。我估计如果的当时保存控制文件还在,也许可以改会。 4.只能使用bbed修改。 BBED> p /d dba 1,1 kcvfh.kcvfhhdr.kccfhdbi ub4 kccfhdbi @28 1477856022 $ seq 6 | xargs -IQ echo "p /d dba Q,1 kcvfh.kcvfhhdr.kccfhdbi" | rlbbed | grep kccfhdbi BBED> ub4 kccfhdbi @28 1477856022 BBED> ub4 kccfhdbi @28 1477856022 BBED> ub4 kccfhdbi @28 1477856022 BBED> ub4 kccfhdbi @28 1477856022 BBED> ub4 kccfhdbi @28 1477856022 BBED> ub4 kccfhdbi @28 1477856022 --//OK正确。 $ seq 6 | xargs -IQ echo " assign dba Q,1 kcvfh.kcvfhhdr.kccfhdbi = 1337401710 " assign dba 1,1 kcvfh.kcvfhhdr.kccfhdbi = 1337401710 assign dba 2,1 kcvfh.kcvfhhdr.kccfhdbi = 1337401710 assign dba 3,1 kcvfh.kcvfhhdr.kccfhdbi = 1337401710 assign dba 4,1 kcvfh.kcvfhhdr.kccfhdbi = 1337401710 assign dba 5,1 kcvfh.kcvfhhdr.kccfhdbi = 1337401710 assign dba 6,1 kcvfh.kcvfhhdr.kccfhdbi = 1337401710 --//执行以上脚本。注意如果通过pipe,必须在第1,2行之间插入1行,内容为Y。 $ seq 6 | xargs -IQ echo " sum apply dba Q,1 " sum apply dba 1,1 sum apply dba 2,1 sum apply dba 3,1 sum apply dba 4,1 sum apply dba 5,1 sum apply dba 6,1 --//执行以上脚本。 5.验证看看: --//重建控制文件: SYS@book> alter database backup controlfile to trace ; Database altered. --//抽取执行脚本: STARTUP NOMOUNT CREATE CONTROLFILE REUSE DATABASE "BOOK" NORESETLOGS FORCE LOGGING ARCHIVELOG MAXLOGFILES 16 MAXLOGMEMBERS 3 MAXDATAFILES 100 MAXINSTANCES 8 MAXLOGHISTORY 292 LOGFILE GROUP 1 '/mnt/ramdisk/book/redo01.log' SIZE 50M BLOCKSIZE 512, GROUP 2 '/mnt/ramdisk/book/redo02.log' SIZE 50M BLOCKSIZE 512, GROUP 3 '/mnt/ramdisk/book/redo03.log' SIZE 50M BLOCKSIZE 512 -- STANDBY LOGFILE -- GROUP 4 '/mnt/ramdisk/book/redostb01.log' SIZE 50M BLOCKSIZE 512, -- GROUP 5 '/mnt/ramdisk/book/redostb02.log' SIZE 50M BLOCKSIZE 512, -- GROUP 6 '/mnt/ramdisk/book/redostb03.log' SIZE 50M BLOCKSIZE 512, -- GROUP 7 '/mnt/ramdisk/book/redostb04.log' SIZE 50M BLOCKSIZE 512 DATAFILE '/mnt/ramdisk/book/system01.dbf', '/mnt/ramdisk/book/sysaux01.dbf', '/mnt/ramdisk/book/undotbs01.dbf', '/mnt/ramdisk/book/users01.dbf', '/mnt/ramdisk/book/example01.dbf', '/mnt/ramdisk/book/tea01.dbf' CHARACTER SET ZHS16GBK ; -- Configure RMAN configuration record 1 VARIABLE RECNO NUMBER; EXECUTE :RECNO := SYS.DBMS_BACKUP_RESTORE.SETCONFIG('CONTROLFILE AUTOBACKUP','ON'); -- Configure RMAN configuration record 2 VARIABLE RECNO NUMBER; EXECUTE :RECNO := SYS.DBMS_BACKUP_RESTORE.SETCONFIG('DEVICE TYPE','DISK PARALLELISM 3 BACKUP TYPE TO BACKUPSET'); -- Configure RMAN configuration record 3 VARIABLE RECNO NUMBER; EXECUTE :RECNO := SYS.DBMS_BACKUP_RESTORE.SETCONFIG('DEFAULT DEVICE TYPE TO','DISK'); --//执行以上内容。 -- Commands to re-create incarnation table -- Below log names MUST be changed to existing filenames on -- disk. Any one log file from each branch can be used to -- re-create incarnation records. -- ALTER DATABASE REGISTER LOGFILE '/u01/app/oracle/archivelog/book/1_1_896605872.dbf'; -- Recovery is required if any of the datafiles are restored backups, -- or if the last shutdown was not normal or immediate. RECOVER DATABASE -- All logs need archiving and a log switch is needed. ALTER SYSTEM ARCHIVE LOG ALL; -- Database can now be opened normally. ALTER DATABASE OPEN; -- Commands to add tempfiles to temporary tablespaces. -- Online tempfiles have complete space information. -- Other tempfiles may require adjustment. ALTER TABLESPACE TEMP ADD TEMPFILE '/mnt/ramdisk/book/temp01.dbf' REUSE; -- End of tempfile additions. -- -- -- ---------------------------------------------------------- SYS@book> select name,open_mode,dbid,db_unique_name from v$database; NAME OPEN_MODE DBID DB_UNIQUE_NAME ---- --------- ---------- -------------- BOOK MOUNTED 1337401710 SYS@book> alter database open ; Database altered. SYS@book> ALTER TABLESPACE TEMP ADD TEMPFILE '/mnt/ramdisk/book/temp01.dbf' REUSE; Tablespace altered. SYS@book> archive log list Database log mode Archive Mode Automatic archival Enabled Archive destination /u01/app/oracle/archivelog/book/ Oldest online log sequence 927 Next log sequence to archive 929 Current log sequence 929 SYS@book> select name,open_mode,dbid,db_unique_name from v$database; NAME OPEN_MODE DBID DB_UNIQUE_NAME ---- ---------- ---------- --------------- BOOK READ WRITE 1337401710 --//有点奇怪的是这样恢复的DB_UNIQUE_NAME是空。 SYS@book> show parameter DB_UNIQUE_NAME NAME TYPE VALUE -------------- ------ ------ db_unique_name string book --//估计建立的控制文件一些信息没有填充,我记忆里面第1次启动要改写控制文件内容写入DB_UNIQUE_NAME,也许重启数据库就ok了。 SYS@book> shutdown immediate Database closed. Database dismounted. ORACLE instance shut down. SYS@book> startup mount ORACLE instance started. Total System Global Area 643084288 bytes Fixed Size 2255872 bytes Variable Size 205521920 bytes Database Buffers 427819008 bytes Redo Buffers 7487488 bytes Database mounted. SYS@book> select name,open_mode,dbid,db_unique_name from v$database; NAME OPEN_MODE DBID DB_UNIQUE_NAME ---- --------- ---------- -------------- BOOK MOUNTED 1337401710 book --//OK.实际上这个问题就在于一台服务器运行多个实例,登录会话之间切来切去,很容易搞乱。 --//在执行前小心验证就不会出现这个情况了。建立standby redo。 -- The following script can be used on the standby database -- to re-populate entries for a standby controlfile created -- on the primary and copied to the standby site. ---------------------------------------------------------- ALTER DATABASE ADD STANDBY LOGFILE '/mnt/ramdisk/book/redostb01.log' SIZE 50M BLOCKSIZE 512 REUSE; ALTER DATABASE ADD STANDBY LOGFILE '/mnt/ramdisk/book/redostb02.log' SIZE 50M BLOCKSIZE 512 REUSE; ALTER DATABASE ADD STANDBY LOGFILE '/mnt/ramdisk/book/redostb03.log' SIZE 50M BLOCKSIZE 512 REUSE; ALTER DATABASE ADD STANDBY LOGFILE '/mnt/ramdisk/book/redostb04.log' SIZE 50M BLOCKSIZE 512 REUSE;
[20200407]nid修改DBID还原.txt
来源:这里教程网
时间:2026-03-03 15:26:39
作者:
编辑推荐:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- Oracle 19C OGG基础运维-02数据初始化
Oracle 19C OGG基础运维-02数据初始化
26-03-03 - 力软(learun)框架:十年磨一剑,一朝试锋芒
力软(learun)框架:十年磨一剑,一朝试锋芒
26-03-03 - Oracle数据库性能优化的艺术 (文平) 高清PDF扫描版[41M]下载
- Oracle 19C OGG基础运维-03DML操作同步
Oracle 19C OGG基础运维-03DML操作同步
26-03-03 - RAC中GPNP 文件相关及修改
RAC中GPNP 文件相关及修改
26-03-03 - Oracle 19C OGG基础运维-04DML同步常见问题
Oracle 19C OGG基础运维-04DML同步常见问题
26-03-03 - Oracle RAC 11g实战指南(刘宪军) PDF扫描版[20MB]高清下载
- Oracle 12C 官方文档地图
Oracle 12C 官方文档地图
26-03-03 - Oracle Data Guard 11g完全参考手册 PDF扫描版高清下载
- 【性能】Oracle表并行对逻辑迁移后查询性能的影响
【性能】Oracle表并行对逻辑迁移后查询性能的影响
26-03-03
