oracle工具之nid命令的使用
当我们手动copy了整个数据库,并通过重建控制文件给数据库指定了新的dbname,但是却不能给数据库分配新的dbid.对于以上问题我们可以通过nid命令来对数据库分配一
当我们手动copy了整个数据库,并通过重建控制文件给数据库指定了新的dbname,但是却不能给数据库分配新的dbid.对于以上问题我们可以通过nid命令来对数据库分配一个全新的dbid。同时需要注意rman也是通过dbid来区分数据库。
一 命令解释
[oracle@source ~]$ nid help=yes
DBNEWID: Release 11.2.0.2.0 - Production on Thu Dec 5 00:09:50 2013
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
Keyword Description (Default)
----------------------------------------------------
TARGET Username/Password (NONE) 指定连接数据库的用户名和密码
DBNAME New database name (NONE) DBNAME=new_db_name 改变数据库的名字
LOGFILE Output Log (NONE) LOGFILE=logfile指定输出消息到指定的日志文件,默认nid覆盖之前的日子文件
REVERT Revert failed change NO 指定yes表明更改dbid失败时能够恢复之前的状态
SETNAME Set a new database name only NO 指定yes表明仅仅更改数据库db_name
APPEND Append to output log NO 指定yes标识输出追加到已经存在的日志文件
HELP Displays these messages NO 指定yes显示帮助信息
注意:可以同时更改数据库的dbid和db_name,也可以仅改变数据库的db_name、抑或仅更改数据库的dbid。语法分别如下:
改变dbid和db_name : nid target=sys/dhhzdhhz dbname=crm_test (也可以target=/)
仅改变db_name: nid target=sys/dhhzdhhz dbname=crm_test setname=yes (也可以target=/)
仅更改dbid: nid target=sys/dhhzdhhz (也可以target=/)
二 使用nid的注意事项
1 确保有能够对数据库进行完全恢复的备份。
2 确保执行更改dbid操作时数据库处于mounted状态且mounted之前数据库是经过shutdown immediate关闭的。
3 使用nid更改数据库的dbid后,数据库需要alter database open resetlogs启动,启动之后须对数据库进行一次全备份,因为之前的备份和归档已经不能再使用了。
4 使用nid更改数据库dbname后,需更改初始化参数文件中的DB_NAME参数并重建密码文件。
5 使用nid不能更改全局数据库名。
6 确保所有数据文件处于online状态且不需要恢复。
7 尽量确保oracle没有离线的数据文件和只读表空间,如果有使其正常化。
三 举两个例子
eg1:仅更改数据库dbid
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.
Total System Global Area 1252663296 bytes
Fixed Size 2226072 bytes
Variable Size 922749032 bytes
Database Buffers 318767104 bytes
Redo Buffers 8921088 bytes
Database mounted.
SQL> exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
[oracle@source ~]$ nid target=sys
DBNEWID:版本 11.2.0.2.0 - 于 2013 年 12 月 4 日星期三 23:39:11 发布
版权所有 (c ) 1982 年、2009 年,Oracle 和/或其附属公司。 保留所有权利。
密码:
已连接到数据库 CRM (DBID=3599153036)
已连接到服务器版本 11.2.0
控制文件数据库:
/oracle/CRM/control03.ctl
更改数据库 CRM 的数据库 ID? (Y/[N]) => y
继续操作
将数据库 ID 从 3599153036 更改为 3641774948
控制文件 /oracle/CRM/control03.ctl - 已修改
数据文件 /oracle/CRM/system01.db - dbid 已更改
数据文件 /oracle/CRM/sysaux01.db - dbid 已更改
数据文件 /oracle/CRM/zx.db - dbid 已更改
数据文件 /oracle/CRM/users01.db - dbid 已更改
数据文件 /oracle/CRM/pos.db - dbid 已更改
数据文件 /oracle/CRM/erp.db - dbid 已更改
数据文件 /oracle/CRM/user01.db - dbid 已更改
数据文件 / oracle/CRM/undotbs03.db - dbid 已更改
数据文件 /oracle/CRM/crm.db - dbid 已更改
数据文件 /oracle/ CRM/jxc.db - dbid 已更改
数据文件 /oracle/CRM/temp01.db - dbid 已更改
控制文件 /oracle/CRM /control03.ctl - dbid 已更改
实例关闭
数据库 CRM 的数据库 ID 更改为3641774948.
此数据库之前的所有备份和存档重做日志均不可用。
数据库已关闭,使用 RESETLOGS 选项打开数据库。
成功更改数据库 ID。
DBNEWID - 成功完成。
[oracle@source ~]$ sqlplus / as sysdba
SQL*Plus:版本 11.2。 0.2.0 于 2013 年 12 月 4 日星期三 23:47:21 投入使用
版权所有 (c) 1982, 2010, Oracle。 保留所有权利。
已连接到空闲实例。
SQL>启动挂载;
ORACLE 实例已启动。
总系统全局区域 1252663296 字节
固定大小 2226072 字节
可变大小 922749032 字节
数据库缓冲区 318767104 字节
重做缓冲区 8921088 字节
已安装数据库。
SQL>更改数据库打开重置日志;
数据库已更改。
SQL> select dbid,name from v$database;
DBID NAME
----- ---- ---------
3641774948 CRM
eg2 :仅更改数据库db_name
oracle@source ~]$ sqlplus / as sysdba
SQL*Plus:于 2013 年 12 月 5 日星期四 00:11:03 发布 11.2.0.2.0 生产
版权所有 (c) 1982、2010,Oracle。 保留所有权利。
连接到:
Oracle Database 11g 企业版版本 11.2.0.2.0 - 64 位生产
具有分区、OLAP、数据挖掘和实际应用程序测试选项
SQL>从 v$database 选择 open_mode;
OPEN_MODE
--------- -----------
读写
SQL> shutdown 立即;
数据库已关闭。
数据库已卸载。
ORACLE 实例关闭。
SQL>启动挂载;
ORACLE 实例已启动。
总系统全局区域 1252663296 字节
固定大小 2226072 字节
可变大小 905971816 字节
数据库缓冲区 335544320 字节
重做缓冲区 8921088 字节
数据库已安装。
SQL>退出
与 Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64 位生产版断开
使用分区、OLAP、数据挖掘和真实应用程序测试选项
oracle@source ~]$ nid target=sys dbname=CRM_TEST setname=YES
DBNEWID:版本 11.2.0.2.0 - 于 2013 年 12 月 5 日星期四 00:24:58 发布
版权所有 (c) 1982, 2009 年,Oracle 和/或其附属公司。 保留所有权利。
密码:
已连接到数据库 CRM (DBID=3641774948)
已连接到服务器版本 11.2.0
控制文件数据库:
/oracle/CRM/control03.ctl
将数据库 CRM 的数据库名称更改为CRM_测试? (Y/[N]) => y
继续操作
将数据库名称从 CRM 更改为 CRM_TEST
控制文件 /oracle/CRM/control03.ctl - 修改
数据文件 /oracle/CRM/system01.db - 写入新名称
数据文件 /oracle/CRM/sysaux01.db - 写入新名称
数据文件 /oracle/CRM/zx.db - 写入新名称
数据文件 /oracle/CRM/users01.db - 写入新名称
数据文件 /oracle/CRM/pos.db - 写入新名称
数据文件 /oracle/CRM/erp.db - 写入新名称
数据文件 /oracle/CRM/user01.db - 写入新名称
数据文件 /oracle/CRM/undotbs03.db - 写入新名称
数据文件 /oracle/CRM/crm.db - 写入新名称
数据文件 /oracle/CRM/jxc.db - 写入新名称
数据文件 /oracle/CRM/temp01.db - 写入新名称
控制文件 /oracle/CRM/control03.ctl - 写入新名称
实例关闭
数据库名称更改为 CRM_TEST。
重启前修改参数文件并生成新的密码文件。
数据库更改成功名称。
DBNEWID - 成功完成。
[oracle@source ~]$ sqlplus / as sysdba
SQL*Plus:于 2013 年 12 月 5 日星期四 00:25:33 发布 11.2.0.2.0 生产
版权所有 (c) 1982、2010,Oracle。 保留所有权利。
已连接到空闲实例。
SQL>启动 nomount;
ORACLE 实例已启动。
总系统全局区域 1252663296 字节
固定大小 2226072 字节
可变大小 905971816 字节
数据库缓冲区 335544320 字节
重做缓冲区 8921088 字节
SQL>; alter system set db_name=CRM_TEST range=spfile;
系统已更改。
[oracle@source ~]$orapwd file="$ORACLE_HOME/dbs/orapw$ORACLE_SID" 密码=dhhzdhhz Force=y
[oracle@source dbs]$ sqlplus / as sysdba
SQL*Plus:于 2000 年 12 月 5 日星期四发布 11.2.0.2.0 生产版:34:40 2013
版权所有 (c) 1982、2010,Oracle。 保留所有权利。
连接到:
Oracle Database 11g 企业版版本 11.2.0.2.0 - 64 位生产
具有分区、OLAP、数据挖掘和实际应用程序测试选项
SQL>启动强制打开;
ORACLE 实例已启动。
总系统全局区域 1252663296 字节
固定大小 2226072 字节
可变大小 905971816 字节
数据库缓冲区 335544320 字节
重做缓冲区 8921088 字节
数据库已安装。
数据库已打开。
SQL> select dbid,name from v$database;
DBID NAME
----- ---- ---------
3641774948 CRM_TEST
本文出自 “myblog” 博客,请务必保留此出处
,
热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

