ITPub博客

Oracle数据库从Linux x86单机迁移到Solaries双节点RAC集群经验分享-测试环境验证

原创 Oracle 作者:neverinit 时间:2018-11-08 21:20:24 0 删除 编辑

本文分享了一次真实的迁移案例,将某业务系统生产环境Oracle数据库进行迁移,数据库版本为11.2.0.4。数据库迁移之前部署在RedHat6.5操作系统中,以单机单实例文件系统部署;迁移之后部署在Solaries11操作系统中,以ASM双节点RAC集群部署。本文分享的主要内容是迁移过程中对生产环境的变更和调整思路,以及迁移过程中遇到问题的解决方案,整个迁移过程包括测试环境验证、备份策略验证、生产环境切换等三大步骤,并未涉及数据库的安装部署。希望文章的整体处理思路对读者有帮助。

测试环境验证的目的如下:

(1)演练生产环境数据库的迁移过程。

(2)验证使用新数据库,常规应用功能是否正常。

(3)部署应用程序,为后续测试做准备


目录结构抢先看

1.选择测试环境

2.修改rac集群的scan ip

3.选择其中一个节点新建directory

4.在ASM中新建表空间

5.上传生产数据库逻辑备份文件

6.生产数据还原

7.修改数据库用户密码

8.修改数据库中的配置信息

9.修改数据库密码永不过期

10.修改数据库密码错误不锁定用户

11.手工收集统计信息

12.修改应用中的数据库连接为Service连接

13.依次启动应用并验证交易


1.选择测试环境    

(注:这里选择一套现成的测试环境用于验证,减少在测试环境准备上耗费的时间。)

(1)选择一套测试环境,数据库IP为100.100.100.103,应用服务器IP为100.100.100.194

(2)依次登陆应用服务器和数据库服务器,关闭应用和数据库,同时关闭数据库服务器100.100.100.103

(3)执行命令ping 100.100.100.103,确保数据库服务器已关闭。

2.修改rac集群的scan ip

(注:这里选择直接修改RAC集群的scan ip为100.100.100.103 ,确保应用中的线程池启动后可连接。)

操作步骤参考文章:

http://blog.itpub.net/31394774/viewspace-2217511/

3.选择其中一个节点新建directory

注:这里考虑到该系统目前的生产数据量不大,使用数据泵expdp备份方便快捷。

在cwgsdb1服务器上新建directory

oracle@cwgsdb1:~$ mkdir -p /u01/app/oracle/dump
oracle@cwgsdb1:~$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Tue Oct 23 22:08:42 2018
Copyright (c) 1982, 2013, Oracle.  All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options
SQL> create or replace directory dpdata1 as '/u01/app/oracle/dump';
Directory created.
SQL> grant read,write,execute on directory dpdata1 to public;
Grant succeeded.

4.在ASM中新建表空间

(注:这里只列举部分表空间,将表空间建立在ASM文件系统中)

create tablespace cams_core_idx datafile '+DATADG/CAMS/DATAFILE/CAMS_CORE_IDX_001.dbf' size 100M AUTOEXTEND ON next 200M maxsize unlimited;
create tablespace cams_core_tab datafile '+DATADG/CAMS/DATAFILE/CAMS_CORE_TAB_001.dbf' size 100M AUTOEXTEND ON next 200M maxsize unlimited;
create tablespace cams_core_lob datafile '+DATADG/CAMS/DATAFILE/CAMS_CORE_LOB_001.dbf' size 100M AUTOEXTEND ON next 200M maxsize unlimited;

5.上传生产数据库逻辑备份文件

oracle@cwgsdb1:~$ cd /u01/app/oracle/dump/oracle@cwgsdb1:/u01/app/oracle/dump$ ls -lrt
total 8751362
-rw-r--r--   1 oracle   oinstall 4475846656 Oct 23 22:41 camsData20181017.dmp
-rw-r--r--   1 oracle   oinstall  335274 Oct 23 22:54 camsData20181017.log

6.生产数据还原

oracle@cwgsdb1:/u01/app/oracle/dump$ impdp \'/ as sysdba\' DIRECTORY=dpdata1 DUMPFILE=camsData20181017.dmp SCHEMAS=xxx,yyy logfile=impdp_camsData20181017.log

7.修改数据库用户密码   

 (注:测试环境密码和生产不一致,需要将生产环境用户密码进行修改)

alter user XXXX dientified by 123456;

8.修改数据库中的配置信息

(1)修改数据库中带用户/密码的配置信息

(2)修改数据库中带IP地址的配置信息

(3)修改数据库中带路径的配置信息(注:如果生产环境存储路径和测试不一致)

9.修改数据库密码永不过期    

(注:如果有DBA定期修改密码,可不执行该步骤)

