企业数据库迁移最佳技术实践

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
sample pivot rownum rowid
数据库更换带来的影响
• Metadata
• Data
• PL/SQL
• 应用
迁移流程
数据库选型
• 战略规划 • 数据库可
替代性
数据库迁移
• 工具 • 人工
应用改写 • 兼容性
测试
• 稳定性 • 性能
上线方案
• 停机时间 • 试运行
传统迁移工作量
1 • 对象定义转换 2 • 数据迁移 3 • 改写存储过程触发器 4 • 修改应用代码 5 • 迁移检验
• add_months(date,integer) • ascii(char) • asciistr(string) • bitand(number1,number2) • chartorowid(string) • chr(int) • convert() • cosh(n) • decode() • dump(expr) • empty_blob() • empty_clob() • hextoraw(char) • instr() • instrb() • last_day(date) • lengthb(char) • listagg() • lnnvl(condition) • lpad() • ltrim(c1,[,c2]) • mod(m, n)
应用特性差异——对象
• SEQUENCE值 • 分区表 • 位图索引 • 函数索引 • 全局索引 • 全局临时表 • 同义词 • dblink • dire ctor y
应用特性差异——系统对象
• 数据字典
• DBA_* • ALL_* • USER_*
• 程序包
• DBMS_
应用特性差异——系统函数
PostgreSQL的应用特性
HTAP
200000 180000 160000 140000 120000 100000
80000 60000 40000 20000
0
100
300
500
PG
Oracle
MySQL
4000 3500 3000 2500 2000 1500 1000
500 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 MySQL Oracle PG
应用特性差异—— SQL差异举
例去重
SQL类型
递归查询
分区外连接 外连接 合并运算 固定执行计划 分区查询 外部表 dblink 采样 行列转换 编号 数据物理地址 序列 合并函数 删除
Oracle unique/distinct start with connect by prior nocycle sibilings partition by (+) minus hint partition(p_name) external @dblink
• • • • •
1个人月以上 几天至几周 平均一个存储过程1天 几个人月 几周以上
工作量不可控
工作量不可控 工作量不可控
数据库选型
• 应用特性可替代
• ACID • ANSI SQL • PL/SQL……
• 性能可替代
• OLT P • OLAP
• 高可用方案
• Oracle RAC
• 生态
• 运维、开发、ETL等工具 • 技术人员 • 资料……
应用特性差异——数据
• GBK • 时区 • 特殊字符 • 空串('')、NULL
应用特性差异—— PL/SQL
• 包/包体/包参数 • Hale Waihona Puke BaiduOTO • 自治事务 • SAV EPOINT • PIPELINED管道
应用特性差异——开发相关
• ORACLE专用语法 • 数据类型转换 • Ke y word 省略 • Schema大小写 • BLO B/CLO B调用 • Pre pa re • 存储过程调用 • 子查询加别名
• months_between(date1, date2) • nanvl(n2, n1) • nchr(int) • new_time(date, timezone1,
timezone2) • next_day(date, char) • numtodsinterval() • numtoyminterval() • nlssort(char [, nlsparam]) • nullif(value1, value2) • nvl(expr1, expr2) • nvl2(e1,e2,e3) • rawtohex(raw) • regexp_count() • regexp_instr() • regexp_replace( ) • regexp_substr() • remainder(m, n) • round(date, fmt) • round(n,precision) • rowidtochar(rowid) • rowidtonchar(rowid)
• rpad( ) • rtrim(c1,[,c2]) • sinh(n) • substr() • substrb() • sys_guid() • tanh(n) • to_binary_double() • to_binary_float() • to_blob(char) • to_clob(char) • to_char(char) • to_date(char[,fmt]) • to_dsinterval(fmt) • to_yminterval(fmt) • to_multi_byte(str) • to_number(expr) • to_timestamp(char[,fmt]) • to_timestamp_tz • to_single_byte(char) • trunc(date[, fmt]) • unistr(string)
应用特性差异——数据类型
• number/floa t/binar y_floa t/binar y_double • va rc har2/nchar/nva rc har2/nclob • blob/clob • date • inte r va l • rowid • Bfile • anyd ata • 自定义
相关文档
最新文档