۸۶ مطلب با کلمه‌ی کلیدی «اوراکل» ثبت شده است

اخبار داغ اوراکل: پشتیبانی اوراکل از اجرای پایگاه‌داده بر روی داکر

بالاخره اوراکل به طور واضح پلن پشتیبانی پایگاه داده خود از پلتفرم Docker را اعلام کرد.

طبق توضیحات موجود در متالینک (پشتیبانی رسمی اوراکل)، اوراکل به زودی و به شکل رسمی پشتیبانی از پلتفرم Docker را برای پایگاه‌داده Oracle با ساخت و پشتیبانی Oracle Linux به عنوان Host برای محیط عملیات آغاز می‌کند.

تو ادامه گفته شده اوراکل قصد داره از مشتری‌هایی که Oracle Database - single instance را بر روی Docker containerها در سیستم‌عامل Oracle Linux 7.4 و بالاتر یا Red Hat Enterprise Linux 7 اجرا می‌کنند پشتیبانی رسمی بکنه. در حال حاضر باینری‌های داکر برای نصب و اجرا در کانال Addonهای اوراکل لینوکس (oraclelinux7-addons) موجود است.

همچنین جزییات نصب در Chapter 2 داکیومنت Oracle Linux 7 Docker Users Guide موجود است. باقی جزییات درباره پشتیبانی داکر بر روی اوراکل لینوکس را می‌توانید در داکیومنت Support for Docker Running on Oracle Linux - Doc ID 1921163.1 مشاهده کنید.

خبر خوب برای مشتری‌هایی که می‌خواهند از Oracle RAC در زیرساخت Docker استفاده کنند اوراکل پشتیبانی از محیط توسعه و تست را برای RAC به طور رسمی آغاز کرده توجه داشته باشید برای محیط عملیات فعلا پشتیبانی صورت نمی‌گیرد. یک راهنمای سریع و با جزییات برای پیکربندی Oracle RAC در Docker را می‌توانید اینجا پیدا کنید. همچنین پچ‌های پیش‌نیاز برای نصب از OTN قابل دانلود است.

اطلاعات بیشتر که می‌تواند برایتان مفید باشد:

۱۳ ارديبهشت ۹۸ ، ۱۲:۱۱ ۱ نظر
مهدی غفاری

سناریوی Unidirectional - قسمت دوازدهم (Replicat مقصد)

برای ساخت سرویس replicat در مقصد اول فایل پیکربندی سرویس رو ایجاد می‌کنیم:

GGSCI (lx-01-oracle.roshak.org as GGS@orcl) 60> edit param rora1
REPLICAT rora1
USERID ggs,PASSWORD ggs
HANDLECOLLISIONS
ASSUMETARGETDEFS
DISCARDFILE ./dirrpt/RORA1.DSC, PURGE
DECRYPTTRAIL AES128 KEYNAME supermaskey
MAP hr.*, TARGET test.*;

ادامه مطلب...
۳۰ بهمن ۹۷ ، ۱۵:۲۱ ۱ نظر
مهدی غفاری

سناریوی Unidirectional - قسمت یازدهم (سرویس Pump)

خب الان باید سمت مبدا یک سرویس Pump ایجاد بکنیم که فایلهای Trail سمت مقصد فرستاده بشوند

برای اینکار اول باید سرویس Pump رو بسازیم بعد به سرویسهامون اضافه‌اش کنیم.

GGSCI (lx-02-oracle) 13> edit param pora1
EXTRACT pora1 
passthru
DECRYPTTRAIL AES128 KEYNAME supermaskey
RMTHOST 192.168.92.183 ,MGRPORT 65324, COMPRESS
ENCRYPTTRAIL AES128 KEYNAME supermaskey
RMTTRAIL dirdat/l2
TABLE TEST_USER.*;

خط اول: می‌گیم این پیکربندی مربوط به سرویس از جنس Extract هستش و اسمش pora1 نامگذاری شده

خط دوم: آپشن passthru به درد سولوشن‌های oltp به oltp میخوره یعنی همه‌ی structre مبدا در مقصد هستش اینجوری گلدن‌گیت دیگه دنبال تغییر structre نمیره ولی اگه ساختار مبدا و مقصد شما یکی نیست نباید از این آپشن استفاده کنید

خط سوم: وقتی trail fileهای ما رمزنگاری شده باشن اول از همه pump باید اونها رو DECRYPT کنه تا بتونه داخل اونها رو بخونه

خط چهارم: اتصال به سرور و manager مقصد به صورت فشرده هستش 

خط پنجم: بعد از انتقال به سرور مقصد دوباره فایلهای trail رو رمزنگاری کن

خط ششم: گفتم وقتی pump میاد trail میسازه جنسش rmttrail میشه پس اینجا مسیر ساخت این فایلها با نامگذاری رو مشخص می‌کنیم