SQL> set linesize 200;
SQL> col limit for a30;
SQL> select * from dba_profiles where profile='DEFAULT' and RESOURCE_NAME like 'PASSWORD_%';
PROFILE                        RESOURCE_NAME                    RESOURCE LIMIT
------------------------------ -------------------------------- -------- ------------------------------
DEFAULT                        PASSWORD_LIFE_TIME               PASSWORD 180
DEFAULT                        PASSWORD_REUSE_TIME              PASSWORD UNLIMITED
DEFAULT                        PASSWORD_REUSE_MAX               PASSWORD UNLIMITED
DEFAULT                        PASSWORD_VERIFY_FUNCTION         PASSWORD NULL
DEFAULT                        PASSWORD_LOCK_TIME               PASSWORD 1
DEFAULT                        PASSWORD_GRACE_TIME              PASSWORD 7
6 rows selected.

现在详细解释一下各参数值:

PASSWORD_LIFE_TIME   口令的生命周期,单位是天,超过这段时间口令可能会自动过期,是否过期要看是否设定了PASSWORD_GRACE_TIME

PASSWORD_REUSE_TIME   这个特性限制口令在多少天内不能重复使用,默认值为UNLIMITED

PASSWORD_REUSE_MAX 这个特性是针对PASSWORD_REUSE_TIME的,说明要想在 PASSWORD_REUSE_TIME 这个参数指定的时间内重复使用当前口令,那么至少需要修改过口令的次数(修改过的口令当然肯定需要和当前口令不同,因为毕竟还有PASSWORD_REUSE_TIME特性的限制)

PASSWORD_VERIFY_FUNCTION 可以设置oracle用户的密码复杂度,比如密码长度>=10,必须包含字母/数字等

PASSWORD_LOCK_TIME   接着FAILED_LOGIN_ATTEMPTS参数,口令被自动锁定的时间,达到这个时间之后,下次登录时系统自动解除对这个账户的锁定

PASSWORD_GRACE_TIME   接着PASSWORD_LIFE_TIME特性,如果PASSWORD_LIFE_TIME的期限已到,PASSWORD_GRACE_TIME是对口令生命周期的一个grace(宽限或延续),表示口令到期后,可以继续使用的天数。在这段时间内如果我们登陆系统,会有提示,提示系统在几天内过期

SQL> ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;Profile altered.
SQL> select * from dba_profiles where profile='DEFAULT' and RESOURCE_NAME like 'PASSWORD_%';
PROFILE                        RESOURCE_NAME                    RESOURCE LIMIT
------------------------------ -------------------------------- -------- ------------------------------
DEFAULT                        PASSWORD_LIFE_TIME               PASSWORD UNLIMITED
DEFAULT                        PASSWORD_REUSE_TIME              PASSWORD UNLIMITED
DEFAULT                        PASSWORD_REUSE_MAX               PASSWORD UNLIMITED
DEFAULT                        PASSWORD_VERIFY_FUNCTION         PASSWORD NULL
DEFAULT                        PASSWORD_LOCK_TIME               PASSWORD 1
DEFAULT                        PASSWORD_GRACE_TIME              PASSWORD 7
6 rows selected.

10.修改数据库密码错误不锁定用户    

(注:为了防止用户配错密码或者恶意攻击导致密码锁定,造成生产故障)

SQL> select * from dba_profiles where profile='DEFAULT' and RESOURCE_NAME like 'FAILED%';
PROFILE                        RESOURCE_NAME                    RESOURCE LIMIT
------------------------------ -------------------------------- -------- --------------------
DEFAULT                        FAILED_LOGIN_ATTEMPTS            PASSWORD 10

FAILED_LOGIN_ATTEMPTS   不知道口令的话尝试登录的次数,达到这个次数之后账户被自动锁定

SQL> ALTER PROFILE DEFAULT LIMIT FAILED_LOGIN_ATTEMPTS UNLIMITED;Profile altered.
SQL> select * from dba_profiles where profile='DEFAULT' and RESOURCE_NAME like 'FAILED%';
PROFILE                        RESOURCE_NAME                    RESOURCE LIMIT
------------------------------ -------------------------------- -------- --------------------
DEFAULT                        FAILED_LOGIN_ATTEMPTS            PASSWORD UNLIMITED

11.手工收集统计信息

exec dbms_stats.gather_schema_stats('XXXX');

12.修改应用中的数据库连接为Service连接    

(注:之前的数据库为单实例,部分数据库连接配置信息为SID连接,这里需要全部改为Service连接,通过scan ip连接RAC集群)

dataSource.url=jdbc:oracle:thin:@100.100.100.103:1521:cams

修改为

dataSource.url=jdbc:oracle:thin:@100.100.100.103:1521/cams

13.依次启动应用并验证交易

按顺序依次启动应用,测试多组跨子系统的交易,然后在数据总线监控平台上查看交易的报文以及成功状态。



至此,测试环境验证工作顺利完成。下一步的工作是进行数据库的备份策略验证。

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

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

注册时间:2016-09-15

  • 博文量
    45
  • 访问量
    99603