ORACLE_OCP之数据迁移
- 文章目标:
- 确定平台的字节序格式以及RMAN CONVERT命令的使用
- 使用镜像副本或备份集在数据库之间传输表空间
- 使用数据文件或备份集传输数据库
一、跨平台数据迁移
- 跨平台传输数据库,数据文件和表空间:
- 跨平台迁移(具有不同的字节序格式-UNIX/LINUX)
- 基于镜像副本和备份集
- 使用不一致的表空间备份
- 优点:
- 减少平台迁移的停机时间
- 压缩和多路复制
- 不存储在控制文件中,不用于常规还原操作
二、以最少的停机时间传输数据
- 考虑所需的数据库打开模式和字节序格式:
- 数据库传输:只读,相同字节序格式
- 表空间传输:READ WRITE,不同的字节序格式
- 举例:
- 1.创建表空间增量0级备份并将其应用于目标。
- 2.创建增量备份并将其应用于目标。
- 3.重复操作:创建并应用增量备份。(备份应该越来越小。)
- 4.在只读模式下执行最终增量备份,应用它,然后打开彼此一致的两个数据库。
三、传输带有镜像副本的表空间
四、确定平台的字节序格式
-
跨平台移动表空间:
- 简化在数据仓库和数据集市之间的数据移动
- 允许数据库从一个平台迁移到另一个平台
- 源平台和目标平台上的字符集相同
-
支持的平台及其字节序格式列表:
SQL> SELECT * FROM V$TRANSPORTABLE_PLATFORM;
-
确定源平台和目标平台的字节序格式:
SELECT tp.endian_format
FROM v$transportable_platform tp, v$database sp
WHERE tp.platform_name = sp.platform_name;
五、使用RMAN CONVERT命令
- RMAN:
- 将表空间,数据文件或数据库转换为目标平台的格式
- 不更改输入文件
- 将转换后的文件写入到输出目标
- 可以在源平台或目标平台上隐形操作
- 假设您启动了相关的数据传输
rman target sys@orcl //rman target /
RMAN> ALTER TABLESPACE bartbs READ ONLY;
RMAN> CONVERT TABLESPACE bartbs
TO PLATFORM 'Solaris Operating System (x86-64)'
FORMAT '/tmp/transport/%U';
六、数据库迁移:使用数据文件
- 概括可移动表空间功能。
- 数据可以轻松地从数据仓库环境分发到较小的数据集市平台上。
- 数据库可以非常快地从一个平台迁移到另一个平台。
七、数据库迁移过程
- 以只读模式打开数据库,并且COMPATIBLE = 10.0.0
八、数据库迁移/传输:转换
九、数据库迁移:示例1
$ sqlplus / as sysdba
SQL> startup mount;
SQL> alter database open read only;
SQL> host rman target=/
RMAN> CONVERT DATABASE TRANSPORT SCRIPT ‘crdb.sql’ NEW DATABASE ‘newdb’ TO PLATFORM ‘Microsoft Windows IA (32-bit)’ FORMAT ‘/tmp/%U’;
DBMS_TDB.CHECK_DB(‘Microsoft Windows IA(32位)’)(HP的安腾32位服务器)
$ sqlplus / as sysdba
SQL> @crdb.sql
十、数据库迁移:示例2
$ sqlplus / as sysdba
SQL> startup mount;
SQL> alter database open read only;
SQL> host rman target=/
RMAN> CONVERT DATABASE ON TARGET PLATFORM CONVERT SCRIPT ‘cnvt.sql’ TRANSPORT SCRIPT ‘crdb.sql’ NEW DATABASE ‘newdb’ FORMAT ‘/tmp/%U’;
DBMS_TDB.CHECK_DB(‘Microsoft Windows IA(32位)’)(HP的安腾32位服务器)
$ sqlplus / as sysdba
SQL> host rman target=/
RMAN> @cnvt.sqlRMAN> exit;SQL> @crdb.sql
十一、数据库迁移:注意事项
- 在目标平台上创建密码文件。
- 传输源数据库中使用的BFILE。
- 生成的PFILE和传输脚本使用OMF。
- 使用DBNEWID更改DBID。
十二、使用备份集传输数据
十三、具有备份集的数据库传输
-
1.验证先决条件:
- COMPATIBLE: Greater or equal 12.0
- OPEN_MODE: Read only
-
2.启动RMAN会话以连接到源数据库.
RMAN> CONNECT TARGET sys/p@orcl
-
3.在V$TRANSPORTABLE_PLATFORM中查询目标平台的确切名称和相关字节序信息.
-
4.备份源数据库:
RMAN> BACKUP TO PLATFORM=‘HP Tru64 UNIX’
FORMAT ‘/bkp_dir/trans_U%’ DATABASE; -
Or:
- RMAN> BACKUP FOR TRANSPORT FORMAT ‘/bkp_dir/trans_U%’
DATABASE;
- RMAN> BACKUP FOR TRANSPORT FORMAT ‘/bkp_dir/trans_U%’
-
5.与源数据库断开连接。
-
6.移动备份集和数据泵导出
-
7.转储文件到目标主机。
-
8.以TARGET连接到目标主机。
RMAN> CONNECT TARGET sys/p@orcl2
-
9.使用RESTORE命令还原完整备份集
RMAN> RESTORE FOREIGN DATABASE TO NEW
FROM BACKUPSET ‘/bkp_dir/trans_U%’;
十四、传输表空间
-
1.验证先决条件。
-
2.在源数据库中启动RMAN会话。
-
3.查询目标平台的确切名称和字节序。
-
4.使表空间为只读。.
RMAN> ALTER TABLESPACE test READ ONLY;
-
5.执行跨平台可传输备份和数据泵导出
-
在目标主机上进行转换
RMAN> BACKUP FOR TRANSPORT FORMAT ‘/bkp/test.bck’
DATAPUMP FORMAT ‘/bkp/test.dmp’ TABLESPACE test; -
在源主机上进行转换
RMAN> BACKUP TO PLATFORM ‘HP Tru64 UNIX’
FORMAT ‘/bkp/test.bck’
DATAPUMP FORMAT ‘/bkp/test.dmp’ TABLESPACE test;
-
-
6.移动备份集和数据泵导出文件,并转储文件到目标主机。
-
7.将目标主机连接到 RMAN TARGET。
-
8.恢复已传输备份和数据泵导出。
RMAN> RESTORE FOREIGN TABLESPACE test
FORMAT ‘/oracle/test.dbf’
FROM BACKUPSET ‘/bkp/test.bck’
DUMP FILE FROM BACKUPSET ‘/bkp/test.dmp’ ;
十五、传输不一致的表空间
- 修改先前的工作流程:
- 使用ALLOW INCONSISTENT子句创建跨平台不一致的增量备份。
- 使用RESTORE FOREIGN TABLESPACE命令还原不一致的跨平台表空间备份。
- 使用RECOVER FOREIGN DATAFILECOPY命令使用跨平台的增量备份恢复还原的数据文件副本。