我已经创建了我的实例的快照,并在数据库中做了一些不必要的更改.
现在我想从这个快照中恢复我的实例.
当我尝试这样做时 - 除了我拥有的实例之外,它还创建了一个实例.
我指定"数据库实例标识符",然后我得到两个具有相同ID的实例.
所以我的问题是:有没有办法将快照恢复到现有实例?
因为在其他情况下 - 使用不同的端点(主机名)创建新实例,我需要更改我的配置以访问数据库.或者有更好的方法来管理这种情况?
我最近降级了我的EC2实例.我无法再连接到RDS.我认为可能是内部IP不同,现在登录附加到该特定IP.我无法弄明白.我希望能够从快照中获得备份.有没有办法通过AWS下载它?
据我了解,与标准I/O速率相比,RDS预配置IOPS非常昂贵.
在东京地区,标准部署的P-IOPS率为0.15美元/ GB,0.12美元/ IOP.(多可用区部署的价格翻倍......)
对于P-IOPS,所需的最小存储空间为100GB,IOP为1000.因此,P-IOPS的起始成本为135 $,不包括实例定价.
对于我的情况,使用P-IOPS比使用标准I/O速率高出约100倍.
这可能是一个非常主观的问题,但请提出一些意见.
在最优化的RDS P-IOPS数据库中,性能是否物有所值?
要么
在AWS网站给出了P-IOPS如何惠及性能的一些见解.有没有实际的基准?
除了zeroSkillz所写的答案之外,我还做了一些研究.但请注意,我不是阅读数据库基准的专家.此外,基准和答案基于EBS.
根据"Rodrigo Campos"撰写的一篇文章,性能确实显着提高.
从1000 IOPS到2000 IOPS,读/写(包括随机读/写)性能翻倍.从zeroSkillz所说的,标准EBS块提供了大约100 IOPS.想象一下,当100 IOPS达到1000 IOPS(这是P-IOPS部署的最小IOPS)时,性能会有所提高.
根据基准,性能/价格似乎合理.对于性能危急情况,我猜有些人或公司应该选择P-IOPS,即使他们的收费超过100倍.
但是,如果我是中小型企业的财务顾问,我会逐渐扩展(如CPU,内存)我的RDS实例,直到性能/价格与P-IOPS相匹配.
所以我尝试将sql文件导入rds(1G MEM,1个CPU).sql文件就像1.4G
mysql -h xxxx.rds.amazonaws.com -u user -ppass --max-allowed-packet = 33554432 db <db.sql
它陷入了困境:
ERROR 1227 (42000) at line 374: Access denied; you need (at least one of) the SUPER privilege(s) for this operation
Run Code Online (Sandbox Code Playgroud)
实际的sql内容是:
/*!50003 CREATE*/ /*!50017 DEFINER=`another_user`@`1.2.3.4`*/ /*!50003 TRIGGER `change_log_BINS` BEFORE INSERT ON `change_log` FOR EACH ROW
IF (NEW.created_at IS NULL OR NEW.created_at = '00-00-00 00:00:00' OR NEW.created_at = '') THEN
SET NEW.created_at = NOW();
END IF */;;
Run Code Online (Sandbox Code Playgroud)
another_user 在rds中不存在,所以我这样做:
GRANT ALL PRIVILEGES ON db.* TO another_user@'localhost';
Run Code Online (Sandbox Code Playgroud)
仍然没有运气.
我正在尝试在我的Amazon RDS数据库中的表上创建一个触发器,我似乎无法实现它.
我试图在我使用的mysql客户端(Navicat)的表上创建一个触发器,并得到了我需要SUPER权限的错误.经过一番搜索,我发现你可以SET GLOBAL log_bin_trust_function_creators = 1解决这个问题.我尝试使用这些说明:http://getasysadmin.com/2011/06/amazon-rds-super-privileges/(然后重新启动数据库服务器以获得良好的衡量标准),但没有运气.
我也尝试通过mysql命令行创建触发器并设置变量,以确保Navicat没有向我的sql命令添加任何不需要的东西,但也失败了.从搜索中看,似乎没有办法给自己超级特权.
那么......是否可以在RDS中创建触发器?
关于升级RDS实例,我有几个问题.
我正在尝试将AWS Lambda函数连接到RDS mysql数据库.
我只是想从我的lambda函数更新数据库.是否可以通过指定IAM角色和访问策略来访问RDS?
我可以使用mysql client连接到mysql数据库.但是当我尝试使用lambda时,我无法做到这一点.这是我的代码.
console.log('Loading function');
var doc = require('dynamodb-doc');
var dynamo = new doc.DynamoDB();
var mysql = require('mysql');
exports.handler = function(event, context) {
//console.log('Received event:', JSON.stringify(event, null, 2));
var operation = event.operation;
delete event.operation;
switch (operation) {
case 'create':
var conn = mysql.createConnection({
host: 'lamdatest.********.rds.amazonaws.com', // RDS endpoint
user: 'user', // MySQL username
password: 'password', // MySQL password
database: 'rdslamda'
});
conn.connect();
console.log("connecting...");
conn.query('INSERT INTO login (name,password) VALUES("use6","password6")', function(err, info) {
console.log("insert: " + info.msg + " …Run Code Online (Sandbox Code Playgroud) 从EC2实例i-78a8df00,我正在尝试连接到RDS实例mysql.************.us-east-1.rds.amazonaws.com.他们都在美国东部地区.我将EC2实例的安全组(sg-********)添加到RDS安全组,但这没有帮助.它似乎是防火墙/ DNS问题,因为它在运行此命令时超时:
ubuntu@ip-10-195-189-237:~$ mysql -h mysql.************.us-east-1.rds.amazonaws.com
Run Code Online (Sandbox Code Playgroud)
ERROR 2003(HY000):无法连接到'mysql上的MySQL服务器.************.us-east-1.rds.amazonaws.com'(110)
我可以使用与上面相同的行从本地计算机连接到RDS实例.我尝试了各种论坛解决方案,但那些没有帮助.
我有一个关于Amazon RDS的问题.我每天只需要在线数据库大约2个小时,但我正在处理大约1gb的大型数据库.
我有两个主要问题:
我可以通过脚本自动使我的RDS数据库在线和离线以节省资金吗?
当我将RDS设置为离线以停止"工作时间"计数器运行并向我收费时,当我将其重新联机时它仍将具有相同的内容(即我的所有数据都将保留在那里,或者它必须是空白数据库?).如果是这样,有没有办法绕过这个而不是备份到S3并每次重新导入它?
amazon-rds ×10
mysql ×6
amazon-ec2 ×1
amazon-iam ×1
aws-lambda ×1
database ×1
performance ×1
triggers ×1