ORACLE資料庫修改資料庫名db_name
某些時候為了快速建立一個新的資料庫(DBCA太慢,而且DBCA建立的庫沒有資料),或者其它原因,你可以希望直接複製現有資料庫,但是又不希望新庫與原庫重名,這時候就就可以通過重建控制檔案的方式修改資料庫名。
大致步驟如下:
- 原庫生成控制檔案建立指令碼並shutdown
- 複製資料檔案、控制檔案、歸檔檔案、Online Redologs以及spfile到新伺服器適當路徑下。
- 新庫中根據spfile生成pfile,並做適當修改後,再根據pfile生成spfile
- 開啟原庫生成的trace檔案,獲取控制檔案建立指令碼並做適當修改
- 新庫啟動至nomount
- 執行修改後的trace
下面演示通過JSSSTR資料庫複製出一個JSSBAK,操作如下:
1、 生成控制檔案建立指令碼:
JSSSTR> alter database backup controlfile to trace;
Database altered.執行下列語句,獲取當前生成的trace檔案路徑:
JSSSTR> select c.value || '/' || d.instance_name || '_ora_' ||
2 to_char(a.spid,'fm99999') || '.trc'
3 from v$process a, v$session b, v$parameter c, v$instance d
4 where a.addr = b.paddr
5 and b.audsid = userenv('sessionid')
6 and c.name = 'user_dump_dest';
C.VALUE||'/'||D.INSTANCE_NAME||'_ORA_'||TO_CHAR(A.SPID,'FM99999')||'.TRC'
--------------------------------------------------------------------------------
/data/oracle/admin/jssstr/udump/jssstr_ora_5612.trc2、 關閉資料庫
JSSSTR> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.3、 複製檔案
過程略,注意檔案要複製完整,包括資料檔案,歸檔檔案,Online Redo以及tnsnames.ora,listener.ora等等。
注,控制檔案不需要複製。
4、 新庫中通過原spfile生在pfile
[oracle@yans3 dbs]$ export ORACLE_SID=jssbak
[oracle@yans3 dbs]$ sqlplus "/ as sysdba"
SQL*Plus: Release 10.2.0.3.0 - Production on Wed Mar 25 15:45:05 2009
Copyright (c) 1982, 2006, Oracle. All Rights Reserved.
Connected to an idle instance.
SQL> set sqlprompt "JSSBAK> "
JSSBAK> create pfile ='/data/oracle/product/10.2/dbs/pfilejssbak.ora' from spfile ='/data/oracle/product/10.2/dbs/spfilejssstr.ora';
File created.5、 文字編輯器修改pfilejssbak.ora
主要修改路徑引數和db_name等。過程略
6、 建立spfile並啟動到nomount
JSSBAK> create spfile from pfile='/data/oracle/product/10.2/dbs/pfilejssbak.ora';
File created.
JSSBAK> startup nomount
ORACLE instance started.
Total System Global Area 524288000 bytes
Fixed Size 2073984 bytes
Variable Size 150997632 bytes
Database Buffers 364904448 bytes
Redo Buffers 6311936 bytes7、 源庫開啟生成的trace檔案並修改
找到Set #2. RESETLOGS case,複製其後的語句並做適當修改。
主要將:
CREATE CONTROLFILE REUSE DATABASE "JSS STR " RESETLOGS ARCHIVELOG
改為:
CREATE CONTROLFILE SET DATABASE "JSSBAK" RESETLOGS ARCHIVELOG
其它檔案路徑按照實際情況修改,另外由於前面檔案是冷複製,因此移除RECOVER DATABASE USING BACKUP CONTROLFILE那一句。
8、 執行修改後的指令碼
JSSBAK> CREATE CONTROLFILE SET DATABASE "JSSBAK" RESETLOGS ARCHIVELOG
2 MAXLOGFILES 16
3 MAXLOGMEMBERS 3
4 MAXDATAFILES 100
5 MAXINSTANCES 8
6 MAXLOGHISTORY 292
7 LOGFILE
8 GROUP 1 '/data/oracle/oradata/jssbak/redo01.log' SIZE 50M,
9 GROUP 2 '/data/oracle/oradata/jssbak/redo02.log' SIZE 50M,
10 GROUP 3 '/data/oracle/oradata/jssbak/redo03.log' SIZE 50M
11 DATAFILE
12 '/data/oracle/oradata/jssbak/system01.dbf',
13 '/data/oracle/oradata/jssbak/undotbs01.dbf',
14 '/data/oracle/oradata/jssbak/sysaux01.dbf',
15 '/data/oracle/oradata/jssbak/users01.dbf',
16 '/data/oracle/oradata/jssbak/strmtbs01.ora',
17 '/data/oracle/oradata/jssbak/webdata01.dbf'
18 CHARACTER SET ZHS16GBK
19 ;
Control file created.
JSSBAK> ALTER DATABASE OPEN RESETLOGS;
Database altered.
JSSBAK> ALTER TABLESPACE TEMP ADD TEMPFILE '/data/oracle/oradata/jssbak/temp01.dbf' REUSE;
Tablespace altered.如果沒有報錯,則資料庫複製並改名成功。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7607759/viewspace-578372/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 修改oracle例項名(sid)和資料庫名(db_name)Oracle資料庫
- 修改資料庫db_name的方法資料庫
- 使用NID修改Oracle資料庫名Oracle資料庫
- 修改資料庫名稱資料庫
- 更改資料庫SID名和db_name名資料庫
- 如何修改資料庫例項及資料庫名資料庫
- Oracle NID工具修改資料庫DBID和資料庫名稱Oracle資料庫
- nid修改資料庫名稱資料庫
- 如何修改MySQL資料庫名稱MySql資料庫
- 【引數】ORACLE修改資料庫名之完整版Oracle資料庫
- 資料庫修改資料資料庫
- 用NID修改資料庫名稱資料庫
- 二、修改資料庫全域性名稱資料庫
- 關於資料庫名(db_name)、例項名(instance_name)、ORACLE_SID資料庫Oracle
- 修改資料庫資料庫
- Oracle 11g修改資料庫使用者名稱Oracle資料庫
- 資料庫名、例項名、資料庫域名、全域性資料庫名、服務名概念區分資料庫
- [Oracle]Oracle資料庫資料被修改或者刪除恢復資料Oracle資料庫
- 修改Oracle資料庫字符集Oracle資料庫
- oracle資料庫修改連線數Oracle資料庫
- 修改Oracle資料庫表的大小Oracle資料庫
- (轉)關於資料庫名(db_name)、例項名(instance_name)、ORACLE_SID資料庫Oracle
- Oracle 11g支援修改資料庫使用者名稱Oracle資料庫
- [轉] 使用NID 修改資料庫名(Oracle9或以上)資料庫Oracle
- Oracle中關於資料庫例項名與資料庫服務名(轉載)Oracle資料庫
- 轉貼:關於資料庫名(db_name)、例項名(instance_name)、ORACLE_SID資料庫Oracle
- 修改Oracle資料庫字符集(zt)Oracle資料庫
- oracle 修改資料庫為歸檔模式Oracle資料庫模式
- 在RAC中用NID修改資料庫名稱資料庫
- 資料庫名,資料庫例項名,資料庫域名,作業系統環境變數資料庫作業系統變數
- 【Mysql】改資料庫庫名操作MySql資料庫
- 資料庫-oracle-資料庫遷移資料庫Oracle
- C#取資料庫名稱與資料庫中表名的方法C#資料庫
- 修改資料庫路徑資料庫
- 使用ALTER修改資料庫資料庫
- 更改資料庫表名資料庫
- oracle資料庫名和例項名的區別Oracle資料庫
- Oracle 資料庫Oracle資料庫