【ASM学习】普通数据库向ASM实例的迁移(二)

简介: --接着rman的做 在rman恢复时,数据库是mount状态的,这里需要将数据打开!ORCL>conn system/yang[@]orcl as sysdba已连接。
--接着rman的做 在rman恢复时,数据库是mount状态的,这里需要将数据打开!
ORCL>conn system/yang[@]orcl as sysdba
已连接。
ORCL>alter database open;
数据库已更改。
--将日志文件迁移到ASM 磁盘组中。在ASM中建立3组新的redo log
ORCL>alter database add logfile group 4 '+SYS_DATA/redo04.log' size 50m;
数据库已更改。
ORCL>alter database add logfile group 5 '+SYS_DATA/redo05.log' size 50m;
数据库已更改。
ORCL>alter database add logfile group 6 '+SYS_DATA/redo06.log' size 50m;
数据库已更改。
---查看源数据库的redo log的状态,要将group 1 2 3全部归档并替换为上一步建立的log
ORCL>select group#,status from v$log;
    GROUP# STATUS                                                               
---------- ----------------                                                     
         1 INACTIVE                                                            
         2 CURRENT                                                              
         3 INACTIVE                                                            
         4 UNUSED                                                               
         5 UNUSED                                                               
         6 UNUSED                                                               
已选择6行。
ORCL>alter system switch logfile;
系统已更改。
ORCL>alter system switch logfile;
系统已更改。
ORCL>alter system switch logfile;
系统已更改。
ORCL>select group#,status from v$log;
    GROUP# STATUS                                                               
---------- ----------------                                                     
         1 INACTIVE                                                            
         2 ACTIVE                                                               
         3 INACTIVE                                                            
         4 ACTIVE                                                               
         5 ACTIVE                                                               
         6 CURRENT                                                              
已选择6行。
---手工使数据库产生检查点,让lgwr 写redo到磁盘!
ORCL>alter system checkpoint;
系统已更改。
ORCL>select group#,status from v$log;
    GROUP# STATUS                                                               
---------- ----------------                                                     
         1 INACTIVE                                                            
         2 INACTIVE                                                            
         3 INACTIVE                                                            
         4 INACTIVE                                                            
         5 INACTIVE                                                            
         6 CURRENT                                                              
已选择6行。
---删掉不用的redo log
ORCL>alter database drop logfile group 1;
数据库已更改。
ORCL>alter database drop logfile group 2;
数据库已更改。
ORCL>alter database drop logfile group 3;
数据库已更改。
---迁移时,rman没有把临时表空间迁移到ASM中,所以,向ASM中迁移TEMPFILE
ORCL>select file_name,tablespace_name from dba_temp_files;
FILE_NAME                               TABLESPACE_NAME                                                                 
---------------------------------       ---------------
F:\ORACL\ORADATA\ORCL\TEMP01.DBF        TEMP                                                                           
                                                                                
ORCL>alter tablespace temp add tempfile '+SYS_DATA';
表空间已更改。
ORCL>select member from v$logfile;
MEMBER                                                                          
--------------------------------------------------------------------------------
+SYS_DATA/redo04.log                                                            
+SYS_DATA/redo05.log                                                            
+SYS_DATA/redo06.log   ---这里没有考虑到分散日志分布的问题,实际应用中,要考虑的!
                                                         
ORCL>select file_name,tablespace_name from dba_temp_files;
FILE_NAME                                     TABLESPACE_NAME                                                                 
------------------------------                ---------------            
+SYS_DATA/orcl/tempfile/temp.265.727923505    TEMP                                                                            F:\ORACL\ORADATA\ORCL\TEMP01.DBF              TEMP                                                                           
                                                                                
ORCL>alter tablespace temp drop tempfile 'F:\ORACL\oradata\orcl\temp01.dbf';
表空间已更改。

--修改db_create_file_dest,db_recovery_file_dest,db_recovery_file_dest_size 的值!
ORCL>alter system set db_create_file_dest='+SYS_DATA\ORCL\ORADATA' scope=spfile;
系统已更改。
ORCL>alter system set db_recovery_file_dest='+FLASH_DATA' scope=spfile;
系统已更改。
ORCL>alter system set db_recovery_file_dest_size=1 G scope=spfile;
系统已更改。

再次向ASM磁盘中添加控制文件!(迁移时,只有一个控制文件)
ORCL>alter database backup controlfile to '+SYS_DATA\ORCL\ORADATA';
alter database backup controlfile to '+SYS_DATA\ORCL\ORADATA'
*
第 1 行出现错误:
ORA-01580: 创建控制备份文件 +SYS_DATA\ORCL\ORADATA 时出错
ORA-17502: ksfdcre: 4 未能创建文件 +SYS_DATA\ORCL\ORADATA
ORA-15005: name "ORCL/ORADATA" is already used by an existing alias  
---当指定磁盘组的具体目录时,会报错!所以直接指定磁盘组就好了!
ORCL>alter database backup controlfile to '+SYS_DATA';
数据库已更改。
ORCL>show parameter control
NAME                                 TYPE        VALUE                          
------------------------------------ ----------- ------------------------------
control_file_record_keep_time        integer     7                              
control_files                        string      +SYS_DATA/orcl/oradata/control
                                                 01.ctl                        
control_management_pack_access       string      DIAGNOSTIC+TUNING              

---修改参数文件中
ORCL>alter system set control_files='+SYS_DATA/ORCL/ORADATA/CONTROL01.CTL','+SYS_DATA/ORCL/ORADATA/CONTROL02.CTL' scope= spfile;
系统已更改。
ORCL>create pfile ='f:\asm_pfile.txt' from spfile;
文件已创建。
ORCL>shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。

-----------------------    备注       ----------------------------------
网上也有其他方法的,中间对于迁移日志和temp 文件的方法不太一样!
--迁移redo log
通过SQL*Plus连入数据库实例,将控制文件里记录的联机日志文件的路径修改为磁盘组SYS_DATA。
SQL> alter database rename file 'F:\ORACL\ORADATA\ORCL\redo01.log' to '+SYS_DATA';
SQL> alter database rename file 'F:\ORACL\ORADATA\ORCL\redo02.log' to '+SYS_DATA';
SQL> alter database rename file 'F:\ORACL\ORADATA\ORCL\redo03.log' to '+SYS_DATA';
--迁移tempfile 通过rman 手工迁移!

RMAN> run{
2> switch tempfile 1 to '+SYS_DATA';
3> }

目录
相关文章
|
文字识别 Oracle NoSQL
oracle 11g 单机asm配置
oracle 11g 单机asm配置
487 0
|
监控 Oracle 网络协议
ASM 管理的 Oracle 19C 数据库ADG的搭建及主备切换
-- 主备库Grid及Oracle Home 目录 /u01/app/grid/product/19.0.0/gihome_1 /u01/app/oraInventory /u01/app/oracle/product/19.
1805 0
|
Oracle 关系型数据库 数据库
从文件系统迁移到ASM上
从文件系统迁移到ASM上
1362 0
|
存储 数据库
数据库从文件系统迁移到ASM
今天需要把文件系统上的数据文件迁移到ASM上 文件系统上数据文件:/dev/sda /database/oradata 归档:/dev/sda /arch 新ASM存储: /dev/sdb1、/dev/sdc1、/dev/sdd1对应asm的+DG1 存放数...
1257 0
|
SQL Oracle 关系型数据库
|
SQL Web App开发 数据库
|
存储 Oracle 关系型数据库