数据库从其他存储系统迁移到ASM
Oracle ASM(自动存储管理系统)是oracle官方提供的数据库文件存储管理系统,相对于其他文件存储系统而言,AMS在负载均衡、性能优化和冗余保护方面具体较大的优势。目前ORACLE推荐数据库使用AMS来存储数据库相应的文件,而且11g RAC模式下只能用ASM管理存储或OCFS管理存储,已经不可以使用裸设备当共享存储。本实验是模拟数据库从普通文件系统(数据文件直接存储在操作系统上)迁移到ORACLE ASM存储上。
环境:
迁移涉及的磁盘组:
sys@+asm(asm.com)> create diskgroup fra external redundancy disk '/dev/asm*[n-s]';
sys@+asm(asm.com)> create diskgroup data external redundancy disk '/dev/asm*[b-m]';
迁移的数据库名称:szpms
一. 准备工作
1. 兼容性参数确认COMPATIBLE
如果数据库初始化参数COMPATIBLE少于11.0.0,那么需要将所有的只读
表空间设置为读写表空间
SQL> show parameter compatible
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
compatible string 11.2.0.4.0
2. 如果数据库是物理备库,停止日志应用恢复
逻辑备库是主数据库的一份copy,作为容灾用的。通过下面命令停止日志应用恢复。
SQL> ALTER DATABASE RECOVERY MANAGED STANDBY DATABASE CANCEL;
保持这个终端窗口开启状态。
3. 复制spfile或者pfile到临时存储位置
$ cp spfileszpms.ora orig_spfileszpms.ora
4. 打开一个新的窗口,使用RMAN连接到目标数据库
$ rlwrap rman target /
5. 备份数据文件到ASM磁盘组
使用0级增量备份。0级备份与全库备份一样都备份了数据库里面所有被使用过的数据块,但是全库备份不能作为增量备份的起点。
备份脚本:
run
{
allocate channel dev1 device type disk;
allocate channel dev2 device type disk;
backup as copy incremental level 0 database format '+data' tag 'ora_asm_migration';
}
6. 确认是否开启BCT特性(可选)
如果开启了BCT特性(block change tracking),则可以做个1级增量备份一般后续恢复数据库
{
ALLOCATE CHANNEL dev1 DEVICE TYPE DISK;
ALLOCATE CHANNEL dev2 DEVICE TYPE DISK;
ALLOCATE CHANNEL dev3 DEVICE TYPE DISK;
ALLOCATE CHANNEL dev4 DEVICE TYPE DISK;
BACKUP AS COPY
INCREMENTAL LEVEL 1
DATABASE FORAMT ‘+DATA’
TAG ‘ORA_ASM_MIGRATION’;
}
7. 如果数据库开启了归档模式,则使用下面命令归档下时下redo log
RMAN> SQL "ALTER SYSTEM ARCHIVE LOG CURRENT";
8. 如果数据库使用的spfile,则备份下spfile
RMAN> BACKUP AS BACKUPSET SPFILE;
9. 如果开启了BCT,则需要禁用下
SQL> select status, filename from v$block_change_tracking;--查询是否开启BCT特性
RMAN> SQL "ALTER DATABASE DISABLE BLOCK CHANGE TRACKING";
10. 如果flashback database开启的话,需先禁用并删除掉所有还原点
SQL> select FLASHBACK_ON from v$database;--查看是否开启了flashback database特性
RMAN> SQL "ALTER DATABASE FLASHBACK OFF";
RMAN> SQL "DROP RESTORE POINT Q106";
11. 关闭数据库(干净)
RMAN> SHUTDOWN IMMEDIATE;
推荐阅读: