أسرع طريقة لعمل نسخة طبق الأصل من قاعدة البيانات

السلام عليكم ورحمة الله وبركاته
أخواني هذه أسرع طريقة لعمل CLONE لقاعدة البيانات الحالية وتشغيلها مباشرة فقط ننفذ الخطوات التالية :

1- ندخل على ال SQL*PLUS SYS/PASSWORD AS SYSDBA وننفذ مايلي
alter database backup controlfile to trace;


نتيجة هذا الأمر هي عبارة عن نسخه من ال CONTROLFILE تجدها في ORACLE_HOME/ADMIN/oracleSID/udump
بإسم myoradb_ora_1536) SID_ORA_NO ) نقوم بالتعديل في نفس الملف كمايلي :

@ نقوم بتغيير القيمة REUSE DATABASE "OLDDB" إلى SET DATABASE "NEWDB" حيث أن OLDDB هي اسم قاعدة البيانات
القديمة وال NEWDB هي اسم قاعدة البيانات الجديدة مثال :

SET DATABASE MYORA2

@نقوم بمسح مايلي من الملف :

# Recovery is required if any of the datafiles are restored
# backups, or if the last shutdown was not normal or immediate.
RECOVER DATABASE
# Database can now be opened normally.
ALTER DATABASE OPEN;

@نغير NORESETLOGS إلى RESETLOGS الموجودة في بداية الملف .

@ نغير ال path القديم الى path قاعدة البيانات الجديد مثلا :

نقوم بتغيير '/u01/oradata/myora/system01.dbf', إلى '/u01/oradata/myora2/system01.dbf'

ونطبق هذا على كل ال FILES PATHS في الملف .

@نمسح أيضا أي سطر يبدء بــــ # لإننا في هذه الخطوة نقوم بإنشاء سكريبت لإنشاء controlfile جديد .

نحفظ هذا الملف بأي اسم نريده بإمتداد sql.* لإننا سوف ننفذه في برنامج sql*plus تقريبا سوف يصبح الملف كما يلي
STARTUP NOMOUNT
CREATE CONTROLFILE SET DATABASE "MYORA2" RESETLOGS  NOARCHIVELOG
--  SET STANDBY TO MAXIMIZE PERFORMANCE
    MAXLOGFILES 50
    MAXLOGMEMBERS 5
    MAXDATAFILES 100
    MAXINSTANCES 1
    MAXLOGHISTORY 226
LOGFILE
  GROUP 1 'F:\ORACLE9IDB\ORADATA\MYORA2\REDO01.LOG'  SIZE 50M,
  GROUP 2 'F:\ORACLE9IDB\ORADATA\MYORA2\REDO02.LOG'  SIZE 50M,
  GROUP 3 'F:\ORACLE9IDB\ORADATA\MYORA2\REDO03.LOG'  SIZE 50M
-- STANDBY LOGFILE
DATAFILE
  'F:\ORACLE9IDB\ORADATA\MYORA2\SYSTEM01.DBF',
  'F:\ORACLE9IDB\ORADATA\MYORA2\UNDOTBS01.DBF',
  'F:\ORACLE9IDB\ORADATA\MYORA2\CWMLITE01.DBF',
  'F:\ORACLE9IDB\ORADATA\MYORA2\DRSYS01.DBF',
  'F:\ORACLE9IDB\ORADATA\MYORA2\EXAMPLE01.DBF',
  'F:\ORACLE9IDB\ORADATA\MYORA2\INDX01.DBF',
  'F:\ORACLE9IDB\ORADATA\MYORA2\ODM01.DBF',
  'F:\ORACLE9IDB\ORADATA\MYORA2\TOOLS01.DBF',
  'F:\ORACLE9IDB\ORADATA\MYORA2\USERS01.DBF',
  'F:\ORACLE9IDB\ORADATA\MYORA2\XDB01.DBF',
  'F:\ORACLE9IDB\ORADATA\MYORA2\DESGINERTB01.DBF'
CHARACTER SET AR8MSWIN1256
;

ALTER DATABASE OPEN RESETLOGS;


2-نقوم بنسخ جميع الملفات من نوع datafiles,REDO FILES الى المكان الجديد مثلا u01/oradata/myora2/

3-نقوم بإنشاء المجلدات التالية في ORACLE_HOME/ADMIN/

-مجلد بإسم قاعدة البيانات الجديدة مثلا MYORA2
-نقوم بإنشاء المجلدات التالية داخل المجلد MYORA2
BDUMP - UDUMP -CDUMP - PFILE

4-نقوم بعمل نسخة من ملف initalization parameter file سواء pfile او spfile ونحفظها بإسم SIDspfile.ora أو initSID.ORA في

نفس مكان والذي يكون دائما ORACLE_HOME\database ونعدل البارميترات التالية:

* background_dump_dest الى المكان الجديد مثلا e:\Oracle9iDB\admin\myora2\bdump

* CONTROL_FILES الى المكان الجديد مثلا e:\Oracle9iDB\admin\myora2\bdump

* core_dump_dest الى المكان الجديد مثلا e:\Oracle9iDB\admin\myora2\cdump

* db_name='myoradb2'
الى الأسم الجديد طبعا

* instance_name='myoradb2'
الى الأسم الجديد

* user_dump_dest الى المكان الجديد مثلا e:\Oracle9iDB\admin\myoradb2\udump

5-نقوم بإنشاء SERVICE جديدة لقاعدة البيانات الجديدة كمايلي :

oradim -new -sid MYORA2 -intpwd password -startmode auto -pfile E:\Oracle9iDB\database\SPFILEMYORA2.ORA

حيث أن MYORA2 هي إسم قاعدة البيانات الجديدة
PASSWORD هي كلمة المرور
PFILE وهو ال PATH الخاص بال initalization parameter file الذي قمنا بإنشائه في الخطوة السابقة .

6-نقوم بإضافة مايلي إلى ملف LISTNER.ORA والموجود في ORACLE_HOME/SID/NETWORK/ADMIN/
(SID_DESC =
      (GLOBAL_DBNAME = myoradb2)
      (ORACLE_HOME = e:\Oracle9iDB)
      (SID_NAME = myoradb2)
    ) 

-نقوم بعمل TNSNAME لقاعدة البيانات الجديدة في ملف TNSNAMES.ORA كمايلي :
MYORA2 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = MMKNC)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = MYORA2)
    )
  )


7-نقوم بتشغيل ال LISTNER وندخل على ال SQL*PLUS SYS/PASSWORD AS SYSDBA ونقوم بتنفيذ مايلي :

- STARTUP NOMOUNT
- تنفيذ ملف ال SQL الذي قمنا بإعداده مسبقا في الخطوة رقم 1 كمايلي
CTRLMYORA2.SQL @


ليتم إنشاء ملفات ال CONTROLFILES

الآن أصبحت قاعدة البيانات جاهزة للعمل ، طبق هذا الموضوع على :
WIN2000 OS
ORACLE9i DATABASE
NOARCHIVELOG MODE
ان شاء الله يكون الشرح واضح وأي إستفسار جاهزين بس لاتنوسونا من دعوة صالحة


    تعليقات