修改資料庫路徑

638476發表於2014-01-09

資料庫版本

 

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production

PL/SQL Release 11.2.0.1.0 - Production

CORE    11.2.0.1.0      Production

TNS for Linux: Version 11.2.0.1.0 - Production

NLSRTL Version 11.2.0.1.0 - Production

 

 

資料庫名

 

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

db_name                              string      DB196

 

這是正確的 公司要求的路徑

@TORCL1:/oradata/DB196\/ls -l

total 2854480

-rw-r----- 1 oracle oinstall    7847936 Jan  9 13:26 control01.ctl

-rw-r----- 1 oracle oinstall    7847936 Jan  9 13:26 control02.ctl

-rw-r--r-- 1 oracle oinstall        782 Jan  9 09:56 createctlf.sql

-rw-r----- 1 oracle oinstall   52429312 Jan  9 13:08 redo01.log

-rw-r----- 1 oracle oinstall   52429312 Jan  9 13:08 redo02.log

-rw-r----- 1 oracle oinstall   52429312 Jan  9 13:26 redo03.log

-rw-r----- 1 oracle oinstall  629153792 Jan  9 13:25 sysaux01.dbf

-rw-r----- 1 oracle oinstall 1073750016 Jan  9 13:25 system01.dbf

-rw-r----- 1 oracle oinstall   71311360 Jan  8 11:32 temp01.dbf

-rw-r----- 1 oracle oinstall  896540672 Jan  9 13:24 undotbs01.dbf

-rw-r----- 1 oracle oinstall  134225920 Jan  9 13:08 users01.dbf

@TORCL1:/oradata/DB196\/pwd

/oradata/DB196

 

我上手的路徑卻在 /oracle/oradata2/DB196 下面       

我要做的工作就是把/oracle/oradata2/DB196

移動到 根目錄  /oradata/DB196

原庫RMAN備份

 

設定引數:

RMAN:/    CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/oracle/oradata/backup/controlfile%F.ctnl';

RMAN:/    CONFIGURE CHANNEL 1 DEVICE TYPE DISK FORMAT   '/oracle/oradata/backup/full%t.bak';

 

資料庫rman 全備

rman>backup database plus archivelog delete input;

備份產生的三個檔案

-rw-r----- 1 oracle oinstall   7143424 Jan 28 18:05 controlfilec-2719028776-20100128-01.ctnl

-rw-r----- 1 oracle oinstall  41074688 Jan 28 18:03 full709495428.bak

-rw-r----- 1 oracle oinstall 763379712 Jan 28 18:05 full709495432.bak

-rw-r----- 1 oracle oinstall     17920 Jan 28 18:05 full709495518.bak

備份完成後,將當前的日誌進行歸檔

RMAN> sql 'alter system archive log current';

 

sql statement: alter system archive log current

 

shutdown immediate

移動DB196這個資料夾到根目錄的oradata/DB196

 

啥話也不說 先開告警日誌  

cd /oracle/product/diag/rdbms/db196/DB196/trace/

tail -100f aalert_DB196.log

startup nomount        這個狀態下跟控制檔案沒任何關係

                       另外克隆一個視窗

cd /oracle/product/db11gr2/dbs

ls

01otddvu_1_1  hc_DB196.dat  initDB196.ora  lkDB196     snapcf_DB196.f

02otde5f_1_1  hc_DBUA0.dat  init.ora       orapwDB196  spfileDB196.ora.bak

 

找到了這些檔案  首先幹掉  initDB196.ora 因為這個裡面存放的控制檔案路徑 是原來的路徑,幹掉後就是乾乾淨淨的

 

然後切換到SQL的視窗 

create pfie from spfile;   因為DBCA建立資料庫 生成的檔案是 spfileDB196.ora

 

然候切換回來 ls -l 

檢視一下 新的initDB196.ora 就有了 

 

cat initDB196.ora

發現裡面的 路徑還是之前的路徑

 

 

DB196.__db_cache_size=922746880

DB196.__java_pool_size=16777216

DB196.__large_pool_size=16777216

DB196.__db_cache_size=922746880

DB196.__java_pool_size=16777216

