在过去大多数公司都是自建机房,有自己的业务系统和研发人员。随着时代的发展,现在大多企业都紧跟时代步伐,都纷纷将数据库上云,那么上云真有这么好么,实际体验如何,具有什么实际好处可以举例说明吗?
我从以下几点进行分析,如有纰漏还望指正
自建数据库的数据可靠性、系统安全性、备份等方面实际上都不如云数据库好用的对于初创型的企业来说,在这方面可以提供更多的自动化服务,而且还能节省开支,何乐而不为呢?所有总体来说数据库上云是大有优势,也是大势所趋。
以下案例以华为云为例
线下自建机房搭建MYSQL,要经历选配置,搭网络,购硬件等机房硬件方面的选购,然后再数据参数配置,环境调试等软件方面的调试。对于存储空间不够,可以采购硬盘不停机扩容难度不大,如果是性能方面升级内存和CPU,基本上都得停机才能扩容,开机后还要做一次测试,系统是否运行正常,如果中间出岔子了一时半会解决不掉还会影响实际业务,给客户造成不好的印象,总之费时费力,得有一定的工作经验的数据库管理员才能很好的应对。
在线下首先要考虑公司能够容忍丢失多少数据、花多少人力时间与成本这都是基于公司的需求,这是我们制定备份方案的根据,基本上这些都是由公司中数据库管理员或者项目经理负责制定,是采用诸如全备+binlog备份方式还是主从复制等,细节方面设置自动备份策略,多久更新再做一次手动全量备份。对于备份文件的保留多长时间也需要斟酌下,是否采用双机备份,提高数据的可靠性等。
以下案例使用华为云数据库为例(官网)
注册账号
去华为官网,需要实名认证的,备好银行卡和身份证即可。
购买rds
官网首页选择【产品】-【基础服务】-【数据库】
选择配置
初次使用选择“按需计费”可以减少不必要的开支,体验完,了解自己的实际需求后再根据需要购买“包年/包月”。
[当前区域]请选择靠近您客户的区域,可以降低网络时延、提高访问速度不同区域的资源之间内网不互通。
[实例类型]个人测试选择“单机”费用更低;主备,可以提供更高的可靠性。
[性能规格]根据需要选择
[VPC][子网][内网安全组]没特殊需求依照默认
[管理员密码]需要牢记登录用
如图选择“计算型”一小时收费才0.5元。
等待创建完成
填写完成后提交,返回 RDS 控制台,查看实例列表,等待 6~7min 左右,刷新页面。
可以看到 RDS 控制台上单机实例创建成功
RDS控制台页面
点击左边栏的“实例管理”–>单击“登陆”
登陆
打开 DAS 数据库登陆页面,输入账号和密码(可以使用 root 账号以及创建实例时指定的 root 密码来登陆)
使用SQL窗口
打开 DAS 的管理页面,单击“SQL 窗口” 输入如下简单的创建数据库命令,确认可以操作。
create database dbtest;
确认成功后,输入下面的名称删除。
drop database dbtest;
类似于sqlserverManager数据库管理界面,可以使用T-SQL操作数据库并带有智能提示。
RDS控制台页面
操作这个时,即已经存在一个主备或者单机实例的前提下,已经购买了RDS,进入控制台界面。
实例管理
选择要操作的实例,单击实例名称,点击跳转进入详情页面
设置备份策略
选择“备份恢复”-> “全量备份”页签,单击“修改备份策略”
[自动备份]强烈要求打开,默认保持不变
[保留天数]根据需要设置,默认为 7 天,根据实际需求修改
[备份时间段]避免选在业务高峰时段,请选择业务低峰时间段,根据实际需求修改,可保持不变
[备份周期]请根据实际需求修改,可保持不变
等待自动触发
可以在设置备份策略时,先暂时修改为当前时间的临近时间段,稍等片刻后等待其触发备份策略,看是否执行了已经存在的备份策略。通常执行完毕后如下界面,可以根据[备份类型]看出这条备份数据是从自动备份触发的,大小为2.67M并提供了恢复、下载、复制等功能。
手动备份与数据库恢复(还原)在实际业务中都是非常常见的,并且经常刚手动备份不久后就需要恢复的O(∩_∩)O~∑ ,常见诸如软件升级前夕的数据备份,修改客户业务数据时.
手动备份使用流程
RDS控制台页面–>实例管理–> 创建备份–>等待执行完成
从RDS控制台页面选中要操作的RDS数据库实例,进入详情页面,选中【备份恢复】-【全量备份】-【创建备份】
根据需要取个好记的备份记录名(诸如back-20181223 以日期方式)
创建成功后,如上图我这边新增了俩条手动备份数据(PS:目前华为RDS暂不支持,备份记录的重命名⊙﹏⊙‖∣° )
恢复备份使用流程
RDS控制台页面–>实例管理–> 备份恢复–>等待执行完成
恢复备份就是在备份之前假如存在有表被误操作了,能通过恢复到指定时间点找回该表或者记录。
那么现在我们来模拟下情景操作下。
首先我们得提前构造成一些表数据,利用 DAS 进行如下的数据库操作。
create database loadtest;
create table loadtest.tabtest(id int not null primary key, name varchar(20),
age int);
insert into loadtest.tabtest value(1, 'Ming', 20);
insert into loadtest.tabtest value(2, 'Zhong', 22);
insert into loadtest.tabtest value(3, 'Jin', 21);
上面sql语句帮我们创建了一个名为loadtest数据库,在这个数据库下创建了一张名为tabtest的表并插入三条测试数据
下面我们要首先手动备份下数据库,然后我们要模拟误操作了,假设我们不小心的删除了ID为2,3的2条数据,这2条数据是不应该删除的却被我们删除了。
delete from loadtest.tabtest where id in (2, 3);
select * from loadtest.tabtest;
确认 id 为 2,3 的都已经删除了,大概过了几分钟以后,发现表记录被删错了,需要通过恢复到指定
时间点来找回,从RDS控制台页面选中要操作的RDS数据库实例,进入详情页面,选中【备份恢复】-【全量备份】-【恢复到指定时间点】弹出“恢复到指定时间点”的对话框,选择合适的时间点。选择恢复到“新实例”,单击“确定”。等待若干时间,等恢复成功后,使用 DAS 查看表记录是否复原。
在上面我选择的是恢复到“新实例”,这样可以不影响本实例的情况下,查看恢复后数据的情况,如果是自己想要的效果,可以选择当前实例直接覆盖上去。
磁盘扩容使用流程
RDS控制台页面–>实例管理–>扩容-磁盘扩容–>等待扩容执行
当存储空间不够时,华为云能对存储空间进行在线不停机扩容。
具体操作步骤为单击数据库链接,进入 RDS 控制台页面点击左边栏的“实例管理”选择要操作的实例,单击“扩容”
弹出扩容页面,单击“磁盘扩容”,选择扩容到 100G(假定实例原来的存储空间为 40G),确认提交。
返回 RDS 控制台,等待大概 1~2 分钟,操作成功。
扩容成功,进入实例“基本信息”页面,查看“空间信息”处,存储
空间变成了 100GB。
CPU/内存扩容使用流程
RDS控制台页面–>实例管理–>扩容-CPU/内存扩容–>等待扩容执行
单击数据库链接,进入 RDS 控制台页面,点击左边栏的“实例管理”,选择要操作的实例,单击“扩容”
弹出扩容页面,选择“CPU/内存扩容”,选择扩容到 4 核 8GB(实例现在的规格是 1 核 2GB),确认提交。
返回 RDS 控制台,等待大概 2~3 分钟,操作成功。
变更成功,进入实例“基本信息”页面,查看“配置信息”处的性能规格变成了 2 核 8GB。
不停机修改数据库配置是对于实现中非常实用并且给力的功能,不仅方便我们操作,降低使用门槛,还让我们节省大量的开支与人力,是个值得点赞的功能。
从上所述我相信各位应该对数据库上云应该有个比较全面的认识了,也清楚了数据库上云的是大势所趋,不管是公司还是个人都可以从可靠性、系统安全性、备份、成本等方面节省不少的精力和花费。上面的应用场景和案例我只是列举了几个比较常见的,实际情况还有更多可能,大家可以参考华为官方不仅有入门使用,还有【常见问题】和【用户指南】都已经附带了
操作场景和操作步骤。我呢有幸参加CSDN的【EI赋能 智启未来】活动了解了华为的云数据库,开始做MYSQL的功能和性能测试,收货良多,以实际情况案例分享几点希望对各位有所帮助。