ایجاد چندین نام برای دیتافایلها با کمک hard link

همانطور که می دانید، ایجاد hard link برای یک فایل در محیط لینوکس، دستیابی به آن فایل را از چندین مسیر مختلف ممکن می سازد. مثال زیر را ببینید:

مثال: myfile1 با شماره inodeای برابر با 4475276، در مسیر u01/ قرار دارد:

[root@ol7 u01]# cd /u01/

[root@ol7 u01]# ls -li myfile1

4475276 -rw-r–r–. 1 root root 15 Oct  3 10:25 myfile1

با دستور زیر، لینک سختی را برای myfile1 در مسیر u02/ ایجادمی کنیم(ایجاد لینک سخت در پارتیشنهای مختلف امکان پذیر نمی باشد.):

[root@ol7 ~]# ln /u01/myfile1 /u02/myfile1

[root@ol7 ~]# ls -li /u02/myfile1

4475276 -rw-r–r–. 2 root root 15 Oct  3 10:25 /u02/myfile1

برای ازاد کردن فضای فایل سیستم، باید همه این لینکهای سخت را از بین برد و با حذف یکی از این دو فایل، inode و محتویات فایل کماکان باقی خواهند ماند:

[root@ol7 ~]# rm -rf /u01/myfile1

[root@ol7 ~]# ls -li /u02/myfile1

4475276 -rw-r–r–. 1 root root 15 Oct  3 10:25 /u02/myfile1

این مسئله در محیط اوراکل و برای دیتافایلها هم صادق خواهد بود. مثال زیر ببینید:

مثال:در ابتدا دیتافایلی را ایجاد کرده و سپس برای این دیتافایل، hard linkای را ایجاد می کنیم:

SQL> create tablespace tbs01 datafile ‘/u01/datafile01.dbf’ size 100k;

Tablespace created.

[oracle@ol7 ~]$ ln /u01/datafile01.dbf /u02/datafile01.dbf

در ادامه با انداختن بانک اطلاعاتی، دیتافایل را حذف می کنیم:

[oracle@ol7 ~]$ sqlplus “/as sysdba”

SQL> shut abort

ORACLE instance shut down.

[oracle@ol7 ~]$ rm -rf /u01/datafile01.dbf

با استارت مجدد instance، دیتابیس با خطا متوقف خواهد شد:

[oracle@ol7 ~]$ sqlplus “/as sysdba”

SQL*Plus: Release 12.2.0.1.0 Production on Wed Oct 3 10:54:58 2018

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

Connected to an idle instance.

SQL> startup

ORACLE instance started.

Total System Global Area  524288000 bytes

Fixed Size                  8622624 bytes

Variable Size             306187744 bytes

Database Buffers          201326592 bytes

Redo Buffers                8151040 bytes

Database mounted.

ORA-01157: cannot identify/lock data file 5 – see DBWR trace file

ORA-01110: data file 5: ‘/u01/datafile01.dbf’

با تغییر نام دیتافایل به لینک دوم فایل، دیتابیس در حالت open قرار خواهد گرفت:

SQL> alter database rename file ‘/u01/datafile01.dbf’ to ‘/u02/datafile01.dbf’;

Database altered.

SQL> alter database open;

Database altered.

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