蓝的成长记——追逐DBA(20):何故缘起,建库护航 (二次发布-练习使用markdown编辑)

原创作品,出自 “深蓝的blog” 博客,欢迎转载,转载时请务必注明出处,否则追究版权法律责任。

深蓝的blog: http://blog.csdn.net/huangyanlong/article/details/48776573

【前言】

    自接触oracle至今,愈是深入了解oracle愈是察觉到个人的渺小,时常感受到技术知识可以助推思维方式,一路走来,在汗水中收获着成长的充实,不仅局限于oracle技术,借由此系列文章,分享个人在追逐DBA道路上收获的些许感悟与成长的点滴记录。在浩瀚星空里,鉴证自己人生中那一道弧线。

凌乱中找回生活的节奏,在加班的日子里,没有了多余的杂念。

                                                       ——深蓝

很久没有更新文章了,在这段日子里,兼顾着原本的工作的基础上,开始逐步学习项目建设、项目管理的知识,学习着如何推进项目,如何建设团队,零零总总的知识,一时间感觉到24小时还真是如此短暂。

在紧张的工作之余,意料之外的找到了一些生活的气息。还是比较心怀感恩的在一步一步前行着。曾几何时,有老大哥跟我说生活不只是工作而已,需要有梦想,同样需要有情感的支持,生活是个永恒的旋律,不能单方向前行,要不然索然无味,生活乏味会让人身心疲惫。想毕,当时是不以为然,而现如今的转变,很多事,已经可以放下,这才发现,原来不经意的一次尝试,可能真有什么命里注定,当不再驻足过往的风景时,人生中的岔路口上,会自然而然的铺开一条路,而顺路前行,心灵如同是敞开了一扇开阔而且光亮的窗。

开始学着经营起一份感情,不刻意,不强求,随遇而安,岁月安好。

篇章一:回归生活

当机缘让两个人相遇,将不再是悔恨往昔,冥冥中,不期而遇的某一天,对未来有了更美好的憧憬。

                                                                                      ——深蓝

钟摆嘀嗒嘀嗒,1:00,2:00,3:00,今夜有些莫名的孤单,不太想说话,注视着夜色的光亮顺着窗帘映射进酒店的房间内,眼望天色在天边处已渐渐探出一丝光亮。一种说不出的情绪,在静谧的夜空下却感觉出下雨的情绪。

不经意间,已经转眼过了22天,仿佛只是过了两天的光景,意识中有些分不出是哪个周末发生的事,在某一个清晨开始了这段旅程,却在心里贮藏了一个有些朦胧的面庞。 

                                                                                   ——于郑州,9月12日,早。

感情,是需要时间去了解彼此内心的,一个圆,左半部分和右半部分,有一点偏离了,那就不再是圆了。

                                                      ——深蓝 于郑州2015年9月20日星期日 2:00 早安。

当遇见,有些慌张来的不适时宜,又却恰当好处,不刻意,不掩饰,对于未来既然已坚定,对当前就应义无反顾。且行且珍惜的态度。

夜幕下,突然醒了过来,睁着眼睛发呆,看着天花板,眼前开始闪现出不同的画面,一幕幕幻灯片的情节,仿佛就像是昨天发生的一样,一刹那感觉时间这东西,原来过得好快。回望在一个人的日子里,自由、无拘、无束、没什么不用管、没什么牵绊、享受着孤独、想走就走的日子里,让人反而觉得自在。这样的日子是不是需要改变一下了呢?静谧下,脑子里突然乱乱的。

想好了嘛?自己在质疑。

自己靠谱嘛?优容寡断的那种感觉?还要太认真嘛?一时间突然又仿佛陷入到曾经的过往里面。

朦朦胧胧的有些飘离。

                                                          ——深蓝 于郑州2015年9月21日星期一 05:00。

未来安好

有些小幼稚,却心里很温暖。

记不清上次收到类似礼物这样子的东西是什么时候了,有些意料之内,却被一些小幼稚触动着心底,狠狠的暖了一把。

                                                          ——深蓝 于郑州2015年9月21日星期一 00:00。

中秋,平静中度过

中午好像空调开的过猛,嗓子变得沙哑,不想说话,脑袋有些迷糊,爬在床上不想动堪。

