[20150930]linux ln建立硬連線.txt

lfree發表於2015-09-30

[20150930]linux ln建立硬連線.txt

--前幾天同事在建立測試環境時磁碟空間不足,而另外一個空間磁碟空間充足,我說可以透過ln建立軟連線來解決這個問題。
--這讓我想起我以前管理資料庫透過ln建立硬連線來避免oracle資料檔案的刪除,雖然現在我現在不用這種方式,不過還是做一些簡單介
--紹.

1.關於linux的ln命令我不做介紹,自己看看手冊。
--僅僅說明一點,做硬連結不能跨檔案系統。

2.實際上很簡單,我拿測試環境做一次。

RMAN> report schema;

using target database control file instead of recovery catalog
Report of database schema

List of Permanent Datafiles
===========================
File Size(MB) Tablespace           RB segs Datafile Name
---- -------- -------------------- ------- ------------------------
1    510      SYSTEM               ***     /mnt/ramdisk/test/system01.dbf
2    350      UNDOTBS1             ***     /mnt/ramdisk/test/undotbs01.dbf
3    370      SYSAUX               ***     /mnt/ramdisk/test/sysaux01.dbf
4    100      USERS                ***     /mnt/ramdisk/test/users01.dbf
5    100      EXAMPLE              ***     /mnt/ramdisk/test/example01.dbf
6    15       MSSM                 ***     /mnt/ramdisk/test/mssm01.dbf

List of Temporary Files
=======================
File Size(MB) Tablespace           Maxsize(MB) Tempfile Name
---- -------- -------------------- ----------- --------------------
1    18       TEMP                 32767       /mnt/ramdisk/test/test01.dbf

$  mkdir -p /mnt/ramdisk/.test
$  ln /mnt/ramdisk/test/* /mnt/ramdisk/.test/                 --*/
--這樣就完成了硬連線的建立,當然你可以1個1個建立。

$  cd /mnt/ramdisk/.test/
$  ll -li
total 1678356
47643 -rw-r----- 2 oracle oinstall   7389184 2015-09-30 10:52:05 control01.ctl
47644 -rw-r----- 2 oracle oinstall   7389184 2015-09-30 10:52:05 control02.ctl
47645 -rw-r----- 2 oracle oinstall   7389184 2015-09-30 10:52:05 control03.ctl
47646 -rw-r----- 2 oracle oinstall 104865792 2015-09-30 10:49:34 example01.dbf
47647 -rw-r----- 2 oracle oinstall  16654336 2015-09-30 10:49:34 mssm01.dbf
47648 -rw-r----- 2 oracle oinstall  52429312 2015-09-30 10:49:34 redo01.log
47649 -rw-r----- 2 oracle oinstall  52429312 2015-09-30 10:49:36 redo02.log
47650 -rw-r----- 2 oracle oinstall  52429312 2015-09-30 10:49:36 redo03.log
47651 -rw-r----- 2 oracle oinstall 387981312 2015-09-30 10:49:34 sysaux01.dbf
47652 -rw-r----- 2 oracle oinstall 534781952 2015-09-30 10:49:34 system01.dbf
47653 -rw-r----- 2 oracle oinstall  20979712 2015-09-30 10:48:53 temp01.dbf
47654 -rw-r----- 2 oracle oinstall  18882560 2015-09-30 10:48:53 test01.dbf
47655 -rw-r----- 2 oracle oinstall 367009792 2015-09-30 10:49:34 undotbs01.dbf
47656 -rw-r----- 2 oracle oinstall 104865792 2015-09-30 10:49:34 users01.dbf

$  cd /mnt/ramdisk/test
$  ll -li
total 1678356
47643 -rw-r----- 2 oracle oinstall   7389184 2015-09-30 10:52:23 control01.ctl
47644 -rw-r----- 2 oracle oinstall   7389184 2015-09-30 10:52:23 control02.ctl
47645 -rw-r----- 2 oracle oinstall   7389184 2015-09-30 10:52:23 control03.ctl
47646 -rw-r----- 2 oracle oinstall 104865792 2015-09-30 10:49:34 example01.dbf
47647 -rw-r----- 2 oracle oinstall  16654336 2015-09-30 10:49:34 mssm01.dbf
47648 -rw-r----- 2 oracle oinstall  52429312 2015-09-30 10:49:34 redo01.log
47649 -rw-r----- 2 oracle oinstall  52429312 2015-09-30 10:49:36 redo02.log
47650 -rw-r----- 2 oracle oinstall  52429312 2015-09-30 10:49:36 redo03.log
47651 -rw-r----- 2 oracle oinstall 387981312 2015-09-30 10:49:34 sysaux01.dbf
47652 -rw-r----- 2 oracle oinstall 534781952 2015-09-30 10:49:34 system01.dbf
47653 -rw-r----- 2 oracle oinstall  20979712 2015-09-30 10:48:53 temp01.dbf
47654 -rw-r----- 2 oracle oinstall  18882560 2015-09-30 10:48:53 test01.dbf
47655 -rw-r----- 2 oracle oinstall 367009792 2015-09-30 10:49:34 undotbs01.dbf
47656 -rw-r----- 2 oracle oinstall 104865792 2015-09-30 10:49:34 users01.dbf

--ls -li  i引數是顯示檔案i節點號。對比上下是一樣的。

3.你還可以做一些加固:

#  chown root:root .test
#  chmod 444 .test

--這樣oracle使用者根本無法進入/mnt/ramdisk/.test目錄
$  cd /mnt/ramdisk/.test
-bash: cd: /mnt/ramdisk/.test: Permission denied

--因為/mnt/ramdisk/.test僅僅有讀許可權,oracle使用者也無法刪除裡面的檔案。而資料庫正常執行。

$  rm /mnt/ramdisk/.test/control01.ctl
/bin/rm: cannot remove `/mnt/ramdisk/.test/control01.ctl': Permission denied

--你還可以使用chattr +i 加固.test目錄(僅僅對ext2以上檔案系統有效),這樣root使用者也無法增加檔案,刪除檔案【注意能修改檔案內
--容或者覆蓋檔案】

4.當然這種方式不是沒有缺點:
--資料檔案還是在同一個檔案系統下,這個好比全部雞蛋放在一個籃子裡面,僅僅能夠防止一些誤操作。
--而且在增加資料檔案的情況下,也需要手工加入對應目錄,管理上須人工干預。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-1812272/,如需轉載,請註明出處,否則將追究法律責任。

相關文章