oracle 备份恢复 10实例迁移

一、exp/imp按用户导出,导入(兼容性强,可以导出对象可以自定义),可夸版本及平台,存在即跳过。
1.确认两边环境的语言及编码相同
    客户端导出编码:NLS_LANG,chcp,
    查看注册表:HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMExx\
    设置:C:\Users\Fang>set NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
    数据库编码:
    select * from nls_database_parameters where  parameter ='NLS_CHARACTERSET';       -- ZHS16GBK 数据库
    select * from nls_database_parameters where  parameter ='NLS_NCHAR_CHARACTERSET'; -- AL16UTF16 国家
2.创建与源库相同的表空间
查询表空间位置
    SELECT TABLESPACE_NAME,FILE_ID,FILE_NAME,ROUND(BYTES / (1024 * 1024), 0) TOTAL_SPACE
    FROM DBA_DATA_FILES ORDER BY TABLESPACE_NAME;
创建表空间 
    create tablespace USERS1 datafile 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCLDB\USERS101.DBF'
    size 20M reuse autoextend on next 5m;
表空间增加数据文件
    alter tablespace USERS1 add datafile 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCLDB\USERS102.DBF' size 5M;
可通过导出DMP文件查看确认具体用户及权限设置
3.创建源库相同的用户,指定用户默认的表空间
    SELECT 'create user ' || USERNAME || ' identified by ' || USERNAME ||
    ' default tablespace ' || DEFAULT_TABLESPACE ||' ; ' FROM DBA_USERS;  
用户分配连接和资源权限(system要有的权限,用sys用户给system授权)
    GRANT EXP_FULL_DATABASE,IMP_FULL_DATABASE TO SYSTEM;
    GRANT CONNECT,RESOURCE,create view,unlimited tablespace TO scott;
    alter user scott default role all;
4.按用户导出导入库数据
    exp system/system@orcldb file=c:\multi_owner.dmp log=c:\multi_owner.log   owner=(BI,HR,SCOTT) 
    imp system/system@orcldb file=c:\multi_owner.dmp log=c:\multi_owner.log   fromuser=(BI,HR,SCOTT) touser=(BI,HR,SCOTT) 
    imp system/system@orcldb file=c:\multi_owner.dmp log=c:\multi_owner.log   full=y 
5.全库导出按用户导入数据(导入时用户顺序不依照书写顺序进行,可查看导入日志的顺序,全库导入比较慢) 
    exp system/system@orcldb file=c:\daochudi_system_duoyonghu.dmp full=y  LOG=c:\daochudi_system_duoyonghu.log
    imp system/system@orcldb file=c:\daochudi_system_duoyonghu.dmp log=c:\multi_owner316_2.log   fromuser=(BI,SCOTT) touser=(BI,SCOTT)
6.核对源库与目标库信息
    select owner,count(object_id) total_obj,object_type type from dba_objects group by owner,object_type order by owner;
    
二、数据泵按方案导出导入,只支持10g及以后版本,只能在服务器端执行,导出导入时候不需要设置字符集,需指定Directory
1.在目标库上创建需要的表空间,不用创建用户
2.在源库创建目录按方案导出数据
    create directory dump_exp as 'C:\exp';
    grant read , write on directory dump_exp to BI,HR,SCOTT,system;
    expdp system/system@orcldb directory=dump_exp dumpfile=users.dmp logfile=expdp_test.log  schemas=BI,HR,SCOTT
3.目标库上创建目录按方案导入数据
    create directory dump_imp as 'C:\imp';
    grant read , write on directory dump_imp to BI,HR,SCOTT,system;
    impdp system/system@orcldb directory=dump_imp dumpfile=users.dmp logfile=expdp_test_imp.log  schemas=BI,HR,SCOTT

三、冷备迁移:
    要求源数据库与目标数据库sid、实例名、归档模式、数据块大小、数据库大版本,所在OS及硬件平台相同,文件结构
尽量一致(可修改)。要求目标数据库服务器要安装数据库软件,可以没有实例。
1、收集源库上的数据块结构信息(spfile,passwordfile,dbf,ctl,log,archive,flashback等)
    select INSTANCE_NAME,VERSION from v$instance;
    select NAME,LOG_MODE,FLASHBACK_ON from v$database;
    select name,block_size,bytes/1024/1024 from v$tempfile;
    select name,block_size,bytes/1024/1024 from v$datafile;
    select name from v$tablespace;
    select name,block_size,status from v$controlfile;
    select GROUP#,SEQUENCE#,BYTES/1024/1024,MEMBERS,STATUS from v$log;
    select GROUP#,STATUS,MEMBER from v$logfile;
    show parameter spfile;
    select dest_name,status,destination from v$archive_dest;
    show parameter db_recovery_file_dest;
