تهیه گزارش AWR در محیط ADG

همانطور که می دانید؛ ایجاد گزارش awr در محیط ADG به صورت روتین امکان پذیر نمی باشد این اتفاق به دلیل عدم امکان ایجاد snapshot بر روی بانکی که در حالت read only قرار دارد، کاملا منطقی بنظر می رسد. در اوراکل 12cR2، راهکاری برای این مسئله اندیشیده شد و امکان تهیه این گزارش برای ADG هم فراهم شده است.

در این new feature، ابتدا با ایجاد یک snapshot، اطلاعاتی از بار کاری دیتاگارد، در یک بانکی که در حالت read write قرار دارد، ذخیره خواهد شد(الزامی برای کمک گرفتن از primary برای این کار وجود ندارد) و بعد از طی شدن یک بازه زمانی معین، می توان با ایجاد یک snapshot دیگر، به جمع اوری اطلاعات خاتمه داد و در نهایت گزارش گیری را انجام داد. در ادامه به شیوه انجام این کار خواهیم پرداخت.

این قابلیت(remote snapshot) از Remote Management Framework استفاده می کند و قبل از ایجاد گزارش AWR، نیاز است تا مراحلی برای ایجاد و پیکربندی توپولوژی RMF انجام شود که در ادامه به این مراحل و همچنین دیگر مراحل مورد نیاز برای ایجاد گزارش AWR خواهیم پرداخت.

مرحله اول: در ابتدا وضیعت کاربر SYS$UMF که همراه با RMF ارائه میشود را بررسی می کنیم:

SQL> select username,account_status from dba_users where username=‘SYS$UMF’;

USERNAME ACCOUNT_STATUS
SYS$UMF EXPIRED & LOCKED

 

همانطور که می بینید، این کاربر به طور پیش فرض، در حالت EXPIRED & LOCKED قرار دارد در گام اول، باید این کاربر را در حالت open قرار داد:

SQL> alter user sys$umf identified by a account unlock;

User altered

مرحله دوم: برای ادامه کار باید dblink دو طرفه ای را بین بانکی که در حالت read write قرار دارد و بانک ADG ایجاد کرد. در این تست، از primary به عنوان بانک مبدا(بانکی که در حالت read write قرار دارد)، استفاده شده است.

برای ایجاد dblink، در ابتدا در محیط primary و ADG، فایل tnsnames.ora را تنظیم می کنیم:

ADG=

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = ADG_HOST)(PORT = 1521))

    )

    (CONNECT_DATA =

      (sid=ADG)

    )

  )

PRIM=

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = PRIM_HOST)(PORT = 1521))

    )

    (CONNECT_DATA =

      (sid=PRIM)

    )

  )

 

بعد از تنظیم فایل tnsnames.ora، با دستور زیر، dblink را در بانک اصلی ایجاد می کنیم:

–in PRIM

SQL> create database link PRIM_TO_ADG CONNECT TO sys$umf IDENTIFIED BY root using ‘ADG’;

Database link created.

SQL> create database link ADG_TO_PRIM CONNECT TO sys$umf IDENTIFIED BY root using ‘PRIM’;

Database link created.

با دستورات زیر، dblink ایجاد شده را تست می کنیم:

SQL>  select database_role from [email protected]_TO_ADG;

DATABASE_ROLE

—————-

PHYSICAL STANDBY

 

SQL> select database_role from [email protected]_TO_PRIM;

DATABASE_ROLE

—————-

PRIMARY

مرحله سوم: قبل از ایجاد توپولوژی RMF، نیاز است تا پیکربندی لازم برای نودهای دیتابیس انجام شود و به هر کدام از دیتابیسها، نام uniqueای را تخصیص داد. برای این کار، با اجرای دستور زیر در محیط بانک اصلی، آن را به PRIM_NODE نامگذاری می کنیم:

SQL> exec dbms_umf.configure_node (‘PRIM_NODE’);

PL/SQL procedure successfully completed.

و همچنین دستور زیر را در محیط ADG اجرا می کنیم:

SQL> exec dbms_umf.configure_node(‘ADG_NODE’,’ADG_TO_PRIM’);

PL/SQL procedure successfully completed.

مرحله چهارم: توپولوژی RMF را با نام  TOPOL1 ایجاد می کنیم:

–in prim

SQL> exec DBMS_UMF.create_topology (‘TOPOL1’);

PL/SQL procedure successfully completed.

برای مشاهده لیست توپولوژی ها، می توان از ویوی dba_umf_topology استفاده کرد:

