وبلاگ وحید نوروزی

تجربه و ترجمه و تحقیق درباره اوراکل را در این وبلاگ خواهید یافت.

وبلاگ وحید نوروزی

تجربه و ترجمه و تحقیق درباره اوراکل را در این وبلاگ خواهید یافت.

  • ۰
  • ۰

یکی از راههایی که برای مدیریت cdb ها  و pdbها وجود داره، استفاده از dbca هست. تو این نوشته چند تا کار رو سعی می کنیم باهاش انجام بدیم.

برای اجرای دستور dbca احتیاج هست که ORACLE_HOME و PATH به درستی ست شده باشه. همچنین این ORACLE_HOME باید به HOME دیتبایس اشاره کنه وگرنه با خطای زیر مواجه میشیم:

من از دستور oraenv بصورت زیر برای تنظیم Env استفاده می کنم:

[oracle@test12cr2 ~]$ . oraenv
ORACLE_SID = [+ASM] ? cdb2
ORACLE_HOME = [/home/oracle] ? /u01/app/oracle/product/12.2.0/dbhome_1
The Oracle base remains unchanged with value /u01/app/oracle

 

 می دونیم که زدن نقطه قبل از دستور oraenv به این معنی است که تغییرات رو در shell حاضر اعمال کن. حالا دوباره دستور dbca را می زنیم. ما می خواهیم کارهای زیر را انجام دهیم:
ایجاد یک cdb به همراه pdb توسط dbca
ایجاد یک pdb جدید توسط dbca
unplugging/plugging/delete/configure pdb توسط dbca
قدم اول ساخت یک cdb که به همراه آن یک pdb هم باشد. ما اینکار را با اچرا دستور dbca انجام می دهیم. پس از اجرای این دستور صفحه اولی که می بینیم این است:
 
 
این نصب را بصورت typical انجام می دهیم . global database name  و همچنین محل دیتافایلها و recovery area را مشخص کرده و این دیتابیس را بصورت container نصب می کنیم. همچنین نام pdb مد نظر خود را هم می دهیم.
 
 
با توجه به اینکه پسورد را ساده وارد کرده ایم به ما اخطار می دهد که در حال حاضر مشکلی با این قضیه نداریم.
 
 
خلاصه ای از آنچه نصب خواهد شد به ما ارائه می دهد.
 
 
نصب شروع می شود. به این دقت کنیم که چون oracle restart را توسط نرم افزار grid infra نصب کرده ایم، این مرحله هم وجود دارد. در صورتی که میخواستیم روی فایل سیستم نصب کنیم و grid نصب نبود، این مرحله وجود نداشت.
 
 
پس از اتمام نصب به ما امکان تغییر پسورد و یا unlcok کردن کاربران را می دهد.
 
 
 
در این مرحله می خواهیم یک pdb به cdb اضافه کنیم.  باز دستور dbca را اجرا می کنیم و اینبار گزینه manage pluggable database  را انتخاب می کنیم.
 
 
 
گزینه اول که create a pluggable database هست را انتخاب می کنیم.
 
 
 
دیتابیس cdb مقصد خود را انتخاب می کنیم. با توجه به اینکه از طریق os می توانیم authenticate شویم، احتیاجی به ورود پسورد نیست.
 
 
 
نام دیتابیس و همچنین نام Admin که برای این pdb است را وارد می کنیم. 
 
 
 
گزینه create default user tablespace را مارک می کنیم.
 
 
خلاصه ای از نصب به ما می گوید و سپس نصب شروع می کنیم و در انتها پیغام نصب موفقیت آمیز این pdb در cdb که انتخاب کرده ایم را به ما می دهد.
 
 
 
در این مرحله میخواهیم که یک pdb را از cdb ای که ساختیم unplug کرده و به cdb دیگر plug کنیم. قبل از unplug یک کاربر و یک جدول می سازیم.
[oracle@test12cr2 dbhome_1]$ . oraenv
ORACLE_SID = [oracle] ? cdb2
The Oracle base has been changed from /home/oracle to /u01/app/oracle
[oracle@test12cr2 dbhome_1]$ sqlplus / as sysdba

SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 PDBTESTCDB2                    READ WRITE NO
         4 PDB3                           READ WRITE NO
SQL> alter session set container=pdb3;
SQL> create user vahid identified by vahid ;
SQL> grant dba to vahid;
SQL> create table vahid.t1 (f1 number);

SQL> insert into vahid.t1 values (1);

SQL> commit;

حالا دوباره دستور dbca را انتخاب می کنیم و باز به قسمت manage pluggable database می رویم و اینبار گزینه unplug a pluggable database را انتخاب می کنیم.

 

 

 

آن cdb که pdb مدنظر ما در آن است را انتخاب می کنیم و در صفحه بعدی گزینه generate pluggable database file set را انتخاب کرده و آدرس می دهیم. در صورتی که گزینه اول را انتخاب کنیم، با خطا مواجه می شویم و دلیل آن نیز این داکیومنت است:

DBT-15011 During Unplug PDB by DBCA (Doc ID 2350135.1)

من از توضیحی که داد قانع نشدم و تنها گفت که باید با ابزاری مثل sqlplus اینکار را انجام دهیم.

 

 

خلاصه ای از کاری که می خواهد انجام بدهد را می گوید و در نهایت این pdb را unplug می کند.

SQL> select pdb_id , pdb_name from cdb_pdbs;

    PDB_ID
----------
PDB_NAME
--------------------------------------------------------------------------------
         3
PDBTESTCDB2

         2
PDB$SEED

حالا یک حرکت قشنگ می کنیم و این دیتابیس unplug شده را به cdb دیگر می زنیم. دوباره دستور dbca و انتخاب گزینه manage pluggable databases و گزینه create a pluggable database و اینبار دیتابیس cdb دیگر را انتخاب می کنیم.

 

 

گزینه create pluggable database from an unplugged pdb را انتخاب می کنیم و با دادن مسیر فایلی که در مراحل قبل ساختیم، کار را ادامه می دهیم.

 

حالا نام pdb و نام ادمین و پسوردش را وارد می کنیم.

 

 

این صفحه رو نمی دونم چرا گذاشت :)

 

 

سپس یه خلاصه به ما نشان می دهد و این pdb را به cdb جدید اضافه می کند.

حالا می توانیم از cdb جدید داده ای که قبلاً اضافه کرده بودیم را ببینیم.

[oracle@test12cr2 ~]$ . oraenv
ORACLE_SID = [testcdb] ?
The Oracle base remains unchanged with value /u01/app/oracle
[oracle@test12cr2 ~]$ sqlplus / as sysdba

SQL*Plus: Release 12.2.0.1.0 Production on Sat Dec 7 06:43:50 2019

Copyright (c) 1982, 2016, Oracle.  All rights reserved.

Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 TESTPDB                        MOUNTED
         4 FROMCDB2PDB                    READ WRITE NO
SQL>
SQL>
SQL> alter session set container=fromcdb2pdb;

Session altered.

SQL> select * from vahid.t1;

        F1
----------
         1

 

 

  • ۹۸/۰۹/۱۶
  • قدیر نوروزی میرصادقی

نظرات (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی