منبع اصلی نوشتار زیر در این لینک قرار دارد

اختصاص کانال در Oracle RMAN

یک کانال RMAN نشان دهنده جریانی از داده ها از یا به یک دیوایس (دیسک یا نوار) می باشد. کانال ها می توانند برای دیسک یا برای نوار (SBT) باشند. هر کانال اختصاص داده شدده برای انجام اعمال Backup and Recovery یک Oracle Server Session  جدید را آغاز می کند، سپس Server Session می تواند اعمال Backup and Recovery را انجام دهد. کانال ها را با دستور  ALLOCATE CHANNNEL ایجاد و اختصاص می دهیم

RMAN از دو نوع کانال های خودکار و دستی پشتیبانی می کند. automatic channel allocation به طور خودکار برای انجام اعمال Backup and Recovery و بدون نیاز به استفاده از دستور  ALLOCATE CHANNNEL، کانالی اختصاص داده می شود. با اجرای دستور BACKUP برای گرفتن پشتیبان و RESTORE برای بازیابی و بدن نیاز به اختصاص دستی کانال با دستور ALLOCATE CHANNEL کانال بطور خودکار به عمل مورد نظر اختصاص داده می شود. در واقع کانال ارتباطی است میان RMAN و Database Instance که هر اتصال یک Oracle Server Process را در پایگاه داده هدف یا پایگاه داده auxiliary ایجاد می کند و فرایند سرور مسئول انجام Backup, Restore و Recovery خواهد بود.

برای مثال وقتی دستور BACKUP DATABASE را درون محیط rman اجرا می کنید، به طور خودکار کانالی به نام ORA_DISK_1 به دستور اختصاص داده می شود تا فایل های پشتیبان را بر روی دیسک ذخیره کند.

allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=156 device type=DISK

از دستور ALLOCATE CHANNEL می توان  تنها در بلاک RUN برای ایجاد یک یا چند کانال برای اتصال به پایگاه داده هدف یا target database و همچنین اتصال به پایگاه داده auxillary استفاده کرد و با ایجاد کانال اختصاص داده شده در بلاک RUN از تنظیمات پیشفرض محیطی صرف نظر می شود. فرض کنید پارامتر محیطی DEFAULT DEVICE TYPE به DISK تنظیم شده است، پس در این صورت در هنگام اجرای دستور BACKUP DATABASE یک کانال خودکار به نام ORA_DISK_1 به سرور پایگاه داده مقصد زده خواهد شد. ولی شما می خواهید در بلاک RUN یک کانال با نام دلخواه خودتان (مثلا ch1) به دیوایس SBT زده شود، پس با تعریف آن در بلاک RUN از تنظیمات پیشفرض صرف نظر خواهد شد. اختصاص چندین کانال به طور همزمان به یک Job باعث ایجاد موازی سازی برای انجام اعمال Read/Write خواهد شد. پس تکمیل Job به طور خودکار کانال آزاد یا Release می شود.

محدودیت های اختصاص دستی کانال

  • دستور ALLOCATE CHANNEL تنها در بلاک RUN قابل استفاده است.
  • پایگاه داده هدف یا target database باید در حالت start باشد.
  • اختصاص کانال ها به طور خودکار یا به طور دستی باید پیش از اجرای هر یک از دستور های BACKUP, DUPLICATE, CREATE CATALOG,RESTORE, RECOVER یا دستور VALIDATE صورت گیرد.
  • نمی توان BACKUP DEVICE TYPE یا RESTORE DEVICE TYPE برای استفاده از automatic channel ها پس از اختصاص کانال های دستی با دستور ALLOCATE CHANNEL استفاده کرد.

 مثال 1 : یک کانال به نام ch1 برای اجرای دستور BACKUP DATABASE PLUS ARCHIVELOG ایجاد می کند.

}RUN

;ALLOCATE CHANNEL c1 DEVICE TYPE sbt

;BACKUP DATABASE PLUS ARCHIVELOG

{

مثال 2 : با ایجاد دو کانال و ایجاد موازی سازی، انجام Backup  به دو دیسک مجزا صورت می گیرد. با DEVICE TYPE DISK FORMAT نام و مسیر ذخیره سازی بر روی دو دیسک disk1 و disk2 را مشخص می کنیم و دو کانال به نام های disk1 و disk2 نیز ایجاد خواهند شد.

}RUN

;’ALLOCATE CHANNEL disk1 DEVICE TYPE DISK FORMAT ‘/disk1/backups/%U

;’ALLOCATE CHANNEL disk2 DEVICE TYPE DISK FORMAT ‘/disk2/backups/%U

BACKUP DATABASE PLUS ARCHIVELOG; # AS COPY is default when backing up to disk

{



برچسب ها : , , , ,