但,迷糊的,还是有些莫名的高兴。当看到蹦蹦哒的消息时心情就会好好的。哈,有些幼稚吧。出差在外的日子里,不联络与距离感有时候可能是一道屏障,但有时候似乎也是一种体验,也许在经历过了这样的日子里,才懂得身边的人,需要珍惜。一路花香,回望风景,人在其中,却未闻花香,而远了,才感受到,花香其实早在不经意间环绕在身旁。

愿,安好。健康。豁达。

                                                                ——深蓝于郑州2015年9月28日星期一 02:32

篇章二:数据迁移

靡不有初,鲜克有终。做好该做的责任,为建库护航,不会丢弃的oracle。

                                                                 ——深蓝

本次完成一次数据迁移的任务,数据库字符集的调整:ZHS16GBK—>AL32UTF8

源库建库时使用的字符集是ZHS16GBK,目标库的数据库字符集是AL32UTF8。

本次迁移,新库与老库的区别上,简单分为如下情况:

第一部分:新库与老库,表级结构不变化,数据量小(5G);

第二部分:新库与老库,表级结构不变化,数据量大(1T);

第三部分:新库与老库,表级结构变化,数据量小(15G);

有数据量不大的表,计划采用dmp的方式进行。但是遇到一个问题就是关于中文字符的处理。在ZHS16GBK下,一个中文需要两个字节,而在AL32UTF8下,一个中文需要三个字节。这也就意味着相同的表结构下,源库下的数据有可能在插入到新库时出现字符超长的可能。

对于该部分,先在新库中创建相同的表空间、用户、赋予相应权限。

由于数据量不大,迁移前,做一次全库级导入测试,保留imp日志,会在日志中筛选出由于中文引起的长度问题;

然后将业务中字段长度不受影响的表以dmp的方式导入目标库中,查看dmp日志;

(1)、查看日志,如果出现“EXP-00003:未找到段 (0,0)的存储定义”错误,需手工补充建表;

(2)、查看日志,如果出现“ORA-01461:仅能绑定要插入 LONG列的 LONG值”错误,由于字符长度超过4000引起,需要把数据类型由varchar2改为clob;

(3)、通过dmp日志,查看到需要扩充字段长度的表信息,例如:

根据上面查明的问题,由源端数据库导出相应的建表语句,针对不同问题修改脚本,重新整理补充建表语句,并把需要扩容长度的表手工将其调整结构后,手工创建出来。接下来,执行了目标端补充建表语句。然后,手工抽取字段长度变更表的业务数据。最后对源端、目标端表级数量进行一次统计,数据量相同后确认迁移完成。

迁移第二大部分,表级结构不变,但是大数据量的表,对部分创建分区的数据,以分区的形式dmp导出数据。然后导入到新库下面,最后导出完成后,统计源端、目标端的数据量,确认导出完成。由于该大数据量表数据皆增量来自于不同的业务库,所以后续迁移完成后,调整了数据增量的地址。

而对于迁移第三大部分,涉及到结构变更,就不能使用dmp的方式了,而是选择采用了编写字段对应的方式,使用insert的方式完成数据的迁移任务。

篇章三:字典转换打开尘封的潘多拉,曾经坚定的梦,原定的路,依然在继续前行。

——深蓝

在本次的建库工作中,不只是需要数据迁移,还需要完成字典转换的任务。原因在于字典类的代码由业务部门进行了重新的调整和统一,所以需要按新标准对字典进行转换。

这次对于字典转换,涉及到两个方面,如下:

第一方面:对于落地数据字典的转换;

第二方面:对于增量的数据,按新标准字典进行转换;

首先需要整理出一套新标准代码与老代码的对应关系,类似格式如下:

字典翻译用表:

范例:表名称:CODE_YEWU 业务平台字典表

简单的列举一个处理方式,思路上就是使用子查询的方式,如下:

落地数据的转换范例:对test表的ysdm字段进行转换,其中ysdm表示颜色代码,ysmc代表颜色名称。

参考语句如:

update table test a set (a.ysdm,a.ysmc)=(

select b.code,b.name

from code_yewu b

where b.root_key=’YSDM’

and b.old_code=a.ysdm

);

新数据的转换范例:

在对新增量数据进行转换时,采用插入数据时通过调用字典转换表(code_yewu)来完成字典的转换后,直接插入到数据库中。

参考语句如下:

insert into test(id,name,ysdm,ysmc)

select

sys_guid,

t.name

(select a.code,

a.name

from code_yewu a

where a.root_key=’YSDM’

and a.old_code=t.ysdm)

