Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I deploy an Oracle database?

I have an ASP .NET application that connects to an Oracle or a SQL Server database. An installer has been developed to install a fresh database to an existing SQL Server using sql commands such as "restore database..." which simply restores a ".bak" file which we keep under source control.

I'm very new to Oracle and our application has only recently been ported to be compatible with 10g.

We are currently using the "exp.exe" tool to generate a ".dmp" file and then using the "imp.exe" to import it into a developers box.

How would you go about creating an "Oracle Database Installer"?

Would you create the database using script files and then populate the database with required default data?

Would you run the "imp.exe" tool behind the scenes?

Do we need to provide a clean interface for system administrators so that they can just select the destination server and have done, or should we just provide them with the ".dmp" file? What are the best practices?

Thanks.

like image 227
Carl Avatar asked Dec 22 '08 13:12

Carl


People also ask

What does it mean to deploy a database?

Database deployment automation is the practice of including databases in the DevOps process and automating it for the whole pipeline to run more smoothly. With organizations needing to do better and deliver faster than ever, deployment automation has become key to having a competitive advantage.

Which three types of DB systems can you deploy on Oracle cloud infrastructure?

Oracle offers the following managed database services running in Oracle Cloud Infrastructure: Oracle Exadata Cloud Service. Oracle Cloud Infrastructure Database. Oracle Database Cloud Service.

How do I download and install Oracle?

Step 1: Go to oracle.com and Click on Options Menu. Step 2: Click the Download Button and Scroll Down to Database Section. Step 3: Click Database 11g Enterprise/Standard Editions, after which you'll find different versions of Oracle for different OS. Download the Files according to your OS.


2 Answers

The question is -- what do your customers know about Oracle?

  • Nothing? You should probably rethink this position. Oracle is very large and complex. If you assume your customers know nothing, you'll then start providing tutorials and help that's inappropriate.

  • Minimally Competent? If they're competent, they know enough to run imp by themselves. Also, they know enough to run a script that executes SQL.

  • Actual DBA's? Most organizations that can afford Oracle can afford real DBA's. Real DBA's can cope with a lot of things -- they do not need much hand-holding. Some of them like to assign storage parameters according to their shop standards.

You should provide a script with reasonable defaults. You should define your script in a way that someone can easily find all of your storage parameters and tweak them if necessary.

Your initial data can be via export/import or via a script. I prefer a script.

like image 139
S.Lott Avatar answered Nov 09 '22 10:11

S.Lott


I have done this repeatedly from both sides (consumer and provider) as a DBA, developer, and architect.

As a provider, one of my grand accomplishments (in 1996) was the creation of an installation CD for a commercial insurance claims management software product targeted to the largest insurance carriers (a multi-million dollar item). That installation CD installed the Oracle 7.2 RDBMS engine, the FileNet optical storage system (scans paper documents and creates cataloged binary versions), and our custom claim-processing application (built in VB 4.0), all integrated and ready to run. As part of the installation process, the user could skip the Oracle software installation or customize it, and the user could customize/override the database configuration in all of its major details (database, schemas, tablespaces, sizes, disks, etc.).

I also provided the field service for this product, which included traveling to the client site as necessary. I tested the installation CD literally hundreds of times under every imaginable scenario that I could replicate, and we NEVER had a field failure that required even a phone call, let alone a trip (I did travel on four occasions, but for pre-sales stuff instead).

More recently (2007), I scripted the creation of an Oracle 10g database for an internal system at a megacorp. In production, the database was sized at 8 TB, mostly for a single transaction table with high data volume. In test, the database was sized around 1 TB for a modest server. In development, the database was sized around 100 MB to run on my laptop. The EXACT SAME SCRIPTS created all three environments, and I could extend them to handle a new environment/machine in about five minutes. This database involved extreme performance tuning, so customization of all pertinent characteristics was absolutely crucial.

Back to the insurance claims processing product--let me please add that I was originally hired to lead its conversion from a SQL Server database to an Oracle database. That conversion was identified as a business necessity because most potential clients did not view a SQL-Server-based product as a professional, serious solution. That is not quite as common today, but it still applies in general: a software product has a better chance of market penetration if it can accommodate multiple database options as preferred by the target customers (especially enterprise-class customers).

Likewise, the installation CD was also viewed as an essential element. However, that situation and many more have revealed to me that most "real" DBAs will not accept an import-based database installation. As a DBA and architect, I know that I definitely will not for the same reasons.

Simply put, an import-based database installation gives the customer almost no control over the resulting database. It is opaque to the customer, leaving them questioning what it did. It forces the customer to expend massive efforts to attempt to exercise what little control they can. It is notoriously fragile and error-prone (Oracle imports are well known for ownership and permission problems, constraint problems, etc.). Weighing all those impacts, an import-based database installation is unprofessional--it does not put the customers' needs first.

Scripting the database installation provides the right kind of transparency, configurability, selective repeatability, and overall customer control that professionalism demands. It also encourages you to properly understand the impacts of your database design decisions in a way that an import does not.

Best wishes.

like image 36
Rob Williams Avatar answered Nov 09 '22 10:11

Rob Williams