ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 生产系统32BITORACLE10G到64BIT迁移

生产系统32BITORACLE10G到64BIT迁移

原创 Linux操作系统 作者:gaopengtttt 时间:2013-08-26 10:22:06 0 删除 编辑

为了达到提升SGAPGA得目的我会调整参数,还由于为了最小化误操作顺利的完成数据迁移工作,我会在各个步骤中给中具体的参数值、命令和需要建立的目录。这里说明一下对于新的服务器经过分析我准备为SGA分配16GB内存,PGA分配到3GB,剩余的5GB来分配给系统使用。

1、迁移前几天停止现有DATA GUARD,提前安装好备库服务器的系统和数据库软件。

2、迁移前一天停止RMAN脚本中的DELETE ALL INPUT来停止删除归档日志文件。

3、全备前使用V$LOG来确定当前的日志序列号,为确定恢复所需要的归档日志文件做好准备。

4、在当前服务器中新建目录(/??)来保存RMAN备份文件

5、使用RMAN全备命令进行完整的RMAN备份,指定目录到新建的目录(/??)中。同时保存RMAN备份日志,用来过后确定ORACLE控制文件所在的备份集备份片。

命令如下:

         run {

            backup format "/??/db_%s_%p_%T"

            database plus archivelog

            format "/??/arch_%s_%p_%T";

  }

6、在原数据库中使用CREATE PFILE FROM SPFILE来更新PFILE,保证所有的参数设置都是最新的

7、在目标服务器中通过DBCA新建数据库,数据库的名字和原数据库一样,我们的生产库就为POMSPRO,但是其他的文件位置不需要更改,因为这个步骤只是为了建立初始实例(INSTANCE)

8、建立完成后删除所有数据文件,日志文件,控制文件,同时删除SPFILE

9、在目标服务器中新建目录,此目录和原服务器中的目录一样,及和第5步中的目录一样(/??),用来存放RMAN全备的备份集备份片。

10、通过FTP传输所有备份集备份片到目标服务器中新建的目录中及/??目录中。

11、修改目标服务器中数据库的PFILE,要求和原数据库PFILE一样。然后修改部分参数,如下:

log_archive_dest_1='LOCATION=/u01/oradata/gelcprod10g

VALID_FOR=(ALL_LOGFILES,ALL_ROLES)'

pga_aggregate_target = 3221225472

sga_max_size= 17179869184

sga_target= 17072495001

data guard 参数

    12、启动数据库到NOMOUNT状态,此时实例已经启动内存已经分配。

    13、在目标服务器中新建目录用来存在恢复的控制文件,参照PFILE中的配置及建立如下目录

/oradata/gelcprod10g/GELCPRO/

    14、使用命令恢复控制文件,命令如下

         restore  controlfile from ‘/??/??’

         ??代表的是第5步确定的控制文件所在的备份片

    15、启动数据库到MOUNT状态,此时数据库已经加载了控制文件。

16、在目标服务器中新建数据文件目录,日志目录,归档目录,同时建立各种TRACE

文件目录。我们需要建立的目录如下

/u01/oradata/gelcprod10g  归档位置

/oradata/gelcprod10g/GELCPRO/ 数据文件所在位置

/oradata/gelcprod10g/GELCPRO/ 日志文件组1所在位置

/u01/oradata/gelcprod10g/GELCPRO/ 日志文件组2所在位置

/home/oraprod/admin/GELCPRO/adump

/home/oraprod/admin/GELCPRO/bdump

/home/oraprod/admin/GELCPRO/cbump

/home/oraprod/admin/GELCPRO/udump

/home/oraprod/admin/GELCPRO/dpdump

/home/oraprod/admin/GELCPRO/pfile

这些目录用来存放各种TRACE

17、通过RESOTRE DATABASE来进行数据文件还原

到此准备工作完成,下面的步骤需要断开所有应用,停止所有业务进行操作

18、关闭应用,确定不会再有新的数据写入到数据库。

19、迁移前提取原库的对象信息,使用命令如下

