AWS RDS SQL Server Migrate DB from Outside - sql-server

Today, I am using AWS EC2 DB Instance for my database (SQL Server).
I want to change the instance and instead to use RDS instance for my SQL Server.
In order to complete the migration from EC2 to RDS I need to pass the database with all its tables/stored procedures/types/views etc.
I tried to backup the database of the EC2 instance and then restore it in the RDS instance but I get the exception:
Moreover, I tried to generate a script of the EC2 instance DB and then run the script on RDS SQL Server connection but it failed to run many of the scripts because of permission exceptions.
I also found an article from the AWS documentation that shows that it is possible to upload a backup to S3 bucket. But I couldn't manage to understand how to restore the backup from the S3 bucket in the RDS instance.
Please, help me figure out how to do it? I belive it must be possible and easy somehow.
Thanks in advance.

Related

Is it possible to replicate DB from GoDaddy to Database in AWS SQL Server RDS using DMS?

We are trying to create a DR solution that can be hosted in AWS and DC on GoDaddy. The problem is, DB is co-hosted in Godaddy and so no replication agents can be installed in the DB let alone do any changes there.
My question: is AWS DMS agentless?
Can we migrate and then replicate and then sync the DB in GD and RDS through any means with AWS DMS?
TIA
yes, it is agentless. It will ask you the connection string of the source Database and ask you to select RDS Database to migrate.
You can go to the AWS youtube channel and watch the tutorials.

How can I replicate data into from one RDS instance to another without using Multi-az?

I have my production Mysql Aurora RDS instance with no Multi-AZ option enabled.I have a requirement to replicate this production data into another isolated Mysql RDS instance(or perhaps another Mysql server hosted in an EC2 instance) for the purpose of giving access to an ETL tool(Stitch)
I don't have the option to upgrade my RDS to Mult-AZ just to replicate data into another.
What's the best way to achieve this? I can go for both options
create another RDS instance and replicate data(if this is possible)
Host a mysql server running in an EC2 instance which replicate production RDS data

How to configure Aurora MySQL target database?

I am doing the following step, to configure Aurora target DB, while migrating local SQL Server DB to Aurora DB in cloud:
https://docs.aws.amazon.com/dms/latest/sbs/CHAP_SQLServer2Aurora.Steps.ConfigureAurora.html
I am running these queries from SSMS. May I know what 'target_database' should I use? I tried the endpoint from RDS but it is not working. Please advise what I am missing.
Your target database is the database in AWS. In your case, it sounds like it's an RDS database instance. You'll need to create a new DMS target endpoint. Select the RDS instance from the dropdown, give it a unique name, and select the RDS engine (Aurora MySQL or PostgreSQL. Add any additional connection attributes, if desired. Test the connection and you should be all set.
Source: https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Endpoints.html

Make SQL databases go automatically into elastic pools

I'm having some trouble using Azure's elastic pool feature. Right now, I have a SQL server with a bunch of databases that I want to store in an elastic pool to cut costs. My problem is that right now, everything is deployed in a very specific, non-negotiable way. Resource groups, storage accounts, and SQL servers are spun up with ARM templates and databases are added to the server with Microsoft's Azure SQL Database Deployment function in VSTS. Everything I do should be automated for disaster recovery.
Is there a way to configure the server on creation so everything goes automatically into the elastic pool? Is there a way to change the Azure SQL Database Deployment step so it adds the db to the pool and not just the server?
Thanks in advance.
Edit: I ended up adding a powershell task to VSTS and running a simple json+script that took in the resource group, server name, pool name, and database names, then ran Set-AzureRmSqlDatabase.
You can manage SQL Database elastic pools using PowerShell (e.g. Set-AzureRmSqlDatabase: Sets properties for a database, or moves an existing database into, out of, or between elastic pools.), so you can try to use Azure PowerShell step/task to move database to elastic pool.
Regarding ARM template, you can get it when creating SQL Database in azure portal:
On the other hand, there is an article about a template allows to deploy a new SQL Elastic Pool with its new associated SQL Server and new SQL Databases to assign to it: Deploy a new SQL Elastic Pool
I solved it with a custom build step. Included the required parameters in a json and ran a powershell script that connected with
Initialize-AzurePowershellSupport -ConnectedServiceName $ConnectedServiceName -ErrorAction SilentlyContinue
$subscription = (Get-AzureRmContext).Subscription.SubscriptionName #(Get-AzureRmContext).Subscription.SubscriptionName
and then used Set-AzureRmSqlDatabaseto move the database to an elastic pool.

CREATE TABLE permission denied in database 'master' on Amazon AWS RDS

I followed the instructions on AWS to set up an RDS instance with SQL server Express,
http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_NET.quickstart.html
But I find that when I go to run the commane 'Update-Database' that I get:
CREATE TABLE permission denied in database 'master'.
Turns out I'm logged in as 'Guest'??? Despite setting up the db as per instructions.
So I'm expecting that I must have missed something simple, just looking for any hints as to how to get admin access to my own SQL Server hosted on RDS?
The master database is a System database internal to SQL Server. You never need to run CREATE TABLE inside that database. It sounds like you're not in the right database context: you're running commands against that database rather than your own database.

Resources