最新消息:阿里云双12优惠,史上最低折扣。

云数据库RDS快速入门教程(PostgreSQL)

云服务器 aliyun 307浏览

对象存储OSS入门教程

本文档包含以下内容: 开通 OSS 服务 创建存储空间 上传文件 分享文件 删除文件 删除存储空间 1.开通 OSS 服务 在使用阿里云 OSS 服务之前,确保您已经注册了阿里云账号并完成实名认证。如 … 对象存储OSS入门教程

本文档包含以下内容:

RDS for PostgreSQL实例连接 RDS for PostgreSQL数据迁入 RDS for PostgreSQL数据迁出 RDS for PostgreSQL用户及Schema管理 RDS for PostgreSQL功能限制

1.RDS for PostgreSQL实例连接

创建初始帐号

在完成实例购买之后,首先去登陆RDS管理控制台,创建“初始帐号”。 假设创建的账号为:myuser

命令行连接实例

在管理控制台的基本信息页面,可以找到实例的连接地址和端口,例如我们有如下实例: rds2z2tp80v3752wb455.pg.rds.aliyuncs.com:3433 有了实例连接串、端口、初始帐号、密码,就可以使用命令管理和操作实例了。

创建数据库

createdb -U myuser -h rds2z2tp80v3752wb455.pg.rds.aliyuncs.com -p 3433 pg001

连接数据库

psql -U myuser -h rds2z2tp80v3752wb455.pg.rds.aliyuncs.com -p 3433 pg001 Password for user myuser: psql.bin (9.4.4, server 9.4.1) Type “help” for help. pg001=>

注意事项

建议不要使用9.4.1以下的PostgreSQL客户端psql工具连接数据库,因为版本不匹配可能会导致很多功能无法使用,连接时会出现类似以下的提示:

WARNING: psql major version 9.3, server major version 9.4. Some psql features might not work.

2.RDS for PostgreSQL数据迁入

导出逻辑备份

通过ECS备份 pg_dump -U {user-name} -h {host-name} -p {port} {database-name} -f {file-name} 如:

pg_dump -U myuser -h localhost -p 5432 pg001 -f pg001.sql

将文件pg001.sql上传到一台可以连接目标RDS的ECS(如果文件太大可以先进行压缩)

将数据迁入RDS

登陆到你ECS服务器,通过以下命令将数据导入到RDS psql -U {user-name} -h {host-name} -d {desintation_db} -p {port} -f {dumpfilename.sql} 如:

psql -U myuser -h rds2z2tp80v3752wb455.pg.rds.aliyuncs.com -d pg001 -p 3433 -f pg001.sql

注意事项

由于云上的权限配置不一至,在数据导入过程当中可能会出现一些与权限相关的WARNING或ERROR,可以忽略,如:

WARNING: no privileges could be revoked for “xxxxx” ERROR: role “xxxxx” does not exist

3.RDS for PostgreSQL数据迁出

通过逻辑备份进行数据迁出

通过pg_dump导出逻辑备份

通过以下命令操作 pg_dump -U {user-name} -h {host-name} -p {port} {database-name} -f {file-name} 如:

pg_dump -U myuser -h rds2z2tp80v3752wb455.pg.rds.aliyuncs.com -p 3433 pg001 -f pg001.sql

将数据恢复到目标服务器

将pg001.sql放到目标服务器中,并进行以下命令操作 psql -U {user-name} -h {host-name} -d {desintation_db} -p {port} -f {dumpfilename.sql} 如:

psql -U myuser -h localhost -d pg001 -p 5432 -f pg001.sql

注意事项

由于云上的权限配置不一至,在数据导入过程当中可能会出现一些与权限相关的WARNING或ERROR,可以忽略,如:

WARNING: no privileges could be revoked for “xxxxx” ERROR: role “xxxxx” does not exist

4.RDS for PostgreSQL用户及Schema管理

在使用RDS的过程中,由于superuser关不完全放开,因此我们建议用户在使用数据库时遵循单独建立用户并通过schema管理用户的私有空间。以下DEMO中,myuser是建立实例时创建的管理帐号,newuser是当前需要新建的帐号。

建立有登陆权限的用户

CREATE USER newuser LOGIN PASSWORD ‘xxxxx’;

为新用户建立schema

CREATE SCHEMA newuser; GRANT newuser to myuser; ALTER SCHEMA newuser OWNER TO newuser; REVOKE newuser FROM myuser;

注意1:如果在进行ALTER SCHEMA newuser OWNER TO newuser之前没有将newuser加入到myuser角色,将会出现ERROR: must be member of role “newuser”的权限问题。 注意2:从安全角度出发,newuser这个用户在本DEMO定义为是一个普通的应用程序帐号,因此在处理完OWNER的授权后,将它移出myuser角色以提高安全性。

使用newuser登陆数据库

psql -U newuser -h rds2z2tp80v3752wb455.pg.rds.aliyuncs.com -p 3433 pg001 Password for user newuser: psql.bin (9.4.4, server 9.4.1) Type “help” for help. pg001=> select * from tb001; ERROR: permission denied for relation tb001 pg001=> create table tb002(c1 bigint); CREATE TABLE pg001=> insert into tb002 values (10); INSERT 0 1 pg001=> insert into tb002 values (11); INSERT 0 1 pg001=> insert into tb002 values (12); INSERT 0 1 pg001=> select * from tb002; c1 —- 10 11 12 (3 rows) pg001=> \dt List of relations Schema | Name | Type | Owner ———+——-+——-+——— newuser | tb002 | table | newuser public | tb001 | table | myuser (2 rows) pg001=> \q

5.RDS for PostgreSQL功能限制

为保障实例的稳定及安全,RDS for PostgreSQL有部分使用上的约束,详情如下:

操作 RDS使用约束
修改数据库参数设置 暂不支持
数据库的root权限 RDS无法向用户提供superuser权限
数据库备份 只支持通过pg_dump进行数据备份
数据迁入 只支持通过psql还原由pg_dump备份的数据
搭建数据库复制 系统自动搭建了基于PostgreSQL流复制的HA模式,无需用户手动搭建
PostgreSQL Standby节点对用户不可见,不能直接用于访问
重启RDS实例 必须通过RDS管理控制台或OPEN API操作重启实例

转载请注明:小猪云服务器租用推荐 » 云数据库RDS快速入门教程(PostgreSQL)