در ادامه عملیات داستان های واقعی: کلون گیری باگ دار بودم که در دیتابیس مقصد با خطای ORA-15124: ASM file name contains an invalid alias name مواجه شدم.


RMAN-08018: channel ORA_AUX_DISK_1: starting archived log restore to user-specified destination
RMAN-08508: archived log destination=+FRA
RMAN-08169: channel ORA_AUX_DISK_1: using network backup set from service CDB1
RMAN-08022: channel ORA_AUX_DISK_1: restoring archived log
RMAN-08510: archived log thread=1 sequence=8645
RMAN-08180: channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
RMAN-03091: Finished restore at 12-APR-22
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of Duplicate PDB command at 04/12/2022 19:32:47
RMAN-05501: aborting duplication of target database
RMAN-06136: Oracle error from auxiliary database: ORA-15124: ASM file name '+DATA/FMSDB/B6E05B19F9FE428FE05301A4A8C02926/DATAFILE/cl_ezpdo1_mf_temp2_%u_.tmp' contains an invalid alias name

برای اینکه بفهمیم در دیتابیس اصلی چه دیتافایلهایی وجود دارد میتونیم از rman استفاده کنیم و مسیر فایلها رو ببینیم:

$rman target / log=srdc_rman_output_<date>.log
RMAN> set echo on;
RMAN> report schema;
RMAN> exit;

تو این گزارش خروجی دیتافایلهای TEMP رو میتونیم ببینم

List of Temporary Files
=======================
File Size(MB) Tablespace Maxsize(MB) Tempfile Name
---- -------- -------------------- ----------- --------------------
1 79 TEMP 32767 /u02/oracle/oradata/FMSDB/datafile/o1_mf_temp_gw273kgs_.tmp
2 78 PDB$SEED:TEMP 32767 /u02/oracle/oradata/FMSDB/datafile/temp012019-11-05_10-27-26-979-AM.dbf
3 11954 FMSTESTDB:TEMP 30720 /u02/oracle/oradata/FMSDB/96951BB33D882518E055020C29C243EC/datafile/o1_mf_temp_gw280mrn_.dbf
4 17787 ACHTEST:TEMP 32767 /u02/oracle/oradata/FMSDB/996CF465980948DDE055020C29C243EC/datafile/o1_mf_temp_gz1nv1dg_.dbf
5 514 PICHAKTEST:TEMP 32767 /u02/oracle/oradata/FMSDB/AC200DE1073A0FBCE05301A4A8C0D23B/datafile/o1_mf_temp_hlo3d4o8_.dbf
6 32767 DEPLOYDB:TEMP 32767 /u02/oracle/oradata/FMSDB/B6E05B19F9FE428FE05301A4A8C02926/datafile/o1_mf_temp_hxxvct7k_.dbf
7 11724 FMSTESTDB:TEMP 30720 /u02/oracle/oradata/FMSDB/96951BB33D882518E055020C29C243EC/datafile/o1_mf_temp_hy18tw1v_.tmp
8 11824 FMSTESTDB:TEMP 32767 /u02/oracle/oradata/FMSDB/96951BB33D882518E055020C29C243EC/datafile/o1_mf_temp_hy1l5fmn_.tmp
9 11224 FMSTESTDB:TEMP 32767 /u02/oracle/oradata/FMSDB/96951BB33D882518E055020C29C243EC/datafile/o1_mf_temp_hy1l5gmy_.tmp
10 32767 IMENDB:TEMP 32767 /u02/oracle/oradata/FMSDB/B9DE26AFFC1E70D3E05301A4A8C08482/datafile/o1_mf_temp_j127c426_.dbf
11 78 SVCGWYDB:TEMP 32767 /u02/oracle/oradata/FMSDB/C685D8C5E23A1C55E053A14110AC7EA4/datafile/o1_mf_temp_jgbvmq5n_.dbf
12 17408 DEPLOYDB:TEMP 32767 /u02/oracle/oradata/FMSDB/datafile/temp01.dbf
13 78 APIGWYDB:TEMP 32767 /u02/oracle/oradata/FMSDB/C685D8C5E2451C55E053A14110AC7EA4/datafile/o1_mf_temp_jgc0bh76_.dbf
14 78 OLTPDTNDB:TEMP 32767 /u02/oracle/oradata/FMSDB/C685D8C5E2471C55E053A14110AC7EA4/datafile/o1_mf_temp_jgc0bkcd_.dbf
15 78 DFNDB:TEMP 32767 /u02/oracle/oradata/FMSDB/C685D8C5E2491C55E053A14110AC7EA4/datafile/o1_mf_temp_jgc0bmmg_.dbf
16 78 DSTCHDB:TEMP 32767 /u02/oracle/oradata/FMSDB/C685D8C5E24B1C55E053A14110AC7EA4/datafile/o1_mf_temp_jgc0bosq_.dbf
19 79 WALLET:TEMP 32767 /u02/oracle/oradata/FMSDB/CDC38A1209DB1579E053A14110AC1C35/datafile/o1_mf_temp_joxtl3dl_.dbf
20 129 IMENSHB:TEMP 32767 /u02/oracle/oradata/FMSDB/CC7E834CF37378C0E053A14110ACC10A/datafile/o1_mf_temp_jnm79sq6_.dbf
24 100 TESTDB:TEMP2 33554431 /u02/oracle/oradata/FMSDB/B6E05B19F9FE428FE05301A4A8C02926/datafile/o1_mf_temp2_%u_.tmp
27 3072 TESTDB:TEMP 32767 /u02/oracle/oradata/FMSDB/B6E05B19F9FE428FE05301A4A8C02926/datafile/o1_mf_temp_k2jmzvly_.tmp
28 3072 TESTDB:TEMP 32767 /u02/oracle/oradata/FMSDB/B6E05B19F9FE428FE05301A4A8C02926/datafile/o1_mf_temp_k2jn13cm_.tmp

RMAN> exit;
Recovery Manager complete.

همونطور که میبینید من یک دیتافایل با نام o1_mf_temp2_%u_.tmp در دیتابیس اصلی دارم که به خاطر وجود علامت % در فایل سیستم ASM قابل ساخت نیست

تنها راه درست کردن این مشکل درست کردن نام این دیتافایل هستش به این دلیل که در ASM فقط فایلهایی قابل ساخت است که با یک کاراکتر الفبای انگلیسی، یا اعداد و یا کاراکترهای '$', '_', '-','#" شروع شده و نهایتا تا 48 کاراکتر میتوان نامگذاری انجام گردد. همچنین کاراکتر space میتواند بین 2 کاراکتر برای ایجاد یک alias name واحد فاصله ایجاد کند.

من با حذف این TBS این خطا رو حل کردم.

https://support.oracle.com/epmos/faces/DocContentDisplay?id=194454.1