如何修改ORACLE数据库名

在实际生产环境下我们可能需要快速的复制现有的数据库,又希望新库与原库不重名,或者我们需要复制生产库用来做研发测试,如果我们采用DBCA的方式,缺点是慢并且还没有数据,就需要从新导数据,费时又麻烦。下面我就详细介绍如何修改数据库名来完成使命,采用2种方法(1.重建控制文件修改数据库名2.使用nid工具修改数据库名)

一、重建控制文件修改数据库名

步骤概述

生成controlfile创建脚本并写入trace文件

执行查找trace文件语句,获取当前trace文件路径

停掉数据库

只复制数据文件、redo日志(不需要复制控制文件哦!)

生成新的initLEO2.orac纯文本参数文件

编辑新生成的initLEO2.ora纯文本参数文件

利用initLEO2.ora纯文本参数文件创建spfileLEO2.ora二进制参数文件、

数据库启动到nomount状态,加载参数文件

删除原库控制文件(如果拷贝的时候包括了控制文件的话)

修改/u01/app/oracle/admin/LEO/udump/leo_ora_25621.trc文件的内容

目标:我们用原库LEO复制出新库LEO2

1.生成controlfile创建脚本并写入trace文件

SYS@LEO> alter database backup controlfile to trace;

2.执行查找trace文件语句,获取当前trace文件路径

SYS@LEO> select c.value || '/' || d.instance_name || '_ora_' || to_char(a.spid,'fm99999') || '.trc' from v$process a, v$session b, v$parameter c, v$instance d where a.addr = b.paddr and b.audsid = userenv('sessionid') and c.name = 'user_dump_dest';

Trace文件路径

C.VALUE||'/'||D.INSTANCE_NAME||'_ORA_'||TO_CHAR(A.SPID,'FM99999')||'.TRC'

--------------------------------------------------------------------------------

/u01/app/oracle/admin/LEO/udump/LEO_ora_25621.trc

3.停掉数据库

SYS@LEO> shutdown immediate

Database closed.

Database dismounted.

ORACLE instance shut down.

4.只复制数据文件、redo日志(不需要复制控制文件哦!)

从原来的/u01/app/oracle/oradata/LEO/disk1复制到

/u01/app/oracle/oradata/LEO2/disk1

5.生成新的initLEO2.orac纯文本参数文件

export ORACLE_SID=LEO

sqlplus / as sysdba         进入原库执行命令

SYS@LEO> create pfile='/u01/app/oracle/product/10.2.0/db_1/dbs/initLEO2.ora' from spfile;

6.编辑新生成的initLEO2.ora纯文本参数文件

vim initLEO2.ora

需要修改的内容:

(1)路径

*.audit_file_dest='/u01/app/oracle/admin/LEO2/adump'

*.background_dump_dest='/u01/app/oracle/admin/LEO2/bdump'

*.control_files='/u01/app/oracle/oradata/LEO2/disk1/control01.ctl','/u01/app/oracle/oradata/LEO2/disk2/control02.ctl','/u01/app/oracle/oradata/LEO2/disk3/control03.ctl'

*.core_dump_dest='/u01/app/oracle/admin/LEO2/cdump'

*.user_dump_dest='/u01/app/oracle/admin/LEO2/udump'

(2)数据库名

*.db_name='LEO2'

7.利用initLEO2.ora纯文本参数文件创建spfileLEO2.ora二进制参数文件

export ORACLE_SID=LEO2

sqlplus / as sysdba

SYS@LEO2> create spfile from pfile;       创建spfile

8.数据库启动到nomount状态,加载参数文件

SYS@LEO2> startup nomount

ORACLE instance started.

Total System Global Area 314572800 bytes

Fixed Size                       1219184 bytes

Variable Size                  96470416 bytes

Database Buffers         213909504 bytes

Redo Buffers                2973696 bytes

SYS@LEO2> show parameter name

NAME                                     TYPE       VALUE

时间: 2024-08-03 06:06:50

如何修改ORACLE数据库名的相关文章

修改oracle数据库的名字