Oracle 打不开的解决办法包括:1. 启动数据库服务;2. 启动监听器;3. 检查端口冲突;4. 正确设置环境变量;5. 确保防火墙或防病毒软件未阻止连接;6. 检查服务器是否已关闭;7. 使用 RMAN 恢复损坏的文件;8. 检查 TNS 服务名称是否正确;9. 检查网络连接;10. 重新安装 Oracle 软件。

解决 Oracle 游标关闭问题的方法包括:使用 CLOSE 语句显式关闭游标。在 FOR UPDATE 子句中声明游标,使其在作用域结束后自动关闭。在 USING 子句中声明游标,使其在关联的 PL/SQL 变量关闭时自动关闭。使用异常处理确保在任何异常情况下关闭游标。使用连接池自动关闭游标。禁用自动提交,延迟游标关闭。

Oracle 中,FOR LOOP 循环可动态创建游标, 步骤为:1. 定义游标类型;2. 创建循环;3. 动态创建游标;4. 执行游标;5. 关闭游标。示例:可循环创建游标,显示前 10 名员工姓名和工资。

Oracle 日志文件写满时,可采用以下解决方案:1)清理旧日志文件;2)增加日志文件大小;3)增加日志文件组;4)设置自动日志管理;5)重新初始化数据库。在实施任何解决方案前,建议备份数据库以防数据丢失。

