环境准备
硬件部署及检测
移植环境所有的硬件全部准备就绪后,需要对硬件的状况进行一次整体性的监测,尤其是针对正式性移植的硬件设备,需确保上线前的硬件设备能完全满足部署要求。
硬件监测:
- CPU超线程状态
对于CPU并发运行要求较高的场景,应考虑关闭CPU超线程、减少CPU争用及锁等。 - 服务器节能模式
通常情况,服务器为了节约电能,默认情况处于节能模式,节能模式的服务器性能利用率一般在整机性能的60%~80%,对有性能要求的业务应用或数据库服务器,应关闭服务器节能模式。 - 网卡配置及MTU大小
通常情况,服务器均配置有多网卡,用于扩大网络带宽路数或做网络容灾使用,应根据实际网络需求选取合适的网卡绑定策略。大部分网络设备的MTU都是1500,应保持服务器本地MTU与网络MTU一致,否则在进行网络数据传输时,大的数据包就会被拆开来传送,这样会产生很多数据包碎片,增加丢包率,增加主机CPU计算量,消耗CPU资源,同时降低网络速度,本地MTU与网络MTU值建议设置为网络设备支持的MTU最大值(绝大多数MTU最大值为9000)。 - 操作系统配置参数
检查操作系统文件句柄数、堆栈大小、网络内核参数,按照预估的访问压力情况进行参数配置。 - 运行环境依赖包
确保相关的依赖包已经完成安装。如:用于数据库监控的SNMP服务,用于分布式集群部署时钟一致性保障的NTP服务。 - 防火墙规则设置
确保用于数据库部署及用户访问相关的TCP、UDP端口、IP地址在防火墙规则中已放开。
软件部署及配置
根据移植方案的设计选择合适的数据库产品系列(试用版/标准版/企业版/分布式版),版本选择时,优先选择产品系列中的最新数据库版本,避免已经修复的问题在移植系统中出现,同时应充分考虑部署平台及操作系统类型,确保软硬件兼容性无问题。
数据库部署及配置参数调整:
数据文件分组
物理机为了充分利用磁盘I/O性能,可能制作有多RAID磁盘组,数据库数据文件可根据磁盘组的配置进行分组,最大化利用磁盘性能同时均衡磁盘数据库文件负载。数据库文件分组在“datafile.ini”配置文件中进行配置,配置时需指定数据库文件存放位置及文件数。数据库运行配置参数
数据库运行参数应根据业务运行的实际情况及硬件资源进行调整与配置。数据库运行配置参数在“xugu.ini”配置文件中进行配置。 - 数据缓存区内存“data_buff_mem”。数据缓存区大小用于定义数据库可缓存的数据大小,配置大小的选择有两种,一种是以物理硬件可分配给数据库使用的最大内存进行配置,一种是以统计获取的业务应用最大热数据规模进行配置。 - 系统全局区内存“system_sga_mem”。系统全局区内存大小是数据库划分给SQL请求进行排序、统计等中间运算时的内存大小,可根据业务应用运算数据规模大小进行设置。 - 最大prepare语句数“max_prepare_num”。单个数据库连接会话运行建立的最大“PrepareStatement”对象大小。 - 单个事务最大允许变更行数“max_trans_modify”。单个数据库事务允许数据变更的最大行数,用于限制单个事务变更规模。 - 最大闲置时间“max_idle_time”。数据库连接空闲,无执行动作的最大延时,超过最大闲置时间时,数据库自动清理空闲连接(中断退出)。 - 系统最大连接数“max_conn_num”。数据库运行建立的最大数据库连接会话数。 - 大小写敏感“cata_case_sensitive”。用于确定数据库对象及数据是否区分大小写,默认为“false”(不区分大小写)。 - 其他数据库运行参数“SYSDBA”。用户以系统管理员身份SYSDBA登录“SYSTEM”库,查看数据库配置参数表“SYS_VARS”,根据建议取值范围与业务应用实际需求,调整具体的数据库运行参数值。注意:
- 部分数据库运行参数需重启数据库服务生效。
- 严禁在生产环境中直接移植。因为直接在生产库上进行数据移植,会有很多风险存在,例如会影响生产库的效率、引发崩溃的可能等等,所以应该避免在MySQL生产环境数据库中直接进行移植,需要提前向应用开发商提出搭建一个测试环境的建议,准备MySQL需要移植的环境和数据。
数据库安全信任配置
对于高安全的应用场景,针对访问数据库的客户端及用户等进行安全信任规则检测,只允许符合安全规则的数据库访问连接进行数据库访问操作。数据库安全信任配置在“trust.ini”配置文件中进行配置。
创建数据库及用户
- 创建数据库
根据PostgreSQL源端数据库的字符集及时区,创建目标数据库端同名且字符集、时区一致的数据库实例。 - 创建用户
PostgreSQL数据库中,用户在数据库实例的下层,PostgreSQL共享用户给所有数据库,一个PostgreSQL用户可以登录所有数据库;虚谷数据库中,用户在数据库实例的下层,与PostgreSQL的用户策略类似(除了所有数据库共享用户),可采用以下方案:将PostgreSQL数据库实例对应虚谷数据库的数据库实例,每个虚谷数据库实例下创建同名称的用户以及同名称模式。 - 用户赋权
根据PostgreSQL数据库获取的用户权限信息,在目标数据库端赋予同等的用户权限。