如何修改"sql Server"的实例名?

如何修改"sql Server"的实例名?,第1张

sql Server的实例名是安装时就定好,我没有发现有能修改的地方,一定要修改,就重装嘛.很简单的.把已经建立并且已有数据的数据库的两个文件复制到U盘上或者其它盘上,

然后再重装,重装好后,在企业管理器中新建原来的数据库,什么表都不要建,这样新建的库也有两个文件,空的.接着再把SQLserver的服务器关掉.再到盘上找到新建空数据库文件,删除,最后把放在U盘上的原来的数据文件复制粘贴到删除处.打开服务器,打开企业管理器,看看是不是成了。

你在SQL SERVER的索引中查查关于SP_RENAME的解释说明,对于参数都有说明。

可以修改数据库实例名,可以修改表名,字段名等等。

例如修改数据库实例Test为newtest

sp_rename 'Test', 'newtest','database'

但是,master等一些安装自带的数据库实例名,是不可以修改的。

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文件,修改对应的dump属性的路径名,实例名字,控制文件路径等。

然后执行如下命令:

[oracle@localhost oracle]$ export ORACLE_SID=dbtest

[oracle@localhost oracle]$ sqlplus "/ as sysdba"

SQL*Plus: Release 9.2.0.4.0 - Production 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 failed

ORA-00200: controlfile could not be created

ORA-00202: controlfile: '/home/ora/ora9/oradata/dbtest/control01.ctl'

ORA-27040: skgfrcre: create error, unable to create file

Linux Error: 2: No such file or directory

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


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9998743.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存