دیتابیس اوراکل

دیتابیس اوراکل
طبقه بندی موضوعی

۴ مطلب در فروردين ۱۴۰۱ ثبت شده است

Cluster Time Management

سینک بودن تایم نودها در RAC یک امر حیاتی است. برای این موضوع میتوان از یکی از این 2 روش استفاده کرد:

1- فعالسازی یک time synchronization service مانند NTP یا Chrony

از OEL7 به بعد بهتر است از سرویس chrony بجای ntp استفاده شود. برای فعالسازی آن می­توان به روش زیر اقدام کرد:

# yum install -y chrony

# change /etc/chrony.conf

# systemctl enable chronyd

# systemctl start chronyd

# chronyc tracking

# chronyc sources –v

 

To quickly synchronize a server :

ntpdate 10.10.1.2

 

اگر میخواهید از سرویس NTP استفاده کنید میتوانید آن را به صورت زیر راه اندازی نمایید:

# yum install ntp

# vi /etc/ntp.conf --> add server IP iburst

# systemctl enable ntpd

# systemctl start ntpd

# systemctl status ntpd

# ntpq -p

 

2- فعالسازی Cluster Time Synchronization Service (CTSS)

اگر می­خواهید از CTSS برای سینک کردن تایم در کلاستر استفاده کنید، این سرویس باید در حالت Active باشد.  اگر ntp یا chrony فعال باشد (به این صورت که سرویسشان فعال باشد یا config file آن­ها موجود باشد)، CTSS به صورت پیش فرض با Observer mode بالا می­ آید و برای بردن آن به حالت Active باید سرویس های ntp یا chrony را غیرفعال نمایید.

$ crsctl check ctss

CRS-4700: The Cluster Time Synchronization Service is in Observer mode.

$crsctl stat res -t –init

ora.ctssd

1        ONLINE  ONLINE       test1-rac19c             OBSERVER:0,STABLE

 

Disable chronyd

# systemctl stop chronyd

# systemctl disable chronyd

بعد از اجرای این دستورات نباید config file مربوط به chrony (chrony.conf) در مسیر /etc وجود داشته باشد، اگر وجود داشت آن را تغییر نام دهید.

# ls -ltr /etc/chro*

-rw-r--r--. 1 root root   1079 Oct 12 13:36 /etc/chrony.conf

# cd /etc/

# mv chrony.conf chrony.conf.back

بعد از ریستارت کردن clusterware ،CTSS باید در حالت Active باشد:

$ crsctl check ctss

CRS-4701: The Cluster Time Synchronization Service is in Active mode.

CRS-4702: Offset (in msec): 0

 

$crsctl stat res -t –init

ora.ctssd

1        ONLINE  ONLINE       test1-rac19c             ACTIVE:0,STABLE

 

$ cluvfy comp clocksync -n all -verbose

Verifying Clock Synchronization ...

  Node Name                             Status

  ------------------------------------  ------------------------

  test1-rac19c                          passed

  test2-rac19c                          passed

 

  Node Name                             State

  ------------------------------------  ------------------------

  test2-rac19c                          Active

  test1-rac19c                          Active

 

  Node Name     Time Offset               Status

  ------------  ------------------------  ------------------------

  test2-rac19c  0.0                       passed

  test1-rac19c  0.0                       passed

Verifying Clock Synchronization ...PASSED

 

Verification of Clock Synchronization across the cluster nodes was successful.

 

CVU operation performed:      Clock Synchronization across the cluster nodes

Date:                         Oct 14, 2020 2:22:12 PM

CVU home:                     /u01/app/grid/19.3.0/

User:                         oracle

 

ORA-00600: internal error code, arguments: [6965]

موقع ایمپورت یک جدول در دیتابیس (ورژن 19.10) که data type 2 تا از ستونهای آنها از نوع LONG بود با خطای زیر مواجه شدم:

ORA-31693: Table data object "RA"."TAB1" failed to load/unload and is being skipped due to error:

