24×7环境转移数据库服务器是一个压力很大的事情。
在这之前当然要详细了解所有用户和用户权限,用户的数据对象等;然后建用户赋权限,并先转移不变的历史数据。
2003年年初我执行了这个任务。在凌晨,服务的停顿时间约为15分钟。
转移数据库服务器步骤如下:
01:00 序列号按预留空值的方法先建立起来。
(已生成*.sql文件,并让*.sh脚本可直接调用)
01:30 基本不变和变化不频繁的小表用exp和imp导出,导入。数据量约80M。
(已生成exp_small.sh和imp_small.sh脚本,可直接调用)
02:00 大表(100M以上)用CTS (create table a as select * b@databaselink) 方法建立起来,
建索引和约束关系。数据量约1G。
(已生成*.sql文件,并让*.sh脚本可直接调用)
02:30 停应用程序。(开始停服务的时间)
02:30 频繁修改或者影响用户使用的一些表也用CTS方法建立起来,建索引和约束关系。
数据量约80M。
建立存储过程(数量不多)。
(已生成*.sql文件,并让*.sh脚本可直接调用)
02:45 启动应用程序。(结束停服务的时间)
02:45 对变动频繁的表补差值。
(已生成*.sql文件,但要手工操作)
03:00 各项检查结束。
备注:在切换数据库服务器前,这些自动脚本都曾经执行过一到两次。估算过时间。
相关项目也做过应用测试。