from [email protected] t;

篇章四:表结构的差异比较在不同的业务系统之间,有时候会遇到比对表结构差异的情况,这里举例一个方式,可以利用oracle的外连接来实现列举两方的结构差异。

举例一个方法:

整理的源库中的表结构excel;

整理的目标库的表结构excel;

创建A表的结构(为了放入源库结构数据)

create table A

(

t_name_A varchar2(500),

t_col varchar2(500),

t_type varchar2(500),

t_comment varchar2(500)

);

–源库中表名,字段名,类型,中文注释

创建B表的结构(为了放入目标库结构数据)

create table B

(

t_name_A varchar2(500),

t_name_B varchar2(500),

t_col varchar2(500),

t_type varchar2(500),

t_comment varchar2(500)

);

–源库中表名,目标库中表名,字段名,类型,中文注释

–这里为了做比较,所以把A表的源库表名也建在了B表中,这样有个更直观的比较,为后续做准备

然后使用SQL Loader或PL/SQL Developer等工具把excel数据导入到相应的表中去。

下面从A表和B表中获取到需要拼接及比较差异的字段,生成中间表A1、B1

create table A1 as

select t_name_A,t_col,t_type,t_comment,t_name_A||t_col lm

from A;

create table B1 as

select t_name_A,t_name_B,t_col,t_type,t_comment,t_name_A||t_col lm

from B;

然后,根据A1、B1的内容,利用join形成差异统计表数据

create table bd

as

select

a.t_name_A,a.t_col,a.t_type,a.t_comment,a.lm,b.lm b_lm,b.t_name_A b_t_name_A,b.t_name_B,b.t_col b_t_col,b.t_type b_t_type,b.t_comment b_t_comment

from

(select t_name_A,t_col,t_type,t_comment,lm from A1) a

FULL join

(select t_name_A,t_name_F,t_col,t_type,t_comment,lm from B1) b

on a.lm=b.lm;

补充,可以利用all_tab_columns视图,查看出具体表下字段的结构,不过用此视图拼接的话,得到的number类型长度默认为number(22),得到的date类型默认为date(7),还需要手工二次修正。

篇章五:望眼项目读万卷,行万里,面对苍茫,沉心静气,迎新去垢。

——深蓝

在尝试角色变换的日子里,蓝,感受到不曾有过的压力感,同样意识到需要学习的知识和技能,不是一朝一夕就可以达到的。这个需要一段时间来让自己强大起来。

后续的计划,简单中摸索:

(计划1)

熟读百遍的“指导任务书”:想成为团队的掌舵人,就要先把自己的认知丰富起来;

很多时候,重复是最好的老师,把简单的方法量化起来,那就会显得不简单。

(计划2)

学而不思则罔,思而不学则殆:项目建设,技术思维乘风,管理思维破浪;

项目经理既不是技术的实施者,也不是什么事都要自己来的“超人”,把控整个的项目建设才是应该做的,而不要把自己放置到了一个打杂的定位上去。

不要让安逸毁了自己,不要让胆怯混沌了目光,做坚毅的践行者,为项目付诸于一腔热血。

——深蓝

*********************************蓝的成长记系列_20150820*************************************

