迁移: (10g 64老机器,老存储) ------》(11g 64新机器,新存储)
注意要点:新老服务的时间,字符集,sid
升级顺序:10.2.0.1------>10.2.0.4或10.2.0.5---->11.2.0.1

新机器上安装2套oracle 目标11G数据库软件 和10g oracle软件
操作步骤完全一样,当 新库10g能打开时,关库,让新库11g 以 升级模式打开,升级库,即可

old:
1.关闭监听,和业务连接。先做全库备份:
lsnrctl stop
sqlplus as sysdba
alter system switch logfile;
alter system switch logfile;
$ rman target / log=/home/oracle/rman/log/dqianyi_rman.log
RMAN> backup database format '/home/oracle/backup/full_%d_%T_%s_%p.bak';

2.确定位置名称:
SQL> select file#,ts#,name from v$datafile;

FILE# TS# NAME
---------- ---------- ---------------------------------------------
1 0 /u01/app/ora10g/oradata/ora10g/system01.dbf
2 1 /u01/app/ora10g/oradata/ora10g/undotbs01.dbf
3 2 /u01/app/ora10g/oradata/ora10g/sysaux01.dbf
4 4 /u01/app/ora10g/oradata/ora10g/users01.dbf

3.备份数据文件,参数文件,控制文件
写成脚本:
[oracle@k214 log]$ cat x.sh
#!/bin/bash
rman target / log=/home/oracle/rman/log/1qianyi_rman.log << EOF
run
{allocate channel c1 type disk;
allocate channel c2 type disk;
copy
datafile '/u01/app/ora10g/oradata/ora10g/system01.dbf' to '/u01/new/system01.dbf',
datafile '/u01/app/ora10g/oradata/ora10g/undotbs01.dbf' to '/u01/new/undotbs01.dbf',
datafile '/u01/app/ora10g/oradata/ora10g/sysaux01.dbf' to '/u01/new/sysaux01.dbf',
datafile '/u01/app/ora10g/oradata/ora10g/users01.dbf' to '/u01/new/users01.dbf';
}
EOF

============================
备份控制文件
sqlplus / as sysdba
alter database backup controlfile to trace as '/home/oracle/new_ctl.sql';
RMAN> BACKUP CURRENT CONTROLFILE format '/home/oracle/arch/con_%d_%T_%s_%p.ctl'; --这步不需要
=============================

4. 打包数据文件并远程拷贝:
cd /u01
zip -qr new.zip new
scp -P22 /u01/new.zip 192.168.0.215:/u01/

下面5.6都是中断时间
5.备份归档 然后关机(关机开始中断)
#!/bin/bash
rman target / nocatalog log /home/oracle/rman/log/rman_arch.log append<<EOF
run
{allocate channel c1 type disk;
backup archivelog all format '/home/oracle/arch/arch_%d_%T_%s_%p';
}
shutdown immediate //备份归档可以分多次去做,但是最后一次做完要关机
EOF

6.打包和远程拷贝:
cd /home/oracle/
zip -qr arch.zip arch
scp -P22 /home/oracle/arch.zip 192.168.0.215:/u02/backup/

#7.拷贝redo 到new机器存储上
scp /u01/app/ora10g/oradata/ora10g/red* 192.168.0.215:/u01/new/
可以拷贝多次,最关键的就是最后一次。

===================================================================

new:
安装完11g 64 oracle软件,还没有建库,但是已经有监听了。
1.解压数据文件包和归档文件包
su - oracle
cd /u01 ;unzip new.zip
cd /u02/backup/ ;unzip arch.zip

