We migrated to 11G R2 (220.127.116.11) for our Oracle Applications R12 few years back, yes few years back (2017) & lived with one of the worst experiences…
Connecting Oracle Developer 10g (Forms/Reports) suite to 11G database.
I have scavenged through community articles for long time before giving up. I hardly came across a single fix for the connection time that used to hang up the Developer suite at times…
Today, I decided to find a solution for the nagging SSH connection issues from Windows 11 to our LINUX application servers and realized that we didn’t update the DNS settings for them once after we decommissioned a domain controller. Once the SSH issues were rectified and addressed, my next attempt was to find a solution for “frmcmp_batch” taking long time to start compiling modules & I landed on the below post.
As we are already on 11G R2 18.104.22.168, patching was not required. All I needed was to alter the hidden parameter “_FIX_CONTROL” as mentioned in the article.
SQL> ALTER SYSTEM SET "_FIX_CONTROL"='8560951:ON';
(Use scope=spfile to make this change permanent. This will require you to restart the database.)
I opted to go without spfile for testing & as soon as applied, the “frmcmp_batch” started compiling the modules instantly, against the usual delay that ran into many minutes other times.
Out of curiosity, I tried to connect to the database from Developer 10g & the connection was instant! within a fraction of a second.
So DNS being one of the most important elements establishing successful connections, patches and fixes also play crucial role in providing stable connections. Were you stuck with the same issue? give the solution a try and let us know whether it helped you also.
11g R2? too late to post anything for 11g? Wait, there are thousands of Businesses still using Oracle database 10g. So let us see how RMAN could be simplified on Windows. I hardly see many articles explaining such for Windows platform in general.
Considering you have 11g database already installed & setup for Archive logging, we’ll start by setting up RMAN backup first, then try a restore routine on a different sever.
Like cron jobs on Linux environment, for Windows we will use Task Scheduler for RMAN backups. Here are couple of batch files we will be using for making RMAN backup on Windows.
ALLOCATE CHANNEL c1 DEVICE TYPE disk;
ALLOCATE CHANNEL c2 DEVICE TYPE disk;
ALLOCATE CHANNEL c3 DEVICE TYPE disk;
ALLOCATE CHANNEL c4 DEVICE TYPE disk;
crosscheck archivelog all;
BACKUP AS COMPRESSED BACKUPSET DATABASE FORMAT 'D:\RMAN_BACKUP\PROD_comp_%d_ lvl0_%U' TAG "dailyfull_db_lvl0_bkp" INCLUDE CURRENT CONTROLFILE;
sql 'ALTER SYSTEM ARCHIVE LOG CURRENT';
BACKUP AS COMPRESSED BACKUPSET ARCHIVELOG ALL FORMAT 'D:\RMAN_BACKUP\archive_%d_lvl0_%U';
DELETE NOPROMPT archivelog all completed before 'sysdate-7';
backup current controlfile format 'D:\RMAN_BACKUP\bkpcontrol_file.ctl_%d_%T' ;
DELETE NOPROMPT OBSOLETE RECOVERY WINDOW OF 7 DAYS;
RELEASE CHANNEL c1;
RELEASE CHANNEL c2;
RELEASE CHANNEL c3;
RELEASE CHANNEL c4;
Save this script as “rman_backup.cmd”. You can save it with any other name ending with .cmd or .bat extension. Make sure you change the name in the next script incase if you choose a name other than “rman_backup.cmd”. Please note, I am taking backup on “D:\RMAN_BACKUP” folder, you should change “D:\RMAN_BACKUP” with the exact location that is used for the backup!
Now, we will create another cmd file that will call the above script.
For /f "tokens=2-4 delims=/ " %%a in ('date /t') do (set mydate=%%c-%%a-%%b)
For /f "tokens=1-2 delims=/:" %%a in ('time /t') do (set mytime=%%a%%b)
:: echo %mydate%_%mytime%
:: echo %filename%
rman target / nocatalog cmdfile='D:\scripts\rman_backup.cmd' log='%filename%'
Once again you can save this file with any name, provided the extension is either .cmd or .bat. I saved this cmd file as “callrman.cmd”
Make sure the path ” D:\RMAN_BACKUP\logs” or equivalent exists prior running the scripts.
Now fire up Windows Task scheduler and create a basic job
That’s all. Everyday, at a said time, RMAN backups will be created and kept in the destination folder. We are using 7 days retention policy with the script file, so on the 8th day obsolete backups will be purged. Depending upon the disk space available, you should adjust the retention policy for your backups. Don’t forget to copy those backup pieces to an external medium to insure maximum availability during a crisis.
That completes the simplest form of Oracle RMAN backups on Windows platform.
Currently we are discussing about restoring the RMAN backup to same version of Oracle database. If you want to restore RMAN backup to a higher version of Oracle database, it will be an entirely different exercise.
RMAN backups are the fastest, easiest incase if you are doing it right. No hassles like creating tablespaces, schemas and then waiting hours for the import process to complete! The biggest size of the database I ever dealt with is 550GB and a server with 2×4 core processors, 16GB total memory restores the 140GB backup in less than 1.5 hours. I suggest you to start using RMAN backups the soonest possible regardless whether your database is just few megabytes in size.
Today we will see how to restore RMAN backup from Server A to Server B, ie, to a different physical server with a different database name.
It might sound bit unethical to ask you to create a new database using Oracle database creation wizard for this purpose, however this is what we will do for this exercise. This will save us some time figuring out setting up many other parameters for the new database at later stages.
So let us start.
Start DBCA and create a database with a database name that you prefer for the purpose, for eg: “ORCL”
Once the database created, shut it down & delete all the datafiles from the data store. For example, I had all my data files in the folder C:\oracle\oradata\orcl, where orcl is the database name!
Now copy the RMAN backups from Server A to Server B. I’ve copied only one day backups from Server A to Server B and make a note of the exact location where you copied the backup files. In my case, I copied the files to “C:\RMAN”
From an elevated command prompt start SQLPLUS as sysdba & start the database in non mounted mode.
Now, start another elevated command prompt and connect to RMAN in Auxiliary mode, for duplication of the database.
We are all set to restore the RMAN backup to Server B now. However, there are few things we have to insure to make a successful restoration. For example renaming the datafiles. Based on the new datastore location where you are restoring the database files, each data file should be renamed. Please refer the below sample script for the same.
ALLOCATE AUXILIARY CHANNEL c1 DEVICE TYPE disk;
ALLOCATE AUXILIARY CHANNEL c2 DEVICE TYPE disk;
ALLOCATE AUXILIARY CHANNEL c3 DEVICE TYPE disk;
ALLOCATE AUXILIARY CHANNEL c4 DEVICE TYPE disk;
duplicate database to "ORCL" backup location 'C:\RMAN' nofilenamecheck
GROUP 1 (
) SIZE 1000M ,
GROUP 2 (
) SIZE 1000M ,
GROUP 3 (
) SIZE 1000M ,
GROUP 4 (
) SIZE 1000M ;
RELEASE CHANNEL c1;
RELEASE CHANNEL c2;
RELEASE CHANNEL c3;
RELEASE CHANNEL c4;
As I am duplicating the database to existing one, I don’t have to go through the tedious process of changing the dbid or database name etc. Once the restore is done, all I need is to disable the archive logging and go online! We will see those in next few steps.
Please give attention to “db_file_name_convert“, Server A had the datafiles in the path “D:\oracle\oradata\PROD” and the Server B, we will be restoring the datafile to C:\oracle\ordata\orcl folder. So we must mention those changes here in the script. The same way we need to rename the logfiles and locations also. I hope the above script is self explanatory on that regard.
You may not need all those channel allocation for a small database, please adjust the number of cannels allocated as per your requirements. Give a try with less or more number of channels incase if you want to learn what happens :)
Execute the above script from the RMAN prompt.
If there are no errors, based on the size of the database & hardware resources RMAN will return to the prompt once the activities are finished.
Before doing anything else, we need to insure that the Archive logging is disabled for the newly restored database. Rush to the previous SQLPlus session that you started with nomount. This session is already disconnected, hence reconnect and shutdown immediate.
Now start the database in mount state and disable the archive logging.
Shutdown the database and restart normally.
That’s all, your Server B “orcl” has all the data from Server A “PROD” database now. If this is a production recovery, you can change the database name using “NID” utility, that is supported from Oracle database 9i onwards. Hope this helps few Oracle database beginners out there.
As we have restored full database with archive logs, there is no need to restore logs. Cross verify the database details
Recently we migrated our database from 10gR2 (10.2.0.3) to 11GR2 for our EBS environment and got stuck with a new issue, the tablespace details take hours to get generated (Regardless the clients used, SQL Developer/Toad or SQL scripts)
Then we came across a post here about “recyclebin”. At the 1st instance, purging the recyclebin did work(?), yet the delays were significant. Further references landed us to this page
By following the instructions, as sys we purged “dba_recyclebin” which was having approximately 262 objects and voila! The database started generating the tablespace details within a fraction of second.
You may safely ignore the warnings (if any) and proceed with the Installation. Please note, as usual we warn you not to install unsupported databases on newer Operating Systems as you may risk with your valued data. Below, few screen shots from our installation attempt which was successful.
You will be prompted to install .NET Framework 3.5 (That includes .NET 2.0 and 3.0), and we suggest you install it for better stability of the database
There are no disputes, Quest Toad for Oracle is the BEST, for a programmer, DBA in an enterprise environment. Toad comes with a high price TAG, which makes many organizations which are not software development oriented, however do minor scale development to fill the business gaps, against Oracle databases, to make compromises and thus silently supporting pirated copies in distribution.
We were using Oracle SQL developer from last many years as our scenarios were mostly restricted to custom development and the DBA activities were managed by the console interactions itself.
From last few days we started checking out Oracle’s latest build (Early build) of SQL developer 4.0 and the first impression is quite fascinating. The prerequisites are limited to JDK 7.x which is becoming standard deployment in almost all scenarios.
A quick note about installing JDK7. Do not install JRE 7 yet, your ERP R12 instance may note support it, or minimum in our case. Install JDK always in a folder without spaces, like C:\JDK, D:\JDK7 etc
You can download the archive for the early build from Oracle download repositories
(JDK is not included, however from the same page you can download the installer)
Unzip the Developer archive (.zip) file to a local folder. The initial run will prompt for JDK location, which you can point to.
What is New
According to Oracle, these are the few new features added with SQL Developer 4.0
Oracle SQL Developer
New Features in Release 4.0
Database Performance Monitoring
SQL Developer now provides a full interface for Oracle Database Enterprise Edition’s Diagnostic pack, including Automatic Database Diagnostic Monitor (ADDM), and Active Session History (ASH). Accessible from the DBA panel, users can also manage their snapshots, baselines, and baseline templates.
Find Database Object – Search
The database search is completely redesigned. The new tree layout allows for searches on multiple schema, object type, identifier types and usages. A history of your searches will be stored for later access. Search results can be viewed in a separate Editor where multiple search results can be pinned and displayed.
Command Line support has been extended to Reporting and to the Cart. You can run Reports and generate them into HTML format through the command line. The Cart commands offer the ability to export objects and data. A set of predefined DDL generation options and data formats can be applied.
The Cart has been greatly enhanced. You can create and work on multiple carts. The deployment of objects has been extended to give you more flexibility in selecting export DDL options and data formats. Export Object configurations can be saved and applied again. Compare Cart objects to another Cart or Connection with the Database Diff. Cart objects can also be copied with the Database Copy feature. Scripts are extended to include Before and After Data Load.
Creating reports has never been easier. The create new report dialog has a tree layout for ease of navigation. An Advanced Option is available to instantly create Child and Drill Down type reports. Chart based reports include more chart types and you can test reports from anywhere within the report editor. Charts can be previewed in design mode. An HTML Report can be generated for any report. Enhancements in Database Doc generation include better layout and support for multiple threads to improve performance.
The new UI changes in 4.0 enhances the overall look and feel of SQL Developer. A popular request on the Feature Exchange, a window border color can be dynamically set for a database connection. Useability improvements can be seen with with the new floating Editor and Navigation windows.
Data Modeler 4.0
This version includes the new Data Modeler release 4.0. New features include 12c support for IDENTITY columns and masking of sensitive data with Redaction policy definitions at table and column level, create Transparent Sensitive Data Protection (TSDP) policies and associate it with sensitive types. See the full list of New Features here.
JDK 7 Support
This release supports JDK 7 and above. Download JDK 7 here.
You will be asked whether the previous configurations should be migrated, incase if you were using previous versions of Oracle SQL developer. “Yes” will help you to save certainly a great amount of time, recreating the connections
The major difference between SQL developer and Quest Toad you may notice will be the look and feel, while Toad has a clear crisp interface to work with, which looks like earlier versions of Microsoft Office, the total look and feel of Oracle SQL Developer scores many less points. If you are from a pure #Linux environment, there is a high possibility that such look and feel experiences will not affect you much. On the other hand, sorry, your beauty expectations may be compromised to a certain extend.
As the name goes, SQL developer is mainly targeting SQL/PLSQL developers, hence if you are going to compare apple to apple, there are high chances that you will find Quest Toad a better partner, especially if you want to deal with the DBA activities also from the same console.
Memory consumption footprints
Let us look at a major concern for most of us, the memory consumption. Until recent days, laptops/notebooks were mostly equipped with decent 4GB memory, which was more than enough to do your stuff. However, with the emergence of 64Bit operating systems like Windows 7 & 8 the requirement for more memory has significantly changed and the latest default has become a minimum of 8GB.
A session with just connection established, SQL developer consumes 700 and more memory, while Quest Toad consumes less than 90MB the maximum, which could draw a line of concern, unless you have plenty of memory to spare. Please check the images above
Other than the CPU & Memory demands, SQL developer provides almost all functionalities against populated data as in with Quest Toad.
Now, if you or your organization could afford to pay the high license fee Quest Toad demands,we will recommend Quest Toad as a primary choice as it comes with multiple flavors tailored for particular requirements like
while Oracle SQL Developer is absolutely free, provide almost 70-80% of Toad’s functionality for a developer, at a high memory, CPU consumption compromise.
If you have thoughts, concerns, suggestions towards this post, please post them to us in the comments section.