Multiple databases in one single RAC cluster

Hi, I would like to know if one can have multiple databases running on a single RAC cluster, we have several databases in our shop and would like to consolidate all of them into a single 3-4 node RAC cluster running databases with 10.2 and 11.1 versions.
I am newbie to RAC and would like to get some clarification if anyone has done this, google search comes up with few hits on this topic, so obviously this is not doable.
In our case we have one database supporting critical applications and few other not so critical but are used very extensively between 9-5, so what is the use of RAC if I cannot consolidate all my databases into one cluster, or if I need a separate cluster for each of these critical databases?
I have been all the Oracle docs that keep repeating one database multiple instances and one instance-one machine-one node, they don't even advise running multiple instances on a single node?.
I appreciate any insight.
Thanks.

ora-sql-dba wrote:
Can you give more details on how you would setup multiple databases running different versions on a single RAC cluster, I am yet to find any documentation that supports or even elaborates on this topic.You can configure a cluster with 12 nodes. Then, using dbca, configure a dev instance for nodes 1 and 2, a prod1 instance for nodes 3 to 6 and a prod2 instance for nodes 7 to 12.
You also can configure each of these instances for all 12 nodes. And use it on all 12 nodes.
Or, after configuring it for all 12 nodes, you can start the dev instance on nodes 1 and 2, prod1 on 3 - 6 and prod2 on the remaining nodes. If dev needs more power, you can for example shutdown prod2 on node 12 and start another dev instance there.
My issue is with the 2nd option - running more than one instance on the same node or server. Why? Each instance has a basic resource footprint ito shared memory needed, system processes required (like db writer, log writer, sys monitor) etc. It does not make sense to pay for that same footprint more than once on a server. Each time you do, you need to reduce the amount of resources that can be used by each instance.
So instead of using (for example) 60% of that server's memory as the SGA for a single instance, if you use 2 instances on that server you now have to reduce the SGA of each to 30% of system memory. Effectively crippling those instances by 50% - they will now have smaller buffer caches, require more physical I/O and be more limited in what they can do.
So unless you have very sound technical reasons for running more than one instance on a server (RAC or non-RAC), do not.

