记一次数据库迁移(五)--迁移

迁移整体按如下步骤进行

一、准备迁移的目标机器相应的数据库目录结构;

二、准备好目标机器的listener和tnsnames文件(可以提前准备,有时间反复检查,避免遗漏,复制过去后只要重命名这两个文件即可,将停机时间最短化)。

三、停止所有相关数据库;

四、在源机器执行准备好的复制脚本,将如下文件复制到目标机器
  a: $oracle_home/dbs目录下的lk文件(我也不知道要不要,反正我复制了)
  b: pfile文件(initORACLE_SID,如果没有,则产生,因为怕$oracle_home目录的不同,会带来文件路径的不同,需要更改,这个也可以提前准备好并复制到目标机器中,提前更改好)
       connect sys/pwd as sysdba
       create pfile from spfile;
  c: /oracle/admin/oracle_SID文件夹
  d: 数据存放文件夹

  示例如下,《10_55.sh》:
#!/bin/sh
/usr/bin/scp /oracle/9.2.0.4/dbs/lkORACLE_SID oracle@10.10.10.55:/oracle/9.2.0.4/dbs/lkORACLE_SID

#/usr/bin/scp /oracle/9.2.0.4/dbs/initORACLE_SID.ora oracle@10.10.10.55:/oracle/9.2.0.4/dbs/initORACLE_SID.ora

/usr/bin/scp -r /oracle/admin/ORACLE_SID/ oracle@10.10.10.55:/oracle/admin/

/usr/bin/scp -r /oracledata/oradata/ORACLE_SID/ oracle@10.10.10.55:/oracledata/oradata/

这样在存在N个数据库的时候,只要重复以上、并适当更改即可。

这里有个问题,就是每次scp的时候,都会提示要密码,这个可以弄一个两服务器间指定用户的scp的信任(当然是oracle用户),然后就可以无需再输入密码了,这里不做说明,网上有,回头也可以另开帖子。

五、将步骤二中事先准备好的listener和tnsnames文件重命名,旧的留作备份

六、在目标机器执行数据库部署、调整脚本,脚本内容包括:
   a: 创建密码;
   b: 重启TNS;
   c: 逐一更改数据文件路径;
   d: 启动数据库;
   e: 创建新的临时表空间、删除旧有临时表空间
 脚本示例如下,其中,如果数据文件的路径没有变化,可以删除改路径的脚本:
#!/bin/bash

cd /
cd $ORACLE_HOME/dbs
orapwd file=orapw$oracle_sid password=pwd entries=5

lsnrctl stop
lsnrctl start

connect sys/pwd@oracle_sid as sysdba
create spfile from pfile;
STARTUP MOUNT;
Alter Database Rename File '/oracle/oradata/ORACLE_SID/UNDO1006211.dbf' to '/oracle/oracle/oradata/ORACLE_SID/UNDO1006211.dbf';
Alter Database Rename File '/oracle/oradata/ORACLE_SID/cwmlite01.dbf' to '/oracle/oracle/oradata/ORACLE_SID/cwmlite01.dbf';
Alter Database Rename File '/oracle/oradata/ORACLE_SID/drsys01.dbf' to '/oracle/oracle/oradata/ORACLE_SID/drsys01.dbf';
Alter Database Rename File '/oracle/oradata/ORACLE_SID/example01.dbf' to '/oracle/oracle/oradata/ORACLE_SID/example01.dbf';
Alter Database Rename File '/oracle/oradata/ORACLE_SID/indx01.dbf' to '/oracle/oracle/oradata/ORACLE_SID/indx01.dbf';
Alter Database Rename File '/oracle/oradata/ORACLE_SID/odm01.dbf' to '/oracle/oracle/oradata/ORACLE_SID/odm01.dbf';
Alter Database Rename File '/oracle/oradata/ORACLE_SID/redo01.log' to '/oracle/oracle/oradata/ORACLE_SID/redo01.log';
Alter Database Rename File '/oracle/oradata/ORACLE_SID/redo02.log' to '/oracle/oracle/oradata/ORACLE_SID/redo02.log';
Alter Database Rename File '/oracle/oradata/ORACLE_SID/redo03.log' to '/oracle/oracle/oradata/ORACLE_SID/redo03.log';
Alter Database Rename File '/oracle/oradata/ORACLE_SID/system01.dbf' to '/oracle/oracle/oradata/ORACLE_SID/system01.dbf';
Alter Database Rename File '/oracle/oradata/ORACLE_SID/tools01.dbf' to '/oracle/oracle/oradata/ORACLE_SID/tools01.dbf';
Alter Database Rename File '/oracle/oradata/ORACLE_SID/users01.dbf' to '/oracle/oracle/oradata/ORACLE_SID/users01.dbf';
Alter Database Rename File '/oracle/oradata/ORACLE_SID/xdb01.dbf' to '/oracle/oracle/oradata/ORACLE_SID/xdb01.dbf';
alter database open;
create temporary tablespace TEMP101212 tempfile '/oracle/oracle/oradata/ORACLE_SID/TEMP101212.dbf' size 1024M;
alter database default temporary tablespace TEMP101212;
drop tablespace TEMP100621;
alter user dtradeuser temporary tablespace TEMP101212;

exit
EOF

七、重新设置所有数据库连接

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/75673/viewspace-682760/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/75673/viewspace-682760/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值