خط هفتم: می‌تونیم توی pump هم مشخص کنیم که از tarilهای ما فقط جداول مشخصی رو انتقال بده

ادامه مطلب...
۳۰ بهمن ۹۷ ، ۱۴:۵۳ ۰ نظر
مهدی غفاری

سناریوی Unidirectional - قسمت دهم (Manager مقصد)

اولین کار بررسی وضعیت سرویس Manager هستش:

GGSCI (lx-01-oracle.roshak.org as GGS@orcl) 9> info all
Program Status Group Lag at Chkpt Time Since Chkpt

MANAGER RUNNING

خب اینجا باید طبق نقشه راهمون نامگذاری‌ها رو انجام بدیم:

GGSCI (lx-01-oracle.roshak.org as GGS@orcl) 10> edit param mgr
PORT 65324
autostart extract rora1
autorestart extract rora1 , RETRIES 10, WAITMINUTES 1, RESETMINUTES 5
PURGEOLDEXTRACTS ./dirdat/*, USECHECKPOINTS, MINKEEPDAYS 3

چون سناریو فعلی یکطرفه است من فقط سرویس replicat رو اضافه کردم در ادامه برای راه‌اندازی سناریوی ۲ طرفه باید capture, pump هم راه‌اندازی بشه.

خب برای اینکه پیکربندی ما اعمال بشه یکبار سرویس رو stop, start می‌کنیم:

GGSCI (lx-01-oracle.roshak.org as GGS@orcl) 11> stop mgr
Manager process is required by other GGS processes.
Are you sure you want to stop it (y/n)?y
Sending STOP request to MANAGER ...
Request processed.
Manager stopped.

GGSCI (lx-01-oracle.roshak.org as GGS@orcl) 12> start mgr
Manager started.

خب الان سرویس داره به صورت درست کار میکنه:

GGSCI (lx-01-oracle.roshak.org as GGS@orcl) 59> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING

۳۰ بهمن ۹۷ ، ۱۳:۰۹ ۰ نظر
مهدی غفاری

سناریوی Unidirectional - قسمت نهم (TRANDATA مقصد)

راه‌اندازی TRANDATA (اختیاری)

اگه بخوایم سناریوی یکطرفه راه‌اندازی کنیم اصلاً نیازی به اینکار نیست چون ما پروسه capture رو راه‌اندازی نمی‌کنیم ولی چون من میخوام سناریو رو در ادامه ۲ طرفه راه‌اندازی بکنم پس این کار رو انجام میدم:

GGSCI>ADD TRANDATA TEST_UNIDIRECTIONALGGS.*

نکته: اگه به خطای زیر برخوردید یکبار trandata رو پاک کنید و دوباره برای جدول trandata بسازید:

Logging of supplemental redo log data is already enabled for table TEST_UNIDIRECTIONALGGS.TEST_GGS_2.

2017-11-10 12:59:20 WARNING OGG-00706 Failed to add supplemental log group on table TEST_UNIDIRECTIONALGGS.TEST_GGS_2
due to ORA-32588: supplemental logging attribute primary key exists SQL ALTER TABLE "TEST_UNIDIRECTIONALGGS"."TEST_GGS_2"
ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY, UNIQUE, FOREIGN KEY) COLUMNS /* GOLDENGATE_DDL_REPLICATION */.
delete trandata TEST_UNIDIRECTIONALGGS.TEST_GGS_2
add trandata TEST_UNIDIRECTIONALGGS.TEST_GGS_2

۳۰ بهمن ۹۷ ، ۱۲:۵۵ ۰ نظر
مهدی غفاری

سناریوی Unidirectional - قسمت هشتم (Initial Load)

انجام initial load به روش‌های گوناگونی امکان پذیر است. اگه دیتای زیادی ندارید می‌تونید به صورت دستی اسکریپت‌های ساخت جداول و داده‌ها رو بر روی دیتابیس مقصد اعمال کنید.

اگه نیاز داشتید از initail load گلدن‌گیت استفاده کنید بهتره بدونید structure آبجکتها رو خودتون باید انتقال بدید و فقط دیتا رو با این روش می‌تونید انتقال بدید.

ولی در صورتی که دیتای زیادی دارید من توصیه میکنم از روشهای دیگه‌ای برای انتقال دیتا برای بار اول استفاده کنید.

خروجی  گرفتن از اسکیما

من تو این سناریوی تست قصد دارم اسکیمای 'TEST_UNIDIRECTIONALGGS' رو به دیتابیس مقصد منتقل کنم پس یک dump از اسکیمای مبدا با مشخصات زیر می‌گیرم:

EXPDP SYSTEM/... \
DUMPFILE="TEST_UNIDIRECTIONALGGS.dmp"\
LOGFILE="EXP_TEST_UNIDIRECTIONALGGS.log"\
DIRECTORY=DATA_PUMP_DIR\
FLASHBACK_TIME=SYSTIMESTAMP\
COMPRESSION=METADATA_ONLY\
CONTENT=ALL\
SCHEMAS=('TEST_UNIDIRECTIONALGGS')

