AIX 甲骨文 空间耗尽 数据库迁移 解决方案与分析

来源:互联网 发布:如何查询端口是否开放 编辑:程序博客网 时间:2024/06/06 04:45

问题描述:
       1.硬件环境:IBM小机16G内存 rootVG 40G 5000G磁盘阵列 DATAVG1
       2.软件:Aix 和ORACLE数据库.
       3.详细问题:ORACLE 误装在AIX 的本地磁盘上面,且表空间也创建在了本地磁盘上,最后导致本地磁盘空间消耗掉.
       4.在ORACLE 上创建了一个数据库实例供两个应用程序(A和B)使用.
       5.在A应用程序使用的过程中,因表空间不足在DATAVG1 上创建了两个"裸设备"做了扩充.
任务目标: 实现数据库从本地磁盘转移到磁盘阵列上.


需要与客户确认的问题:
***使用单实例还是两个实例?--两个

1.从系统资源角度考虑
      使用两个实例,肯定比跑一个实例要消耗更多的资源这主要体现在内存,因为oracle需要为每个实例创建足够的SGA区,但是如果系统本身有足够的资源,如果不去使用则是更大的浪费。系在系统中有16内存,我们实话使用9G左右,不到70%,可以说不是浪费而是充分利用。
2.从后期维护角度考虑
       不用的两个应用程序使用不同的实例,有利于较少应用程序相互之间的负面影响。例如A出现问题,不会导致B应用不可用的情况。
       两个实例有利于问题的诊断,如果一个实例中跑多个应用,则在出现问题的时,要先定位到具体的哪个应用,显然比跑单个实例应用的难度搞。
       两个实例还有利系统升级,如果应用要升级,要停数据库,那么完全可以不考虑另外一个应用程序的存在,操作起来的简单程度是显而易见的。
3.从实施安全度来考虑
      现有的数据库架构是一个实例跑两个应用,如果这两个应用存在数据级别上的数据交换(包括SELECT),那么他们就是具有一定的耦合性,从实施上来说,保持在同一个数据库中会更好,如果把存在两个耦合性的SCHEMA硬生的拆开,可能给两个系统都来灾难性的后果。
       所以相比之下,保持原来的逻辑结构,即以单例运行,是更安全的做法。
       从实际角度出发,目前存在部分信息的交互。但经过分析是以前维护遗留下来,对目前数据分离没有影响。

***使用裸设备还是文件系统?-->文件系统
1.从维护角度考虑
     使用裸设备会提高系统维护的复杂度,由于无法自动扩展,若不及时添加数据文件,会导致表空间消耗完,应用也随之出现异常,其实我们有足够的存储空间,使用文件系统则可以让数据文件自动扩展,即便是没有及时发现空间资源紧张的问题,也不至于产生致命影响。
       另外如果需要添加新的裸设备到系统中,在Aix中理论上不需要停止数据库运行即可实现,但这位经验证,同时这样的操作对系统而言,风险比较高。(后来验证过不需要重启)
2.从性能角度考虑
       使用裸设备和文件系统访问数据的主要区别就在于ORACLE访问磁盘数据是否通过操作系统进行,裸设备在早期的系统上比较普遍,按照目前我们服务器的硬件配置(8CPU,16G内存),存储pavilion,以及实际运行情况来看,这两者在性能上不会产生较大区别。使用文件系统不会比使用裸设备慢多少,其实更需要调整的应该是应用程序或者数据结构,比利用两者的差异来获得性能提升效果更好。
       其次,通过扩大数据库缓冲区也能有效降低IO,相比原来的160数据缓冲区,我们将来的配置讲达到4G,充分利用系统现有资源,足够让我们忽略两者的性能差异。

3. 从应用角度来考虑
       使用裸设备还是文件系统,只是操作系统和数据库要考虑的问题,对应用是透明的,无所谓取舍。
****具体规划
A实例
实例名:A
总内存大小:6G
所有数据文件存放在 DATAVG1下,路径 /lxwdata
B实例
实例名:B
总内存大小:3G
所有数据文件存放在 DATAVG2,路径/lsadata

****实施步骤
操作系统准备:共享内存配置?我们需要吧所有SGA区放到内存段中以确保运行效率,其他主要参数设定?是否有足够的文件句柄。。。。

LSA用户导出备份

LSA_IMAGE LSA_QD按用户导出。

这个导出内容将恢复到第二个实例中去。

原库物理冷备份

对数据库进行调整之前,对系统进行完整备份是必须的。

同时这个备份作为我们恢复LXW实例的基础。

第一个库恢复,同时实现存储迁移和参数调整

在这个过程中,我们将用新参数创建数据库实例。
同时在恢复过程中,重新定位数据文件位置,实现存储介质的迁移。

新创建第二个库

这个数据库给LSA公司使用的。

将使用一套新的参数启动实例。

导入LSA数据

原创粉丝点击