最近和前同事(DBA目前就职于某头部证券公司)闲聊时聊到关于数据库规范的事,他说他那边所有的数据库都有命名规则并且数据库的对象创建也有,不由得让人很心动,毕竟我在交付数据库时,都是按照自己的个人”偏好“进行数据库的创建,同时对数据库的对象授权和用户权限没有任何规范,久而久之发现
1.数据库经常出现人为死锁;
2. 敏感数据的透明;
3. 数据库使用单一文件夹,导致磁盘100%饱满的情况下,无法在线快速扩容
导致运维部门交付速度和质量下降以及开发部门效率降低等,同时随着同事的不断离职和加入,这种随便造随意整的个人经验主义显得那么”猖狂“,在与前同事深入了解后,真是从心底喜欢上那种规范,并且目前按照他的介绍,和公司其他同事商量做了一套基于我司如下的Oracle规范并实施:
如Oracle数据库实例命名大概规则如下:
1.数据库名字定义长度统一为12位且全部为大写
1.1 第一位为P,T,D之一
【P代表生产】,【T代表测试环境】,【D代表开发环境】
1.2 第2-第8位为应用系统的简称
1.3 第9位为S,O,D,P之一
【S代表SQLserver】【O代表Oracle】【D代表DB2】【P代表PostgreSQL】
1.4 第10-12位代表数量,可选000-999
举例,应用为:某教育企业门户网站,后台数据库采用oracle,
那么其生产,测试,开发环境数据库名分别是PJYQYCMSO001,UJYQYCMSO001,DJYQYCMSO001
如果需要多套,那么可以PJYQYCMSO002,UJYQYCMSO002,DJYQYCMSO002
2. 数据库文件系统规范
2.1 所有数据库文件必须是基于LVM的文件系统;且满足大小FRA:DATA=2:1;
2.2 数据库文件系统vg组必须不同于默认系统vg组
2.3 数据库DATA扩容时也必须保证#2.1成立
这套规范目前在我公司实行了一段时间,整体效果很不错,希望有需要的根据自己公司的实际情况做出对应的改动,形成一套规范,当然如果大家有更好的数据库规范,请私聊我,共同学习【毕竟还有除Oracle之外的其他数据库一样可以制定类似规范】





