文件管理 · 2022年8月15日

oracle修改数据文件名字|oracle数据库实例名如何修改

1. oracle数据库实例名如何修改

1. 准备

原数据库的实例名为linuxdb,控制文件、数据文件、联机日志文件存放在/home/oracle/ora9/oradata/linuxdb目录,将所有的文件拷贝到另外一个目录/home/oracle/ora9/oradata/dbtest。再将linuxdb 的初始化文件也复制一份出来,执行如下的sql:Create pfile='/home/oracle/ora9/oracle/dbs/pfiledbtest.ora' from spfile='/home/oracle/ora9/oracle/dbs/spfilelinuxdb.ora';我们将修改实例名为dbtest。下面我们开始一步一步地进行处理。

2. 加载初始化文件

打开pfiledbtest.ora文件,修改对应的mp属性的路径名,实例名字,控制文件路径等。

然后执行如下命令:

[[email protected] oracle]$ export ORACLE_SID=dbtest

[[email protected] oracle]$ sqlplus "/ as sysdba"

SQL*Plus: Release 9.2.0.4.0 – Proction on Mon Aug 17 16:57:36 2009

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

Connected to an idle instance.

SQL> startup pfile='/home/oracle/ora9/oracle/dbs/pfiledbtest.ora' nomount

ORACLE instance started.

Total System Global Area 236000356 bytes

Fixed Size 451684 bytes

Variable Size 201326592 bytes

Database Buffers 33554432 bytes

Redo Buffers 667648 bytes

SQL>

这样加载初始化文件就成功了。

下面接着进行,加载控制文件。

3. 加载控制文件

先执行如下命令。

SQL> alter database mount;

alter database mount

*

ERROR at line 1:

ORA-00205: error in identifying controlfile, check alert log for more info

好像是控制文件的路径不对,修改初始文件再次加载。

SQL> alter database mount;

alter database mount

*

ERROR at line 1:

ORA-01103: database name 'LINUXDB' in controlfile is not 'DBTEST'

根据错误信息提示,是实例名字不一致,但是控制文件是二进制的,用vi打开之后没法编辑,只能通过用重建控制文件可以解决。

在/home/oracle/ora9/oradata/dbtest目录下删除老的三个控制文件。然后开始重建控制文件。

SQL> CREATE CONTROLFILE SET DATABASE "DBTEST" RESETLOGS FORCE LOGGING NOARCHIVELOG

2 MAXLOGFILES 16

3 MAXLOGMEMBERS 3

4 MAXDATAFILES 100

5 MAXINSTANCES 8

6 MAXLOGHISTORY 292

7 LOGFILE

8 GROUP 1 '/home/oracle/ora9/oradata/dbtest/redo01.log' SIZE 50M,

9 GROUP 2 '/home/oracle/ora9/oradata/dbtest/redo02.log' SIZE 50M,

10 GROUP 3 '/home/oracle/ora9/oradata/dbtest/redo03.log' SIZE 50M

11 DATAFILE

12 '/home/oracle/ora9/oradata/dbtest/cwmlite01.dbf',

13 '/home/oracle/ora9/oradata/dbtest/devbase_20090408.dbf',

14 '/home/oracle/ora9/oradata/dbtest/drsys01.dbf',

15 '/home/oracle/ora9/oradata/dbtest/example01.dbf',

16 '/home/oracle/ora9/oradata/dbtest/indx01.dbf',

17 '/home/oracle/ora9/oradata/dbtest/odm01.dbf',

18 '/home/oracle/ora9/oradata/dbtest/system01.dbf',

19 '/home/oracle/ora9/oradata/dbtest/tools01.dbf',

20 '/home/oracle/ora9/oradata/dbtest/undotbs01.dbf',

21 '/home/oracle/ora9/oradata/dbtest/users01.dbf',

22 '/home/oracle/ora9/oradata/dbtest/xdb01.dbf'

23 CHARACTER SET ZHS16GBK;