DB196.__large_pool_size=16777216

DB196.__oracle_base='/oracle/product'#ORACLE_BASE set from environment

DB196.__pga_aggregate_target=536870912

DB196.__sga_target=3154116608

DB196.__shared_io_pool_size=0

DB196.__shared_pool_size=2147483648

DB196.__streams_pool_size=16777216

*._b_tree_bitmap_plans=FALSE

*.audit_file_dest='/oracle/product/admin/DB196/adump'

*.audit_trail='NONE'

*.compatible='11.2.0.0.0'

*.control_files='/oracle/oradata2/DB196/control01.ctl','/oracle/oradata2/DB196/control02.ctl'   因為我的路徑變了所以這裡的路徑也要變

*.db_block_size=8192

*.db_domain='CCIC'

*.db_name='DB196'

*.db_recovery_file_dest_size=4294967296

*.diagnostic_dest='/oracle/product'

*.dispatchers='(PROTOCOL=TCP) (SERVICE=DB196XDB)'

*.log_archive_dest_1='location=/oracle/oradata/archlog'

*.open_cursors=300

*.pga_aggregate_target=536870912

*.processes=1500

*.remote_login_passwordfile='NONE'

*.session_cached_cursors=250

*.sessions=1655

*.sga_target=200m,200m,3000m

*.shared_pool_size=2147483648

*.undo_tablespace='UNDOTBS1'

*.workarea_size_policy='AUTO'

"initDB196.ora" 31L, 1067C written                                                                               

/oracle/oradata2/DB196/control01.ctl','/oracle/oradata2/DB196/control02.ctl'

改為 ordata/DB196/control01.ctl     ordata/DB196/control02.ctl    

 

改完了 儲存

 

檢視一下檔案

@TORCL1:/oracle/product/db11gr2/dbs\/ls

01otddvu_1_1  hc_DB196.dat  initDB196.ora  lkDB196     snapcf_DB196.f

02otde5f_1_1  hc_DBUA0.dat  init.ora       orapwDB196  spfileDB196.ora

拷貝一個spfileDB196.ora.bak 把這個spfileDB196.ora幹掉

@TORCL1:/oracle/product/db11gr2/dbs\/cp spfileDB196.ora  spfileDB196.ora.bak

@TORCL1:/oracle/product/db11gr2/dbs\/rm -rf spfileDB196.ora

@TORCL1:/oracle/product/db11gr2/dbs\/ls

01otddvu_1_1  hc_DB196.dat  initDB196.ora  lkDB196     snapcf_DB196.f

02otde5f_1_1  hc_DBUA0.dat  init.ora       orapwDB196  spfileDB196.ora.bak

 

 

把這個檔案 spfileDB196.ora 讓它不能用,因為資料庫啟動預設選擇這個檔案,這個檔案不能用或者刪除 系統會

initDB196.ora來代替,那麼不要刪除 變成spfileDB196.ora.bak 這樣就可以了 資料庫儘量不要刪除檔案大忌會

 

 

現在系統還是在nomount狀態下 現在來做 恢復控制檔案

 

create controlfile reuse database DB196 noresetlogs archivelog

Logfile group 1 '/oracle/oradata2/DB196/redo01.log',

group 2 '/oracle/oradata2/DB196/redo02.log',

group 3 '/oracle/oradata2/DB196/redo03.log'

datafile '/oracle/oradata2/DB196/system01.dbf',

'/oracle/oradata2/DB196/sysaux01.dbf',

'/oracle/oradata2/DB196/users01.dbf',

'/oracle/oradata2/DB196/undotbs01.dbf'

CHARACTER SET UTF8  (這裡要看你自己的字符集是什麼) 可以去告警日誌裡檢視 我的應該是ZHS16GBK  所以我又重新 重寫了一次控制檔案

;

Control file created.

 

然後shutdown immediate

 

SQL> startup

ORACLE instance started.

 

Total System Global Area 3140026368 bytes

Fixed Size                  2217464 bytes

Variable Size            2197817864 bytes

Database Buffers          922746880 bytes

Redo Buffers               17244160 bytes

Database mounted.

Database opened.

 

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

相關文章