تاریخ اخرین تغییر جدول و رکورد با کمک ستون ORA_ROWSCN

ثبت زمان اخرین تغییر DMLای رکوردهای یک بلاک، می تواند به جهت مدیریتی و امنیتی مفید باشد ولی طبیعتا سربار اضافه ای دارد و از کارایی بانک اطلاعاتی می کاهد.

برای کاهش این سربار، دیتابیس اوراکل زمان آخرین تغییرات را به شکل scn و در سطح بلاک ذخیره خواهد کرد به این شکل که با هر تغییر در رکوردهای یک بلاک، scn مربوط به آن زمان، برای همه رکوردهای آن بلاک ثبت خواهد شد.

(بیشتر…)

نکاتی در مورد shmall، shmmax، sga_target، lock_sga

sga را به عنوان shared global area می شناسیم! و قرار است پروسسها از این فضا به صورت مشترک استفاده کنند به همین جهت، قسمتی از حافظه که برای sga مورد استفاده قرار می گیرد، shared memory نامیده می شود.

دو پارامتر کلیدی shared memory در لینوکس، shmmax و shmall می باشند که shmmax حداکثر اندازه یک shared memory segment(بر اساس بایت) را مشخص می کند و shmall هم، اندازه کلی shared memory(بر اساس page) یا همان جمع اندازه shared memory segmentها را مشخص خواهد کرد.

(بیشتر…)

Auditing در محیط Active Data Guard

در زمان استفاده از Active Data Gaurd، ممکن است نیاز باشد تا نظارتی بر روی دسترسی کاربران به جداول صورت پذیرد. با توجه به read only بودن ADG، طبیعی است که امکان استفاده از $aud برای ثبت auditing امکان پذیر نخواهد بود و تنظیم پارامتر audit_trail به مقدار DB نمی تواند در این محیط موثر باشد.

(بیشتر…)

آشنایی با SQL*Loader همراه با چند مثال

قصد داریم اطلاعات زیر را در جدولی از بانک درج کنیم:

1,vahid,usefzadeh,oracle database

2,reza,hosseini,sqlserver database

3,nima,alavi,mysql database

برای درج این اطلاعات، روشهای مختلفی وجود دارد که یکی از این روشها، استفاده از ابزار SQL*Loader می باشد. در این متن به بررسی این ابزار خواهیم پرداخت. شکل زیر، ساختار کلی SQL*Loader را نشان می دهد:

(بیشتر…)

بهبود سرعت درج انبوه با unusable کردن ایندکسها

در زمان بازسازی یک جدول حجیم و یا درج قابل توجهی از اطلاعات در یک جدول، unusable کردن ایندکسها می تواند باعث تسریع انجام عملیات شود. در ادامه با یک مقایسه ساده، این موضوع را نشان خواهیم داد.

برای انجام سناریو، جدولی را به همراه دو ایندکس ایجاد می کنیم.

(بیشتر…)

پروسیجر EXPAND_SQL_TEXT

یک ویو ممکن است از یک پرس و جوی بسیار پیچیده و با متن طولانی ایجاد شده باشد و حتی بعضا، در متن پرس و جو، به ویوهای پیچیده دیگری هم رجوع شده باشد با این شرایط، برای ارائه راه حلهای پرفورمنسی  و همچنین انجام تغییری در متن کد، داشتن متن کامل پرس و جو(بدون ارجاع به هیچ ویوی دیگر)، می تواند در مواردی راهگشا باشد.

(بیشتر…)

سیر تکاملی ذخیره سازی پسورد کاربران dblink(ویژگی DICTIONARY CREDENTIALS ENCRYPT)

در اوراکل 10gR1، پسورد کاربران استفاده شده برای dblink، بدون رمزنگاری و بصورت کاملا شفاف(clear text) در جداول data dictionary ذخیره می شدند و امکان مشاهده کلمه عبور به صورت clear text، از طریق ویوهای data dictionary امکان پذیر بود:

SQL*Plus: Release 10.1.0.4.2 – Production on Wed Apr 18 11:23:01 2018

SQL> create database link dblinkname connect to usef identified by “pass@123” using ‘tns_name’;

Database link created.

SQL> select DB_LINK,USERNAME,PASSWORD  from USER_DB_LINKS;

DB_LINK              USERNAME   PASSWORD

——————– ———- ———-

DBLINKNAME      USEF       pass@123

(بیشتر…)

تهیه دامپ از جداول auditing در اوراکل 12c

در اوراکل 11g، امکان گرفتن دامپ از جدول $aud با کمک data pump وجود ندارد:

[oracle@myhost ~]$ expdp directory=mrm dumpfile=aud.dmp tables=aud$

Export: Release 11.2.0.4.0 – Production on Sat Dec 8 17:30:47 2018

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 – 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

Starting “SYS”.”SYS_EXPORT_TABLE_01″:  sys/******** AS SYSDBA directory=mrm dumpfile=aud.dmp tables=aud$

Estimate in progress using BLOCKS method…

Total estimation using BLOCKS method: 0 KB

ORA-39166: Object SYS.AUD$ was not found.

ORA-31655: no data or metadata objects selected for job

Job “SYS”.”SYS_EXPORT_TABLE_01″ completed with 2 error(s) at Sat Dec 8 17:30:59 2018 elapsed 0 00:00:04

(بیشتر…)