بتاريخ: 20 فبراير 200719 سنة comment_92269 السلام عليكم ورحمة الله وبركاته،لا يوجد حدود للإحتراف، هذا ماتعلمته من البرمجة....بحثت قليلا وكثيرا عن طريقة لعمل نسخ إحتياطية من خلال Stored Procedure ولكني للأسف لم أجد، فقلت في نفسي أنت ضعيف في عملية البحث ولكنك قوى في البرمجة فلماذا لا تقوم بعمل شيء يستفيد منه الجميع (دائما أخذ من الناس فلماذا لا اعطيهم ولو مرة). فقمت بوضع الهدفون على أذناي وفتحت أنشودة "أمري يا ديرتي...حنا فداكي" وبدأت بالعمل، فماذا حصل...1- قمت بعمل JAVA Source يقوم بعمل نسخة إحتياطية . [-- Start of DDL Script for Java Source ATT.DbBackup -- Generated 20/02/2007 14:02:14 from [email protected] CREATE OR REPLACE AND RESOLVE JAVA SOURCE NAMED "DbBackup" AS // To modify this template, edit file JavaS.txt in TEMPLATE // directory of SQL Navigator // // Purpose: Briefly explain the functionality of the procedure // // MODIFICATION HISTORY // Person Date Comments // --------- ------ ------------------------------------------- // import java.io.IOException; import java.io.File; import java.text.SimpleDateFormat; /** * Created by IntelliJ IDEA. * User: iabuhassan * Date: 18/02/2007 * Time: 12:32:09 ã * To change this template use File | Settings | File Templates. */ public class DbBackup { public static void Backup (String uName, String Pass, String dir, String oraPath) throws IOException{ System.out.println("Begin"); String sysDateStr; java.util.Date curDate = new java.util.Date (); sysDateStr = new SimpleDateFormat("HHmm-ddMMyyyy").format(curDate).toString(); String dmpFile=dir+"\\"+"NewSoft"+sysDateStr+".dmp"; try{ Process p = Runtime.getRuntime().exec("cmd /c "+oraPath+"\\BIN\\exp "+uName+"/"+Pass+" File="+dmpFile ); } catch(Exception e){ e.printStackTrace(); } System.out.println("End..."); } } / -- End of DDL Script for Java Source ATT.DbBackup ] 2- قمت بمناداة الـ JAVA Source من خلال Stored Procedure> [/-- Start of DDL Script for Procedure ATT.DBBACKUP -- Generated 20/02/2007 14:04:12 from [email protected] CREATE OR REPLACE PROCEDURE dbbackup( p_uNamse in varchar2, p_pass in varchar2, p_backup_dir in varchar2, p_oraHome in varchar2 ) as language java name 'DbBackup.Backup( java.lang.String, java.lang.String, java.lang.String, java.lang.String )'; / -- End of DDL Script for Procedure ATT.DBBACKUP ] 3- قمت بإنشا جدول في عدة متغيرا وأقوم من خلاله بتغذية الـ Stroed Procedure [-- Start of DDL Script for Procedure ATT.GET_BACKUPS -- Generated 20/02/2007 14:04:58 from [email protected] CREATE OR REPLACE PROCEDURE get_backups [email protected] --20/02/2007 IS v_backup_dir varchar2(200); v_orahome varchar2(200); v_uname varchar2(200); v_pass varchar2(200); BEGIN ----يجب إنشاء هذا الجدول SELECT a.backup_dir, a.orahome, a.uname, a.pass into v_backup_dir,v_orahome,v_uname,v_pass FROM sys_path a where rownum=1; dbbackup(v_uname,v_pass,v_backup_dir,v_orahome); exception when no_data_found then raise_application_error(-20001,'يجب تحديد المسارات اللازمة لعملية النسخ الاحتياطية'); END; -- Procedure / -- End of DDL Script for Procedure ATT.GET_BACKUPS ] يجب مراعاة ان يكون المستخدم الذي تعمل عليه عنده صلاحيات تنفيذ JAVA[/grant JAVAUSERPRIV to att]وإذا واجهتك مشكلة مع الويندوز إستخدم هذا الكود[EXEC DBMS_JAVA.grant_permission('att', 'java.io.FilePermission', '<<ALL FILES>>', 'read ,write, execute, delete');]وأنا مستعد لتفصيل أي جزء من الكود، وسوف أحاول أن أحمل DMP Fileوأرجو ممن يقوم بتحسين هذه الطريقة أو يجد طريقة أفضل أن يرسلها لي.طبعا هذه الطريقة تريحك من عمل Patch File ليقوم بعمل نسخ إحتياطية وتريحك من أمور كثيرة أنتم تعرفونها.ولكم كل الحب والاحترام، تقديم بلاغ
بتاريخ: 20 فبراير 200719 سنة comment_92275 جزاك الله كل خيرنقدر لك تعبكساقوم بالتجربة واوافيك بالنتائجتحياتي تقديم بلاغ
بتاريخ: 21 فبراير 200719 سنة كاتب الموضوع comment_92353 السلام عليكمهذا الملف يحتوي على DMP FILE يمكن تنزيله وإستيراده على أوراكل إسم المستخدم وكلمة المرور ATT/ATTيجب أن تكون صلاحيات DBA للمستخدم الذي سيستورد الملف.يمكن من خلاله تعلم:- بناء جافا JAVA SOURCE داخل أوراكل- كيفية ربط الـ Procedure مع JAVA- وطبعا الـ Backup-يمكنك إضافة JOB ليعمل الـ Backup لوحده.مع كل الحب والاحترام، NewSoft0710_21022007.zip تقديم بلاغ
بتاريخ: 20 مارس 200718 سنة comment_94426 حزاك الله خيرا اخي ولكن هل من طريقة لعملها بدون الجافا حيث انني لا اعرفها واريد هذه الطريقةوشكرا لك اخي تقديم بلاغ
بتاريخ: 10 أبريل 200718 سنة كاتب الموضوع comment_96685 أخ alibarg31حاولت كثيرا برمجته بإستخدام أوراكل فقط وبإستخدام الحزم الموجودة فيها ولكني لم أهتدي الى طريقة حتى الان ولذلك إستخدمت جافا، حيث أن هذه الطريقة فيها حماية كبيرة جدا بالاضافة الى أنك تمنع تدخل المستخدم في عملك.الاخ أبومحسن Stored Procedure يمكن البحث عنها في هذا المنتدى وستجد الكثير من الشرح عنها.مع كل الاحترام والتقدير تقديم بلاغ
بتاريخ: 17 يونيو 200718 سنة comment_102633 السلام عليكم :مرفق طريقه لاستخراج ملف دامب من خلال ال PL ان شاء الله يكون فيه فائدة علاء EXPORT_DMPFILE.TXT IMPORT_DMPFILE.TXT تقديم بلاغ
بتاريخ: 25 أكتوبر 200718 سنة comment_114143 شكرا لكم على المواضيع والردود المميزهالتي تعتبر اقصر طريق لاكتساب الخبره تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.