ادامه مطلب...
۲۶ بهمن ۹۷ ، ۱۱:۴۰ ۰ نظر
مهدی غفاری

سناریوی Unidirectional - قسمت هفتم (راه‌اندازی مقصد)

خب من برای راه‌اندازی سناریوی تست‌امون یک ماشین دیگه با مشخصات زیر آماده کردم که به عنوان مقصد ازش استفاده کنم:

همیشه یک DBA قبل اینکه گلدن‌گیت رو راه‌اندازی بکنه باید نقشه راهش رو بکشه و قوانین نامگذاری‌های سرویسها و مسیرهاش رو هم مشخص و داکیومنت بکنه

من نقشه راه سناریوی تستمون رو با Microsoft Visio به صورت زیر کشیدم:

ادامه مطلب...
۲۴ بهمن ۹۷ ، ۱۳:۴۴ ۰ نظر
مهدی غفاری

سناریوی Unidirectional - قسمت ششم (سرویس Capture)

برای ساخت این سرویس اول از همه باید فایل پیکربندی اون رو بسازیم:

edit param eora1

و پیکربندی زیر رو درون اون قرار بدیم:

EXTRACT eora1 
USERID ggs, &
PASSWORD ggs
TRANLOGOPTIONS EXCLUDEUSER ggs, asmuser sys@ASM, asmpassword sys
ENCRYPTTRAIL AES128 KEYNAME supermaskey
EXTTRAIL dirdat/l1
DDL INCLUDE MAPPED
TABLE TEST_USER.*;

خط اول: ما مشخص میکنیم که یک سرویس extract به اسم eora1 میخوایم

خط دوم: مشخص میکنیم که نام‌کاربری ما چیه

خط سوم: پسورد رو کاربر گلدن‌گیتمون رو وارد میکنیم (می‌تونیم به صورت هش شده اون رو وارد کنیم)

نکته: توی گلدن‌گیت برای اضافه کردن سرویسها باید به صورت اسکرپت‌نویسی عمل کنیم یعنی هر خط اینجا یک دستور جدید محسوب میشه برای اینکه ادامه‌ی دستوری رو خط بعدش بنویسیم از & استفاده می‌کنیم 

خط چهارم: با دستور TRANLOGOPTIONS ما بر روی TRAIN Fileها مدیریت انجام می‌دیم یکی از آپشنهای این دستور EXCLUDEUSER هستش که با دادن کاربر ggs من از ایجاد loop جلوگیری کردم.

نکته: اگه دیتابیس شما با ASM پیکربندی شده چون Redo Log های ما در دیسک گروه‌های ASM وجود دارن و گلدن‌گیت نیاز داره به طور مستقیم با Online Redo Log Fileها کار بکنه ما باید مشخصات کاربر ASM رو هم بهش بدیم که اینکار رو با آپشنهای asmuser, asmpassword در دستور TRANLOGOPTIONS انجام می‌دیم.

ادامه مطلب...
۱۲ بهمن ۹۷ ، ۰۸:۵۶ ۰ نظر
مهدی غفاری

سناریوی Unidirectional - قسمت پنجم (پیکربندی GLOBAL)

GLOBAL یک فایل بدون پسوند هستش که ما می‌تونیم تعدادی از پارمترهای عمومی رو درون اون مشخص کنیم و با بالا اودن سرویس‌های گلدن‌گیت این تنظیمات اعمال می‌شوند. تا نسخه‌های قبلی می‌تونستیم اسم CheckpointTable رو همینجا درون این فایل مشخص کنیم اما تو نسخه‌های جدید گلدن‌گیت دیگه به این پارمتر کاری نداره و ازش تبعیت نمیکنه و شما حتما باید موقع ساخت CheckpointTable اسمی رو هم براش انتخاب کنید

نمونه‌ای از فایل GLOBALS

CHECKPOINTTABLE CHKTABLE
GGSCHEMA GGS
ENABLEMONITORING

ادامه مطلب...
۲۷ آذر ۹۷ ، ۱۲:۳۸ ۰ نظر
مهدی غفاری

سناریوی Unidirectional - قسمت چهارم (راه‌اندازی TRANDATA)

برای فعال کردن قابلیت Supplemental Logging در سطح رکورد ما می‌تونیم TRANDATA رو در گلدن‌گیت فعال کنیم، اگه شما از TRANDATA استفاده نکنید دستورات UPDATE و DELETE موقع APPLY توسط REPLICAT قطعاً FAIL می‌شوند و سرویس REPLICAT ممکنه Abend بشه

ادامه مطلب...
۱۱ آذر ۹۷ ، ۰۸:۳۸ ۰ نظر
مهدی غفاری