آشنایی با 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

(بیشتر…)

نصب Grid Infrastructure 18c و راه اندازی ASM

در این متن قصد داریم به نصب نرم افزار Grid Infrastructure 18c بپردازیم.

برای نصب نرم افزار گرید، ابتدا باید مقدماتی را در سطح سیستم عامل انجام داد که مشابه آن را قبلا در مطلبی برای نصب نرم افزار اوراکل، ارائه داشته ایم(در صورت لزوم، می توانید از طریق این لینک به آن مطلب رجوع بفرمایید.). با این حال، در ابتدای متن پیش رو، نیازمندیهای اختصاصی نصب نرم افزار گرید را هم از نظر خواهید گذراند.

(بیشتر…)

انجام duplicate با کمک Data Guard

اجرای دستور duplicate برای ایجاد بانک جدید(دیتابیس تستی و یا دیتاگارد چندم) بر روی بانک اصلی ممکن است سبب ایجاد کندی در آن شود، در صورتی که از قبل دیتاگاردی در این محیط پیکربندی شده باشد، می توان با کمک ان، از بار ناشی از ایجاد دیتابیس جدید در بانک اصلی جلوگیری کرد.

(بیشتر…)

ایجاد synonym برای کاربران

ایجاد synonym برای کاربران در اوراکل 12c امکان پذیر است. این کار با کمک پارامتر مخفی enable_schema_synonyms_ قابل انجام می باشد:

SQL> alter system set “_enable_schema_synonyms” = true scope=spfile;

System altered.

برای مثال، بعد از تنظیم این پارامتر، می توانیم با کمک دستور زیر، برای کاربر usef، نام دیگری هم تعیین می کنیم:

SQL>  create schema synonym new_name for usef;

Schema synonym created.

(بیشتر…)

Data Masking از طریق Data Pump

در زمان انتقال اطلاعات از یک بانک عملیاتی به یک بانک تستی، ممکن است نیاز باشد تا اطلاعات حساس به طور شفاف به بانک مقصد منتقل نشوند در این صورت اگر از data pump برای جابجایی دیتا استفاده می کنیم، می توانیم در زمان برگرداندن دیتا با دستور impdp، داده های حساس را دستکاری کنیم. این کار، از طریق پارامتر REMAP_DATA و یک function(که از قبل در بانک تستی موجود است)، قابل انجام خواهد بود.

REMAP_DATA=[schema.]tablename.column_name:[schema.]pkg.function

(بیشتر…)