当前位置:   article > 正文

Oracle 数据迁移_alter database recover

alter database recover

一、数据迁移课程概述

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;  --查询支持的数据库版本
  • 1
  • 2

跨平台win->linux数据迁移:
如果是相同数据库版本,停机,直接cp,或者rman备份集,可以直接open
必须是冷备/一致性备份,不能应用归档日志
不能热备rman 应用归档

数据量少可以使用exp/imp,expdp/impdp,方便快捷

可以使用dataguard(同版本,跨版本)

假定一个前提:归档模式
迁移结果:数据不能丢失

停机时间:长还是短的问题

1.单机到单机迁移(停机)
2.单机到单机迁移(尽量减少停机时间)
3.单机到RAC迁移(尽量减少停机时间)

2.1 单机到单机迁移(停机),相同数据库版本11.2.0.4

2种方式:
1.直接复制文件,重建控制文件
2.使用RMAN备份集,不能做热备,recover应用日志,mount读控制文件
停机时间:数据传输+restore

4小时 迁移2TB
切换时间 短

2.1.1.直接复制文件,重建控制文件

数据文件、redo文件、不需要拷贝归档文件。
查询字符集及数据库版本:
select * from nls_database_parameters;
查询数据启动状态
select status from v$instance;
查询数据文件所在位置:

select * from v$dbfile;
  • 1

备份控制文件
alter database backup controlfile to trace as ‘d:\ctl.trc’;

1、拷贝数据文件、redo文件、不需要拷贝归档文件。
–关闭数据库状态下

刷新 SGA 数据到数据文件
Alter system flush buffer_cache;(可重复执行几次)
写检查点
Alter system checkpoint;(可重复执行几次)
shutdown immediate
  • 1
  • 2
  • 3
  • 4
  • 5

拷贝文件(所有的数据文件、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
;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

打开数据库:
alter database open;

添加临时文件:

alter tablespace temp add tempfile '/u01/app/oracle/oradata/fxcms/temp01.dbf' size 100M  reuse autoextend on next 100M  maxsize 20G;
  • 1

注意事项:IP问题

2.1.2 使用RMAN备份集

–注意跨平台不能应用归档日志文件,因此需要做冷备/一致性备份
–修改rman备份路径,并备份数据库:

configure channel device type disk format 'd:\rman\%U';
backup database;

  • 1
  • 2
  • 3

–恢复控制文件(启动到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;
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

–或者批量指定
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

2.2 单机到单机迁移(尽量减少停机时间)

使用dataguard技术,可以跨系统、跨版本
停机时间:数据库升级时间,应用切换时间,IP地址切换等因素,需要做充分测试。
数据不能丢失
(win->linux) 11.2.0.4->11.2.0.4:
此时不能采取cp方式,也不能采用RMAN备份集方式,需要使用dataguard跨平台同步
相同数据库版本可以直接open数据库。
做个switchover切换,或者failover切换。即完成数据迁移,停机时间短。
上T,修改IP。分钟级别完成。

【DataGuard主库参数配置】

2.2.1 启用force logging功能

select force_logging from v$database;
alter database force logging;
  • 1
  • 2

2.2.2 配置参数

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;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

2.2.3 配置TNS

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)
    )
  )

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

【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/'
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

–注意windows路径需要大写

fal_client='tnssbdb'
fal_server='tnsfxcms'
standby_file_management='AUTO'
  • 1
  • 2
  • 3

3.配置静态监听
listener.ora

LISTENER1 =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.230.100)(PORT = 1522))
      )
    )
  )

SID_LIST_LISTENE
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号