情况是这样的。我在客户端系统上安装了RHEL 5.5,并在/u001/app/oracle创建了LVM挂载点,现在他已经在/u001/app/oracle上安装了DB。他被要求我将现有LVM /u001/app/oracle 的挂载点更改为/u001/。
并将目录 /app/oracle 保留在 /u001/ 中。
问题是,如果我将 LVM 的挂载点从 /u001/app/oracle/ 更改为 /u001/ ,它将删除目录 /app/oracle 并且数据库将无法识别新的 URL。
现在这就是我需要的
将 /u001/app/oracle 的挂载点更改为 /u001/ 并保留 /app/oracle/ 目录(更改挂载点后不应删除这两个目录,因为它们是 URL 数据库正在使用的部分)
目录结构
FileSystem Size Used Mounted on
/dev/sda1 100G 21G /
/dev/mapper/VolGroup00-LogVol00 450G 83G /u001/app/oracle
/dev/sda2 487M 13M /boot
答案1
如果您有这样的挂载层次结构:
/dev/hd1 /
/dev/hd2 /a/b/c
并想将其更改为
/dev/hd1
/dev/hd2 /a
/a
同时保留应用程序所看到的目录结构,以及假设/a
和/a/b
否则为空,变换很简单:
- 停止数据库(以及依赖于它的所有内容)
- 确保您拥有所有内容的有效(可恢复)备份
- 记下目录的权限
/a
,/a/b
并且/a/b/c
- 卸载
/a/b/c
- 更新您的
fstab
(或您的操作系统使用的任何内容)以反映新的布局 - 山
/a
然后:
mkdir -p /a/b/c
- 将这些目录的权限恢复为以前的状态
- 将所有内容移入
/a
(/a/b/c
显然b
你刚刚创建的除外)。
示例/模拟:
$ ls /u001/app/oracle
admin/
diag/
product/
...
# umount /u001/app/oracle
# <edit fstab>
# mount /u001
$ ls /u001
admin/
diag/
product/
...
此时,您的 Oracle 文件已“重新植根”于/u001
.您只需将它们移至正确的层次结构即可
# mkdir -p /u001/app/oracle
# check & adapt the permissions on those directories, making sure they
# are identical to what you had
$ mv /u001/* /u001/app/oracle
<warning about not moving app to a subdirectory of itself - ok>
# Don't forget the .dotfiles
$ mv /u001/.??* /u001/app/oracle