在CentOS系统上搭建Hadoop分布式文件系统(HDFS)需要多个步骤,本文提供一个简要的配置指南。一、前期准备安装JDK:在所有节点上安装JavaDevelopmentKit(JDK),版本需与Hadoop兼容。可从Oracle官网下载安装包。环境变量配置:编辑/etc/profile文件,设置Java和Hadoop的环境变量,使系统能够找到JDK和Hadoop的安装路径。二、安全配置:SSH免密登录生成SSH密钥:在每个节点上使用ssh-keygen命令

Oracle不仅是数据库公司,还是云计算和ERP系统的领导者。1.Oracle提供从数据库到云服务和ERP系统的全面解决方案。2.OracleCloud挑战AWS和Azure,提供IaaS、PaaS和SaaS服务。3.Oracle的ERP系统如E-BusinessSuite和FusionApplications帮助企业优化运营。

要停止 Oracle 数据库,请执行以下步骤:1. 连接到数据库;2. 优雅关机数据库(shutdown immediate);3. 完全关机数据库(shutdown abort)。

可以通过 EXP 实用程序导出 Oracle 视图:登录 Oracle 数据库。启动 EXP 实用程序,指定视图名称和导出目录。输入导出参数,包括目标模式、文件格式和表空间。开始导出。使用 impdp 实用程序验证导出。
