ACA认证课程-云服务器ECS
四、云数据库RDS
Relational Database Service,关系数据库服务
- 云数据RDS产品介绍
RDS采用主从备份架构,拥有3份以上数据存储,具备高可用性和数据可靠性
RDS的功能:
数据库管理平台DMS:为RDS定制的数据库管理平台,使用户通过浏览器即可安全、方便的进行数据库管理和维护。
实现数据回溯方便:RDS能够根据备份文件将数据库恢复至7日内任意时刻。
数据库优化建议:RDS提供直观的慢SQL分析报告和完整的SQL运行报告,并提供如主键检查、索引检查等多种优化建议。
监控体系:RDS展示近20种性能资源监控视图,可对部分资源项设置阈值报警,并提供WEB操作、SQL审计等多种日志。
慢SQL:执行效率低的SQL语句
- 云数据库RDS的实例管理
相关概念:
RDS实例(Instance):阿里云关系型数据库的运行环境
-各实例之间相互独立、资源隔离,相互之间不存在CPU、内存、IOPS等抢占问题
-同一实例中的不同数据库之间是资源共享的
-RDS实例目前支持的最大内存为48GB,最大磁盘容量为1000GB
RDS只读实例(读写分离,通常读操作多于写操作)
-分担数据库压力,增加应用的吞吐量
RDS可用区(相当于机房)
-单可用区:有效控制云产品间的网络延迟
-多可用区:轻松实现同城容灾
地域(Region)
-用户所购买的RDS实例的服务器所处的地理位置
RDS数据库:用户在一个实例下创建的逻辑单元
-一个实例可以创建多个数据库,在实例内数据库命名唯一
-所有数据库都会共享该实例下的资源,如CPU、内存、磁盘容量等
RDS数据库账号
-每个数据库账号可以用于多个数据库
-每个数据库的读写权限也可被分配给多个数据库账号
-一个账号可以创建多个实例
RDS连接数
-应用程序可同时连接到RDS实例的连接数量
RDS磁盘容量
-用户购买RDS实例时,所选择购买的磁盘大小
RDS管理控制台
-管理用户所购买的RDS实例的WEB页面,可对RDS实例进行各种操作
- 云数据库RDS的数据库管理
DMS(原iDB Cloud):一款访问管理云端数据的WEB服务,支持MySQL、SQL Server、PostgreSQL和ADS等数据源,覆盖RDS,ADS和万网等阿里云环境。
DMS提供了数据管理、对象管理、数据流转和实例管理功能。
- 云数据库RDS的数据迁入
RDS提供专业工具和向导式迁移服务来帮助用户将数据迁入RDS。
迁移类型
结构迁移
DTS会将迁移对象的结构定义迁移到目标实例
支持对象:表、视图、触发器、存储过程、存储函数
全量迁移
DTS会将源数据库的数据全部迁移到目标实例
增量迁移
将迁移过程进行数据变更同步到目标实例
如果迁移期间进行了DDL操作,那么这些结构变更不会迁移到目标实例
- 云数据RDS产品家族
Relational Database Service,关系数据库服务
RDS for SQL Server
PostgreSQL开源数据库
PPAS(Postgres Plus Advanced Server):是一个稳定、安全且可扩展的企业级关系型数据库
- 实践部分
【在线实验3】云数据库管理初体验
(1) 访问阿里云RDS管理控制台
(2) 创建数据库账号:
用户可以通过RDS 管理控制台创建数据库。数据库名称实例内唯一,实例间互不影响。同一实例下的数据库共享该实例下的所有资源
(3) 创建数据库:
(4) 登录RDS数据库
在产品与服务中,点击数据管理DMS,进入到DMS控制台
(5) 导入测试数据
(6) 查看诊断报告
【在线实验4】数据库上云迁移的实现
(1)远程登录到MySQL源数据库ECS实例
(2)登录到ECS实例的MySQL数据库
mysql -u root -p
Enter password: (输入123456,输入的密码不会显示)
(3)查看源数据库bakery、其中的表customer和product,以及表中的数据
查看数据库信息:mysql> show databases;
切换数据库为bakery:mysql> use bakery;
查看表中数据:
mysql> show columns from customer;
mysql> show columns from product;
mysql> select * from customer;
mysql> select * from product;
(4)建立目标数据库
同在线实验3
(5)数据库迁移
(6)查阅迁移结果
登录数据库,进入数据库登录界面。
进入数据库管理页面,证明数据库迁移成功。
五、云存储OSS
- 阿里云OSS产品概要
对象存储服务(Object Storage Service,简称OSS):阿里云对外提供的云存储服务。(具有RESTFul API的平台无关性,容量和处理能力的弹性扩展,按实际容量付费等特点)
OSS是一种面向互联网的分布式存储服务
- 阿里云OSS相关概念
Object
-用户的每个文件都是一个Object
-文件大小限制
-Object包含key,data和meta data
Bucket
-每个Object必须都包含在Bucket中
-Bucket名在整个OSS中具有全局唯一性,且不能修改
-一个用户最多可创建10个Bucket每个Bucket中存放的Object的数量和大小总和没有限制
-一个应用可以对应一个或多个Bucket
Service
-提供给用户的虚拟存储空间,用户可以在这个存储空间中拥有一个或者多个Bucket
Access ID&Access Key(API密钥)
-用于标识用户,为访问OSS做签名验证
- 阿里云OSS的基本操作
Bucket操作:
选择在已有的数据中心创建bucket
每个bucket的名字全局唯一
bucket的名字需要符合命名规范
-使用UTF-8编码
-长度必须在1-1023字节之间
-不能以"/"或者"\"字符开头
用户成功创建bucket以后,不能修改bucket名字,不能更改bucket所属数据中心
Object操作
4. 阿里云OSS的API和SDK介绍
OSS API调用说明
调用方式
- 对OSS API接口调用是通过向OSS API的服务端地址发送HTTP请求,并按照接口说明在请求中加入相应请求参数来完成的
- 根据请求的处理情况,系统会返回处理结果
服务地址
- OSS API的服务接入地址为:oss.aliyuncs.com
通信协议
- 支持通过HTTP或HTTPS通道进行请求通信。为了获得更高的安全性,推荐您使用HTTPS通道发送请求
字符编码
- 请求及返回结果都使用UTF-8字符集进行编码
OSS API接口列表
对象存储服务OSS API使用示例
5. 阿里云OSS之静态网站托管
6.实践部分
【在线实验5】云存储OSS使用初体验
(1)查看图片分享网站
登录到ECS服务器后进入网站系统的根目录。
cd /alidata/www/default
ls
查看网站首页的源码:cat index.html
(2)上传图片文件
在ECS实例的 /alidata/www/default目录中,进入 cfg.json 的编辑页面,并修改OSS的配置信息。
vim cfg.json
执行如下命令,将01.png上传到OSS,该脚本使用OSS 提供的API接口put_object_from_file()将本地文件上传到 实验资源 分配的 Object路径 中。
python oss_upload.py 01.png
python oss_upload.py 02.png
python oss_upload.py 03.png
python oss_upload.py 04.png
(3)使用OSS存储图片分享网站
进入alidata/www/default目录,删除当前目录中的所有“.png”文件
rm -rf *.png
返回ECS服务器的**/alidata/www/default**目录下,并进入服务器访问首页 index.html 的编辑界面 ,修改图片的链接地址为OSS的存储地址即可访问到被删除的图片
【在线实验6】使用OSS API上传和下载文件
(1)调用OSS API上传小文件
登录到 ECS 服务器后,在使用 OSS API 进行文件上传和下载之前,用户需配置阿里云账号的 AccessKeyID, 在 ECS 命令行中,使用命令 cd aliyun-lab 进入 aliyun-lab 目录。 然后,使用命令 vim configure.json ,configure.json 文件用于提供调用 OSS API 时所需的公共参数。
完成 OSS 的基本配置信息后,在 aliyun-lab 路径下,执行命令 vim object_upload.py ,修改脚本文件 object_upload.py 。此脚本通过调用 OSS API,上传本地文件 (__file_name:本地文件路径) 到 bucket 中,并重命名 object (__object_name:Bucket中Object名称) 。在代码的 #调用OSS API的put_object()上传文件 下方,添加如下的代码,完成修改后,保存脚本并退出编辑页面。
with open(__file_name,'rb') as fileobj:
bucket.put_object(__object_name, fileobj)
运行脚本程序。将本地文件 lab.txt 上传到本实验分配 OSS bucket 的 Object 路径下,并重命名为 lab_object.txt 。
python object_upload.py <oss bucket名称> lab.txt <oss object路径>/lab_object.txt
即:python object_upload.py lab-oss-924hd2 lab.txt S01099/u-napcpdmm/lab_object.txt
输入命令 cat lab.txt ,查看上传到OSS指定路径的文件内容:Hello first object! 。
(2)调用OSS API下载小文件
返回 ECS 服务器访问终端,在 ECS 的 aliyun-lab 目录下,执行命令 vim object_download.py ,修改脚本文件 object_download.py 。此脚本通过调用 OSS API,下载 OSS的 bucket 中名称为 __object_name 的 object 到本地,并重命名为 __local_name 。在代码的 #调用OSS API的get_object_to_file()下载object 下方。添加如下的代码,完成修改后,保存脚本。
bucket.get_object_to_file(__object_name, __local_name)
将 OSS 存储的文件 lab_object.txt 下载到本地,并重命名为 lab_local.txt 。下载成功后,执行命令 ls ,列出当前目录下所有的文件,可以看到文件lab_local.txt 已经保存在当前目录下。请注意替换 <oss bucket 名称> 和 <oss object路径> 为 实验资源 提供的信息。
python object_download.py <oss bucket 名称> <oss object路径>/lab_object.txt lab_local.txt
即:python object_download.py lab-oss-924hd2 S01099/u-napcpdmm/lab_object.txt lab_local.txt
python object_delete.py lab-oss-924hd2 S01099/u-napcpdmm/lab_object.txt
执行命令 cat lab_local.txt 和 cat lab.txt ,分别查看原文件与下载后的文件,对比两个文件中的内容,可以发现两个文件中的内容一致,证明 object 下载并成功保存到本地。
(3)调用OSS API删除Object
执行 vim object_delete.py ,修改脚本文件 object_delete.py 。此脚本通过调用 OSS API ,删除 OSS Bucket 中的 object。在代码的 #调用OSS API batch_delete_objects(),批量删除objects 下方。添加如下的代码,完成修改后,保存脚本。
result = bucket.batch_delete_objects([__object_name])
更多详情请参考 阿里云高校计划