Similar Messages

  • Multiple databases in one file: a small snafu

    Hello everyone,
    Opening multiple databases in a single file is an administrative convenience. It is well explained in the manual (see db/docs/ref/am/opensub.html). Normally, there is little difference between databases in their own physical files or grouped together in a single physical file. There is one small sentence in the manual that says the following:
    (begin fragment)
    However, since multiple databases in a file exist in a single physical file, opening two databases in the same file simultaneously requires locking be enabled unless all of the handles are read-only. As the locks for the two databases can only conflict during page allocation, this additional locking is unlikely to affect performance.
    (end fragment).
    I didn't pay attention to it, except the "unlikely to affect performance" part which told me that I wasn't to worry about it. The sun was shining. Life was good.
    And I was wrong. It was one of those "epic bug quests" I had to embark on, only to realise that it may not be a BDB bug, but my carelessnes. Nevertheless, I'm left with an uneasy feeling which I would like to explain here.
    Consider BDB configured as a concurrent data store.
    There are 2 threads. The first thread has the following pseudocode:
    cursor1 = db1->cursor(...)
    while(cursor1->c_get(... DB_NEXT...))
    // 1
    cursor2 = db2->cursor(...)
    while(cursor2->c_get(... DB_NEXT...))
    The second thread does only the following:
    db3->put(...)
    db1, db2 and db3 are all distinct databases. All cursors are read-only (the cursor implicitly used in db3->put is of course a write cursor).
    While the first thread is running, the second thread executes db3->put(...) at "//1".
    Question: what happens?
    Answer 1: if db1, db2 and db3 reside in different physical files, nothing special happens. Everything proceeds as it should.
    Answer 2: if db1, db2 and db3 reside in the same physical file, both threads block "sometimes".
    The "sometimes" used here means "when the put operation in thread 2 needs to allocate a new page".
    Reading the BDB source code is extraordinarily difficult (which says more about my limitations than about the clarity of the code) but here is what happens, as far as I could determine:
    (thread 1) cursor1 needs and acquires a read lock on db1
    (thread 2) db3->put needs a write lock on db2 to allocate a new page. Since db2 is in the same physical file as db1 and thread 1 already has a read lock, thread 2 waits until the read lock is released. Thread 2 blocks.
    (thread 1) cursor 2 needs a read lock on db3. For some reason, BDB detects that the another thread is waiting for a write lock on the physical file, and thread 1 blocks.
    Both threads block waiting on each other to complete.
    I suppose the system is the way it is to avoid starvation, but there you have it: be careful when you're lumping together multiple databases in one file!
    Anyone who can clarify or confirm this is welcome.
    Vincent

    I had experienced a similar problem. I run multiple process. Each one of them starts a transaction that does db->put and db->pget to its own database (which also has a secondary index). When each database is in a separate physical file there is no problem but when I put all databases in a single file the processes start to dead-lock.
    The following combination of options solved the deadlocking problem:
    - use serializable isolation level instead of snapshot, i.e. do not pass DB_TXN_SNAPSHOT to txn_begin
    - do not pass the DB_NO_WAIT option to txn_begin
    - use Btree instead of a Hash
    Hope that helps.

  • Multiple databases in a single query

    I need to query multiple databases in a single query.
    e.g.
    Database d1 contains table t1 with column id
    Database d2 contains table t2 with column id
    I need a query like
    SELECT * FROM t1, t2 WHERE t1.id = t2.id;
    is this possible in jdbc? if yes can anyone help with some sample code?
    thanks,
    Ashish Saraf

    It is not possible using the JDBC API to query tables in two or more databases using a single query. The reason is that a JDBC Connection is made to a single data source.
    However, some databases support the idea of federations or linked tables. What you do is inside the database manager link or federate a table that is present in another DBMS. Then, pose a single JDBC query to the one DBMS which will have its own table and links to the external tables.
    Another approach is to use a special JDBC driver with a built-in integration engine that will perform a query across multiple databases. In effect, the system poses separate queries to the different databases and integrates and joins the data together for you automatically on the client-side. That is much easier than doing it yourself in code, but that is also possible for simple queries.
    As part of my research program, we have released a shareware version of the UnityJDBC driver that can query multiple databases using a single SQL query. For more information, see:
    http://www.unityjdbc.com
    http://www.cs.uiowa.edu/~rlawrenc/research/projects.html
    Sincerely,
    Dr. Ramon Lawrence
    Assistant Professor
    Department of Computer Science
    University of Iowa
    [email protected]

  • How to add multiple databases for a single frontend

    We have a project based on distributed databases and we have to workout on .Net framework.I want to know some information of connecting multiple databases for a single frontend and how can we access them.
    If so we have connected 2 databases for a single frontend in future if I want add one more database to it how it will be possible to do it without disturbing the current connectivity.
    Please help me in resolving this problem.
    Thanks......

    hi,
    what do you mean by connecting 2 databases? can you explain further?
    using entityframework you can connect to different databases
    public class CustomerContext : DbContext
    public ReportContext()
    : base("DefaultConnection")
    public DbSet<Customers> Customers { get; set; }
    and your connectionstring (config file)
    <connectionStrings>
    <add name="DefaultConnection" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=D:\\Database\Project.mdf;Integrated Security=True" providerName="System.Data.SqlClient" />
    </connectionStrings>
    you can add more connection strings on it.
    https://msdn.microsoft.com/en-us/library/vstudio/cc716756(v=vs.100).aspx
    https://msdn.microsoft.com/en-us/library/ms254978(v=vs.110).aspx
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

  • Concatenate multiple records into one single record

    Hello everyone,
    Can anyone guide me how to merge multiple records into one single record
    like......... I am getting the data in the file like
    aaaaa/bbbbbbb/ccccccccccc/dddddddddddd/eee
    ffffff/gggg/hhhhhhhhhhhhhh
    /123/4567/55555/99999999/kaoabfa/eee
    fffff/kkkkkkkk/llllllllllllllllllllllll
    when i use gui_upload I am getting the data into the internal table in the above format.
    My main intension is to split the record at / to multiple lines and dowload it into another file.
    What i am planning to do is... if the line does not start with / then i want to concatenate the multiple lines into single line and then split it into multiple records. Can anyone guide me how to achieve this.

    Yes, it should work.
    In my example
    Loop at itab.
    concatenate i_text itab into i_text.
    endloop.
    You change that loop for the loop of your internal table with the file records
    So if you have this three records
    'aaaa/bbb/ccc'
    '/dddd/efg'
    'hijk/lmn'
    i_text will look like this at the end
    'aaaa/bbb/ccc/dddd/efghijk/lmn'
    then in this part of the code
    split i_text at '/' into table itab2.
    itab2 will have the records looking like this
    aaaa
    bbb
    ccc
    dddd
    efghijk
    lmn'

  • Multiple Reports inside one Single Report

    Post Author: maximus85
    CA Forum: Crystal Reports
    Hi....I'm having this problem of having multiple reports inside one single report. Basically what i wanted to built is a Dashboard that contains 4 main subjects:i)Sales   -    Contains graph that can be drill down for further detailsii)Internal Process   -  Contains tables that can be drill downiii)Profit/Lossiv)HRAs far as i know, since all four are of different fact table data, they cannot be all thrown inside one single report to be built on. So i came out with using subreports instead for each components and then finally putting them all together as subreport inside the main report(Dashboard).However, i just realized that by doing that, whenever i clicked on the reports that i wanted to drill down with, it will prompt that particular report that i clicked into a new page, and then from there only i can perform drill down.Is there anyway to enable me to straight away drill down the Sales and Internal Process reports from the main reports(Dashboard) instead of having to click twice as that will be unnecessary right?Or mayb if there's another better ways to do what I have to do? Please do advise and suggest......Thanks alot.......

    hi chack,
    doesnt matter or preferrably both, as long as i can export all the reports in 1 page into 1 excel, or 1 pdf.

  • Select or deselect multiple rows with one single selection  event

    Does anyone know how to create a JTable which can select or deselect multiple rows with one single selection event in JTable. Fore example, if the table has
    row1
    row2
    row3
    row4
    row5
    row6
    What I need is when user select row1 or row2, both row1 and row2 should be set to be selected. Then if user press CTRL and click one of row3 or row4, both of them should be selected including the previouse selected row1 and row2.
    For deselection, if row1 and row2 are selected, when users deselect one of row1 or row2, both of them should be deselected.
    Hopefully someone can give me a hint.

    Here is a partial solution using a JList. Only one line gets highlighted when the user makes a selection in the list. But, two lines are returned. There is a blank line between every two lines.
         private void addLineToList() {
              String a = f_one.getText();
              String b = f_two.getText();
              if (a.length() == 0) {
                   Utils.showInformationMessage("Item field is empty.");
                   f_one.requestFocusInWindow();
                   return;
              if (b.length() == 0) {
                   Utils.showInformationMessage("Match field is empty.");
                   f_two.requestFocusInWindow();
                   return;
              model.addElement("item: " + a);
              model.addElement("match: " + b);
              model.addElement(" ");
              int size = model.getSize();
              pairList.setSelectedIndex(size - 3);
              f_one.setText("");
              f_two.setText("");
              f_one.requestFocusInWindow();
         private void editList() {
              if (pairList.getSelectedValue().toString().equalsIgnoreCase(" ")) {
                   Toolkit.getDefaultToolkit().beep();
                   f_one.requestFocusInWindow();
                   return;
              if (!f_one.getText().equals("")) {
                   int result = JOptionPane.showConfirmDialog(this,
                   "The Item field contains text. Replace the text?",
                   "Flash Card Activity", JOptionPane.YES_NO_OPTION,
                   OptionPane.INFORMATION_MESSAGE);
                   if (result == JOptionPane.NO_OPTION) return;
              if (!f_two.getText().equals("")) {
                   int result = JOptionPane.showConfirmDialog(this,
                   "The Match field contains text. Replace the text?",
                   "Flash Card Activity", JOptionPane.YES_NO_OPTION,
                   JOptionPane.INFORMATION_MESSAGE);
                   if (result == JOptionPane.NO_OPTION) return;
              String item = "";
              String match = "";
              int index = pairList.getSelectedIndex();
              String choice = model.getElementAt(index).toString();
              if (choice.startsWith("item")) {
                   item = choice;
                   match = model.getElementAt(index + 1).toString();
                   model.remove(index);
                   model.remove(index);
                   model.remove(index);
              else {
                   item = model.getElementAt(index - 1).toString();
                   match = choice;
                   model.remove(index + 1);
                   model.remove(index);
                   model.remove(index - 1);
              int size = model.getSize();
              if (size > 2) {
                   pairList.setSelectedIndex(size - 2);
              f_one.setText(item.substring(6));
              f_two.setText(match.substring(7));
              f_one.requestFocusInWindow();
         }

  • Multiple databases in one Environment

    I am tryiing to figure out the best way to implement my JE environment. My use case requires that I be able to use UNIX tools like 'cp' to move JE databases from place of generation (development) to place of consumption (production). Moreover, each JE database stores very different data and has different refresh cycles (ex., one of them may be refreshed every week, another may be refreshed once a month, etc.)
    My dilemma is:
    1)- Should I use one env w/multiple databases, or,
    2)- A separate env for each database?
    With (1), I can't see a way of selectively updating one of the databases and copying over the changed JE log files to production servers (for read-only access at runtime). Every time I want to update one database, I'm thinking I'll have to pull down all JE log files, update the DB and push out all JE log files to production servers.
    (2) seems to go against the guidelines I've seen in this forum, viz., one env per process is more efficient.
    Thoughts/experiences/comments are welcome.
    Thanks

    Hi,
    What Charles suggested is the best approach if you need to avoid the performance issues with having multiple environments in a single process (you mention that you've read about them elsewhere on the forum). Please also be aware that we're working to solve those problems in an upcoming release. So if you prefer, you can implement your application using multiple environments now, and expect that the performance issues will be resolved later. This might make sense if your deployment will be small at first, and performance will not be a big issue right away.
    Mark

  • How to access multiple database present in single instance

    Hi Team,
    In oracle 11.2, can there be multiple databases in an instance???  In one of our environment, I could see multiple databases in an instance. Could you please help me in giving the data dictionary or query to access those databases?
    Actually, querying v$database, I could see only one database which is same as instance name. But in inventory, there are multiple database in an instance?
    I am still not exactly clear about this. Can someone help me with this?
    Thanks!
    Vidhya

    In Oracle one instance manages one (1) database. A database consists of multiple *schemas*.
    Other vendors erroneously call a schema 'database'.
    So, no, you didn't see multiple databases.
    There is also one datadictionary, consisting of a set of views.
    All views beginning with dba_  list the entire database, all schemas.
    All views beginning with all_ list the objects you have access to.
    All views beginning with user_ list your own objects.
    The view DICT show you the contents of the datadictionary.
    Oracle also has online documentation at http://docs.oracle.com
    From your question it is clear you should read the document called the 'Oracle Concepts Manual'.
    You can find all documentation for 11gR2 here Oracle Database Online Documentation 11g Release 2 (11.2)
    Too many people here don't make any effort to read it. This is probably the reason why you got no response.
    Sybrand Bakker
    Senior Oracle DBA

  • How to save multiple tables on one single save button in JDeveloper.

    hi all,
    i have two tables on a JSF page.
    the parent and child tables has 1 to many relationship.
    its like for department id i have many employee_id's.
    in my scenario ,
    i have to give values to both parent and child tables at a time on one single click on add button. and after clicking on one single save button i should be able to commit the data into database for both the tables at a time.
    its similar like a hire a person in fusion applications , when you clinked on hire person. all the related tables populated to give data and on one single save committing data to database.
    please help in this. and its my urgent requirement for my application design.
    am beginner to the J Developer Tool and ADF.
    regards,
    M vijayalakshmi.

    I assume you are using ADF BC as your business components. Now if both your Master and Chail VO are instances of the same AM, the commit operation of the AM will take care of it. You just have to drag and drop the commit operation as a Save button in your page

  • Multiple Database Instances on Single Server and effect of NLS_LANG

    What is the effect of the NLS_LANG registry setting on a Windows server that is to host multiple database instance each created with a different database character set ? The server needs to support data in the following languages : Thai, Chinese Traditional, Chinese Simplified, Vietnamese and Korean. Selecting the Unicode character set(AL32UTF8) is not an option since the application is not Unicode complaint.
    My understanding is that as long as NLS_LANG is set correctly on the client connecting to the particular database instance then the data will be stored correctly - is this correct ?
    What should NLS_LANG be set to on the server if there are multiple oracle instances with different character sets ?

    My question is not in relation to connecting to the database on the server itself but with regards to client connections. What I need to know is what is the effect of the NLS_LANG setting in the registry on a server that has multiple databases each created with a different character set ?
    Say for instance, the server has two databases - one created with the character set ZHS16GBK and the other created with the character set JA16SJIS and NLS_LANG is set to SIMPLIFIED CHINESE_CHINA.ZHS16GBK in the registry on the server. Will Japanese data that is inserted into the database that has character set JA16SJIS be stored correctly when it is inserted from a client with NLS_LANG set to JAPANESE_JAPAN.JA16SJIS even though NLS_LANG is set to SIMPLIFIED CHINESE_CHINA.ZHS16GBK on the server ?

  • Multiples Databases in a single Report

    Hi all experts...
    How I can create a parameter to chosse multiples databases... In a single report!
    regards

    Wagner,
    If you have CR Server installed on your network, you can use the Business View Manager to create a Dynamic Data Connection.
    As soon as you add the Business View to your report as the data source, a choose database parameter will be added to your report automatically.
    Also, if your BIG idea works out, please post it. We all love new ideas. Especially when they work.
    Jason

  • Multiple Databases in one Business Area?

    Can I put multiple databases into the same Business Area?
    The crux of the problem is as follows: I am migrating data from one database to another. There will be a period of dual running, whilst the products are migrated.
    I want to be able to write reports that compare the data between the two databases, and show me the discrepancies.
    Oh one of the databases is not Oracle, so using a db link is not an option.
    null

    Can I put multiple databases into the same Business Area?
    The crux of the problem is as follows: I am migrating data from one database to another. There will be a period of dual running, whilst the products are migrated.
    I want to be able to write reports that compare the data between the two databases, and show me the discrepancies.
    Oh one of the databases is not Oracle, so using a db link is not an option.
    null

  • Clean way to De-register/De-commission the database with EBS from RAC/Cluster.

    Hi,
    We have a database with EBS on RAC. We are looking for Clean way to decommissioning the database from the cluster. We tried earlier, but when we again installed a fresh database on that server some how we had issues with the user oracle in cluster configuration files.
    Early response is highly appreciated.
    Thanks,
    Rajashekar

    Hi Hussein,
    We have two node db and two node application server in a cluster environment.
    We want to Remove/Decommission JUST DATABASE, APPLICATION related all files from the cluster. Cluster files should not be effected. After removing them we want install a fresh Db and Application on the same cluster.
    Looking for any standard method for decommissioning.
    Thanks,
    Rajashekar

  • Collating multiple tracks into one single track

    I am trying to learn another language and have a CD with multiple tracks on it. When I load it onto my iPOD the tracks don't stay in order, which makes following the lessons difficult.
    Does anyone know how I can collate all the tracks so they become one single track which I could then download onto my iPOD?

    I am trying to learn another language and have a CD
    with multiple tracks on it. When I load it onto my
    iPOD the tracks don't stay in order, which makes
    following the lessons difficult.
    Does anyone know how I can collate all the tracks so
    they become one single track which I could then
    download onto my iPOD?
    Set the switch to the FIRST position to play tracks in order...

Maybe you are looking for