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

简介:
--接着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> }
相关文章
|
11月前
|
关系型数据库 MySQL 数据库
自建数据库如何迁移至RDS MySQL实例
数据库迁移是一项复杂且耗时的工程,需考虑数据安全、完整性及业务中断影响。使用阿里云数据传输服务DTS,可快速、平滑完成迁移任务,将应用停机时间降至分钟级。您还可通过全量备份自建数据库并恢复至RDS MySQL实例,实现间接迁移上云。
|
存储 运维 关系型数据库
从MySQL到云数据库,数据库迁移真的有必要吗?
本文探讨了企业在业务增长背景下,是否应从 MySQL 迁移至云数据库的决策问题。分析了 MySQL 的优势与瓶颈,对比了云数据库在存储计算分离、自动化运维、多负载支持等方面的优势,并提出判断迁移必要性的五个关键问题及实施路径,帮助企业理性决策并落地迁移方案。
|
人工智能 运维 关系型数据库
数据库运维:mysql 数据库迁移方法-mysqldump
本文介绍了MySQL数据库迁移的方法与技巧,重点探讨了数据量大小对迁移方式的影响。对于10GB以下的小型数据库,推荐使用mysqldump进行逻辑导出和source导入;10GB以上可考虑mydumper与myloader工具;100GB以上则建议物理迁移。文中还提供了统计数据库及表空间大小的SQL语句,并讲解了如何使用mysqldump导出存储过程、函数和数据结构。通过结合实际应用场景选择合适的工具与方法,可实现高效的数据迁移。
1795 1
|
存储 关系型数据库 数据挖掘
【瑶池数据库动手活动及话题本周精选(体验ADB、 SelectDB,参与 RDS 迁移训练营)】(4.21-4.27)
本文为 “瑶池数据库动手活动及话题精选” 系列第一期,聚焦 SelectDB 日志分析、AnalyticDB Zero-ETL 集成、RDS 迁移训练营三大实战,设积分、实物等多重奖励,同步开启话题互动。点击链接参与,每周解锁数据库实战新场景。
|
SQL Oracle 关系型数据库
用 YashanDB Migration Platform,数据库迁移不再是“高风险动作”
数据库迁移一直是企业信息化中的难题,耗时长、风险高。YashanDB Migration Platform(YMP)提供一站式解决方案,涵盖评估、改写、迁移与校验全流程。其核心能力包括SQL自动适配、智能对象迁移、高性能数据通道及数据对比校验,显著降低人力成本与业务风险。适合从Oracle、MySQL等迁移到YashanDB的企业,以及需异构整合或国产化替代的集团、政府和国企项目。YMP不仅是工具,更是推动数据库国产化的关键平台。
|
12月前
|
存储 关系型数据库 MySQL
【赵渝强老师】MySQL数据库的多实例环境
MySQL多实例是指在一台服务器上运行多个MySQL服务,通过不同端口提供独立的数据服务。各实例共享安装程序,但使用各自的配置文件和数据文件,实现资源高效利用。本文详细介绍了如何通过“mysqld_multi”工具配置和启动多个MySQL实例,并演示了目录创建、初始化、配置文件修改及实例启动等操作步骤。
511 1
|
关系型数据库 MySQL 数据库
MySQL数据库上云迁移
本文介绍了将数据库迁移到RDS for Mysql的两种主要方法:停服迁移和不停服迁移。停服迁移适合可短暂中断服务的场景,通过mysqldump或DTS完成;不停服迁移适用于需保持业务连续性的场景,推荐使用DTS实现结构、全量及增量数据迁移。文中详细列出了每种方法的具体操作步骤,帮助企业根据需求选择合适的迁移方案。
450 1
MySQL数据库上云迁移

热门文章

最新文章