生产系统中只读表的实现思路(r2第43天)

在生产系统中有些时候需要保证一些表的只读特性,不允许表的数据被轻易修改。可能有一下的场景比较适用。 1) 一些系统中有一些类似数据字典信息的表。这些表的信息基本都是稳定的,不会轻易的改变。 2) 可能需要从一些外部系统中拷贝一些数据做比对和参考,不希望这些“临时”表的数据被认为修改。 3) 系统的核心表数据不想被人为的误删。 对于以上的场景可以有下面的实现思路。 1) 首先就是通过role,privilege来做限定。我们可以创建一些连接用户,这些连接用户中只存在同义词,如果只需要有只读权限,只在role中赋予select权限,或者只赋予select权限就可以了。针对第三种场景比较适用,也是比较通用的。 2)通过物化视图,对于一些表的信息,如果是稳定的,不会变化的,而且通过其他的连接用户都无法直接做更改,可以考虑使用物化视图。这对第一种场景是比较适用的。 3)alter table read only,在11g中有一个新特性,可以保证表出于只读状态,任何dml操作对它都是无效的。这对第2中场景是比较适用的 比如表TEST,如果需要设置为read only,可以写如下的sql语句。 alter table TEST read only; 4)外部表 外部表在数据迁移中,如果大家接触过比较多的迁移项目,可能就会有很真实的感受,总是有一些主键约束的数据,这些数据又很难在数据迁移之前排查出来。有些表可能比 较大,百G上T级别,如果重新导入其他的环境,又需要耗费相当多的空间,对于系统也是极大的复杂,在线业务来说不敢想象,这个时候可以考虑使用外部表。不会有物理的数据存储空间占用,外部表加载基本都是毫秒级的速度,所以对系统影响很小。同时外部表是只读的,限定了不能做数据修改。就算删除了外部表,真实的数据也不会删除, 这对于第二种场景是比较适用的,如果条件允许,对于第一种场景也是比较合适的。

原文发布于微信公众号 - 杨建荣的学习笔记(jianrong-notes)

原文发表时间:2014-07-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏about云

构建高并发高可用的电商平台架构实践2

上次发布内容: 如没有接上,可以查看下面原文: 6) 搜索 在电子商务平台中搜索是一个非常的重要功能,主要有接搜索词类目导航、自动提示和搜索排序功能。 开源...

5739
来自专栏北京马哥教育

Puppet,Ansible,Saltstack 有哪些区别和联系

目前主流的自动化运维工具有puppet、ansible、saltstack,实际上每一个工具都基本上能够完成你的运维任务,也都是久经考验的。都有NB的地方,也有...

1352
来自专栏农夫安全

【全网扫描】获取CDN背后网站的真实IP

0x00 前言 事先声明: 方法可能存在漏报(嗯, 在人品差的情况下) 唔, 我们使用 www.wooyun.org 作为案例。 首先从 www.woo...

8097
来自专栏zhangdd.com

生产内网ssh登陆变慢问题原因及解决办法

最近发现内网一些服务器ssh连接变慢,原来都是秒开的现在基本上要等10几秒才能返回登陆界面,因为是在内网基本上排除网络连接问题

1071
来自专栏Golang语言社区

转-游戏服务端大访问量大并发的优化解决方案?

所有的对象都放在内存,20万用户以下无压力。 如果游戏的用户很多,例如超过50万,内存就会不够,可使用LRU算法来淘汰一些数据。 流程:收到用户请求 - 在...

4949
来自专栏finleyMa

(转) 网站统计中的数据收集原理及实现

原文地址:http://blog.codinglabs.org/articles/how-web-analytics-data-collection-syste...

2011
来自专栏码神联盟

缓存 | redis和memecache的异同以及应用场景

缓存就是数据交换的缓冲区Cache。当某一硬件要读取数据时,会首先从缓存中查找需要的数据,如果找到了则直接执行,找不到的话则从内存中找。由于缓存的运行速度比内存...

3549
来自专栏FreeBuf

LG智能手机爆出两个远程代码执行漏洞

Check Point 的研究员发现了 LG(也称为 LGEIME)智能手机的两个漏洞,这些漏洞都存在于默认的键盘上,而且是 LG 设备独有的。第一个漏洞是在敏...

1213
来自专栏做全栈攻城狮

GitHub这么火,程序员你不学学吗? 超简单入门教程干货2

本GitHub教程旨在能够帮助大家快速入门学习使用GitHub,进行版本控制。帮助大家摆脱命令行工具,简单快速的使用GitHub。

732
来自专栏文渊之博

迁移数据库数据到SQL Server 2017

概述 本篇我们将利用DMA一步一步实现SQL Server 的迁移。帮助大家理解现在的SQL Server与新版本的融合问题,同时需要我们做哪些操作来实现新版本...

5506

扫码关注云+社区

领取腾讯云代金券