2020年双11活动入口

立即查看

2020年各大云厂家双11活动入口

阿里云双11活动

【阿里云双11活动】新用户云服务低至0.73折(比1折还优惠)。100%性能的云服务器只要84元/年。

活动地址:阿里云双11拼团地址

老用户买不了?请看这里:

阿里云老用户不如狗怎么办,如何享受新用户优惠活动价格

腾讯云双11活动

【腾讯云双11活动】11.11 云上盛惠,云产品限时抢购,1核2G云服务器首年88元。

活动地址:88元云服务器

华为云双11活动

【华为云双11活动】11.11上云嘉年华,注册即领11110元大礼包;1核2GB云服务器只要88元/年

活动地址:华为云活动地址

云数据库RDS快速入门教程(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操作重启实例

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

Scroll to Top