最近闲来无事,决定修改一下数据库的名字,记得曾经学过通过重建控制文件来修改数据库的名字,网上找了下也可以通过oracle自带的nid修改数据库的名字,不过这个方法有些麻烦,并且修改的数据库名字不能带"_".   1,通过重建控制文件修改数据库名字. 为了方便查找trace文件我们在进行备份控制文件的时候我们可以标记下trace文件: alter session set  tracefile_identifier='control_bak' 下面我们备份我们的控制文件: alter da

修改oracle数据库用户名及密码的方法_oracle

改oracle数据库用户名称和密码(Linux为例),有需要的朋友可以参考下. 一.修改前准备工作: 使用ssh工具以root身份连接服务器, 然后切换到oracle用户:su - oracle(回车) 使用sqlplus连接数据库:sqlplus /nolog(回车) 以管理员身份登录sys用户:conn sys/sys as sysdba(回车) 数据库连接成功,至此准备工作完成. 二.修改用户名称. 数据库连接成功后,在SQL>提示后面继续输入: 首先查到到所需修改用户名称的用户需要:se

修改mssqlserver数据库名的方法

这里以 SQLServer 20000 为例,旧数据库名字为 Admin10000, 新数据库名字为 111cn.net. 第一步.备份数据库 打开企业管理器 -- 右键一个数据库 -- 所有任务 -- 备份数据库 -- 目的--备份到中选择添加 -- 输入一个备份的文件名(注意,如果原来有文件名,要删除它) -- 确定 第二步.还原数据库,并指定一个新库名,并且修改物理文件名. 企业管理器--右键 "数据库 "--所有任务--还原数据库 -- "还原为数据库库"

如何修改Oracle数据库为非归档模式

操作步骤如下: 步骤 1 以oracle用户登录服务器,执行以下命令进入SQLPLUS. oracle@smgwrpt:~> sqlplus "/as sysdba" 步骤 2 查看数据库当前归档模式. SQL> archive log list Database log mode              Archive Mode Automatic archival             Enabled Archive destination            U

如何修改Oracle数据库的DBID

有的时候相同的DBID是有问题的,如:在同一台机器上做逻辑DG. 修改的方式如下: 关闭数据库 SHUTDOWN IMMEDIATE 启动数据库到mount的状态 STARTUP MOUNT 使用nid 命令进行更改,如下: [oracle@dg2 ~]$ nid target=sys/password@LHZ DBNEWID: Release 10.2.0.1.0 - Production on Mon Jan 16 09:18:00 2012 Copyright (c) 1982, 2005

修改Oracle数据库的连接数

测试了这个,不错. 摘(一) 1. 查看processes和sessions参数 SQL> show parameter processes NAME TYPE VALUE db_writer_processes integer 1 gcs_server_processes integer 0 job_queue_processes integer 10 log_archive_max_processes integer 2 processes integer 50 SQL> show par

mysql安全修改mysql数据库名几种方法

如果是MyISAM的话.只要修改DATA目录下面的那个库名的文件夹的名字就OK了 如果是INNODB的话.其实是无法修改库名的.网上瞎咧咧的什么RENAME DATABASE或者ALTER DATABASE都是不行的 一种方法是比较保守的.直接把老库的内容mysqldump到新库里面 还有一种类似上面方法.先alter table 的存储引擎到MyISAM,然后改了库目录的名字,然后再改回来INNODB. 最后一种方法还是比较好的.这边详细写一下. 假设源库名是'srcdb',目标库名是'trg

安全快速修改Mysql数据库名的5种方法_Mysql

1. RENAME DATABASE db_name TO new_db_name这个..这个语法在mysql 5.1.7中被添加进来,到了5.1.23又去掉了.据说有可能丢失数据.还是不要用的好.详见: http://dev.mysql.com/doc/refman/5.1/en/rename-database.html 2.如果所有表都是MyISAM类型的话,可以改文件夹的名字关闭mysqld把data目录中的db_name目录重命名为new_db_name开启mysqld 3.重命名所有的

总结的四种修改oracle表名的方式,值得参考

方法一: ALTER TABLE old_table_name RENAME TO new_table_name;(大写为系统命令) 方法二: SQL> select tname from tab ; TNAME ------------------------------ TEST SQL> rename test to temp ; Table renamed. SQL> select tname from tab ; TNAME --------------------------