利用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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章