others linux服务器运维 django3 监控 k8s golang 数据库 大数据 前端 devops 理论基础 java oracle 运维日志

Oracle12c 系统故障迁移

访问量:1661 创建时间:2021-12-30

假设192.168.0.57机器安装的oracle数据库,此机器由于系统库文件损坏导致系统无法启动,但是oracle的目录文件是完整的,将oracle目录迁移到其他机器,再改机器IP会192.168.0.57恢复数据库访问(现实遇到此情况,略做记录)。

拷贝文件到另一台机器(这里模拟,实际遇到的情况是oracle在物理存储设备的磁盘上,磁盘挂载在虚拟机上,将磁盘挂载到其他机器)

scp -r /u01/app  oracle@192.168.0.58:/u01/

在192.168.0.58配置环境变量(根据需要配置在系统级别或者用户级别的环境变量中,这里配置在系统级别)

[root@oracle58 ~]# vim /etc/profile
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_HOSTNAME=oracle57  #主机名
export ORACLE_UNQNAME=orcl_p
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/12.2.0.1/db_1
export ORACLE_SID=orcl
export PATH=/usr/sbin:$PATH:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

在0.58机器配置监听,主要修改监听的HOST=指向的ip或者主机名称,

[oracle@oracle58 ~]$ cd /u01/app/oracle/product/12.2.0.1/db_1/network/admin/
[oracle@oracle58 admin]$ vim listener.ora 
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = orcl)
      (SID_NAME = orcl)
      (ORACLE_HOME = /u01/app/oracle/product/12.2.0.1/db_1)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
       (ADDRESS = (PROTOCOL = TCP)(HOST = oracle58 )(PORT = 1521))
    )
  )

ADR_BASE_LISTENER = /u01/app/oracle

根据需要修改tns文件,这里没改

[oracle@oracle58 admin]$ vim tnsnames.ora

启动监听

[oracle@oracle58 admin]$ lsnrctl start
[oracle@oracle58 admin]$ lsnrctl status

启动数据库

[oracle@oracle58 admin]$ sqlplus / as sysdba
SQL> startup

到这里数据库可以访问了。但是实际上还有几个文件遗漏了,下面三个文件同样从老机器拷贝到对应的目录

[root@oracle57 ~]# ls /etc/oratab 
[root@oracle57 ~]# ls /usr/local/bin/
coraenv  dbhome  oraenv
登陆评论: 使用GITHUB登陆