前段时间搞一个数据库迁移的时候:
由于是研发环境,直接迁移到一个已成型的服务器上,由于是直接copy的,碰到点问题, 目标服务器这个目录的空间不够,这个时候我把数据库copy到另外一个目录,在打开的时候报spfile记录的文件不对,这个时候我改好了spfile的目录,又报了数据文件不对,其实这个很简单,
比如我原来记录的是在目录/home/oracle/a 现在到了/home/oracle/b,那原来指定的数据文件目录肯定不对,这个时候可以使用软连接,将目录替换下就好了。
直接将ln -s /home/oracle/a /home/oracle/b就可以了:
这里就是ln -s 了,我们来看下ln :
SYNOPSIS
ln [OPTION]... [-T] TARGET LINK_NAME (1st form)
ln [OPTION]... TARGET (2nd form)
ln [OPTION]... TARGET... DIRECTORY (3rd form)
ln [OPTION]... -t DIRECTORY TARGET... (4th form)
DESCRIPTION
In the 1st form, create a link to TARGET with the name LINK_NAME. In the 2nd form, create a link to TARGET in
the current directory. In the 3rd and 4th forms, create links to each TARGET in DIRECTORY. Create hard links
by default, symbolic links with --symbolic. When creating hard links, each TARGET must exist.
Mandatory arguments to long options are mandatory for short options too.
--backup[=CONTROL]
make a backup of each existing destination file
-b like --backup but does not accept an argument
-d, -F, --directory
allow the superuser to attempt to hard link directories (note: will probably fail due to system restric-
tions, even for the superuser)
-f, --force
remove existing destination files
-n, --no-dereference
treat destination that is a symlink to a directory as if it were a normal file
-i, --interactive
prompt whether to remove destinations
[oracle@db925 script]$
[oracle@db925 script]$ man ln
LN(1) User Commands LN(1)
NAME
ln - make links between files
SYNOPSIS
ln [OPTION]... [-T] TARGET LINK_NAME (1st form)
ln [OPTION]... TARGET (2nd form)
ln [OPTION]... TARGET... DIRECTORY (3rd form)
ln [OPTION]... -t DIRECTORY TARGET... (4th form)
DESCRIPTION
In the 1st form, create a link to TARGET with the name LINK_NAME. In the 2nd form, create a link to TARGET in
the current directory. In the 3rd and 4th forms, create links to each TARGET in DIRECTORY. Create hard links
by default, symbolic links with --symbolic. When creating hard links, each TARGET must exist.
Mandatory arguments to long options are mandatory for short options too.
--backup[=CONTROL]
make a backup of each existing destination file
-b like --backup but does not accept an argument
-d, -F, --directory
allow the superuser to attempt to hard link directories (note: will probably fail due to system restric-
tions, even for the superuser)
-f, --force
remove existing destination files
-n, --no-dereference
treat destination that is a symlink to a directory as if it were a normal file
-i, --interactive
prompt whether to remove destinations
-s, --symbolic
make symbolic links instead of hard links
-S, --suffix=SUFFIX
override the usual backup suffix
-t, --target-directory=DIRECTORY
specify the DIRECTORY in which to create the links
-T, --no-target-directory
treat LINK_NAME as a normal file
-v, --verbose
print name of each file before linking
--help display this help and exit
--version
output version information and exit
The backup suffix is ‘~’, unless set with --suffix or SIMPLE_BACKUP_SUFFIX. The version control method may be
selected via the --backup option or through the VERSION_CONTROL environment variable. Here are the values:
none, off
never make backups (even if --backup is given)
numbered, t
make numbered backups
existing, nil
numbered if numbered backups exist, simple otherwise
simple, never
always make simple backups
我们看一个测试例子:
[oracle@db925 ~]$ ln -s /home/oracle/source /home/oracle/target/u01
[oracle@db925 ~]$ cd /home/oracle/source
[oracle@db925 source]$ ls
source.txt
[oracle@db925 source]$ cd /home/oracle/target/
[oracle@db925 target]$ ls
target.txt u01
[oracle@db925 target]$ ls -ltr
total 0
-rw-r--r-- 1 oracle oinstall 0 Dec 5 15:01 target.txt
lrwxrwxrwx 1 oracle oinstall 19 Dec 5 15:02 u01 -> /home/oracle/source
[oracle@db925 target]$ cd u01
[oracle@db925 u01]$ ls
source.txt
其中source 为实际存在的,而u01为虚假的目录:
删除软连接:
[oracle@db925 u01]$ rm -rf /home/oracle/target/u01 ---跟删除普通目录一样