2.修改参数文件并建立目录:
cat /u01/app/oracle/dbs/new.ora
orcl.__db_cache_size=67108864
orcl.__java_pool_size=4194304
orcl.__large_pool_size=4194304
orcl.__oracle_base='/u01/app'#ORACLE_BASE set from environment
orcl.__pga_aggregate_target=146800640
orcl.__sga_target=276824064
orcl.__shared_io_pool_size=0
orcl.__shared_pool_size=130023424
orcl.__streams_pool_size=8388608
*.audit_file_dest='/u01/app/admin/orcl/adump'
*.audit_trail='db'
*.compatible='11.2.0.0.0'
*.control_files='/u01/new/control01.ctl','/u01/new/control02.ctl','/u01/new/control03.ctl'
*.db_2k_cache_size=52428800
*.db_block_size=8192
*.db_domain=''
*.db_name='ora10g'
*.db_recovery_file_dest='/u01/app/flash_recovery_area'
*.db_recovery_file_dest_size=4039114752
*.diagnostic_dest='/u01/app'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'
*.log_archive_dest_1='location=/u01/backup/arch'
*.log_archive_format='%t_%s_%r.dbf'
*.memory_target=422576128
*.open_cursors=300
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.undo_tablespace='UNDOTBS1'

建立目录:
mkdir -p /u01/backup/arch
mkdir -p /u01/app/admin/orcl/adump
mkdir -p /u01/app/flash_recovery_area

3.启动oracle 到mount
SQL> startup nomount pfile=/u01/app/oracle/dbs/new.ora;

====================================

主库备份:
全部备份文件放在一个路径,顺序是 数据文件,归档,控制文件。
1.库全备:
backup database format='/home/oracle/rman/%U_%s.bak';
alter system archive log current
alter system switch logfile

2.归档全备:
BACKUP ARCHIVELOG ALL format='/home/oracle/rman/%U_%s.arc';
BACKUP ARCHIVELOG 命令比较灵活, ALL 是指备份当前所有可访问到的归档文件,你还可以通过 UNTIL 、 SCN 、 TIME 、 SEQUENCE 等参数灵活指定要备份的归档区间,这里不再一一演示,感兴趣的朋友可以自行尝试。

3.控制文件备份:
BACKUP CURRENT CONTROLFILE format='/home/oracle/rman/%U_%s.ctl';

cd /home/oracle
zip -qr rman.zip rman
scp rman.zip k101:/home/oracle/

