我写了一个肮脏而快速的解决方案在我的例子中,olddir 是 /oracle,而 new /var/oracle on aix 71 oracle 正在工作,用户创建等。
#for safe shutdown oracle,is not necessary,but better
#mkdir
mkdir -p /var/oracle/app/oracle/product/12.2.0/dbhome_1;chown -R oracle:oradba /var/oracle
#clone with tar
tar -zcvf /var/oracle/Oracle_Home11g_clone.tar.gz . -X ~/exclude.txt
or better use rsync
rsync -avP --delete $HOMEOLD/ $HOMENEW
#edit /etc/ora* and set new home
#clone with runinstaller
/oracle/app/oracle/product/12.2.0/dbhome_1/oui/bin/runInstaller -clone -silent -defaultHomeName ORACLE_HOME=/var/oracle/app/oracle/product/12.2.0/dbhome_1 ORACLE_BASE=/var/oracle/app -waitForCompletion
# script from root
su root -
/var/oracle/app/oracle/product/12.2.0/dbhome_1/root.sh
#rsync remaining dir
rsync -avP --exclude app /oracle/* .
#edit all variables on oracle homedir(.profile,.bashrc,etc)
#edit /etc/filesystems or fstab
#edit orafiles
find . -iname *.ora|xargs grep -lw "/oracle"
vim file.ora..
#test running db with olddir unmounted
找到解决方案,点击此链接
我写了一个肮脏而快速的解决方案在我的例子中,olddir 是 /oracle,而 new /var/oracle on aix 71 oracle 正在工作,用户创建等。
以下是主要步骤和相应手册的链接:
如果您想更改 ORACLE_HOME,这意味着您要更改 Oracle 软件的安装位置。这在您的 Oracle tralease 和您的操作系统的数据库安装指南中进行了描述。您可以在新的 ORACLE_HOME 中安装Oracle 软件,或者将 其克隆到新的 ORACLE_HOME。
然后你必须将配置文件移动到新位置并适当修改它们,例如 init*.ora、spfile*.ora、sqlnet.ora、tnsnames.ora、listener.ora)
如果您还想将数据库移动到同一服务器的新位置,您可以在数据库管理员指南中查找如何重新定位数据文件、临时文件、控制文件等。
停止数据库,将数据库文件复制到新位置并使用新文件名重新创建控制文件 如果您也移动控制文件,则必须更改 init.ora/spfile.ora 中的路径。还有一些其他路径可能会改变并且必须进行调整