2、操作源库创建目标库实例,确保数据库sid、实例名、归档模式、数据块大小相同,文件目录尽量相同
3、正常关闭源库、目标库,冷备,将源库文件考至目标库对应目录,注意参数文件中需要的路径都要有
4、确认两库的环境变量,逐步启动数据库,查询确认各类文件
5、执行utlrp.sql脚本,编译所有无效对象。
6、检查目标库的监听和tnsnames.ora文件,确保监听正常,通过网络服务名访问正常
7、迁移技巧
拼接生成拷贝语句(两机器映射磁盘,共享等方式拷贝)
    select 'scp '||name||'  z:\orcl\'||  substr(name, instr(name, '\', -1) + 1) cmd  from v$controlfile
两库路径文件路径不同时修改语句(ctl,dbf,log,tmpfile)
    startup nomount
    alter system set control_files='/oradata/orcl/control01.ctl','/oradata/orcl/control02.ctl' scope=spfile;
    alter database rename file ''  to '';
    select 'ALTER DATABASE RENAME FILE '''||name||''' to ''d:\oradata\orcl\'||  substr(name, instr(name, 
    '\', -1) + 1)||'''; ' cmd  from v$datafile;
    
四、网内利用DBLINK迁移
配置目标库到源库的网络服务名,tnsnames.ora确保可以正常连接源库
创建DBLINK
    create [public]database link DB_Link_name connect to username identified by passwd using 'connectstaring';
访问对象要通过 objectname@DB_Link_name,可以创建同义词
    create synonym synonym_name for table_name@DB_Link;

五、利用RMAN迁移数据库(利用丢失控制文件完全恢复原理)
主要优点是可以跨操作系统硬件平台?
1.全备源库:
run{
sql 'alter system switch logfile';
allocate channel c1 type disk;
allocate channel c2 type disk;
backup database format '/u01/backup/rman_%d_%s_%p.bak' include current controlfile plus archivelog delete input format '/u01/backup/arch_%U.bak';
}
2.将源库的备份集拷贝至目标库目录(同一个目录),pfile,口令文件,联机日志文件拷贝至目标库对应目录
3.目标库上利用pfile启动到 nomount 还原控制文件,还原恢复数据库
    startup nomount pfile='/u01/app/oracle/product/10.2.0/db_1/dbs/initipemsdb.ora';    
    restore controlfile from '/u01/app/backdir/rman/controlfile/c-2694191837-20150811-00';
    alter database mount;
    restore database;
    recover database;
4.如果未拷贝日志文件,因为控制文件记录的日志文件不同可以手动取消恢复。
    SQL> conn / as sysdba  
    Connected.  
    idle> recover database until cancel;  
    ORA-00283: recovery session canceled due to errors  
    ORA-01610: recovery using the BACKUP CONTROLFILE option must be done  
    SQL> recover database using backup controlfile until cancel;  
    ORA-00279: change 608805162 generated at 10/13/2012 06:31:44 needed for thread 1  
    ORA-00289: suggestion : /u02/database/SY5221/archive/arch_668881377_1_143388.arc  
    ORA-00280: change 608805162 for thread 1 is in sequence #143388         
    Specify log: {<RET>=suggested | filename | AUTO | CANCEL}  
    cancel      #输入cancel,完成介质恢复   
    Media recovery cancelled.
    RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
    RMAN-00571: ===========================================================
    RMAN-03002: failure of recover command at 08/14/2015 04:16:04
    RMAN-06054: media recovery requesting unknown log: thread 1 seq 95 lowscn 4134339
    recover database;
    alter database open resetlogs;
    
六、利用 RMAN duplicate 命令克隆复制数据库
1.备份源库dbf,ctl,archvielog,并将备份集拷贝至目标库相同目录
2.拷贝源库的pfile值目标库,并修改必要信息,如数据库名称、实例名称
3.配置源库与目标库的网络连接
4.目标库创建密码文件,并通过pfile启动数据库至nomount状态
    orapwd file=D:\oracle\product\10.2.0\Db_1\database\PWDPETER.ora password=oracle entries=3
5.连接源库和目标库运行rman复制命令,还原所有数据文件,重新创建控制文件,并利用新的参数文件启动恢复
数据库到一致状态,最后用resetlog方式打开数据库,创建指定的redolog。复制命令也可以从磁带上的备份进行
复制,并改变数据库名称,也可以改变数据库文件的新的路径以及恢复到以前的时间点,跳过不需要复制的表空
间等。
    RUN{
    ALLOCATE AUXILIARY CHANNEL newdb1 DEVICE TYPE disk;
    DUPLICATE TARGET DATABASE TO ipemsdb
    lOGFILE
    GROUP 1 ('/u01/app/oracle/oradata/ipemsdb/onlinelog/redo01_1.log',
    '/u01/app/oracle/oradata/ipemsdb/onlinelog/redo01_2.log') SIZE 50m,
    GROUP 2 ('/u01/app/oracle/oradata/ipemsdb/onlinelog/redo02_1.log',
    '/u01/app/oracle/oradata/ipemsdb/onlinelog/redo02_2.log') SIZE 50m,
    GROUP 3 ('/u01/app/oracle/oradata/ipemsdb/onlinelog/redo03_1.log',
    '/u01/app/oracle/oradata/ipemsdb/onlinelog/redo03_2.log') SIZE 50m REUSE;
    }          
    
