把数据库从文件系统迁移到ASM

来源:互联网 发布:网络安全教育案例视频 编辑:程序博客网 时间:2024/05/09 02:22
数据库版本是:Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

安装grid参考:http://blog.csdn.net/zq9017197/article/details/7219567

向ocr添加数据库:[oracle@linux ~]$ srvctl add database -d orcl -o /u01/app/oracle

open数据库之后,更改闪回恢复区:
SQL> alter system set db_recovery_file_dest='+DATA' scope=spfile;
SQL> alter system set db_create_file_dest='+DATA' scope=spfile;

open数据库之后,移动控制文件:
SQL> alter system set control_files='+DATA' scope=spfile;
SQL> shutdown immediate;
SQL> startup nomount; 
RMAN> restore controlfile from '/u01/app/oradata/controlfile.ora';

open数据库之后,重建临时表空间:
SQL> create temporary tablespace temp tempfile '+DATA' size 5G;
SQL> alter database default temporary tablespace temp; 
SQL> drop tablespace temp2 including contents and datafiles;

open数据库之后,重建联机日志文件:
SQL> alter database add logfile group 1('+DATA') size 50m;
SQL> alter database add logfile group 2('+DATA') size 50m;
SQL> alter system switch logfile;
SQL> alter system checkpoint;
SQL> alter database drop logfile group 4;
SQL> alter database drop logfile group 5;

mount数据库之后,移动数据文件:
在这里出现磁盘空间不够用,过程中还手动添加了磁盘:“alter diskgroup data add disk '/dev/raw/raw2';”
RMAN> backup as copy datafile '/u01/app/oradata/system.ora' format '';
SQL> alter database orcl rename file '/u01/app/oradata/system.ora' to '+data/orcl/datafile/SYSTEM.260.819159001';
RMAN> run {
backup as copy datafile '/u01/app/oradata/sysaux.ora' format '+DATA';
backup as copy datafile '/u01/app/oradata/undotbs1.ora' format '+DATA';
backup as copy datafile '/u01/app/oradata/users.ora' format '+DATA';
backup as copy datafile '/u01/app/oradata/tab1.ora' format '+DATA';
backup as copy datafile '/u01/app/oradata/tab2.ora' format '+DATA';
backup as copy datafile '/u01/app/oradata/assm.ora' format '+DATA';
backup as copy datafile '/u01/app/oradata/mssm.ora' format '+DATA';
backup as copy datafile '/u01/app/oradata/rman_tb.ora' format '+DATA'; }
SQL> alter database orcl rename file '/u01/app/oradata/sysaux.ora' to '+data/orcl/datafile/SYSAUX.264.819164025';
SQL> alter database orcl rename file '/u01/app/oradata/undotbs1.ora' to '+data/orcl/datafile/UNDOTBS1.263.819164121';
SQL> alter database orcl rename file '/u01/app/oradata/users.ora' to '+data/orcl/datafile/USERS.266.819164207';
SQL> alter database orcl rename file '/u01/app/oradata/tab1.ora' to '+data/orcl/datafile/TAB1.267.819164323';
SQL> alter database orcl rename file '/u01/app/oradata/tab2.ora' to '+data/orcl/datafile/TAB22.268.819164409';
SQL> alter database orcl rename file '/u01/app/oradata/assm.ora' to '+data/orcl/datafile/ASSM.269.819164415';
SQL> alter database orcl rename file '/u01/app/oradata/mssm.ora' to '+data/orcl/datafile/MSSM.270.819164423';
SQL> alter database orcl rename file '/u01/app/oradata/rman_tb.ora' to '+data/orcl/datafile/RMAN_TB.271.819164431';

nomount数据库之后,移动参数文件:
SQL> startup force nomount
SQL> create pfile='/u01/app/oradata/pfile.ora' from spfile='/u01/app/oradata/spfile.ora';
ASMCMD> mkdir PARAMETERFILE
SQL> create spfile='+DATA/ORCL/PARAMETERFILE/spfile.ora' from pfile='/u01/app/oradata/pfile.ora';
把ORACLE_HOME/dbs/initorcl.ora改为:
SPFILE='+DATA/ORCL/PARAMETERFILE/spfile.ora'

nomount数据库之后,移动控制文件:
ASMCMD> cp '/u01/app/oradata/controlfile.ora' to '+DATA/ORCL/CONTROLFILE/controlfile.ora'
SQL> alter system set control_files='+DATA/ORCL/CONTROLFILE/controlfile.ora' scope=spfile;

原创粉丝点击