ITPub博客

首页 > 数据库 > Oracle > 修改数据库路径

修改数据库路径

原创 Oracle 作者:638476 时间:2014-01-09 17:31:33 0 删除 编辑

数据库版本

 

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/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2013-12-04

  • 博文量
    6
  • 访问量
    42357