CREATE CONTROLFILE SET DATABASE "DBTEST" RESETLOGS FORCE LOGGING NOARCHIVELOG

*

ERROR at line 1:

ORA-01503: CREATE CONTROLFILE failed

ORA-01990: error opening password file '/home/oracle/ora9/oracle/dbs/orapw'

ORA-27037: unable to obtain file status

Linux Error: 2: No such file or directory

Additional information: 3

根据错误提示,是缺少密码验证文件,用下面的命令创建密码文件。

$cd $ORACLE_HOME/dbs

orapwd password=chenli file=orapwdbtest

SQL> CREATE CONTROLFILE SET DATABASE 'dbtest' RESETLOGS FORCE LOGGING NOARCHIVELOG

2 MAXLOGFILES 16

3 MAXLOGMEMBERS 3

4 MAXDATAFILES 100

5 MAXINSTANCES 8

6 MAXLOGHISTORY 292

7 LOGFILE

8 GROUP 1 '/home/oracle/ora9/oradata/dbtest/redo01.log' SIZE 50M,

9 GROUP 2 '/home/oracle/ora9/oradata/dbtest/redo02.log' SIZE 50M,

10 GROUP 3 '/home/oracle/ora9/oradata/dbtest/redo03.log' SIZE 50M

11 DATAFILE

12 '/home/oracle/ora9/oradata/dbtest/cwmlite01.dbf',

13 '/home/oracle/ora9/oradata/dbtest/devbase_20090408.dbf',

14 '/home/oracle/ora9/oradata/dbtest/drsys01.dbf',

15 '/home/oracle/ora9/oradata/dbtest/example01.dbf',

16 '/home/oracle/ora9/oradata/dbtest/indx01.dbf',

17 '/home/oracle/ora9/oradata/dbtest/odm01.dbf',

18 '/home/oracle/ora9/oradata/dbtest/system01.dbf',

19 '/home/oracle/ora9/oradata/dbtest/tools01.dbf',

20 '/home/oracle/ora9/oradata/dbtest/undotbs01.dbf',

21 '/home/oracle/ora9/oradata/dbtest/users01.dbf',

22 '/home/oracle/ora9/oradata/dbtest/xdb01.dbf'

23 CHARACTER SET ZHS16GBK;

Control file created.

现在创建成功了。

创建控制文件成功了,下面重新启动数据库。

SQL> startup nomount

ORACLE instance started.

Total System Global Area 236000356 bytes

Fixed Size 451684 bytes

Variable Size 201326592 bytes

Database Buffers 33554432 bytes

Redo Buffers 667648 bytes

SQL> alter database mount;

Database altered.

SQL> alter database open;

alter database open

*

ERROR at line 1:

ORA-01589: must use RESETLOGS or NORESETLOGS option for database open

SQL> alter database open RESETLOGS;

Database altered.

查看表中的记录,正确的。

修改实例名成功。

4. 总结

由上面的操作可以看到,在数据库维护中,最重要的是数据文件,初始化文件可以从别的实例拷贝过来,然后修改。控制文件可以重新创建,只要数据文件正确,就可以重建初始化文件和控制文件之后,恢复数据库。

遇到的错误:

ERROR at line 1:ORA-01503: CREATE CONTROLFILE failedORA-00200: controlfile could not be createdORA-00202: controlfile: '/home/ora/ora9/oradata/dbtest/control01.ctl'ORA-27040: skgfrcre: create error, unable to create fileLinux Error: 2: No such file or directory

请查看初始化文件中,控制文件的路径是正确,控制文件的路径上的目录是否有权限创建文件,如果这些问题都解决了,那么应该能成功创建控制文件。

2. oracle怎样修改数据库名字

改实例名啊?还有人改这个?建议,导出数据,如果新建一个实例,新实例名为你的需要改的新名字,然后把输入导入到新实例中。准确无误后,删除旧实例。

3. 如何给Oracle数据库改名

