利用Oracle种子恢复数据库(2)——修改数据库名称

利用Oracle种子恢复数据库(2)——修改数据库名称

利用Oracle种子恢复的数据库名称为seeddata,可以把数据库名称修改为自己所需的数据库名。以下步骤把seeddata数据库名称修改为student。

一、修改实例名为student

1、停库,修改环境变量ORACLE_SID为student

[oracle@wgx ~]$ vim .bash_profile 
----------------------------------------------
export ORACLE_SID=student  ---修改环境变量
----------------------------------------------
[oracle@wgx ~]$ source .bash_profile

2、修改口令文件和参数文件的名称

[oracle@wgx dbs]$ pwd
/usr/local/oracle/product/11.2.0/db_1/dbs
[oracle@wgx dbs]$ ls
hc_DBUA0.dat  hc_seeddata.dat  initseeddata.ora  lkSEEDDATA  orapwseeddata   spfileseeddata.ora
hc_orcl.dat   init.ora         lkORCL            orapworcl   spfileorcl.ora
[oracle@wgx dbs]$ mv orapwseeddata orapwstudent
[oracle@wgx dbs]$ mv initseeddata.ora initstudent.ora
[oracle@wgx dbs]$ mv spfileseeddata.ora spfilestudent.ora
[oracle@wgx dbs]$ ls
hc_DBUA0.dat  hc_seeddata.dat  initstudent.ora  lkSEEDDATA  orapwstudent    spfilestudent.ora
hc_orcl.dat   init.ora         lkORCL           orapworcl   spfileorcl.ora

3、启动数据库到nomount

SQL> startup nomount
ORACLE instance started.

Total System Global Area 1068937216 bytes
Fixed Size		    2220200 bytes
Variable Size		  281022296 bytes
Database Buffers	  780140544 bytes
Redo Buffers		    5554176 bytes
SQL> show parameter name;

NAME				     TYPE	 VALUE
------------------------------------ ----------- ------------------------------
db_file_name_convert		     string
db_name 			     string	 seeddata
db_unique_name			     string	 seeddata
global_names			     boolean	 FALSE
instance_name			     string	 student
lock_name_space 		     string
log_file_name_convert		     string
service_names			     string	 seeddata

可以看出,实例名已经修改为student。

二、修改数据库名

1、启动数据库到mount

SQL> alter database mount;

Database altered.

SQL> show parameter name;

NAME				     TYPE	 VALUE
------------------------------------ ----------- ------------------------------
db_file_name_convert		     string
db_name 			     string	 seeddata
db_unique_name			     string	 seeddata
global_names			     boolean	 FALSE
instance_name			     string	 student
lock_name_space 		     string
log_file_name_convert		     string
service_names			     string	 seeddata

2、在操作系统下利用nid修改数据库名

[oracle@wgx dbs]$ nid target=sys/sys dbname=student

DBNEWID: Release 11.2.0.1.0 - Production on Sat Apr 11 11:15:21 2020

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

Connected to database SEEDDATA (DBID=4023594539)

Connected to server version 11.2.0

Control Files in database:
    /usr/local/oradata/seeddata/control01.ctl
    /usr/local/oracle/flash_recovery_area/orcl/control02.ctl

Change database ID and database name SEEDDATA to STUDENT? (Y/[N]) => y

Proceeding with operation
Changing database ID from 4023594539 to 78174666
Changing database name from SEEDDATA to STUDENT
    Control File /usr/local/oradata/seeddata/control01.ctl - modified
    Control File /usr/local/oracle/flash_recovery_area/orcl/control02.ctl - modified
    Datafile /usr/local/oradata/seeddata/system01.db - dbid changed, wrote new name
    Datafile /usr/local/oradata/seeddata/sysaux01.db - dbid changed, wrote new name
    Datafile /usr/local/oradata/seeddata/undotbs01.db - dbid changed, wrote new name
    Datafile /usr/local/oradata/seeddata/users01.db - dbid changed, wrote new name
    Datafile /usr/local/oradata/seeddata/temp0 - dbid changed, wrote new name
    Control File /usr/local/oradata/seeddata/control01.ctl - dbid changed, wrote new name
    Control File /usr/local/oracle/flash_recovery_area/orcl/control02.ctl - dbid changed, wrote new name
    Instance shut down

