From Sql Database to Azure Storage Emulator - visual-studio

I have a Sql database and I have to put it in my Azure Storage Emulator (In Storage > Development > Tables); how can I do it? In Visual Studio I don't find any possibility to import, for example, a .bacpac file.
UPDATE:
I discovered that the database should not be put in there, but then how do I properly simulate Azure storage and my Sql database as well?

Just to clarify: Azure Storage (Tables, Blobs, Queues) is completely different from SQL Azure databases.
If you use the latest version of SQL Express it's very very similar to SQL Azure and fine for most development needs.
There isn't a SQL Azure simulator that I know of - but it's really easy to get a FREE 30 day Azure account and I would strongly suggest you do some development and testing against that: SQL Azure has far more connection issues (no connection, handshake problems, lags) than a database that is local to the app, and you need to be prepared for this (investigate Transient Fault Handling strategies).
You can work locally and connect to your SQL Azure instance = a 'real' SQL Azure simulation.

When developing locally for Azure SQL Database, please use SQL Server Express - it is the relational database equivalent for Azure Storage Emulator (Azure Blob, Queue, and Table).

Related

Create external data source in Azure Synapse Analytics (Azure SQL Data warehouse) to Oracle

I am trying to create external data source in Azure Synapse Analytics (Azure SQL Data warehouse) to Oracle external database. I am using the following code in SSMS to do that:
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'myPassword';
CREATE DATABASE SCOPED CREDENTIAL MyCred WITH IDENTITY = 'myUserName', Secret = 'Mypassword';
CREATE EXTERNAL DATA SOURCE MyEXTSource
WITH (
LOCATION = 'oracle://<myIPAddress>:1521',
CREDENTIAL = MyCred
)
I am getting the following error:
CREATE EXTERNAL DATA SOURCE statement failed because the 'TYPE' option is not specified. Specify a value for the 'TYPE' option and try again.
I understand from the below that TYPE is not a required option for Oracle databases.
https://learn.microsoft.com/en-us/sql/t-sql/statements/create-external-data-source-transact-sql?view=azure-sqldw-latest
Not sure how what the problem is here, is this feature still not supported in Azure Synapse Analytics (Azure DW) when it is already available in MS SQL Server 2019? Any ideas are welcome.
Polybase has different versions across the different products with different capabilities. Most of these are described here:
The ability to connect to Oracle is only present in the SQL Server versions, currently 2019. The documentation is quite clear that is only applies to SQL Server and not to Azure Synapse Analytics (formerly Azure SQL Data Warehouse):
https://learn.microsoft.com/en-us/sql/relational-databases/polybase/polybase-configure-oracle?view=sql-server-ver15
In summary, Azure Synapse Analytics and its version of Polybase does not currently support to access external Oracle tables at this time.

What is the Difference between Oracle Cloud Infrastructure and Oracle Database Classic?

Background:
In my Oracle cloud dashboard, I see Database and Database Classic tiles.
Database service has plan of Oracle Cloud Infrastructure Database.
Database Classic service has plan of Database Classic.
Oracle documentation points to same https://cloud.oracle.com/database URL when navigated from both PaaS and IaaS.
My perspective:
OCI Database is a IaaS service - where User has the responsibility of
creating and configuring VM,
creating the Database system and Database connection,
database backup, storage, patching, upgrade etc.
Database Classic is a PaaS service where User has the responsibility of
Creating Database connection.
Oracle takes cares all the background activities like patching, upgrade etc.
Question:
Is my understanding correct on which one is PaaS and which one is
IaaS database service?
Is my understanding correct on the benefits
of using OCI Database and Database Classic?
What is the difference
between Oracle Cloud Infrastructure Database and Oracle Database
Classic?
Regards,
Karthick.R
In Oracle Cloud terminology Classic refers to the generation 1 cloud. OCI refers to the generation 2 cloud, which introduced Bare Metal and off-box virtualization for example. OCI and OCI Classic has different data centers (regions). There are some Classic PaaS services that can be deployed on OCI regions, but those are still managed with the gen1 PSM (PaaS Service Manager Tool), so they also have a different UI compared to OCI services. "Oracle strongly encourages customers to migrate their existing cloud resources from Oracle Cloud Infrastructure Compute Classic regions." - Source: Introduction to Migrating to Oracle Cloud Infrastructure. Oracle already published documentation and eBook for the OCI upgrade.
Answering your specific questions:
Both OCI Database and Database Classic are PaaS services with
different UIs and PaaS mgmt tools, but with the same database
technology behind. Both OCI Database and Database Classic provides a
wizard, as well as command line tools for deploying a database
service without installing a database and without creating &
configuring VMs.
Both will make it easier to backup, patch, upgrade,
etc your database, but won't do it in the background. Autonomous DBs
(ADWH and ATP) can do that for you, which is available on OCI.
The main difference is the management tool/UI provided, as well as OCI
Database can benefit from the advantages of the gen2 cloud a.k.a.
OCI.

Unable to connect to Oracle using SSMA for Oracle

I'm trying use Microsoft SSMA for Oracle to migrate a database onto Azure SQL, but I can't get it going. I've double checked the server name, server port, Oracle SID, password... everything. No matter the type of entry screen I use, I can't get it to connect to the on-premise Oracle instance.
I'm pretty sure the login information is all correct, and I should have a working connector to Oracle since I connect to it from TOAD on a daily basis. I tried installing Oracle libraries per previous posts but not sure if I did it successfully because the issues still remains.
What are the troubleshooting steps I should take in order to make this work?
Log in screen:
      
