在Oracle数据库的管理和维护过程中,数据库的归档是一个至关重要的环节。它涉及到数据库的备份、恢复以及迁移等多个方面。本文将详细介绍Oracle数据库迁移的攻略,帮助您轻松应对数据库归档的难题。
一、Oracle数据库迁移概述
Oracle数据库迁移是指将现有数据库从一个环境迁移到另一个环境的过程。这个过程可能包括从一个服务器迁移到另一个服务器,从单个实例迁移到RAC集群,或者从一个操作系统迁移到另一个操作系统。
迁移目的
- 更换数据库服务器
- 数据库迁移
- 性能与高可用性问题
二、Oracle单机迁移至RAC集群
环境介绍
- Oracle 单机 to RAC
- 单机FS
- 集群RAC(ASM)
- IP地址:172.30.21.191、172.30.21.166⁄167
- 主机名称:hfzcdb91、hfcwdb66/hfcwdb67
- 数据库名:hfzcdb、hfcwdb
- 实例名:hfzcdb、hfzcdb1/hfzcdb2
RACASM环境准备
- 安装好RAC,建好库,再删除。目的:确定这个库是可用的。
- 备份数据库,恢复至RAC,再追归档增量,补齐数据至停机时间。
单机环境数据库备份
mkdir /backup/hfzcdb
chown -R oracle:oinstall /backup
rman target /
crosscheck archivelog all;
crosscheck backup;
delete expired archivelog all;
delete expired backup;
CONFIGURE CONTROLFILE AUTOBACKUP ON;
run allocate channel d1 type disk;
sql 'alter system archive log current';
backup format '/backup/hfzcdb/hfzcdbfull';
三、Oracle数据库存储更换,更改文件路径
停库更改
- 现有文件所在的路径:
- 数据文件、控制文件、redo日志文件:/oradata/orcl
- 归档日志文件:/oradata/arch
- 新路径:
- 数据文件、控制文件、redo日志文件:/neworadata/orcl
- 归档日志文件:/neworadata/arch
- 生成迁移所用到的语句:
set linesize 400;
set pagesize 2000;
SELECT 'copy datafile ''' || name || ''' to ''''' || '/neworadata/orcl/' || SUBSTR (name, INSTR (name, '/', -1) + 1) || ''';' FROM vdbfile ORDER BY FILE#;
在线更改
- 关闭数据库:
shutdown immediate;
移动所有数据文件、控制文件、临时文件、日志文件到新的位置,留一份控制文件在原有路径做冗余。
启动数据库到nomount状态,并更改控制文件位置:
startup nomount;
alter system set controlfiles='/oradata/orcl/control01.ctl','/oradata/orcl/control02.ctl','/u01/app/oracle/product/10.2.0/db1/oradata/orcl/control03.ctl';
- 再次关闭数据库:
shutdown immediate;
- 启动数据库到mount状态,并更改控制文件位置:
startup mount;
alter system set controlfiles='/oradata/orcl/control01.ctl','/oradata/orcl/control02.ctl','/u01/app/oracle/product/10.2.0/db1/oradata/orcl/control03.ctl';
- 打开数据库:
alter database open;
四、Oracle数据文件迁移
- 首先,进入用快捷键winr调出运行窗口,输入cmd打开cmd命令窗口。
- 命令窗中输入:sqlplus / as sysdba,回车,登录Oracle数据库。
- 登录后,输入命令:shutdown immediate对数据库进行关闭。
- 迁移数据文件,即将要迁移的数据文件复制到需要移动的位置。
- 数据文件复制完成后,在sql命令行后输入:startup mount开启Oracle例程。
- 输入更改数据文件路径命令:
alter database rename file 'D:CGKJSJ.BDF' TO 'D:APPDATEAFILEORADATEORACLCGKSJ.DBF';
回车,提示数据库已更改。
通过以上步骤,您就可以轻松应对Oracle数据库归档的难题。在实际操作过程中,请根据具体情况选择合适的方法,并确保数据的安全性和完整性。