赞
踩
Oracle 跨平台跨版本数据迁移
停机时间 100G 4小时,20TB 2小时
数据量
数据库版本11.2.0.1 11.2.0.4
操作系统平台 win->linux,aix->linux,hpxu->linux 字节序 大端还是小端 x86
合适的迁移技术
数据迁移技术:
dataguard
RMAN异机恢复
exp/imp、expdp/impdp
goldengate
TTS传输表空间
XTTS技术–大端->小端 AIX->linux 停机时间时间比较短
01-数据迁移课程概述
02-跨平台跨版本数据迁移-1
03-跨平台跨版本数据迁移-2
04-跨平台跨版本数据迁移-3
05-跨平台跨版本数据迁移-4
06-TTS传输表空间-1
07-TTS传输表空间-2
08-TDB传输数据库
09-TTS传输表空间HPUX到Linux
10-TTS和TDB数据迁移总结
11-FTE完全传输导出
12-单机到RAC-ASM环境数据迁移-1
13-单机到RAC-ASM环境数据迁移-2
exp,expdp,rman,ogg
1.跨平台同版本迁移
(win->linux) 11.2.0.4->11.2.0.4
2.跨平台跨版本迁移
(win->linux) 11.2.0.1/0.2->11.2.0.4
(win->linux) 11.2.0.3->11.2.0.4
3.单机->RAC
MOS文档:413484.1
select platform_id,platform_name from v$database; --查询当前数据库版本
select * from v$transportable_platform; --查询支持的数据库版本
跨平台win->linux数据迁移:
如果是相同数据库版本,停机,直接cp,或者rman备份集,可以直接open
必须是冷备/一致性备份,不能应用归档日志
不能热备rman 应用归档
数据量少可以使用exp/imp,expdp/impdp,方便快捷
可以使用dataguard(同版本,跨版本)
假定一个前提:归档模式
迁移结果:数据不能丢失
停机时间:长还是短的问题
1.单机到单机迁移(停机)
2.单机到单机迁移(尽量减少停机时间)
3.单机到RAC迁移(尽量减少停机时间)
2种方式:
1.直接复制文件,重建控制文件
2.使用RMAN备份集,不能做热备,recover应用日志,mount读控制文件
停机时间:数据传输+restore
4小时 迁移2TB
切换时间 短
数据文件、redo文件、不需要拷贝归档文件。
查询字符集及数据库版本:
select * from nls_database_parameters;
查询数据启动状态
select status from v$instance;
查询数据文件所在位置:
select * from v$dbfile;
备份控制文件
alter database backup controlfile to trace as ‘d:\ctl.trc’;
1、拷贝数据文件、redo文件、不需要拷贝归档文件。
–关闭数据库状态下
刷新 SGA 数据到数据文件
Alter system flush buffer_cache;(可重复执行几次)
写检查点
Alter system checkpoint;(可重复执行几次)
shutdown immediate
拷贝文件(所有的数据文件、redo文件):
D:\app\Administrator\oradata
创建参数文件:
STARTUP NOMOUNT CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS ARCHIVELOG MAXLOGFILES 16 MAXLOGMEMBERS 3 MAXDATAFILES 100 MAXINSTANCES 8 MAXLOGHISTORY 292 LOGFILE GROUP 1 '/u01/app/oracle/oradata/orcl/REDO01.LOG' SIZE 50M BLOCKSIZE 512, GROUP 2 '/u01/app/oracle/oradata/orcl/REDO02.LOG' SIZE 50M BLOCKSIZE 512, GROUP 3 '/u01/app/oracle/oradata/orcl/REDO03.LOG' SIZE 50M BLOCKSIZE 512 DATAFILE '/u01/app/oracle/oradata/orcl/SYSTEM01.DBF', '/u01/app/oracle/oradata/orcl/SYSAUX01.DBF', '/u01/app/oracle/oradata/orcl/UNDOTBS01.DBF', '/u01/app/oracle/oradata/orcl/USERS01.DBF' CHARACTER SET ZHS16GBK ;
打开数据库:
alter database open;
添加临时文件:
alter tablespace temp add tempfile '/u01/app/oracle/oradata/fxcms/temp01.dbf' size 100M reuse autoextend on next 100M maxsize 20G;
注意事项:IP问题
–注意跨平台不能应用归档日志文件,因此需要做冷备/一致性备份
–修改rman备份路径,并备份数据库:
configure channel device type disk format 'd:\rman\%U';
backup database;
–恢复控制文件(启动到nomount下,在rman里执行恢复)
restore controlfile from ‘/u01/backup/02U79L4N_1_1’;
–启动到mount
alter database mount;
–清除过期的备份集,重新注册拷贝的备份集
crosscheck archivelog all; --查看可以所有的归档文件
delete expired archivelog all; --清空过期的归档文件
catalog start with ‘/u01/backup’;
RMAN> report schema;
–指定路径执行恢复数据文件
run {
set newname for datafile 1 to '/u01/app/oracle/oradata/fxcms/SYSTEM01.DBF';
set newname for datafile 2 to '/u01/app/oracle/oradata/fxcms/SYSAUX01.DBF';
set newname for datafile 3 to '/u01/app/oracle/oradata/fxcms/UNDOTBS01.DBF';
set newname for datafile 4 to '/u01/app/oracle/oradata/fxcms/USERS01.DBF';
restore database;
switch datafile all;
}
–或者批量指定
set newname for database to ‘/u01/app/oracle/oradata/fxcms/%U’;
list failure;
list failure detail;
advise failure;
repair failure preview;
repair failure;
recover database应用归档会有如下错误:
alter database open resetlogs; --启动数据库
日志文件处理(添加一个,删除一个)
临时文件处理(添加一个临时表空间,删除原来的临时表空间)
win->linux
使用dataguard技术,可以跨系统、跨版本
停机时间:数据库升级时间,应用切换时间,IP地址切换等因素,需要做充分测试。
数据不能丢失
(win->linux) 11.2.0.4->11.2.0.4:
此时不能采取cp方式,也不能采用RMAN备份集方式,需要使用dataguard跨平台同步
相同数据库版本可以直接open数据库。
做个switchover切换,或者failover切换。即完成数据迁移,停机时间短。
上T,修改IP。分钟级别完成。
【DataGuard主库参数配置】
select force_logging from v$database;
alter database force logging;
alter system set log_archive_format='%t_%s_%r.arc' scope=spfile; alter system set log_archive_config='DG_CONFIG=(fxcms,sbdb)' scope=both; alter system set log_archive_dest_1='LOCATION=d:\arch VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=fxcms' scope=both; alter system set log_archive_dest_2='SERVICE=tnssbdb LGWR SYNC AFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=sbdb' scope=both; alter system set db_file_name_convert='/u01/app/oracle/oradata/fxcms/','D:\APP\ADMINISTRATOR\ORADATA\FXCMS\' scope=spfile; alter system set log_file_name_convert='/u01/app/oracle/oradata/fxcms/','D:\APP\ADMINISTRATOR\ORADATA\FXCMS\' scope=spfile; alter system set standby_file_management=auto; alter system set fal_server='tnssbdb' scope=both; alter system set fal_client='tnsfxcms' scope=both;
TNSSBDB = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.230.100)(PORT = 1522)) ) (CONNECT_DATA = (SERVICE_NAME = fxcms) ) ) TNSFXCMS = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.230.155)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = fxcms) ) )
【DataGuard物理备库参数配置】
1.拷贝密码文件
主库和备库的SYS密码必须一致。
2.参数配置
db_name='fxcms'
db_unique_name='sbdb'
sga_target=2G
pga_aggregate_target=800M
audit_file_dest='/u01/app/oracle/admin/sbdb/adump'
compatible='11.2.0.4.0'
control_files='/u01/app/oracle/oradata/fxcms/control01.ctl','/u01/app/oracle/oradata/fxcms/control02.ctl'
log_archive_config='DG_CONFIG=(fxcms,sbdb)'
log_archive_dest_1='LOCATION=/u01/arch VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=sbdb'
log_archive_dest_2='SERVICE=tnsfxcms LGWR SYNC AFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=fxcms'
db_file_name_convert='D:\APP\ADMINISTRATOR\ORADATA\FXCMS\','/u01/app/oracle/oradata/fxcms/'
log_file_name_convert='D:\APP\ADMINISTRATOR\ORADATA\FXCMS\','/u01/app/oracle/oradata/fxcms/'
–注意windows路径需要大写
fal_client='tnssbdb'
fal_server='tnsfxcms'
standby_file_management='AUTO'
3.配置静态监听
listener.ora
LISTENER1 =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.230.100)(PORT = 1522))
)
)
)
SID_LIST_LISTENE
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。