常见的主要有三种方法:
如果所有表都是MyISAM类型的话,可以直接修改文件夹的名字。关闭mysql→把data目录中的db_name目录重命名为new_db_name→开启mysql
新建数据库,在新的数据库里重命名所有旧数据库中的表,再删除旧的数据库。具体 *** 作命令如下:创建新的数据库→重命名数据表名称→删除旧的数据库。
CREATE DATABASE new_db_nameRENAME TABLE db_name.table1 TO new_db_name.table1,db_name.table2 TO new_db_name.table2DROP DATABASE db_name
利用mysqldump命令从旧的数据导出数据,再导入新数据库。具体 *** 作命令如下:导出数据→创建新的数据库→导入数据→删除旧的数据库。
mysqldump -u root -p -h ip db_name >db_name_dump.SQLmysql -u root -p -h ip -e “CREATE DATABASE new_db_name”mysql -u root -p -h ip new_db_name <db_name_dump.SQLmysql -u root -p -h ip -e “DROP DATABASE db_name”
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
请查看初始化文件中,控制文件的路径是正确,控制文件的路径上的目录是否有权限创建文件,如果这些问题都解决了,那么应该能成功创建控制文件。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)