克隆的数据库因dbid相同,无法同时使用rman catalog可以修改dbid
参考资料:
file:///F:/oracle/官方文档/10G/10G/server.102/b14215/dbnewid.htm#i1005317

七、手动复制数据库实例(源数据库名称: orcl,目标库:Peter)
1.参照源库创建目标库需要的文件目录
    数据库文件目录(dbf,ctl,redo)
    运行信息目录../admin/目录(各种dump)
    生成参数文件,修改pfile的方式生成
    创建密码文件
        orapwd file=D:\oracle\product\10.2.0\Db_1\database\PWDPETER.ora password=PETER entries=3
    创建Oracle实例服务(通过命令行进行创建,服务名称为OracleServicePETER)
        oradim –new –sid PETER–intpwd PETER;
2.将源库的控制文件生成trc文件,修改创建控制文件脚本中数据库实例名,将reuse修改为set,同时修改数据文件和日志文件
的目录为目标数据库存在的目录。    
3.通过冷备方式将源库的数据库文件目录拷贝至目标库(dbf,log)
4.配置开库
    先启动目标数据库PETER的数据库服务,OracleServicePETER
    sqlplus /nolog
    conn / as sysdba
    startup nomount    
    脚本创建控制文件
    alter database mount
    alter database open resetlogs
5.配置目标库的监听和tnsnames.ora

八、RMAN 跨平台迁移
    用RMAN做整库迁移,比较方便,主要优点是可以跨操作系统硬件平台。面是一个将linux系统迁移到wimdows系统
的具体实施步骤(当然在32位linux和32位windows之间,可以直接复制数据文件,无需这么麻烦,此处为举例演示)
1.以read only模式打开数据库
    startup open read only;
2.转换数据文件
    RMAN target /
    run{
    convert database transport script '/home/Oracle/temp/transcript.sql'
    on target platform convert script '/home/oracle/temp/convert.sql'
    to platform 'Microsoft Windows IA (32-bit)'
    db_file_name_convert('/oracle/oradata/orcl','/home/oracle/temp');
    };
3.将参数文件、数据文件、转换脚本,拷贝到windows平台上
4.在windows平台上建立数据库实例,然后依次执行脚本convert.sql、transcript.sql
5.打开数据库,执行utlrp.sql,编译无效数据库对象。
参考资料:
http://blog.csdn.net/evils798/article/details/8470342
http://blog.csdn.net/davidhsing/article/details/6408770

转载于:https://my.oschina.net/peakfang/blog/2245461

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle 10g->11g XTTS迁移方案 Oracle 9i至11g exp迁移 Oracle数据库三种迁移方案 Oracle DataGuard方式迁移数据库 数据库迁移升级最佳实践9i-10g-11g Oracle ASM扩容&数据迁移文档 06使用XTTS技术进行U2L跨平台数据迁移 Oracle 迁移至 PostgreSQL 在华为 ARM 上的解决方案 rman异机迁移 迁移 ORACLE数据库和应用异构迁移最佳实践_樊文凯 数据库信息收集表-Oracle数据库迁移升级场景-云和恩墨 零停机时间完成Oracle 上云迁移 OGG能够复制迁移包含CLOB字段的table? Oracle数据库迁移从Windows到Linux Oracle数据库迁移从Windows到Linux 18小时停机时间完成230TB数据从AIX到Linux的迁移 数据库-Oracle11gR2-RAC-with-ASM存储迁移 PDB迁移和克隆 【深度好文】ORACLE 11.2.0.4到ORACLE 19.3 PDB XTTS迁移方案测试 某医院_数据库迁移升级_实施方案 升级迁移整合守则与实践 某医院HIS核心库XTTS迁移实施方案_云和恩墨_20191126_v1.0 Oracle 11g R2 RAC with ASM存储迁移-手记 ORACLE实用技巧之不知道密码情况下dblink的迁移 Oracle 19C 升级、整合、迁移 Oracle11g单实例迁移到RAC架构方案v1.1 如何利用 RMAN 可传输表空间迁移数据库到不同字节序的平台 (Doc ID 1983639.1) 如何利用 RMAN 可传输表空间迁移数据库到不同字节序的平台 (Doc ID 1983639.1) 跨 OS 平台迁移 Oracle DB (Generic Platform) (Doc ID 1525396.1) RAC的备份迁移恢复 如何利用 RMAN 可传输表空间迁移数据库到不同字节序的平台 (Doc ID 1983639.1) Oracle数据库基于XTTS技术的数据库迁移技术探讨 某医院_数据库迁移升级_实施方案 跨平台迁移都可以通过XTTS实现 Oracle Database Upgrade and Migration Methods - 数据库升级迁移方法 xtts迁移方案-u2l-v3.5 ORACLE 11G RAC迁移至单机

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值