关于阿里云云数据库RDSPostgreSQL版的信息
本文目录一览:
「一份成本、两种引擎」Babelfish for RDS PostgreSQL发布
Babelfish for RDS PostgreSQL 重磅发布,阿里云 RDS 团队通过产品能力的提升,实现一份硬件成本两种引擎,帮助客户降低成本。
您只需要在购买阿里云 RDS PostgreSQL 实例时开启Babelfish选项,即可获得PostgreSQL和Microsoft SQL Server两种数据库引擎数据查询和处理的能力,使 RDS PostgreSQL 具备解析执行SQL Server T-SQL语句的能力。
Babelfish支持SQL Server Tabular Data Stream (TDS) wire protocol和T-SQL(Microsoft SQL Server 查询语言),因此您无需切换数据库驱动程序或重新编写SQL,只需要在适配少量代码的情况下,将应用程序的数据库从SQL Server迁移至开启了Babelfish的阿里云RDS PostgreSQL实例上。
如果您也有如下的烦恼,那么可以考虑使用Babelfish for RDS PostgreSQL。
基于Babelfish for PostgreSQL的开源项目,阿里云RDS PostgreSQL实例生产时开启Babelfish选项后,您可以同时获得PostgreSQL和Microsoft SQL Server两种数据库引擎实时在线数据查询和处理的能力。因此,您无需切换数据库驱动程序或重新编写SQL,只需要在少量代码适配的情况下,将应用程序的数据库从SQL Server迁移至开启了Babelfish的阿里云RDS PostgreSQL实例上来,轻松实现“一份成本,两种引擎”。
一个实例,两个引擎,实时在线,双引擎双活,为什么是PostgreSQL数据库来实现呢?笔者相信下面都是可能的考虑因素:
Babelfish 通过插件的方式扩展 PostgreSQL 的功能,使得 PostgreSQL 在具备自身所有能力的同时,又具备接受和处理 Microsoft SQL Server 数据库数据查询和处理的能力。
Babelfish整体架构分为三层,至上而下分为:
开启了Babelfish选项的RDS PostgreSQL,既可以接收和处理来自SQL Server的应用连接,比如:C/C++类的MSSQL ODBC应用,JAVA类的MSSQL JDBC应用以及微软系使用最为广泛的C# .NET Provider for MSSQL类应用;又可以处理来自PostgreSQL类的应用,比如JAVA类PostgreSQL JDBC类应用。
一个 Babelfish for RDS PostgreSQL 实例会监听两个 TCP 端口,一个是接受 SQL Server 协议(TDS)端口 ,默认是 1433,另一个是接受来自 PostgreSQL 协议的端口,默认是 5432。如此,可以实现“一份成本、两种引擎”,使得SQL Server与PostgreSQL双引擎在线。
TDS 协议端口接受和处理来自 SQL Serve应用类的请求,并将 SQL Server 的 T-SQL 经过自定义解析器转为 PostgreSQL 可以识别的执行计划,交由PostgreSQL内核执行,然后返回给SQL Server终端用户。
RDS PostgreSQL数据库引擎,构建于阿里云云原生基础设施之上,采用存储计算分离架构。
Babelfish for RDS PostgreSQL 有两种迁移模式可供选择,分别是:single-db 和 multi-db 模式。迁移模式影响 SQL Server数据库的 schema 到 PostgreSQL 中 babelfish_db 库的 schema 名字的映射关系。
在 single-db 模式下,只支持在 Babelfish 中创建一个用户数据库,Babelfish用户数据库的 schema名称和 PostgreSQL 中 babelfish_db 数据库下的 schema 名字相同。例如:在 TDS 端口中创建数据库 DB_A,在 DB_A 下创建 schema_A,则在 PostgreSQL 的 babelfish_db 数据库中看到两个 schema:dbo 和 schema_A,对应于SQL Server中 DB_A 数据库的 dbo 和 schema_A。其中dbo为SQL Server默认创建的系统schema。
Multi-DB Mode
在 multi-db 模式下,Babelfish 中用户数据库的 schema 名字映射到 PostgreSQL 的 babelfish_db 数据库中之后会变成:数据库名_。例如:在 TDS 端口中创建数据库 DB_A 和 DB_B,在 DB_A 和 DB_B 下分别创建 schema_A 和 schema_B,则在 PostgreSQL 的 babelfish_db 数据库中看到 DB_A 的 schema 为: DB_A_dbo 和 DB_A_schema_A;DB_B 的 schema 为: DB_B_dbo 和 DB_B_schema_B。
创建Babelfish for RDS PostgreSQL实例
新购RDS PostgreSQL 13版本时(当前只有PG 13支持Babelfish),勾选 启用 Babelfish即可创建出Babelfish for RDS PostgreSQL:
创建用户
RDS PostgreSQL控制台创建高权限账号,
然后连接实例的 PostgreSQL 端口,执行命令:
call sys.babel_initialize_logins('babelfish_user');即可。
您可以使用以下任何一款客户端连接工具来连接Babelfish for RDS PostgreSQL的TDS端口。
具体数据库DDL,DML等操作范例由于篇幅有限,请参考阿里云官方帮助文档:
Babelfish for RDS PostgreSQL的TDS协议,支持主流开发技术语言,诸如C#、Java、Python、C/C++、Go等。详情应用程序Demo,请参考阿里云官方帮助文档:
Babelfish 目前还没有完全兼容 Microsoft SQL Server T-SQL,详细的语法限制参见:
谢桂起,PostgreSQL数据库爱好者,当前主要参与RDS PostgreSQL管控产品建设,欢迎有志之士加盟RDS产品部,邮箱:jianming.wjm@alibaba-inc.com
阿里云的主要功能是什么?
阿里云致力于以在线公共服务的方式,提供安全、可靠的计算和数据处理能力,让计算和人工智能成为普惠科技。
阿里云服务着制造、金融、政务、交通、医疗、电信、能源等众多领域的领军企业,包括中国联通、12306、中石化、中石油、飞利浦、华大基因等大型企业客户,以及微博、知乎、锤子科技等明星互联网公司。在天猫双11全球狂欢节、12306春运购票等极富挑战的应用场景中,阿里云保持着良好的运行纪录。
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。
扩展资料:
阿里云主要产品:
1、弹性计算:
云服务器ECS:可弹性扩展、安全、稳定、易用的计算服务
块存储:可弹性扩展、高性能、高可靠的块级随机存储
专有网络VPC:帮您轻松构建逻辑隔离的专有网络
负载均衡:对多台云服务器进行流量分发的负载均衡服务
弹性伸缩:自动调整弹性计算资源的管理服务
资源编排:批量创建、管理、配置云计算资源
容器服务:应用全生命周期管理的Docker服务
高性能计算HPC:加速深度学习、渲染和科学计算的GPU物理机
批量计算:简单易用的大规模并行批处理计算服务
E-MapReduce:基于Hadoop/Spark的大数据处理分析服务
2、数据库:
云数据库RDS:完全兼容MySQL,SQLServer,PostgreSQL
云数据库MongoDB版:三节点副本集保证高可用
云数据库Redis版:兼容开源Redis协议的Key-Value类型
云数据库Memcache版:在线缓存服务,为热点数据的访问提供高速响应
PB级云数据库PetaData:支持PB级海量数据存储的分布式关系型数据库
云数据库HybridDB:基于GreenplumDatabase的MPP数据仓库
云数据库OceanBase:金融级高可靠、高性能、分布式自研数据库
数据传输:比GoldenGate更易用,阿里异地多活基础架构
数据管理:比phpMyadmin更强大,比Navicat更易用
3、存储:
对象存储OSS:海量、安全和高可靠的云存储服务
文件存储:无限扩展、多共享、标准文件协议的文件存储服务
归档存储:海量数据的长期归档、备份服务
块存储:可弹性扩展、高性能、高可靠的块级随机存储
表格存储:高并发、低延时、无限容量的Nosql数据存储服务
4、网络:
CDN:跨运营商、跨地域全网覆盖的网络加速服务
专有网络VPC:帮您轻松构建逻辑隔离的专有网络
高速通道:高速稳定的VPC互联和专线接入服务
NAT网关:支持NAT转发、共享带宽的VPC网关
2018年6月20日,阿里云宣布联合三大运营商全面对外提供IPv6服务。
5、大数据:
MaxCompute:原名ODPS,是一种快速、完全托管的TB/PB级数据仓库解决方案。
QuickBI:高效数据分析与展现平台,通过对数据源的连接,和数据集的创建,对数据进行即席的分析与查询。并通过电子表格或仪表板功能,以拖拽的方式进行数据的可视化呈现。
大数据开发套件:提供可视化开发界面、离线任务调度运维、快速数据集成、多人协同工作等功能,拥有强大的OpenAPI为数据应用开发者提供良好的再创作生态
DataV数据可视化:专精于业务数据与地理信息融合的大数据可视化,通过图形界面轻松搭建专业的可视化应用,满足您日常业务监控、调度、会展演示等多场景使用需求
关系网络分析:基于关系网络的大数据可视化分析平台,针对数据情报侦察场景赋能,如打击虚假交易,审理保险骗赔,案件还原研判等
推荐引擎:推荐服务框架,用于实时预测用户对物品偏好,支持A/BTest效果对比
公众趋势分析:利用语义分析、情感算法和机器学习,分析公众对品牌形象、热点事件和公共政策的认知趋势
企业图谱:提供企业多维度信息查询,方便企业构建基于企业画像及企业关系网络的风险控制、市场监测等企业级服务
数据集成:稳定高效、弹性伸缩的数据同步平台,为阿里云各个云产品提供离线(批量)数据进出通道
分析型数据库:在毫秒级针对千亿级数据进行即时的多维分析透视和业务探索
流计算:流式大数据分析平台,提供给用户在云上进行流式数据实时化分析工具
6、人工智能:
机器学习:基于阿里云分布式计算引擎的一款机器学习算法平台,用户通过拖拉拽的方式可视化的操作组件来进行试验,平台提供了丰富的组件,包括数据预处理、特征工程、算法组件、预测与评估
语音识别与合成:基于语音识别、语音合成、自然语言理解等技术,为企业在多种实际应用场景下,赋予产品“能听、会说、懂你”式的智能人机交互体验
人脸识别:提供图像和视频帧中人脸分析的在线服务,包括人脸检测、人脸特征提取、人脸年龄估计和性别识别、人脸关键点定位等独立服务模块
印刷文字识别:将图片中的文字识别出来,包括身份证文字识别、门店招牌识别、行驶证识别、驾驶证识别、名片识别等证件类文字识别场景
7、云安全:
服务器安全(安骑士):由轻量级Agent和云端组成,集检测、修复、防御为一体,提供网站后门查杀、通用Web软件0day漏洞修复、安全基线巡检、主机访问控制等功能,保障服务器安全
DDoS高防IP:云盾DDoS高防IP是针对互联网服务器(包括非阿里云主机)在遭受大流量的DDoS攻击后导致服务不可用的情况下,推出的付费增值服务,用户可以通过配置高防IP,将攻击流量引流到高防IP,确保源站的稳定可靠
Web应用防火墙:网站必备的一款安全防护产品。通过分析网站的访问请求、过滤异常攻击,保护网站业务可用及资产数据安全
加密服务:满足云上数据加密,密钥管理、加解密运算需求的数据安全解决方案
CA证书服务:云上签发Symantec、CFCA、GeoTrustSSL数字证书,部署简单,轻松实现全站HTTPS化,防监听、防劫持,呈现给用户可信的网站访问
数据风控:凝聚阿里多年业务风控经验,专业、实时对抗垃圾注册、刷库撞库、活动作弊、论坛灌水等严重威胁互联网业务安全的风险
绿网:智能识别文本、图片、视频等多媒体的内容违规风险,如涉黄,暴恐,涉政等,省去90%人力成本
安全管家:基于阿里云多年安全实践经验为云上用户提供的全方位安全技术和咨询服务,为云上用户建立和持续优化云安全防御体系,保障用户业务安全
云盾混合云:在用户自有IDC、专有云、公共云、混合云等多种业务环境为用户建设涵盖网络安全、应用安全、主机安全、安全态势感知的全方位互联网安全攻防体系
态势感知:安全大数据分析平台,通过机器学习和结合全网威胁情报,发现传统防御软件无法覆盖的网络威胁,溯源攻击手段、并且提供可行动的解决方案
先知:全球顶尖白帽子和安全公司帮你找漏洞,最私密的安全众测平台。全面体检,提早发现业务漏洞及风险,按效果付费
移动安全:为移动APP提供安全漏洞、恶意代码、仿冒应用等检测服务,并可对应用进行安全增强,提高反破解和反逆向能力。
8、互联网中间件:
企业级分布式应用服务EDAS:以应用为中心的中间件PaaS平台、
消息队列MQ:ApacheRocketMQ商业版企业级异步通信中间件
分布式关系型数据库服务DRDS:水平拆分/读写分离的在线分布式数据库服务
云服务总线CSB:企业级互联网能力开放平台
业务实施监控服务ARMS:端到端一体化实时监控解决方案产品
9、分析:
E-MapReduce:基于Hadoop/Spark的大数据处理分析服务
云数据库HybirdDB:基于GreenplumDatabase的MPP数据仓库
高性能计算HPC:加速深度学习、渲染和科学计算的GPU物理机
大数据计算服务MaxCompute:TB/PB级数据仓库解决方案
分析型数据库:海量数据实时高并发在线分析
开放搜索:结构化数据搜索托管服务
QuickBI:通过对数据源的连接,对数据进行即席分析和可视化呈现。
参考资料:
百度百科-阿里云
云数据库RDS是什么?
云数据RDS是关系型数据库服务(Relational Database Service)的简称,是一种即开即用、稳定可靠、可弹性伸缩的在线数据库服务。具有多重安全防护措施和完善的性能监控体系,并提供专业的数据库备份、恢复及优化方案,使您能专注于应用开发和业务发展。
关系模型就是指二维表格模型,因而一个关系型数据库就是由二维表及其之间的联系组成的一个数据组织。 当前主流的关系型数据库有Oracle、DB2、PostgreSQL、Microsoft SQL Server、Microsoft Access、MySQL等。
云关系型数据库(RDS)是一种稳定可靠、可弹性伸缩的在线数据库服务,支持MySQL、SQL Server、PostgreSQL、PPAS(Postgre Plus Advanced Server,高度兼容Oracle数据库)、MariaDB等引擎,并且提供了容灾、备份、恢复、监控、迁移等方面的全套解决方案。
云数据库的特性有:实例创建快速、支持只读实例、读写分离、故障自动切换、数据备份、Binlog备份、SQL审计、访问白名单、监控与消息通知等。
扩展资料:
云数据库RDS优势
1、轻松部署。用户能够在RDS控制台轻松的完成数据库申请和创建,RDS实例在几分钟内就可以准备就绪并投入使用。用户通过RDS提供的功能完善的控制台,对所有实例进行统一管理。
2、高可靠。云数据库具有故障自动单点切换、数据库自动备份等功能,保证实例高可用和数据安全。免费提供7天数据备份,可恢复或回滚至7天内任意备份点。
3、低成本。DS支付的费用远低于自建数据库所需的成本,用户可以根据自己的需求选择不同套餐,使用很低的价格得到一整套专业的数据库支持服务。
参考资料来源:百度百科—云数据库
如何将阿里云RDS PgSQL恢复到本地主机中
1. 时间很好理解,其实就是触及这个时间后的XLOG中的第一个事务结束位置作为停止点。
2. 字符串,这个是需要通过pg_create_restore_point函数来创建的一个还原点,需要超级用户调用这个函数。
3. XID也很好理解,就是恢复到指定事务的结束位置。
既然我们已经知道了数据库可以恢复到指定的这几个位置,我们怎么来结合呢?
例如我们在做一笔比较重要的操作前,可以创建一个还原点(但是需要超级用户),不适合阿里云RDS。
postgres=# select pg_create_restore_point('digoal');
pg_create_restore_point
-------------------------
1D6/FB17EC08
(1 row)
阿里云为了防止一些用户的误操作,只开放了普通用户给用户使用,所以有一些东西都无法操作,例如创建检查点,切换XLOG,创建还原点都无法操作。
postgres= checkpoint;
ERROR: must be superuser to do CHECKPOINT
postgres= select pg_switch_xlog();
ERROR: must be superuser to switch transaction log files
postgres= select pg_create_restore_point('ab');
ERROR: must be superuser to create a restore point
时间其实是一个比较模糊的概念,所以也不建议使用,除非是我们没有其他信息,才使用时间。
XID是一个很不错的信息,我们在阿里云就用它了。
首先要创建一个记录还原点XID的表。记录XID,时间,以及描述信息。(来代替pg_create_restore_point系统函数的功能)
postgres= create table restore_point(id serial primary key, xid int8, crt_time timestamp default now(), point text);
CREATE TABLE
创建一个函数,代替pg_create_restore_point的功能,插入还原点。
postgres= create or replace function create_restore_point(i_point text) returns void as $$
declare
begin
insert into restore_point(xid,point) values (txid_current(),i_point);
end;
$$ language plpgsql strict;
CREATE FUNCTION
插入一个还原点
postgres= select create_restore_point('digoal');
create_restore_point
----------------------
(1 row)
查询这个表的信息:
postgres= select * from restore_point;
id | xid | crt_time | point
----+--------+----------------------------+--------
1 | 561426 | 2015-06-19 09:18:57.525475 | digoal
(1 row)
postgres= select * from restore_point where point='digoal';
id | xid | crt_time | point
----+--------+----------------------------+--------
1 | 561426 | 2015-06-19 09:18:57.525475 | digoal
(1 row)
接下来要模拟一下还原:
postgres= create table test(id int,info text);
CREATE TABLE
postgres= insert into test select generate_series(1,1000),md5(random()::text);
INSERT 0 1000
记录当前哈希值。用于恢复后的比对。
postgres= select sum(hashtext(t.*::text)) from test t;
sum
--------------
-69739904784
(1 row)
接下来我要做一笔删除操作,在删除前,我先创建一条还原点信息。
postgres= select create_restore_point('before delete test');
create_restore_point
----------------------
(1 row)
postgres= delete from test;
DELETE 1000
postgres= select * from restore_point where point='before delete test';
id | xid | crt_time | point
----+--------+----------------------------+--------------------
2 | 561574 | 2015-06-19 09:45:28.030295 | before delete test
(1 row)
我只需要恢复到561574 即可。接下来就是模拟恢复了。
但是这个文件可能还没有归档,而pg_switch_xlog()函数又不能用,我们只能主动产生一些XLOG,让RDS触发归档。
postgres= select pg_xlogfile_name(pg_current_xlog_location());
pg_xlogfile_name
--------------------------
000000010000000200000041
(1 row)
postgres= insert into test select generate_series(1,100000);
INSERT 0 100000
postgres= insert into test select generate_series(1,100000);
INSERT 0 100000
postgres= select pg_xlogfile_name(pg_current_xlog_location());
pg_xlogfile_name
--------------------------
000000010000000200000042
(1 row)
已经切换。接下来我们需要下载阿里云RDS的备份和归档到本地。
并且在本地需要安装一个postgresql, 并且与阿里云RDS的编译配置参数一致(例如数据块的大小),最好使用的模块也一致,但是这里没有用到其他模块,所以无所谓。
给阿里云RDS一个建议,最好提供用户一个软件打包,方便用户恢复,降低恢复门槛。
编译项可以使用pg_config命令查看,但是RDS我们没有办法这么查看。通过pg_settings来看吧。
postgres= select name,setting,unit from pg_settings where category='Preset Options';
name | setting | unit
-----------------------+---------+------
block_size | 8192 |
data_checksums | on |
integer_datetimes | on |
max_function_args | 100 |
max_identifier_length | 63 |
max_index_keys | 32 |
segment_size | 131072 | 8kB
server_version | 9.4.1 |
server_version_num | 90401 |
wal_block_size | 8192 |
wal_segment_size | 2048 | 8kB
(11 rows)
postgres= select version();
version
--------------------------------------------------------------------------------------------------------------
PostgreSQL 9.4.1 on x86_64-unknown-linux-gnu, compiled by gcc (GCC) 4.4.6 20110731 (Red Hat 4.4.6-3), 64-bit
(1 row)
本地编译安装PostgreSQL 9.4.1,编译参数与RDS一致。阿里云RDS这几个参数都是默认的。
--with-blocksize=BLOCKSIZE
set table block size in kB [8]
--with-segsize=SEGSIZE set table segment size in GB [1]
--with-wal-blocksize=BLOCKSIZE
set WAL block size in kB [8]
--with-wal-segsize=SEGSIZE
set WAL segment size in MB [16]
发表评论
暂时没有评论,来抢沙发吧~