select count(*) from user_tables;

       select count(*) from user_indexes;

       select count(*) from user_views;

       select count(*) from user_synonyms;

       select OBJECT_TYPE, count(*)

       from user_objects

       group by OBJECT_TYPE

having OBJECT_TYPE not in ('TABLE', 'INDEX', 'VIEW','SYNONYM');

       select count(*) from dba_users;

       select count(*) from dba_db_links;

       select count(*) from user_jobs;

 

20、进行多次日志切换,确保所有更改的数据都已经写入到归档日志,我们的日志组为3组所以进行4-6次切换保证所有的数据都进入了归档日志,使用日下命令 ALTER SYSTEM SWITCH LOGFILE

21、通过在原数据库查看V$LOG来确定当前日志序列(SEQUENCE#,判断出需要拷贝的归档日志文件,为了更加安全可以在最早的归档以前再多取几个。

22、通过FTP拷贝原服务器归档日志到目标服务器相应的目录中,及拷贝到目录/u01/oradata/gelcprod10g中。

23、通过应用归档日志文件进行恢复。命令如下

    recover database until logseq **

    **代表最后一个归档日志文件的SEQUENCE#

24、使用ALTER DATABASE OPEN RESETLOGS来打开数据库。

25、使用命令SHUTDOWN IMMEDIATE来关闭数据库。

26、使用命令STARTUP MIGRATE启动数据库。

27、运行rdbms/admin 下的utlirp.sql脚本

28、使用命令SHUTDOWN IMMEDIATE来关闭数据库。

29、使用命令STARTUP来启动数据库。

30、运行rdbms/admin 下的utlrp.sql脚本

31、使用命令SHUTDOWN IMMEDIATE来关闭数据库。

32、使用命令STARTUP来启动数据库。

到此数据迁移工作完成,下面的步骤进行IP切换和监听配置,此时需要关闭原库并且禁用网络服务,避免IP冲突

33、关闭原生产服务器网络服务使用命令如下

    service network stop

34、修改/etc/sysconfig/network-scripts/ ifcfg-eth0参数如下

    DEVICE=eth0

BOOTPROTO=static

BROADCAST=192.168.8.255

IPADDR=192.168.8.9

NETMASK=255.255.255.0

NETWORK=192.168.8.0

ONBOOT=yes

TYPE=Ethernet

35、修改/etc/hosts中主机名所对应的IP 192.168.8.9

36、使用命令重启网络服务,命令如下

    service network restart

37、通过FTP拷贝原数据库的listener.oratnsnames.ora文件到目标服务器的network/admin目录下

38、通过命令来重启ORACLE监听器,命令如下

    Lsnrctl stop

    Lsnrctl start

到此IP切换工作完成,下面的步骤是进行对象的验证,作为DBA只能对数据库中的各种对象进行验证,而不会对具体的数据进行验证

39、验证用户所拥有的表数量,使用如下命令

select count(*) from user_table;

40、验证用户所拥有的索引数量,使用如下命令

select count(*) from user_indexes;

41、验证用户所拥有的视图数量,使用如下命令

select count(*) from user_views;

42、验证用户所拥有的同义词数量,使用如下命令

select count(*) from user_synonyms;

43、验证其他一些对象,包括过程,函数,触发器等,使用如下命令

select OBJECT_TYPE, count(*)

from user_objects

group by OBJECT_TYPE

having OBJECT_TYPE not in ('TABLE', 'INDEX', 'VIEW');

    44、验证所有用户使用如下命令

         select count(*) from dba_users;

    45、验证所用Dblink使用如下命令

select count(*) from dba_db_links;

    46、验证用户拥有的JOB使用如下命令

select count(*) from user_jobs;

         至此我们DBA所能做的数据验证结束,需要开发人员进行详细的数据抽样验证,等到数据验证完成我们就可以启动应用。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7728585/viewspace-769243/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
wxh gp_22389860

注册时间:2008-10-13

  • 博文量
    637
  • 访问量
    2793000