ORA-02354: error in exporting/importing data

ORA-39776: fatal Direct Path API error loading table "RA"."TAB1"

ORA-00600: internal error code, arguments: [6965], [19], [21], [], [], [], [], [], []

 

که طبق داکیومنت اوراکل (Document 2691467.1) وقتی tablespace را از حالت compress خارج کردم مشکل حل شد.

OLTP Table Compression is NOT supported for use with tables that have more than 255 columns or that have LONG data types.

 

ولی راه حل اصلی آن این است که ستونهای از نوع LONG به LOB تبدیل شوند.

طبق داکیومنت زیر، LONG فقط برای backward compatibility پشتیبانی میشود و بهتر است ستونهای از نوع LONG به LOB تبدیل شوند.

https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/Data-Types.html#GUID-F6309DF8-162F-48A4-9454-FEE59EC6644F

EXPDP/IMPDP Of Partitioned Table

در مثال زیر از 2 پارتیشن جدول TEST1.TAB1 اکسپورت می­گیریم.

expdp SYSTEM

tables=TEST1.TAB1:P201201, TEST1.TAB1:P201202

dumpfile=EXP_TEST1_TAB1_%U.dmp

logfile=EXP_TEST1_TAB1.log

parallel=10

directory=DATA_PUMP_DIR

 

در مرحله بعد، پارتیشن هایی را که در مرحله قبل از آنها اکسپورت گرفتیم، در یک اسیکمای جدید با نام TEST2  ایمپورت میکنیم.

impdp SYSTEM

remap_schema=TEST1:TEST2

remap_tablespace=TBS_TEST1:TBS_TEST2

dumpfile=EXP_TEST1_TAB1_%U.dmp

logfile=IMP_TEST1_TAB1.log

directory=DATA_PUMP_DIR

transform=oid:n

parallel=10

exclude=STATISTICS,INDEX,CONSTRAINT,GRANT 

 

اگر از قبل یک اکسپورت full از جدول وجود دارد و در حال حاضر فقط به پارتیشنهای خاصی از آن جدول نیاز دارید، میتوانید ایمپورت را به صورت زیر انجام دهید.

impdp SYSTEM

remap_schema=TEST1:TEST2

tables=TEST1.TAB1:P201201,TEST1.TAB1:P201202

dumpfile=EXP_FULL_TEST1_%U.dmp

logfile=IMP_TEST1_TAB1.log

directory=DATA_PUMP_DIR

transform=oid:n

parallel=10

exclude=STATISTICS,INDEX,CONSTRAINT,GRANT

remap_tablespace=TBS_TEST1:TBS_TEST2

 

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

impdp SYSTEM

remap_schema=TEST1:TEST2

tables=TEST1.TAB1:P201201,TEST1.TAB1:P201202

remap_table=TEST1.TAB1:TAB1_NEW

dumpfile=EXP_FULL_TEST1_%U.dmp

logfile=IMP_TEST1_TAB1.log

directory=DATA_PUMP_DIR

transform=oid:n

parallel=10

exclude=STATISTICS,INDEX,CONSTRAINT,GRANT 

remap_tablespace=TBS_TEST1:TBS_TEST2

 

ORA-07445: exception encountered: core dump [lmmstrmlrg()+57]

DB Version:

19.10.0.0

 

Command:

impdp  \'/ as sysdba\' tables=USR.TEST1 directory=DIR1 dumpfile=expdp_2022-04-12.dmp logfile=impdp_2022-04-12.log encryption_password=password

 

Error:

ORA-07445: exception encountered: core dump [lmmstrmlrg()+57] [SIGSEGV] [ADDR:0x0] [PC:0x40E9C49] [Address not mapped to object] []

 

Cause:

Data Pump export is run using the following parameters, or Data Pump import of a file created with the following parameters is done:

     - encryption_mode

     - encryption_password

     - encryption_algorithm

 

Solution:

Upgrade to 19.14.0.0

 

Document:

Doc ID 32442404.8