电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

阿里巴巴数据库标准操作手册

74页
  • 卖家[上传人]:aa****6
  • 文档编号:33704050
  • 上传时间:2018-02-17
  • 文档格式:DOC
  • 文档大小:224.50KB
  • / 74 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、01-建表一、 目的明确建表操作的风险及标准流程,最大限度避免建表操作带来的故障。二、 适用范围l 项目预发布新建表l 项目正式发布新建表l 不包含数据订正所建临时表l 不包含导数据所建的中间表三、 风险评估l 登录到错误的 schema 下,导致表建到错误的 schema 里,而应用无法访问。l 忽略了 TABLESPACE 参数,导致表建到了默认表空间,导致后续空间增长和维护困难。l 对于未来增量较快的表选择了一个空间规划不足的表空间,导致后续空间增长和维护困难。l 脚本末尾缺少分号,导致该表没有被创建上,而执行 DDL 的过程又不会报错。l 其他原因漏建了表,导致应用访问错误。l 所建的表定义(表名、字段名、字段定义、字段个数、字段顺序)跟测试环境不一致,导致应用访问错误。l 同步库没有及时创建相应的表,或者没有更新同步配置,导致同步及应用出问题。四、 操作流程1. 准备工作a) 在项目需求分析阶段,跟数据库设计人员一起明确新表所存放的数据库。具体设计原则本文不繁述。b) 准备发布脚本时,检查 tablespace 定义,检查 tablespace 剩余空间,参考表空间自身负荷及

      2、新表的预期负荷,为每个新建的表选择合适的表空间,并在建表语句中添加 tablespace的配置。c) 定发布计划时,跟开发接口人一起商定好建表操作的时间点。如小需求没有发布计划评审,则必须在提交测试时(即表结构冻结时)即开始与开发接口人确定建表时间点。如果发生计划外的发布建表需求,则要追究项目跟进的应用 DBA 沟通不力的责任。d) 以目前的认知,仅建表操作本身不会对数据库造成任何风险,故操作的时间点可以放宽:在变更时间窗口内,均可以执行建表操作。e) 建表操作属于预授权变更,在做之前必须在 ITIL 中提交相应的变更申请。2. 执行过程 a) 用应用账户登录数据库,SHOW USER 检查是否连接到正确的 schema。严禁使用sys、system 等用户建表。b) 执行建表脚本。若一次建表个数超过三个以上,要求将脚本事先保存为文本文件,上传至数据库服务器,执行时使用 create_table_ddl.sql 的方式直接执行。c) 查看过程若无报错,退出当前登录。若有报错,找出报错的地方,修改确认再执行,直至全部执行通过,最后退出当前登录。3. 验证方案a) 常规检查:dbcheck

      3、b) 检查表定义是否与测试库一致:exec pkg_check.CompareObject(user,TABLE_NAME);c) 立即联系开发接口人进行应用测试, 【建表】变更是否成功以应用测试结果为准。d) 同步库若建表,也需要执行 a) 和 b) 两个步骤。02-数据订正一、 目的明确【数据订正】操作的种类、风险,并根据各种类型的数据订正制定完善的步骤和回退方案,最大限度减少此类操作带来的故障。二、 适用范围l 新建表数据初始化l 现有表新增数据l 现有表删除数据l 现有表上新增字段初始化l 现有表上现有字段值修改三、 风险评估l 业务风险:订正本身所包含的业务不正确,导致给客户给公司带来损失。l 程序风险:订正本身业务正确,但是应用程序无法兼容订正的数据,导致应用出错。l 数据库风险:订正本身业务正确,应用程序也可以兼容,但是订正速度过快、订正并发压力过大,导致数据库无法正常提供服务。通常会造成表空间耗尽、undo 消耗过快、archive 增长过快、备库恢复压力大等问题。l 沟通风险:在业务方-开发接口人-DBA 三方的沟通交流过程中,信息传递错误或者不及时,导致最终订正的数

      4、据没有达到预期的目的。l 回滚风险:主要是因为业务方的原因,订正完成一段时间后要求回退,若在订正前没有备份原始数据,则可能导致无法顺利回退或者回退难度极大,给客户给公司带来损失。l 同步风险:各类同步架构下,数据订正可能导致同步堆积和同步延时,影响正常同步业务,所以有些大规模订正必须要正确屏蔽同步,并在多个库分别执行相同的订正脚本。l 缓存:有些表在应用层面做了缓存,制定订正计划的时候要考虑到订正后是否需要更新缓存。四、 操作流程1. 准备工作a) 需求分析阶段确认项目涉及的数据订正范围和数据量。b) 跟开发人员确定订正后是否涉及到对缓存的刷新和订正。c) 根据数据量评估对数据同步的影响,决定是否屏蔽同步。 (应用 DBA 必须熟悉同步采用的技术、正常情况下的同步量和延时、可以容忍的同步延时、屏蔽同步的具体方法。 )d) 注意规划订正速度,以防 undo 消耗殆尽。e) 订正脚本:i. 开发接口人直接提供可执行的 SQL 脚本,DBA 只负责拷贝执行。ii. 开发接口人提供主键及更新字段新值列表,由 DBA 导入数据库,写 SQL 脚本关联原表批量订正。iii. 开发接口人提供订正逻辑

      5、,由 DBA 翻译为批量提交 SQL 脚本。iv. 订正脚本要求可断点续跑,可反复执行。v. 严禁仅用一个事务来处理大规模订正(影响的记录数超过1万笔) 。超过一万笔的订正必须分段提交。vi. 确认订正脚本的执行计划正确。vii. 脚本中加入“进度报告”,即调用如下包(但是对于 trigger 中判断 client_info 的不允许这样处理。 ):Dbms_Application_Info.set_client_info(n | rows commit.);n 为变量,累加,表示当前订正的总记录数。f) 开发阶段跟开发接口人确认数据订正逻辑,完成订正脚本,并跟开发接口人确认脚本是否正确,同时按照需求准备备份脚本。g) 测试阶段在测试库执行订正脚本,由开发接口人和测试人员验证订正的正确性,应用DBA 协助验证。h) 发布前确定订正速度和并发度,确定订正时间段,预估订正总时长,若涉及量较大,需要跨天做订正,则应规划好每日订正的数据量和时间段。i) 备份要求:i. 新建表初始化:无需备份,回退时直接 truncate 即可。ii. 现有表新增数据:新建备份表记录下新增记录的主键,或者在新增

      6、记录中特定字段标识区分出订正所新增的数据,回退时定向 delete 这些记录。iii. 现有表删除数据:新建备份表记录下删除数据的完整记录,回退时直接从备份表中取出数据 insert 到原表。iv. 现有表上新增字段初始化:无需备份,回退时将该字段 update 为 NULL 或者开发接口人要求的值。不得将删除字段作为回退手段。v. 现有表上现有字段值修改:新建备份表记录下所改动记录的主键及所改动字段的原始值,回退时将改动过的字段按照主键更新到原表(若应用程序在回滚前已经修改了记录,则要根据具体业务具体分析回滚方案) 。vi. 备份表:备份表统一命名为 table_name_bak_mmdd_operator,最后的 operator 为操作DBA 的姓名每个字的首字母,如果超长了,则将原表名缩减。创建人有责任定期删除创建时间超过一个月以上的备份表。2. 执行过程 a) 如果需要,按照备份脚本备份数据。b) 执行订正脚本。查看订正进度,使用如下脚本:select client_info from v$session where client_info is not null;这个脚本必

      7、须配合前面描述的“进度报告”脚本执行。c) 检查 undo 消耗: undod) 检查表空间消耗: tbse) 检查归档空间f) 检查同步延时是否异常。g) 如果需要刷新应用缓存,在订正结束后通知应用刷新缓存。3. 验证方案a) 以应用验证为主,数据库辅助做一些 count 等验证。以应用验证通过为操作成功标准。五、 核心对象风险l 考虑到对 erosa 和 otter 的影响,严禁数据订正更新主键值。六、 回退方案按照备份时所做的各种不同的回退方案进行回退,回退之后也要要求应用做验证。03-创建、删除、修改 sequence一、 目的明确定义对于 sequence 对象的操作风险及步骤。二、 适用范围l 项目发布创建新 sequence。l 以删除、重建的方式修改 sequence 的起始值。l 在线修改 sequence 的 cache 值。三、 风险评估l Sequence 命名与应用程序中不一致,导致应用无法正常访问 sequence。l 双向同步的库,多库创建同名 sequence,起始值和步长值设置不合理,导致生成的值在表中对应主键值同步产生冲突。l 删除、重建 seque

      8、nce 的过程中,应用无法访问 sequence,高并发的应用可能会产生故障。l 删除、重建 sequence 之后没有对 sequence 的权限进行恢复,导致原本访问该 sequence 的其他 schema 无法正常访问。l Sequence 的 cache 设置不合理,设置过小会导致大量的系统相关等待,反之则导致sequence 生成值断层过多浪费严重。l Java 程序的 int16数据类型只能容纳最大 21亿,所以 sequence 不能超过这个值,如果有可能超过,需要跟开发确认。四、 操作流程1. 准备工作a) 默认使用变更系统生成的 sequence 名称,如果要修改,必须跟开发人员沟通一致。b) 与开发人员、项目发布负责人沟通变更时间点。对于删除、重建的操作必须明确告诉他们其间会有短暂的无法访问,如果是高并发的应用则选择在系统访问量最低的时候执行,规避风险。c) 根据并发数确定 cache 值,默认为 100,如遇特殊需求,酌情调整。d) 删除、重建的操作,事先检查是否有其他 schema 拥有对于该 sequence 的访问权限:SELECT grantee, ow

      9、ner, table_name, privilegeFROM dba_tab_privsWHERE table_name = upper(重建的对象名);e) 全面考虑同步的风险,确定同步环节中各个数据库的同名 sequence 起始值及步长,保证不会发生冲突,通常有如下两种做法:i. 起始值相差不大,步长值等于数据库个数。以双库同步为例,起始值分别设为1和2,步长均设为2。ii. 起始值相距较大,步长值相同。以双库同步为例,A 库起始值设为1,B 库起始值设为2亿,步长均设为1。相差的值可以根据增长预期进行调整。2. 执行过程 a) 标准新建脚本:CREATE SEQUENCE seq_tablename START WITH 1 CACHE 100;命名规范: seq_tablename默认不指定 recycle 和 max value。b) 标准重建脚本:DROP SEQUENCE seq_tablename ;CREATE SEQUENCE seq_tablename START WITH 1 CACHE 100;为了尽量缩短 sequence 不可用时间,这两个语句一起放在 SecureCRT 的 chartWindow 中一起执行。c) 标准修改 cache 脚本:ALTER SEQUENCE seq_tablename CACHE 200;d) 标准赋权脚本:GRANT SELECT ON seq_tablename to username;3. 验证方案a) dbcheck 检查是否有失效对象b) 通知应用验证是否可以正常访问 sequence五、 核心对象风险高并发对象重建时短暂不可访问;04_增加、删除唯一约束一、 目的明确增删唯一约束操作的风险及标准流程,最大限度避免增删唯一约束操作带来的故障。二、 适用范围l 项目发布新建表的增删唯一约束l 对于旧表的增删唯一约束三、 风险评估l 对现有表新增唯一约束的操作,会堵塞包括查询在内的所有操作,风险很大,请谨慎使用,尽量在新建表时和开发讨论后增加。l 没有指定 index,系统自动创建了 index,删除约束时,自动创建的 index 同时删除了。l 在高峰期创建,导致大量的 library cache lock/p

      《阿里巴巴数据库标准操作手册》由会员aa****6分享,可在线阅读,更多相关《阿里巴巴数据库标准操作手册》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.