手上有个项目可能需要停机维护,并且很有可能主机故障无法启动,防止万一需要做个临时备份,由于数据量巨大,TB级别的无法使用常规方式备份,因此考虑存储拷贝的方式,验证了下使用tar方式部署的方案。
虽然冷备份使用场景非常有限而且貌似被不少人不齿没有技术含量,但是在没有开启归档而且数据巨大的情况,使用常规迁移的方式是无法忍受的,在用存储和千兆带宽的情况下,直接拷贝不失为一种选择。
环境为Linux 5 + Oracle 10201
0. 停应用和数据库
emctl stop dbconsole
shutdown immediate;
lsnrctl stop listener
1. 打包
tar -zcpf u01.tar.gz u01 #/u01为oracle安装目录
2. 传输
scp u01.tar.gz root@192.168.56.102:u01.tar.gz
3. 解压
tar -zxf u01.tar.gz -C /
4. 权限
打包包含了权限,也可以手工修改权限
chown -R oracle:oinstall /u01
5. 执行脚本
/u01/oracle/oraInventory/orainstRoot.sh
/u01/oracle/product/10.2.0/db_1/root.sh
6. oracle用户环境变量
scp .bash_profile oracle@192.168.56.102:.bash_profile
source .bash_profile
7. 配置oratab
默认情况下在执行上述脚本后自动会创建,如果没有手工添加即可。
cat /etc/oratab
GT10G:/u01/oracle/product/10.2.0/db_1:N
8. 修改监听地址和tns地址
如果使用了主机名称记得要修改这两者的地址为本机。
vi $ORACLE_HOME/network/admin/listener.ora
vi $ORACLE_HOME/network/admin/tnsnames.ora
9. 启动实例打开数据库
startup
SQL> select * from v$version;
BANNER
—————————————————————-
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 – 64bi
PL/SQL Release 10.2.0.1.0 – Production
CORE 10.2.0.1.0 Production
TNS for Linux: Version 10.2.0.1.0 – Production
NLSRTL Version 10.2.0.1.0 – Production
———————————————————————————————————————————————————————————————-
安装oracle软件的时候,如果操作系统一样,可以直接把软件tar过来。
需要注意的是,要确保系统的小版本都一样才能tar。
可以直接tar /oracle 目录,这样环境变量就不用设了,需要的话改个sid就OK。
解压完之后,记得要在oracle用户下执行 relink all。
然后执行:sh $ORACLE_HOME/install/changePerm.sh
再切换到root用户下,执行$ORACLE_HOME 下的 root.sh
如果以后还要升级,则还需要设置个东西:
nbzwdb#[/var/opt/oracle]more /var/opt/oracle/oraInst.loc
inventory_loc=/oracle/oraInventory
inst_group=dba
记得是root用户,注意权限:
nbzwdb#[/var/opt/oracle]ll ora*
-rwxrwxr-x 1 root sys 50 Sep 17 22:51 oraInst.loc
这样就OK了。