原创作品,出自 “深蓝的blog” 博客,欢迎转载,转载时请务必注明出处(http://blog.csdn.net/huangyanlong)。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-04 13:02:04

蓝的成长记——追逐DBA(20):何故缘起,建库护航 (二次发布-练习使用markdown编辑)的相关文章

蓝的成长记——追逐DBA(9):国庆渐去,追逐DBA,新规划,新启程

***********************************************声明***********************************************************************  原创作品,出自 "深蓝的blog" 博客,欢迎转载,转载时请务必注明出处,否则追究版权法律责任. 深蓝的blog:http://blog.csdn.net/huangyanlong/article/details/39860137 *******

蓝的成长记——追逐DBA(8):重拾SP报告,回忆oracle的STATSPACK实验

***********************************************声明***********************************************************************  原创作品,出自 "深蓝的blog" 博客,欢迎转载,转载时请务必注明出处,否则追究版权法律责任. 深蓝的blog:http://blog.csdn.net/huangyanlong/article/details/39803995 *******

蓝的成长记——追逐DBA(18):小机上WAS集群故障,由一次更换IP引起

原创作品.出自 "深蓝的blog" 博客,欢迎转载,转载时请务必注明出处.否则追究版权法律责任. 深蓝的blog:http://blog.csdn.net/huangyanlong/article/details/47720043 [简单介绍] 个人在oracle路上的成长记录,当中以蓝自喻.分享成长中的情感.眼界与技术的变化与成长.敏感信息均以其他形式去掉,不会泄露不论什么企业机密,纯为技术分享. 创作灵感源于对自己的自省和记录.若能对刚刚起步的库友起到些许的帮助或共鸣,欣慰不已.

蓝的成长记——追逐DBA(12):七天七收获的SQL

原创作品,出自 "深蓝的blog" 博客,欢迎转载,转载时请务必注明出处,否则追究版权法律责任. 深蓝的blog: [简介] 个人在oracle路上的成长记录,其中以蓝自喻,分享成长中的情感.眼界与技术的变化与成长.敏感信息均以英文形式代替,不会泄露任何企业机密,纯为技术分享. 创作灵感源于对自己的自省和记录.若能对刚刚起步的库友起到些许的帮助或共鸣,欣慰不已. 欢迎拍砖,如有关技术细节表述有错误之处,请您留言或邮件([email protected])指明,不胜感激. [前言] 这是

蓝的成长记——追逐DBA(6): 做事与做人:小技术,大为人

***********************************************声明***********************************************************************  原创作品,出自 "深蓝的blog" 博客,欢迎转载,转载时请务必注明出处,否则追究版权法律责任. 深蓝的blog:http://blog.csdn.net/huangyanlong/article/details/39718485 *******

蓝的成长记——追逐DBA(3):古董上操作,数据导入导出成了问题

蓝的成长记--追逐DBA(3):古董上操作,数据导入导出成了问题 ***************************************声明*************************************** 个人在oracle路上的成长记录,其中以蓝自喻,分享成长中的情感.眼界与技术的变化与成长.敏感信息均以英文形式代替,不会泄露任何企业机密,纯为技术分享. 创作灵感源于对自己的自省和记录.若能对刚刚起步的库友起到些许的帮助或共鸣,欣慰不已. 欢迎拍砖,如有关技术细节表述有错

蓝的成长记——追逐DBA(17):是分享,还是消费,在后IOE时代学会成长

原创作品,出自 "深蓝的blog" 博客,欢迎转载,转载时请务必注明出处,否则追究版权法律责任. 深蓝的blog:http://blog.csdn.net/huangyanlong/article/details/46456389 [简介] 个人在oracle路上的成长记录,其中以蓝自喻,分享成长中的情感.眼界与技术的变化与成长.敏感信息均以其它形式去掉,不会泄露任何企业机密,纯为技术分享. 创作灵感源于对自己的自省和记录.若能对刚刚起步的库友起到些许的帮助或共鸣,欣慰不已. 欢迎拍砖

蓝的成长记——追逐DBA(16):DBA也喝酒,被捭阖了

原创作品,出自 "深蓝的blog" 博客,欢迎转载,转载时请务必注明出处,否则追究版权法律责任. 深蓝的blog:http://blog.csdn.net/huangyanlong/article/details/45826877 [简介] 个人在oracle路上的成长记录,其中以蓝自喻,分享成长中的情感.眼界与技术的变化与成长.敏感信息均以其它形式去掉,不会泄露任何企业机密,纯为技术分享. 创作灵感源于对自己的自省和记录.若能对刚刚起步的库友起到些许的帮助或共鸣,欣慰不已. 欢迎拍砖

蓝的成长记——追逐DBA(7):基础命令,地基之石

***********************************************声明***********************************************************************  原创作品,出自 "深蓝的blog" 博客,欢迎转载,转载时请务必注明出处,否则追究版权法律责任. 深蓝的blog:http://blog.csdn.net/huangyanlong/article/details/39738501 *******

蓝的成长记——追逐DBA(2):安装!安装!久违的记忆,引起我对DBA的重新认知

蓝的成长记--追逐DBA(2):安装!安装!久违的记忆,引起我对DBA的重新认知 ***************************************声明*************************************** 个人在oracle路上的成长记录,其中以蓝自喻,分享成长中的情感.眼界与技术的变化与成长.敏感信息均以英文形式代替,不会泄露任何企业机密,纯为技术分享. 创作灵感源于对自己的自省和记录.若能对刚刚起步的库友起到些许的帮助或共鸣,欣慰不已. 欢迎拍砖,如有关