select * from dba_umf_topology;

TOPOLOGY_NAME TARGET_ID TOPOLOGY_VERSION TOPOLOGY_STATE
TOPOL1 3967923579 1 ACTIVE

مرحله پنجم: بعد از ایجاد توپولوژی، با اجرای دستور زیر، استندبای را در ان رجیستر می کنیم:

SQL> exec DBMS_UMF.register_node (‘TOPOL1’, ‘ADG_NODE’, ‘PRIM_TO_ADG’, ‘ADG_TO_PRIM’, ‘FALSE’, ‘FALSE’);

PL/SQL procedure successfully completed.

مرحله ششم: سرویس AWR را برای محیط دیتاگارد فعال کنیم:

SQL> exec DBMS_WORKLOAD_REPOSITORY.register_remote_database(node_name=>’ADG_NODE’);

PL/SQL procedure successfully completed.

 

با دستورات زیر، وضیعت توپولوژی را بعد از اجرای مراحل بالا، بررسی می کنیم:

select * from dba_umf_registration;

TOPOLOGY_NAME NODE_NAME NODE_ID NODE_TYPE AS_SOURCE AS_CANDIDATE_TARGET STATE
TOPOL1 PRIM_NODE 3967923579 0 FALSE FALSE OK
TOPOL1 ADG_NODE 1195199270 0 FALSE FALSE OK

 

select * from dba_umf_service;

TOPOLOGY_NAME NODE_ID SERVICE_ID
TOPOL1 1195199270 AWR

 

select * from dba_umf_link;

TOPOLOGY_NAME FROM_NODE_ID TO_NODE_ID LINK_NAME
TOPOL1 3967923579 1195199270 PRIM_TO_ADG
TOPOL1 1195199270 3967923579 ADG_TO_PRIM

 

مرحله هفتم: با دستور زیر، snapshotای را از دیتاگارد ایجاد می کنیم:

SQL> exec dbms_workload_repository.create_remote_snapshot(‘ADG_NODE’);

PL/SQL procedure successfully completed.

اولین snapshot برای ADG در محیط primary ایجاد شد! بعد از ایجاد این snapshot، منتظر می مانیم تا باری بر روی ADG ایجاد شده تا بعد از ان، snapshot دوم را ایجاد کنیم.

بعد از یک بازه زمانی مشخص، snapshot دوم را با کمک دستور زیر ایجاد می کنیم:

SQL> exec dbms_workload_repository.create_remote_snapshot(‘ADG_NODE’)

PL/SQL procedure successfully completed.

مرحله هشتم: در نهایت، گزارش AWR را ایجاد می کنیم:

SQL> @?/rdbms/admin/awrrpti.sql

Specify the Report Type

~~~~~~~~~~~~~~~~~~~~~~~

AWR reports can be generated in the following formats.  Please enter the

name of the format at the prompt. Default value is ‘html’.

   ‘html’          HTML format (default)

   ‘text’          Text format

   ‘active-html’   Includes Performance Hub active report

Enter value for report_type:

Type Specified: html

Instances in this Workload Repository schema

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  DB Id      Inst Num   DB Name      Instance     Host

———— ———- ———    ———-   ——

  1195199270     1      ORCL          ADG         ADG_HOST

* 1112303074     1      ORCL          PRIM        PRIM_HOST

Enter value for dbid: 1195199270

Using 1195199270 for database Id

Enter value for inst_num: 1

Using 1 for instance number

Specify the number of days of snapshots to choose from

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Entering the number of days (n) will result in the most recent

(n) days of snapshots being listed.  Pressing <return> without

specifying a number lists all completed snapshots.

Enter value for num_days: 1

Listing the last day’s Completed Snapshots

Instance     DB Name      Snap Id       Snap Started    Snap Level

———— ———— ———- —————— ———-

ADG           ORCL                1  30 Sep 2018 15:47    1

                                  2  30 Sep 2018 15:55    1

Specify the Begin and End Snapshot Ids

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Enter value for begin_snap: 1

Begin Snapshot Id specified: 1

Enter value for end_snap: 2

End   Snapshot Id specified: 2

Specify the Report Name

~~~~~~~~~~~~~~~~~~~~~~~

The default report file name is awrrpt_1_1_2.html.  To use this name,

press <return> to continue, otherwise enter an alternative.

Enter value for report_name: /home/oracle/awrstb970708.html

Using the report name /home/oracle/awrstb970708.html

قسمتی از خروجی گزارش AWR را در قسمت زیر مشاهده می کنید:

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *