استفاده از tablespace پیش فرض در زمان ساخت PDB در پایگاه‌ داده اوراکل ۱۲C 

در هر دو نگارش ۱۲.۱ و ۱۲.۲ پایگاه‌ داده اوراکل این امکان وجود دارد که برای PDB جدید که از روی Seed ایجاد می‌شود، یک Tablespace جدید ساخته و آن را به عنوان Default Tablespace تنظیم کرد.

در این مستند به بررسی تمایزهای بند Default Tablespace در نگارش ۱۲.۲ و ۱۲.۱ پایگاه‌ داده اوراکل در معماری PDB پرداخته می‌شود. در این مستند به هر دو معماری OMF و Non-OMF پرداخته می‌شود. برای پشتیبانی از معماری Non-OMF از بندهای FILE_NAME_CONVERT وPDB_FILE_NAME_CONVERT استفاده می‌شود.


نگارش ۱۲.۱
با استفاده از دستور زیر یک پایگاه‌ داده اوراکل با نام pdb2 ایجاد می‌شود.

SQL> CONN / AS SYSDBA

— Oracle Managed Files (OMF) syntax.

SQL> CREATE PLUGGABLE DATABASE pdb2 ADMIN USER pdb_adm IDENTIFIED BY Password1DEFAULT TABLESPACE users DATAFILE SIZE 1M AUTOEXTEND ON NEXT 1M;

• ابتدا از طریق کاربری SYS به پایگاه‌ داده اوراکل Seed متصل می‌شود.

• نام پایگاه‌ داده اوراکل pdb2 تنظیم می‌شود.

• کاربری مدیریتی در سطح پایگاه‌ داده اوراکل pdb با نام pdb_adm و رمز عبور Password1 تنظیم می‌شود.

• Tablespace پیشفرض این پایگاه‌داده users نامیده شده و یک فایل به حجم ۱MB برای آن ایجاد می‌شود. رشد این فایل در هر افزایش به اندازه ۱MB می‌باشد.

SQL> CONN / AS SYSDBA

— Non-OMF syntax.

SQL> CREATE PLUGGABLE DATABASE pdb2 ADMIN USER pdb_adm IDENTIFIED BY Password1

FILE_NAME_CONVERT=(‘/u01/app/oracle/oradata/cdb1/pdbseed/’,’/u01/app/oracle/oradata/cdb1/pdb2/’)

DEFAULT TABLESPACE users DATAFILE ‘/u01/app/oracle/oradata/cdb1/pdb2/users01.dbf’ SIZE 1M AUTOEXTEND ON NEXT 1M;

SQL> ALTER PLUGGABLE DATABASE pdb2 OPEN;

در صورتی که از معماری Non-OMF برای نام‌گذاری فایل‌های داده استفاده شود، از دستور بالا برای ایجاد PDB جدید استفاده خواهد شد. در انتها نیز pdb2 در وضعیت Open قرار داده می‌شود. اکنون با استفاده از دستور زیر می‌توان وضعیت Tablespaces را بررسی کرد.

SQL> CONN / AS SYSDBA

SQL> ALTER SESSION SET CONTAINER = pdb2;

SQL> SELECT tablespace_name

FROM dba_tablespaces

ORDER BY 1;

TABLESPACE_NAME

—————

SYSAUX

SYSTEM

TEMP

USERS

SQL> SELECT property_value

FROM database_properties

WHERE property_name = ‘DEFAULT_PERMANENT_TABLESPACE’;

PROPERTY_VALUE

————–

USERS

در این دستور ابتدا به پایگاه‌ داده اوراکل Seed و سپس به pdb2 متصل می‌شود. با استفاده از جداول dba_tablespaces و database_properties وضعیت کلیه Tablespaces و همچنین Tablespace پیشفرض پایگاه‌داده بررسی می‌شود.
در صورتی که PDB از روی یک User Defined PDB ساخته شود، امکان استفاده از بند Default Tablespace در زمان ایجاد PDB میسر نمی‌باشد. به خطای زیر توجه شود.

SQL> CONN / AS SYSDBA

SQL> CREATE PLUGGABLE DATABASE pdb3 FROM pdb2

DEFAULT TABLESPACE users2 DATAFILE SIZE 1M AUTOEXTEND ON NEXT 1M;

DEFAULT TABLESPACE users2 DATAFILE SIZE 1M AUTOEXTEND ON NEXT 1M

*

ERROR at line 2:

ORA-00922: missing or invalid option

SQL> CREATE PLUGGABLE DATABASE pdb3 FROM pdb2

DEFAULT TABLESPACE users;

DEFAULT TABLESPACE users

*

ERROR at line 2:

ORA-00922: missing or invalid option

۱۲.۲
در نگارش ۱۲.۲ فارق از منبعی که PDB از روی آن ساخته می‌شود، می‌توان از بند Default Tablespace استفاده کرد. در صورتی کهپایگاه‌ داده اوراکل از روی Seed ساخته شود، همانند نگارش ۱۲.۱ یک Tablespace جدید ایجاد و به عنوان Default Tablespace معرفی می‌شود.

SQL> CONN / AS SYSDBA

SQL> CREATE PLUGGABLE DATABASE pdb2 ADMIN USER pdb_adm IDENTIFIED BY Password1

DEFAULT TABLESPACE users DATAFILE SIZE 1M AUTOEXTEND ON NEXT 1M;

SQL> ALTER PLUGGABLE DATABASE pdb2 OPEN;

 

اگر منبع یک پایگاه‌داده User Defined PDB باشد، الزاماً یکی از Tablespaces موجود باید به عنوان Default Tablespace معرفی گردد. با استفاده از دستور زیر ابتدا یک Tablespace جدید ایجاد می‌گردد.

SQL> CONN / AS SYSDBA

SQL> ALTER SESSION SET CONTAINER = pdb2;

SQL> CREATE TABLESPACE test_ts DATAFILE SIZE 1M AUTOEXTEND ON NEXT 1M;

اکنون از روی پایگاه‌ داده اوراکل pdb2 یک PDB جدید ایجاد می‌شود. ضمنا test_ts به عنوان Default Tablespace معرفی می‌گردد.

SQL> CONN / AS SYSDBA

SQL> CREATE PLUGGABLE DATABASE pdb3 FROM pdb2 DEFAULT TABLESPACE test_ts;

SQL> ALTER PLUGGABLE DATABASE pdb3 OPEN;

با استفاده از دستور زیر اطلاعات بیشتر در مورد Tablespaces موجود و همچنین Default Tablespaces نمایش داده می‌شود.

SQL> CONN / AS SYSDBA

SQL> ALTER SESSION SET CONTAINER = pdb3;

SQL> SELECT tablespace_name

FROM dba_tablespaces

ORDER BY 1;

TABLESPACE_NAME

——————————

SYSAUX

SYSTEM

TEMP

TEST_TS

UNDOTBS1

USERS

SQL> SELECT property_value

FROM database_properties

WHERE property_name = ‘DEFAULT_PERMANENT_TABLESPACE’;

PROPERTY_VALUE

————–

TEST_TS

در این نگارش نیز نمی‌توان حین ایجاد User Defined PDB از Tablespace جدید برای Default Tablespace استفاده کرد.

SQL> CONN / AS SYSDBA

— Clean up.

SQL> ALTER PLUGGABLE DATABASE pdb3 CLOSE;

SQL> DROP PLUGGABLE DATABASE pdb3 INCLUDING DATAFILES;

SQL> CREATE PLUGGABLE DATABASE pdb3 FROM pdb2

DEFAULT TABLESPACE another_ts DATAFILE SIZE 1M AUTOEXTEND ON NEXT 1M;

DEFAULT TABLESPACE another_ts DATAFILE SIZE 1M AUTOEXTEND ON NEXT 1M

*

ERROR at line 2:

ORA-00922: missing or invalid option

 

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

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