Database name changed to STUDENT.
Modify parameter file and generate a new password file before restarting.
Database ID for database STUDENT changed to 78174666.
All previous backups and archived redo logs for this database are unusable.
Database is not aware of previous backups and archived logs in Recovery Area.
Database has been shutdown, open database with RESETLOGS option.
Succesfully changed database name and ID.
DBNEWID - Completed succesfully.

3、重新启动数据库到nomount

SQL> startup force nomount
ORACLE instance started.

Total System Global Area 1068937216 bytes
Fixed Size		    2220200 bytes
Variable Size		  281022296 bytes
Database Buffers	  780140544 bytes
Redo Buffers		    5554176 bytes

4、修改初始化参数

--修改数据库名称
SQL> alter system set db_name=student scope=spfile;
System altered.

5、重启数据库到mount

SQL> startup force mount;
ORACLE instance started.

Total System Global Area 1068937216 bytes
Fixed Size		    2220200 bytes
Variable Size		  281022296 bytes
Database Buffers	  780140544 bytes
Redo Buffers		    5554176 bytes
Database mounted.
SQL> show parameter name;

NAME				     TYPE	 VALUE
------------------------------------ ----------- ------------------------------
db_file_name_convert		     string
db_name 			     string	 STUDENT
db_unique_name			     string	 STUDENT
global_names			     boolean	 FALSE
instance_name			     string	 student
lock_name_space 		     string
log_file_name_convert		     string
service_names			     string	 STUDENT

6、打开数据库

SQL> alter database open resetlogs;
Database altered.

三、更改相关文件的位置

数据库名称更改之后,还需要更改审计文件、控制文件、数据库文件、日志文件的位置。

1、修改审计文件的位置

(1)查看审计文件的位置

SQL> show parameter audit_file_dest

NAME				     TYPE	 VALUE
------------------------------------ ----------- ------------------------------
audit_file_dest 		     string	 /usr/local/oracle/admin/seeddata/adump

(2)创建审计文件存放的目录

[oracle@wgx adump]$ rm -r /usr/local/oracle/admin/seeddata/adump

[oracle@wgx dbs]$ mkdir -p /usr/local/oracle/admin/student/adump

(3)修改审计文件的位置

SQL> alter system set audit_file_dest='/usr/local/oracle/admin/student/adump' scope=spfile;
System altered.

(4)重启数据库生效

SQL> startup 
ORACLE instance started.

Total System Global Area 1068937216 bytes
Fixed Size		    2220200 bytes
Variable Size		  281022296 bytes
Database Buffers	  780140544 bytes
Redo Buffers		    5554176 bytes
Database mounted.
Database opened.

SQL> show parameter audit_file_dest

NAME				     TYPE	 VALUE
------------------------------------ ----------- ------------------------------
audit_file_dest 		     string	 /usr/local/oracle/admin/student/adump

2、更改控制文件的位置

(1)查看控制文件的位置

SQL> show parameter control_files;

NAME				     TYPE	 VALUE
------------------------------------ ----------- ------------------------------
control_files			 string	 /usr/local/oradata/seeddata/control01.ctl,           
                                 /usr/local/oracle/flash_recovery_area/orcl/control02.ctl

(2)修改控制文件的位置

SQL> alter system set control_files= '/usr/local/oradata/student/control01.ctl','/usr/local/oracle/flash_recovery_area/orcl/control02.ctl' scope=spfile;

System altered.

(3)在操作系统下修改控制文件的位置

[oracle@wgx adump]$ mkdir -p /usr/local/oradata/student/

[oracle@wgx adump]$ cp /usr/local/oradata/seeddata/control01.ctl /usr/local/oradata/student/control01.ctl

[oracle@wgx adump]$ cp /usr/local/oradata/student/control01.ctl /usr/local/oracle/flash_recovery_area/orcl/control02.ctl

(4)重启数据库使更改生效

SQL> startup
ORACLE instance started.

Total System Global Area 1068937216 bytes
Fixed Size		    2220200 bytes
Variable Size		  281022296 bytes
Database Buffers	  780140544 bytes
Redo Buffers		    5554176 bytes
Database mounted.
Database opened.
SQL> select name from v$controlfile;

NAME
--------------------------------------------------------------------------------
/usr/local/oradata/student/control01.ctl
/usr/local/oracle/flash_recovery_area/orcl/control02.ctl

3、更改重做日志文件的位置

(1)查看重做日志文件信息

SQL> select member from v$logfile;

MEMBER
--------------------------------------------------------------------------------
/usr/local/oradata/seeddata/redo01.log
/usr/local/oradata/seeddata/redo02.log
/usr/local/oradata/seeddata/redo03.log