Error 1:
Unable to find specified provider.
Compatible Oracle Data Access Connectivity libraries were not found on the machine. You can install them from Oracle product media or download it from Oracle web site.
Error 2:
Connection to Oracle failed.
ORA-01017: invalid username/password; logon denied
Error 3:
Connection to Oracle failed.
Network Naming: No LDAP server detected or configured
After a few more days of debugging, I was finally able to get SSMA to work. This answer helps to document my solution for personal use, as well as hopefully answer anyone else's question in the future.
After looking at the list of prerequisites to have SSMA running, I saw that I needed to have a correct Oracle client running. After some internal discussion, it was likely that the Oracle client SSMA needed was different than the one my computer already had for TOAD. The .Net provider for the TOAD connectors was probably not useful for SSMA.
We run Oracle 11g but I had to install Oracle 12c because 11g did not support Windows 10 apparently. Not too much of a roadblock here.
I found this guide to install Oracle client 12c pretty helpful. Shoutout to my alma mater.
Unfortunately the installer kept freezer, but using this former post, I was able to bypass it with the windows command:
setup.exe -ignoreprereq -J"-Doracle.install.client.validate.clientSupportedOSCheck=false"
After that, I saw different error messages when trying to connect SSMA. I kept trying different options with my logins until it worked. Provider: OLEDB Provider, Mode: Standard.
After being granted the appropriate permissions, I was finally able to access our internal tables and objects.
It was a pretty annoying question with a lot of rabbit holes along the way, but it was definitely worth it, being able to translate all our Oracle schemas to Azure SQL with a few clicks. Hope this helps!
Make sure to validate all steps mentioned below before going to install Microsoft SQL Server Migration Assistant for Oracle.
Make sure you have already installed SQL Server instance that will host the migrated database. Also keep in mind that you are not installing SQL Server Express edition to host the migrated database.
You must have sysadmin account to install SQL Server Migration Assistant for Oracle.
Make sure to install SSMA for Oracle on the server that will host newly migrated database on SQL Server.
It is recommended to install Oracle client software on your target system where SQL Server Instance is running.
Make sure your windows server has Microsoft Windows Installer 3.1 or a later version. Port 1434 should be open.
For more details, You can reference: How to Install SSMA for Oracle to Migrate Oracle Database to SQL Server.
Here's the Azure Database Migration Guide: Migrate Oracle to Azure SQL Database. As you prepare for migrating to the cloud, verify that your source environment is supported and that you have addressed any prerequisites. This will help to ensure an efficient and successful migration.
Connect to Oracle with Oracle Client Provider.
Azure also has other way can help you migrate Oracle database to Azure SQL database, such as with Azure Data Factory. If you still has the connect error. I think you can try to use it. Please reference this tutorial: Copy data from and to Oracle by using Azure Data Factory.
Hope this helps.

MS Synch Framework - Synch 2 branches to central branch

I'm trying to create a Synch Module using MS Synch Framework wherein records from 2 branches will be synched into a central branch database. I wanted to achieve this with MS Sql Server 2008 R2. I can't seem to figure out the Synch Framework components I need for this project. Our goal is to be able to synch the records over the cloud.
if you look at the documentation, there is a walkthrough on how to do it.
see: Tutorial: Synchronizing SQL Server and SQL Express
don't mind that it says SQL Express, the walkthrough will work with SQL Express, LocalDB, SQL Server and Azure SQL Database as they all use the same SqlSyncProvider.
if the central database is an Azure SQL Database, have a look at these as well: How to: Configure and Execute Synchronization with SQL Azure and Walkthrough of Windows Azure Sync Service Sample

What do the ASP.NET Universal Providers enable that the default sql providers don't?

Inside the readme file of the ASP.NET Universal providers NuGet package is this quote
The SqlMembershipProvider, SqlRoleProvider, SqlProfileProvider classes that shipped in ASP.NET through version 4 support only Microsoft SQL Server and Microsoft SQL Server Express. They do not support newer offerings such as Microsoft SQL Azure and Microsoft SQL Server Compact.
However, when I run the custom aspnet_regsql scripts for Sql Azure http://support.microsoft.com/kb/2006191 and then point my web.config to the SQL Azure database, ASP.NET membership seems to work correctly.
Can anyone tell me what exactly doesn't work with SQL Azure, that the universal providers enable?
The main difference, as far as I can tell, is that when you connect to Sql Azure you need to implement retry logic. The original providers won't retry when a connection error occurs and this will happen from time to time with SQL Azure.
Also, the original providers don't raise exceptions containing the full SQL error codes so if your database is being throttled you won't know which throttling rule is being applied. At least this is what the SQL Azure support team tell me - I'm currently in the process of upgrading for this reason.
A note of caution: the Universal Providers seem to use a different database schema to the original providers, so you will need to migrate membership data. If you are starting a new project it will be much easier to change these providers before you go live with real users!
the universal providers enable you to use asp.net membership system on sqlazure and also make the implementation sql agnostic. you can take the same app using universal providers and change the datasource to be sql server/sqlexpress/sqlce/localdb etc

Resources