Schlagwort: oracle (Page 2 of 2)

The end of the Oracle DB – Links?

Database links in Autonomous Database Shared are the past – Cloud links are the future

Hermann BAER – Oracle PRODUCT MANAGEMENT

Database links have been a popular way to let remote databases access specific tables or views in a database, but they require a lot of back and forth communication to establish the connection. However, with Oracle Autonomous Database Shared’s new feature, Cloud Links, data owners can easily register a table or view for remote access by a certain audience, without needing to set up a connection every time someone needs to access the data. This means that anyone with remote access can discover and use the data that has been made available to them without any extra hassle.

select .. from <namespace>.<name>@cloud$link;

https://blogs.oracle.com/datawarehousing/post/database-links-in-autonomous-database-shared-are-the-past—cloud-links-are-the-future

We like this Solution

SPHINX.AT

Oracle APEX App Multi-Tenant Capable

How do I turn a single-user app into a multi-tenant app?

yaitcon – YET ANOTHER IT CONSULTANT

Task:

Tom, I want to use your app, but only with my data!

MICHAEL

There are a few ways to achieve this (here only 2):

  1. Clone the app in a workspace and mount it on its own Oracle schema, create all the necessary objects (which you can now define right inside Oracle Apex with the install scripts).

    not all sideeffects:
  • Update of the app means more complex app lifecycle management.
  • Maybe other processes have to be adapted which also write to the new database or schema.
  • There might be common data that should be used by all

2. Don’t clone the app and change the data model and customize the APP

not all side effects:

  • This means you have to filter in the Apex App depending on APP_USER or client of a user.
  • Depending on how the data is connected to Regions, IG, IR etc., you might have to make an adjustment in each page.

to point 2:

Here we can proceed very effectively because we can use the option of Oracle VPD-Virtual Private Database. We do not need to customize a single view or Apex SQL + PL/SQL query and that is really a huge advantage.

What was to be done?

In my case I had to extend the APP_USER in the relevant tables (of course not in attached views), I call the column MANDANT:

ALTER TABLE CARLOG_DATA add MANDANT VARCHAR2(100); 

Next I had to tell the asynchronous load process to assign the data to the user. That means the DML (Insert , Update, Delete) in this table had to be extended by the column MANDANT. It would also have been possible to use a DML trigger that could assign the data correctly. But this was not an „easier“ option for me so I decided to customize the loading process.

As soon as the data of the other client was in the database, I saw my data aggregated with his in the Apex APP. For example, in this specific case, my car drove 133km instead of 100km that day.

Now the Oracle VPD comes into play:

First, create a function that allows to manage more complex criteria in one place: Here I restrict that the check only takes place if the session is in the context of the Apex application 100.

The APP_USER is my client. Oracle Apex automatically sets the APP_USER to the session context after login. Nice…

create or replace function get_mandant_criteria 
(
 object_schema IN VARCHAR2, 
 object_name VARCHAR2
) 
return varchar2 DETERMINISTIC as
l_criteria varchar2(4000);
begin
  -- Only apply VPD to specific APEX applications
  if sys_context('APEX$SESSION', 'APP_ID') in (100)
  then
   l_criteria:=q'#(MANDANT=sys_context('APEX$SESSION', 'APP_USER'))#';
  end if;

  return l_criteria;
end get_mandant_criteria;
/

The function must of course also be used in the VPD therefore.
Using Oracle Virtual Private Database to Control Data Access

begin
  dbms_rls.add_policy
    (object_schema=>'CARLOG'  
    ,object_name=>'CARLOG_DATA' -- für jede Tabelle anlegen wo gebr.
    ,policy_name=>'CARE_APP_100'
    ,function_schema=>'ADMIN' 
    ,policy_function=>'get_mandant_criteria'
    ,statement_Types=>'SELECT'
    );
end;
/

And already APEX App 100 is filtered to APP_USER client from login time.

Yes! YAITCON

On the subject of multi-tenant and more complex security concepts such as row-level and column-level security, we recommend our SCURTY!

SPHINX.at

Exasol one year experience

Exasol and Oracle are both powerful relational database management systems that can be used for different use cases.

SPHINX.AT

Below are what I consider to be the top 5 features of Exasol compared to an Oracle database:

  1. Exasol’s shared-nothing architecture means that each node in the cluster has its own resources such as CPU, RAM and disk space and operates independently of other nodes. This ensures high scalability and resilience, since if a node fails, only its data is affected and not the entire system.
  2. In addition, Exasol provides automatic data distribution and replication to minimize data access time and increase availability. In-memory technology ensures that typically 10-15% of the data is quickly available in memory, while the rest is offloaded to disk. The high level of parallelization and scalability makes it possible to process large amounts of data in a short time, making Exasol a popular solution for data analysis and business intelligence.
  3. Scalability: Exasol can scale horizontally and vertically and thus offers high scalability. Oracle, on the other hand, is not as easy to scale and usually requires more effort.
  4. Easy administration: The administration of Exasol databases is easier than the administration of Oracle databases. Since there is simply not that much to manage 😉 We don’t need to configure and monitor RAC or Data Guard.
  5. Real-time processing: Exasol can process data in real time, enabling real-time analysis and decision making. Oracle also offers this feature, but not at the same speed and efficiency as Exasol.

e.g.: If during the execution of a query it is determined that a certain execution plan is not optimal, the optimizer can generate a new plan and use it to process the query faster and more efficiently. (Adaptive Plan at Oracle)

Another example of dynamic optimization is adaptive indexing. Here the optimizer can decide which indexes are needed to make a query more efficient and create or remove these indexes at runtime. And that is really ingenious!

No light without shadow, but this is also communicated fairly and transparently by Exasol, this database is not suitable for an OLTP system. (SQL parsing and single inserts/updates are much slower than with an Oracle for example). There is also no point-in-time recovery, because there are no archive logs and therefore the last backup and its time are decisive which data can be recovered. And this is hard to argue for a normal OLTP application if this data was lost.

For me as a DBA an Exasol is a dream and as a developer by the integration of Python and R and other Languages anyway incredible.

As an Oracle developer I miss features like the Oracle Scheduler , Oracle VPD and of course the low code tool like Oracle Apex. However, it is possible to combine these two worlds to get the best out of it for our customers.

I also find Oracle PL/SQL more convenient than Exasol LUA. But I would prefer everything to run in Python only 😉

Yes! YAITCON

Newer posts »

© 2024 Sphinx Blog

Theme by Anders NorenUp ↑