(2)在操作系统中更改重做日志文件的位置

[oracle@wgx adump]$ cp /usr/local/oradata/seeddata/redo01.log  /usr/local/oradata/student/redo01.log;

[oracle@wgx adump]$ cp /usr/local/oradata/seeddata/redo02.log  /usr/local/oradata/student/redo02.log;

[oracle@wgx adump]$ cp /usr/local/oradata/seeddata/redo03.log  /usr/local/oradata/student/redo03.log;

(3)在控制文件中更改重做日志文件的位置

SQL> alter database rename file '/usr/local/oradata/seeddata/redo01.log' to '/usr/local/oradata/student/redo01.log';
Database altered.

SQL> alter database rename file '/usr/local/oradata/seeddata/redo02.log' to '/usr/local/oradata/student/redo02.log';
Database altered.

SQL> alter database rename file '/usr/local/oradata/seeddata/redo03.log' to '/usr/local/oradata/student/redo03.log';
Database altered.

(4)打开数据库,查看日志信息

SQL> alter database open;
Database altered.

SQL> select member from v$logfile;
MEMBER
--------------------------------------------------------------------------------
/usr/local/oradata/student/redo01.log
/usr/local/oradata/student/redo02.log
/usr/local/oradata/student/redo03.log

4、更改数据文件的位置——方法和修改日志文件类似

(1)查看数据文件的信息

SQL> select name from v$datafile;

NAME
--------------------------------------------------------------------------------
/usr/local/oradata/seeddata/system01.dbf
/usr/local/oradata/seeddata/sysaux01.dbf
/usr/local/oradata/seeddata/undotbs01.dbf
/usr/local/oradata/seeddata/users01.dbf

SQL> select name from v$tempfile;

NAME
--------------------------------------------------------------------------------
/usr/local/oradata/seeddata/temp01

(2)启动数据库到mount

SQL> startup force mount;
ORACLE instance started.

Total System Global Area 1068937216 bytes
Fixed Size		    2220200 bytes
Variable Size		  281022296 bytes
Database Buffers	  780140544 bytes
Redo Buffers		    5554176 bytes
Database mounted.

(3)把数据文件复制到新位置

[oracle@wgx adump]$ cp /usr/local/oradata/seeddata/system01.dbf  /usr/local/oradata/student/system01.dbf

[oracle@wgx adump]$ cp /usr/local/oradata/seeddata/sysaux01.dbf  /usr/local/oradata/student/sysaux01.dbf

[oracle@wgx adump]$ cp /usr/local/oradata/seeddata/users01.dbf  /usr/local/oradata/student/users01.dbf

[oracle@wgx adump]$ cp /usr/local/oradata/seeddata/undotbs01.dbf  /usr/local/oradata/student/undotbs01.dbf

[oracle@wgx adump]$ cp /usr/local/oradata/seeddata/temp  /usr/local/oradata/student/temp01.dbf

[oracle@wgx adump]$ cp /usr/local/oradata/seeddata/temp01  /usr/local/oradata/student/temp01.dbf

(4)在控制文件中更改数据文件的位置

SQL> alter database rename file '/usr/local/oradata/seeddata/system01.dbf' to '/usr/local/oradata/student/system01.dbf';
Database altered.

SQL> alter database rename file '/usr/local/oradata/seeddata/sysaux01.dbf' to '/usr/local/oradata/student/sysaux01.dbf';
Database altered.

SQL> alter database rename file '/usr/local/oradata/seeddata/users01.dbf' to '/usr/local/oradata/student/users01.dbf';
Database altered.

SQL> alter database rename file '/usr/local/oradata/seeddata/undotbs01.dbf' to '/usr/local/oradata/student/undotbs01.dbf';
Database altered.

SQL> alter database rename file '/usr/local/oradata/seeddata/temp01' to '/usr/local/oradata/student/temp01.dbf';
Database altered.

(5)打开数据库,查看数据文件信息

SQL> alter database open;

Database altered.

SQL> select name from v$datafile;

NAME
--------------------------------------------------------------------------------
/usr/local/oradata/student/system01.dbf
/usr/local/oradata/student/sysaux01.dbf
/usr/local/oradata/student/undotbs01.dbf
/usr/local/oradata/student/users01.dbf

SQL> select name from v$tempfile;

NAME
--------------------------------------------------------------------------------
/usr/local/oradata/student/temp01.dbf
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章