连接ORACLE数据库有两种方式:数据库名和服务名,数据库名的更改要使用重建控制文件的方式更改.alter database backup controlfile to trace后更改其中数据库名为新名,运行该文件 如果要更改目录,在上面的Trace文件中将文件目录改为新的文件目录名称重建或在mount阶段使用alter database rename datafile一一将文件更改过来.

4. Oracle数据库如何更名数据库文件以及移动数据库文件 可以在高级用户下进行

首先进入Oracle控制台然后将数据库的文件改一下名最后将该文件移动一下即可

5. oracle数据文件如何更名!!!!

在本例中,假设原来的数据库名为test,要改成testdb,原实例名(service_name,instance_name)test,要改成testdb.nid是自带的工具,在oracle_home/bin目录中.以下方法假设登陆到数据库本机做。1.1 sqlplus "sys/password as sysdba"1.2 sql>shutdown immediate –先停掉数据库1.3 sql>startup mount –nid需要在mount状态下才能做。1.4sql>host nid target=sys/password dbname=new_dbname –nid是一个在操作系统下执行的命令,在sqlplus环境中用host 去调用操作系统环境下的命令。命令中,当你想将数据库名字改为TESTDB时,应写成dbname=testdb1.5执行后程序会询问:Change database ID and database name TEST to TESTDB? (Y/[N]) =>y敲y确定。之后程序会对控制文件,数据文件进行修改:

6. 更改或删除Oracle表空间的数据文件

alter database rename datafile 'xxxxx/data02.ora' to 'xxxxx/data2.ora' 修改名字或移动数据文件位置alter database datafile 'xxxxx/data03.ora' resize 100M 缩小数据文件大小 删除数据文件通常对于已经存在数据的情况你需要先把存在该数据文件里的数据转移后清空才能删除

7. 如何修改oracle数据文件名字

在数据库处于mount状态或数据文件对应的表空间处于offline状态下,重新rename数据文件即可。可上网络找相关命令。

8. oracle需要重命名数据文件和重命名的表空间的不同

**如何重命名数据文件 **数据文件重命名可以用两种方法:alter database和alter tablespace二者区别是alter tablespace只能用于下面情况下的数据文件,不包括SYSTEM表空间,不包含激活的回滚段,还有临时段,但是用alter tablespace可以在实例启动的时候来执行;而alter database则适应于任何的数据文件,但是数据库要在MOUNT状态下.alter database方法步骤:1.关闭实例2.用操作系统命令重命名或者移动数据文件3.MOUNT数据库,然后用alter database来重命名文件,要写出全路径名4.启动实例SQL> connect sys/oracle as sysdba;SQL> startup mount U1;SQL> alter database rename file '/u01/oracle/U1/data01.dbf ' TO '/u02/oracle/U1/data04.dbf ' ;SQL> alter database open;alter tablespace方法步骤:1.offline相应的表空间2.用操作系统命令重命名或者移动数据文件3.用alter tablespace命令来重命名数据库中的文件4.online表空间SQL> connect sys/oracle as sysdbaSQL> alter tablespace app_data offline;SQL> alter tablespace app_date rename datafile '/u01/oracle/U1/data01.dbf ' TO '/u02/oracle/U1/data04.dbf ' ;SQL> alter tablespace app_data online;

9. oracle 数据库能不能重命名

这个是可以的1. 在mount 或者open 下, alter database backup controlfile to trace;2. 在 init.ora里把dbname 改成新名字3. 打开在第一步生成的trace, 把里面 create controlfile 那行中 reuse 'old database name' 改成set 'new database name'4. alter system swich logfile, shutdown database, 把现有controlfile 改名。 在svrmgrl中运行第三步的tracefile , 这样生成 新控制文件, open database, 改名完成。

10. 如何更改oracle数据库的名字

连接ORACLE数据库有两种方式:数据库名和服务名,数据库名的更改要使用重建控制文件的方式更改.alter database backup controlfile to trace后更改其中数据库名为新名,运行该文件 如果要更改目录,在上面的Trace文件中将文件目录改为新的文件目录名称重建或在mount阶段使用alter database rename datafile一一将文件更改过来.