重新命名資料庫

tanxiaoke88發表於2009-09-22

                                                        重新命名資料庫(bb--&gtaa)

OS:windows 2003

1.建立備份控制檔案的跟蹤檔案;

  alter  database  backup c ontrfile to trace as  'aa_ctl.sql';

更改aa_ctl.sql中的內容,最後,sql語句的形式應該與以下的例子相似,在下面的例子中,資料庫的名稱設定為aa;

CREATE CONTROLFILE set DATABASE "aa" RESETLOGS  NOARCHIVELOG
    MAXLOGFILES 16
    MAXLOGMEMBERS 3
    MAXDATAFILES 100
    MAXINSTANCES 8
    MAXLOGHISTORY 292
LOGFILE
  GROUP 1 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\aa\REDO01.LOG'  SIZE 50M,
  GROUP 2 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\aa\REDO02.LOG'  SIZE 50M,
  GROUP 3 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\aa\REDO03.LOG'  SIZE 50M
DATAFILE
  'C:\ORACLE\PRODUCT\10.2.0\ORADATA\aa\SYSTEM01.DBF',
  'C:\ORACLE\PRODUCT\10.2.0\ORADATA\aa\UNDOTBS01.DBF',
  'C:\ORACLE\PRODUCT\10.2.0\ORADATA\aa\SYSAUX01.DBF',
  'C:\ORACLE\PRODUCT\10.2.0\ORADATA\aa\USERS01.DBF',
  'C:\ORACLE\PRODUCT\10.2.0\ORADATA\aa\EXAMPLE01.DBF'
CHARACTER SET ZHS16GBK
;

2.更改initbb.ora中的所有bb欄位為aa

*******
dispatchers="(PROTOCOL=TCP) (SERVICE=aaXDB)"
 audit_file_dest=C:\oracle\product\10.2.0/admin/aa/adump
remote_login_passwordfile=EXCLUSIVE
 db_domain=""
db_name=aa
 control_files=("C:\oracle\product\10.2.0\oradata\aa\control01.ctl", "C:\oracle\product\10.2.0\oradata\aa\control02.ctl", "C:\oracle\product\10.2.0\oradata\aa\control03.ctl")
db_recovery_file_dest=C:\oracle\product\10.2.0/flash_recovery_area
db_recovery_file_dest_size=2147483648
 background_dump_dest=C:\oracle\product\10.2.0/admin/aa/bdump
core_dump_dest=C:\oracle\product\10.2.0/admin/aa/cdump
user_dump_dest=C:\oracle\product\10.2.0/admin/aa/udump
 *****

3.備份資料庫,包括控制檔案的備份.(可以使聯機備份,也可以使離線備份).

4關閉資料庫.修改資料庫中對路徑資料檔案進行重新命名,這些操作將在第1步建立的sql檔案中執行.注意:一定要刪除控制檔案.否則會出現錯誤:

SQL> @c:\aa_ctl.sql
CREATE CONTROLFILE set DATABASE "aa" RESETLOGS  NOARCHIVELOG
*
第 1 行出現錯誤:
ORA-01503: CREATE CONTROLFILE ??
ORA-00200: ????????
ORA-00202: ????: ''C:\ORACLE\PRODUCT\10.2.0\ORADATA\AA\CONTROL01.CTL''
ORA-27038: ?????????
OSD-04010: ?????? ????, ??????????????

5.啟動例項:

   startup nomount;

 SQL> startup nomount;
 ORACLE 例程已經啟動。

Total System Global Area  167772160 bytes
Fixed Size                  1247900 bytes
Variable Size              62915940 bytes
Database Buffers          100663296 bytes
Redo Buffers                2945024 bytes

6.執行第一步建立的sql指令碼.

SQL> @c:\aa_ctl.sql

控制檔案已建立。

7.發出recover database 命令;

   recover database;

8.開啟資料庫:

  alter database open resetlogs;

9.改變資料庫的全域性名稱:

alter database rename global_name to aa;

10.執行完整的資料庫備份.

在重新命名操作前,應該確保已經擁有完整的資料庫備份和原控制檔案的副本,同時也要確保在重新命名操作執行後立即對資料庫進行備份.

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/21340813/viewspace-615362/,如需轉載,請註明出處,否則將追究法律責任。

相關文章