备库:
存放rman备份集合的地方和主库一致(因为在修复控制文件后,修复数据库(restore)和恢复数据库(recover,需要归档的)这个时候通过控制文件找到响应的路径(主库所在的路径)
su- oracle
[oracle@k101 ~]$unzip rman.zip
[oracle@k101 rman]$ cd /home/oracle/rman
[oracle@k101 rman]$ ll
total 310428
-rw-r----- 1 oracle oinstall 291266560 Oct 9 02:13 01pkjad1_1_1_1.bak
-rw-r----- 1 oracle oinstall 7143424 Oct 9 02:13 02pkjadq_1_1_2.bak
-rw-r----- 1 oracle oinstall 12023296 Oct 9 02:32 03pkjbhr_1_1_3.arc
-rw-r----- 1 oracle oinstall 7110656 Oct 9 02:35 04pkjboa_1_1_4.ctl
rman>restore controlfile from '/home/oracle/rman/04pkjboa_1_1_4.ctl';
SQL>alter database mount;
rman>restore database from '/home/oracle/rman/04pkjboa_1_1_4.ctl';
RMAN> restore database; //修复数据库文件
RMAN> recover database; //先自动修复归档,然后恢复数据库文件,这里将报错
看报错信息,能看到rman归档追加到多少号了

=====================================

4.手动建立控制文件(由于之前远程拷贝redo,因此可以顺利打开):
SQL>CREATE CONTROLFILE REUSE DATABASE "ORA10G" NORESETLOGS ARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 '/u01/new/redo01.log' SIZE 50M,
GROUP 2 '/u01/new/redo02.log' SIZE 50M,
GROUP 3 '/u01/new/redo03.log' SIZE 50M
DATAFILE
'/u01/new/system01.dbf',
'/u01/new/undotbs01.dbf',
'/u01/new/sysaux01.dbf',
'/u01/new/users01.dbf'
CHARACTER SET ZHS16GBK
;

确定数据库是否为mount状态:
SQL> select status from v$instance;

STATUS
------------
STARTED

SQL> alter database mount;
Database altered.

5.建立spfile
SQL> create spfile from pfile='/u01/app/oracle/dbs/new.ora';
SQL>shutdown abort
SQL> startup;
Database mounted.
ORA-01113: file 1 needs media recovery
ORA-01110: data file 1: '/u01/new/system01.dbf'

6.让数据库识别新的rman备份集位置:
[oracle@k215 arch]$ rman target / log=/home/oracle/rman/log/know_qianyi_rman.log
RMAN> catalog start with '/u02/backup/arch/';

7.解压归档:
RMAN>recover database; //会报错,但是会自动解压归档

8.有了归档,就可以进行常规介质恢复:
SQL> recover database using backup controlfile until cancel;
/u01/backup/arch/1_16_860079637.dbf
SQL> recover database using backup controlfile until cancel;
/u01/new/redo01.log
SQL> recover database using backup controlfile until cancel;
/u01/new/redo02.log
SQL> recover database using backup controlfile until cancel;
/u01/new/redo03.log

Log applied.
Media recovery complete.

9.升级数据库(10.2.0.1------>10.2.0.4或10.2.0.5---->11.2.0.1):
SQL> alter database open resetlogs upgrade;
SQL> shutdown immediate;
SQL> startup upgrade;
SQL> spool /home/oracle/patch.log
SQL> @?/rdbms/admin/catupgrd.sql
SQL> spool off

SQL> startup(数据库可以正常启动) 在运行下面的脚本(重新编译PL/SQL包,使其能够被使用)
SQL> @ /rdbms/admin/utlrp.sql

10.全备

=============
alter database rename file '/u02/app/PROD/oradata/PROD/redo01.log' to '/u01/app/PROD/oradata/PROD/redo01.log';
alter database rename file '/u02/app/PROD/oradata/PROD/redo02.log' to '/u01/app/PROD/oradata/PROD/redo02.log';
alter database rename file '/u02/app/PROD/oradata/PROD/redo03.log' to '/u01/app/PROD/oradata/PROD/redo03.log';

alter database rename file '/u02/app/PROD/oradata/PROD/users01.dbf' to '/home/oracle/datafile/users01.dbf';
alter database rename file '/u02/app/PROD/oradata/PROD/sysaux01.dbf' to '/home/oracle/datafile/sysaux01.dbf';
alter database rename file '/u02/app/PROD/oradata/PROD/undotbs01.dbf' to '/home/oracle/datafile/undotbs01.dbf';
alter database rename file '/u02/app/PROD/oradata/PROD/system01.dbf' to '/home/oracle/datafile/system01.dbf';
alter database rename file '/u02/app/PROD/oradata/PROD/example01.dbf' to '/home/oracle/datafile/example01.dbf';

ORACLE数据库_迁移(新机器,新存储)的更多相关文章

  1. Oracle数据库部分迁至闪存存储方案

    Oracle数据库部分迁至闪存存储方案 1.实施需求 2.确认迁移表空间信息 3.确认redo信息 4.确认undo信息 5.表空间迁移到闪存 6.redo迁移到闪存 7.undo迁移到闪存 8.备库 ...

  2. [转帖]亚马逊彻底去掉 Oracle 数据库:迁移完成

    亚马逊彻底去掉 Oracle 数据库:迁移完成 https://mp.weixin.qq.com/s/KFonq8efDZ5K6x4YzIVbbg 云头条的信息挺不错的.. 2019 年 10 月 1 ...

  3. ABP框架EF6链接Oracle数据库手动迁移

    环境:VS2017 + ABP官方模板(不含Zero) +Oracle 11Gx64DB  + Oracle 11Gx32Client(PLSQL工具访问) 一.Abp项目的下载以及运行 1.创建ab ...

  4. oracle数据库的迁移(从一台服务器到另一个台服务器,从oracle 10g到oracle 11g)

    这个过程呢,还是蛮艰难的.... 一.最初我使用的是Navicat中的数据传输来迁移的,虽说整个数据库的迁移没有成功,但传输指定的对象时还是传输成功了.所以还是记录一下吧. 1.前提连接好数据库.在指 ...

  5. oracle数据库_实例_用户_表空间之间的关系(转)

    数据库:Oracle数据库是数据的物理存储.这就包括(数据文件ORA或者DBF.控制文件.联机日志.参数文件).其实Oracle数据库的概念和其它数据库不一样,这里的数据库是一个操作系统只有一个库.可 ...

  6. oracle数据库_实例_用户_表空间之间的关系

    基础概念:Oracle数据库.实例.用户.表空间.表之间的关系 数据库:Oracle数据库是数据的物理存储.这就包括(数据文件ORA或者DBF.控制文件.联机日志.参数文件).其实Oracle数据库的 ...

  7. Oracle数据库逻辑迁移之数据泵的注意事项

    环境:数据迁移,版本 11.2.0.4 -> 12.2.0.1 思考: 对于DBA而言,常用物理方式的迁移,物理迁移的优势不必多说,使用这种方式不必担心对象前后不一致的情况,而这往往也解决了不懂 ...

  8. oracle 数据库数据迁移解决方案

    大部分系统由于平台和版本的原因,做的是逻辑迁移,少部分做的是物理迁移,接下来把心得与大家分享一下   去年年底做了不少系统的数据迁移,大部分系统由于平台和版本的原因,做的是逻辑迁移,少部分做的是物理迁 ...

  9. CentOS以及Oracle数据库发展历史及各版本新功能介绍, 便于构造环境时有个对应关系

    CentOS版本历史 版本 CentOS版本号有两个部分,一个主要版本和一个次要版本,主要和次要版本号分别对应于RHEL的主要版本与更新包,CentOS采取从RHEL的源代码包来构建.例如CentOS ...

随机推荐

  1. python修炼第三天

    今天主要讲了文件操作,函数与装饰器,装饰器比较烧脑,需要多做练习,逐步分解来进行理解!    加油! 一 文件操作 操作系统 提供文件的概念可以操作磁盘. 文件的只读模式: 注意如果是windows ...

  2. 阿里云已买到域名价格统计js代码

    var sum = 0; $('.table-hover tr.ng-scope').each(function(){ sum = sum + parseInt($(this).children()[ ...

  3. 关于xml的相关知识

     1 xml定义和用途  定义:XML (eXtensible Markup Language)即可扩展标记语言,它与HTML一样,都是SGML(Standard Generalized Markup ...

  4. 分享我编写的powershell脚本:ssh-copy-id.ps1

      问:通过[字符串界面].如何从win,通过ssh,连接到sshd?答:在任意版本win中,通过cmd.exe,powershell.exe中调用ssh.exe,连接sshd.   问:通过[pow ...

  5. java 的重写(覆盖) 和重载的区别

    方法的的重写(覆盖) 在类继承中,子类可以修改从父类继承来的行为,也就是说子类能创建一个与父类方法有不同功能的方法,但具有相同的:名称.返回类型.参数列表.如果在子类中定义一个方法,其方法名称.返回值 ...

  6. 2017年4月13日用VS写C程序遇到的一些问题

    在网上找到一篇展示计算机浮点数格式的文章,且有C代码如下: #include <stdio.h> #include <stdlib.h> #include <string ...

  7. 判断浏览器大于等于ie9

    方便自己查找 <script> (function (window) { var theUA = window.navigator.userAgent.toLowerCase(); if ...

  8. selenium的定位方式

    1.selenium的定位方式 selenium有18种定位方式,8种单数,8种复数,2种父类 2.8种单数定位方式 from selenium import webdriverimport time ...

  9. mybatis(3)---传参数的方法

    1.传一个参数 //接口方法List<EmpVo> find(int empId); //xml配置 <select resultType="com.ht.mapper.E ...

  10. KUANGBIN带你飞

    KUANGBIN带你飞 全专题整理 https://www.cnblogs.com/slzk/articles/7402292.html 专题一 简单搜索 POJ 1321 棋盘问题    //201 ...