ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 记一次数据库迁移(五)--迁移

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

原创 Linux操作系统 作者:woshihgh 时间:2010-12-29 08:43:24 0 删除 编辑

迁移整体按如下步骤进行

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

二、准备好目标机器的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博客 ” ,链接:https://blog.itpub.net/75673/viewspace-682760/ ,如需转载,请注明出处,否则将追究法律责任。

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

注册时间:2010-12-16

  • 博文量
    7
  • 访问量
    9224