همانطور که می دانید برای به اشتراک گذاری و انتقال اطلاعات بین سیستم عامل لینوکس و دیگر سیستم عاملها نظیر ویندوز می توان از سرویس سامبا استفاده کرد به عبارتی دیگر، سامبا پروتکل به اشتراک گذاری فایل ها و منابع موجود در شبکه می باشد. پیکربندی سرویس سامبا به دو روش Secure و Anonymous قابل انجام است که در این مقاله به تشریح مراحل پیکربندی این سرویس به هر دو این روشها در محیط اوراکل لینوکس 7.6 می پردازیم.
آموزش SQL مقدماتی – محدودسازی با کمک عبارت WHERE
زمانی که می خواهیم فقط تعداد مشخصی از سطرهای یک جدول را انتخاب کنیم باید در دستور SQL از عبارت WHERE استفاده کنیم. عبارت WHERE به منظور محدودسازی در زمان نمایش یا ویرایش اطلاعات استفاده می شود بنابراین فقط بخش هایی از اطلاعات که نیاز داریم را انتخاب می کنیم. محل قرارگیری عبارت WHERE در دستور SELECT بعد از عبارت FROM است. این عبارت به ترتیب از سه قسمت زیر تشکیل می شود:
1.نام ستون
2.شرط مقایسه ای
3.نام یک ستون یا مقداری ثابت یا لیستی از مقادیر
مثال: اطلاعات کارمندانی را که در دپارتمان شماره 90 مشغول به کار هستند را نمایش دهید.
بهبودهای DBMS_SCHEDULER در اوراکل 12c
زمانی که DBMS_SCHEDULER در اوراکل 10g ارائه شد، تنها سه نوع جاب PLSQL_BLOCK، STORED_PROCEDURE و EXECUTABLE را پشتیانی می کرد در اوراکل 11g هم تغییر قابل توجهی در این مسئله رخ نداد تا اینکه در نسخه 12c اوراکل job_typeهای جدیدی را به این مجموعه اضافه کرد تا تنظیم بعضی از جابها به شکل ساده تر و با وابستگی کمتری به محیط سیستم عامل قابل انجام باشد:
SHELL_SCRIPT – SQL_SCRIPT – BACKUP_SCRIPT
در این متن با هر کدام از این نوع جابها آشنا خواهیم شد.
آموزش SQL مقدماتی – دستور SELECT
دستور SELECT یکی از پرکاربردترین دستورات SQL می باشد که با استفاده از آن اطلاعات دیتابیس اوراکل که در حافظه یا دیسک قرار دارند نمایش داده می شوند. در این متن انواع روش های استفاده از دستور SELECT برای بازیابی و نمایش اطلاعات از دیتابیس اوراکل را توضیح می دهیم.
همانطور که می دانیم در دیتابیس اوراکل یک جدول از ستون و سطر تشکیل شده است. در دستور SELECT ابتدا نام ستون یا ستون هایی از یک جدول که می خواهیم اطلاعات آن را نمایش دهیم را انتخاب می کنیم و سپس بعد از عبارت FROM نام آن جدول را می نویسیم. در خروجی این دستور اطلاعات ستون های انتخاب شده برای سطرهای جدول نمایش می یابند.
مثال: در دستور SELECT زیر ستون های DEPARTMENT_ID و LOCATION_ID از جدول DEPARTMENTS انتخاب شده اند و در خروجی این دستور، اطلاعات مورد نظر نمایش می یابند.
+ به هر ترتیبی که نام ستون ها را در دستور SELECT انتخاب کنیم، نمایش اطلاعات نیز به همان ترتیب خواهد بود. در مثال قبلی ابتدا اطلاعات ستون DEPARTMENT_ID و سپس اطلاعات ستون LOCATION_ID نمایش داده می شود.
rollback کردن عملیات REDEFINITION(اوراکل 12c)
زمانی را تصور کنید که ساختار جدول حجیمی را با کمک بسته DBMS_REDEFINITION تغییر داده ایم. بعد از اتمام عملیات redefinition، به این نتیجه رسیده ایم که تغییر انجام شده، سبب کندی در عملیاتی که بر روی این جدول انجام می شوند، شده است. قصد داریم جدول را به ساختار پارتشن نشده قبل برگردانیم، راهکار چیست؟
یکی از بهبودهایی که در نسخه 12c به بسته DBMS_REDEFINITION اضافه شد، قابلیت rollback کردن عملیات انجام شده می باشد این کار به کمک پارامتر enable_rollback از بسته DBMS_REDEFINITION قابل انجام است.
انجام عملیات redefinition در یک مرحله با کمک پروسیجر REDEF_TABLE (اوراکل 12c)
همانطور که می دانید در اوراکل 11g، برای هرگونه استفاده از بسته DBMS_REDEFINITION باید مراحلی را طی نمود و انجام عملیات در یک گام امکان پذیر نمی باشد.
در اوراکل نسخه 12c، پروسیجر جدیدی به نام REDEF_TABLE به بسته DBMS_REDEFINITION اضافه شده است که از طریق ان می توان عملیاتی نظیر جابجایی انلاین و تغییر tablespace جداول و همچنین تغییر نوع فشرده سازی جداول و ایندکسها را صرفا در یک مرحله انجام داد.
پارامتر dml_lock_timeout در بسته DBMS_REDEFINITION(اوراکل 12c)
همانطور که می دانید، در زمان اجرای پروسیجر FINISH_REDEF_TABLE، باید برای مدت زمان کوتاهی جدول به صورت exclusive قفل شود تا اجرای پروسیجر با موفقیت خاتمه یابد در غیر این صورت، اجرای این پروسیجر تا اتمام تراکنشهایی دیگری که بر روی جدول در حال اجرا هستند، متوقف و در حالت انتطار باقی خواهد ماند:
مشاهده پیشرفت عملیات REDEFINITION با کمک ویوی V$ONLINE_REDEF
در اوراکل نسخه 12c، با کمک ویوی V$ONLINE_REDEF می توان روند پیشرفت عملیات REDEFINITION را به صورت انلاین دنبال کرد:
SQL> exec DBMS_REDEFINITION.REDEF_TABLE(‘USEF’,’MYTBL’,’ROW STORE COMPRESS ADVANCED’);
SQL> select ORIGINAL_TABLE_NAME,INTERIM_TABLE_NAME,OPERATION,SUBOPERATION,PROGRESS from V$ONLINE_REDEF ;
نکاتی در مورد نامگذاری اشیا در اوراکل
در این متن به مرور نکاتی در زمینه نامگذاری اشیا در دیتابیس اوراکل می پردازیم.
نکته 1: اشیاهای زیر namespace مختص به خود را دارند و امکان تکرار اسامی در بین این objectها وجود دارد:
Indexe – Constraint – Cluster – Database trigger – Private database link – Dimension
مثال: با اجرای دستورات زیر، constraint و database link همنامی را ایجاد می کنیم:
SQL> alter table TBL1 add constraint name1 primary key (FILE#);
Table altered
SQL> create database link name1 connect to usef identified by pa using ‘mydb’;
Database link created
همچنین objectهای زیر namespace مشترکی دارند و تکرار اسامی در بین آنها، امکان پذیر نمی باشد:
Table – View – Sequence – Private synonym – Stand-alone procedure – Stand-alone stored function – Package – Materialized view – User-defined type
مثال: در این مثال می بینید که امکان استفاده از نام مشترک برای view و table وجود ندارد:
SQL> create table v1 as select * from v$datafile;
Table created
SQL> create view v1 as select * from dual;
ORA-00955: name is already used by an existing object
جلوگیری از همپوشانی اجرای جاب در لینوکس
در صورتی که زمان درنظر گرفته شده برای اجرای یک جاب کافی نباشد(در محیط cron)، به طوری که قبل از اجرای کامل جاب، زمان اجرای مجدد آن فرا برسد، دو یا چند نسخه از یک جاب به صورت همزمان اجرا خواهند شد که این اتفاق ممکن است در مواردی منجر به اختلال در سرویس های دیگر موجود در سرور شود.