oracle冷备份迁移数据库到其他机器步骤

原创
2016-06-07 16:20:43 1009浏览

步骤很简单:关源库-拷贝到目标机器-启动到mount状态重命名-open数据库 登录源数据库所在主机 建立映射目录 192.168.1.2oradata 映射为 z: 盘 映射完毕后检查是否允许写入文件 需要注意关闭目标数据库位置服务器的防火墙 搜集源库信息 实例名、版本、块大

  步骤很简单:关源库->拷贝到目标机器->启动到mount状态重命名->open数据库

  登录源数据库所在主机

  建立映射目录 192.168.1.2oradata 映射为 z: 盘

  映射完毕后检查是否允许写入文件

  需要注意关闭目标数据库位置服务器的防火墙

  搜集源库信息

  实例名、版本、块大小、表空间、数据文件

  select * from v$instance;

  select * from v$database;

  select * from v$tablespace;

  select * from v$datafile;

  在源库上整理需拷贝的文件

  执行文件cp.sql,其内容如下:

  set linesize 130 pagesize 2000

  set trimspool on

  set echo off

  set verify off

  set timing off

  set feedback off

  set head off

  set echo off

  spool cpfile.bat

  select 'copy '||name||' z:orcl'|| substr(name, instr(name, '', -1) + 1) cmd from v$controlfile

  union all

  select 'copy '||member||' z:orcl'|| substr(member, instr(member, '', -1) + 1) cmd from v$logfile

  union all

  select 'copy '||name||' z:orcl'|| substr(name, instr(name, '', -1) + 1) cmd from v$datafile

  union all

  select 'copy '||name||' z:orcl'|| substr(name, instr(name, '', -1) + 1) cmd from v$tempfile

  union all

  select 'copy '||value||' z:orcl'|| substr(value, instr(value, '', -1) + 1) cmd from v$parameter where;

  spool off

  生成改名脚本

  执行文件ren.sql ,,其内容如下:

  set linesize 130 pagesize 2000

  set trimspool on

  set echo off

  set verify off

  set timing off

  set feedback off

  set head off

  set echo off

  spool renfile.sql

  select 'ALTER DATABASE RENAME FILE '''||member||''' to ''d:oradataorcl'|| substr(member, instr(member, '', -1) + 1)||'''; ' cmd from v$logfile

  union all

  select 'ALTER DATABASE RENAME FILE '''||name||''' to ''d:oradataorcl'|| substr(name, instr(name, '', -1) + 1)||'''; ' cmd from v$datafile

  union all

  select 'ALTER DATABASE RENAME FILE '''||name||''' to ''d:oradataorcl'|| substr(name, instr(name, '', -1) + 1)||'''; ' cmd from v$tempfile;

  spool off

  create pfile from spfile;

  关闭源库

  host lsnrctl stop

  shutdown immediate

  将windows服务设置为手工启动(关键!!! 防止万一复制出现问题还可以重新复制一致的文件)

  拷贝控制文件、日志文件、数据文件,

  host cpfile.bat

  startup

  host lsnrctl start

  拷贝pfile、 tnsname.ora、 口令文件、renfile.sql

  在目标数据库修改参数文件中的控制文件内容

  配置启动参数文件pfile,修改控制文件位置及路径信息

  启动到mount状态

  sqlplus "/as sysdba"

  startup mount pfile=?/database/initorcl.ora

  修改文件位置

  SQL> @renfile.sql

  打开数据库

  create spfile from pfile;

  host lsnrctl start

  检查临时文件是否有

  连接测试

  参考命令:

  oradim -NEW -SID test -STARTMODE manual -PFILE "D:Oracleadmintestpfileinittest.ora"

  ALTER DATABASE RENAME FILE 'c:oracleproductoradataexample.dbf'

  TO 'c:oracleproductoradatademos.dbf'

  修改日志组位置

  ALTER DATBASE [database}

  RENAME FILE 'filename’[,'filename']…

  TO 'filename']…

  创建日志组

  ALTER DATABASE ADD LOGFILE GROUP 3

  ('$HOME/ORADATA/u01/log3a.rdo',

  '$HOME/ORADATA/u02/log3b.rdo')

  SIZE 1M;

  添加成员

  ALTER DATABASE ADD LOGFILE MEMBER

  '$HOME/ORADATA/u04/log1c.rdo' TO GROUP 1,

  '$HOME/ORADATA/u04/log2c.rdo' TO GROUP 2,

  '$HOME/ORADATA/u04/log3c.rdo' TO GROUP 3;

  删除日志组

  ALTER DATABASE DROP LOGFILE GROUP 3;

  删除成员

  ALTER DATABASE DROP LOGFILE MEMBER '$HOME/ORADATA/u04/log3c.rdo';

  清除日志

  ALTER DATABASE CLEAR LOGFILE '$HOME/ORADATA/u01/log2a.rdo';

  增加临时文件

  ALTER TABLESPACE temp ADD TEMPFILE '/oradata/temp03.dbf' SIZE 100M;

  删除临时文件:

  ALTER DATABASE TEMPFILE '/oradata/temp02.dbf' DROP INCLUDING DATAFILES;

  250数据库 245G 拷贝时间需要 9 小时

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。