tar部署 Oracle

手上有个项目可能需要停机维护,并且很有可能主机故障无法启动,防止万一需要做个临时备份,由于数据量巨大,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了。

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

tar方式安装oracle11g

在veritas做的数据库双机集群中,两个服务器的配置和安装的软硬件环境都是一样的,在装好一个oracle后,可以使用tar方式在另外一个服务器上快速安装oracle11g,装完后做适当调整,就可以正常使用了。
首先检查软件包
binutils-2.17.50.0.6-2.el5
compat-libstdc++-33-3.2.3-61
elfutils-libelf-0.125-3.el5
elfutils-libelf-devel-0.125
gcc-4.1.1-52
gcc-c++-4.1.1-52
glibc-2.5-12
glibc-common-2.5-12
glibc-devel-2.5-12
glibc-headers-2.5-12
libaio-0.3.106
libaio-devel-0.3.106
libgcc-4.1.1-52
libstdc++-4.1.1
libstdc++-devel-4.1.1-52.e15
make-3.81-1.1
sysstat-7.0.0
unixODBC-2.2.11
unixODBC-devel-2.2.11
然后下列步骤:

1、在另一个服务器上添加用户和组
useradd oracle
passwd oracle
groupadd oinstall
groupadd dba
groupuser –g oinstall –G dba oracle –m

2、在新服务器上添加相关目录
mkdir -p /opt/oracle/product/10.2/db_1
3、设置核心参数
vi /etc/sysctl.conf,添加
kernel.shmall = 2097152
kernel.shmmax = 8589934592
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 262144
net.core.rmem_max = 262144
net.core.wmem_default = 262144
net.core.wmem_max = 262144
使设置生效:
sysctl -p
4、修改oracle用户的环境变量
su - oracle
vi .bash_profile 添加:
export ORACLE_SID=orcl
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=/opt/oracle/product/10.2
export PATH=$ORACLE_HOME/bin:$PATH
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
5、在原服务器打包程序
把$ORACLE_HOME下的东西打包压缩:
cd $ORACLE_BASE/product
tar  -cvf  oracle.tar  10.2
6、传送到新服务器并解压
sftp或通过scp .....
cd $ORACLE_BASE/product
tar -xvf oracle.tar
7、修改解压后的文件属主
[root@yans2 oracle]# chown -R oracle:oinstall /opt
chown: changing ownership of `/opt/oracle/product/10.2/rdbms/filemap': No such file or directory
这里出现一个错误,提示文件不存在,经检查这是一个软链接:
[root@yans2 oracle]# ls -l /opt/oracle/product/10.2/rdbms/filemap
lrwxrwxrwx 1 root root 22 Jan 10 17:22 /opt/oracle/product/10.2/rdbms/filemap -> /opt/ORCLfmap/prot1_64
经检查,当前的系统确实不存在/opt/ORCLfmap目录,实际上/opt/ORCLfmap是有root.sh生成的,先删除这个软链接:
rm -f /opt/oracle/product/10.2/rdbms/filemap
重新执行root.sh:
[root@yans2 opt]# /opt/oracle/product/10.2/root.sh
Running Oracle10 root.sh script...
The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /opt/oracle/product/10.2
Enter the full pathname of the local bin directory: [/usr/local/bin]:
Copying dbhome to /usr/local/bin ...
Copying oraenv to /usr/local/bin ...
Copying coraenv to /usr/local/bin ...

Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.
此时软连接和目录都已经存在:
[root@yans2 opt]# ls /opt/oracle/product/10.2/rdbms/filemap
bin etc log
[root@yans2 opt]# ls -l /opt/oracle/product/10.2/rdbms/filemap
lrwxrwxrwx 1 root root 22 Jan 10 17:40 /opt/oracle/product/10.2/rdbms/filemap -> /opt/ORCLfmap/prot1_64
 
8、创建数据库
运行dbca,一步一步设置好就可以。
9、创建监听,运行netca
10、清理原网络相关文件、原应用文件等。
11、使用sqlplus /nolog
                 conn  /  as sysdba
                 startup
来启动数据库。

出处http://xjsunjie.blog.51cto.com/999372/538846

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

今天在linux as4上用tar方式安装oracle 10g,下面简单那记录步骤及安装过程中出现的问题。

数据库所在服务器信息:
 [oracle@haoc2008 data]$ more /etc/issue
 Red Hat Enterprise Linux ES release 4 (Nahant)
 Kernel \r on an \m
 
 [oracle@haoc2008 data]$ uname -a
 Linux haoc2008 2.6.9-5.ELsmp #1 SMP Wed Jan 5 19:29:47 EST 2005 x86_64 x86_64 x86_64 GNU/Linux


新数据库所在服务器信息:
 [root@yans2 soft]# more /etc/issue
 Enterprise Linux Enterprise Linux AS release 4 (October Update 4)
 Kernel \r on an \m
 
 [root@yans2 soft]# uname -a
 Linux yans2 2.6.9-42.0.0.0.1.ELsmp #1 SMP Sun Oct 15 15:13:57 PDT 2006 x86_64 x86_64 x86_64 GNU/Linux

两个操作系统有所区别,但是问题不大。


1、在新服务器上添加用户
 groupadd oinstall
 useradd -g oinstall oracle


2、在新服务器上添加相关目录
 mkdir -p /data/oracle/product

3、设置核心参数
 vi /etc/sysctl.conf,添加
 
 kernel.shmall = 2097152
 kernel.shmmax = 8589934592
 kernel.shmmni = 4096
 kernel.sem = 250 32000 100 128
 fs.file-max = 65536
 net.ipv4.ip_local_port_range = 1024 65000
 net.core.rmem_default = 262144
 net.core.rmem_max = 262144
 net.core.wmem_default = 262144
 net.core.wmem_max = 262144
 
 使设置生效:
 sysctl -p

4、修改oracle用户的环境变量
 su - oracle
 vi  .bash_profile 添加:
 export ORACLE_SID=newdemo
 export ORACLE_BASE=/data/oracle
 export ORACLE_HOME=/data/oracle/product/10.2
 export PATH=$ORACLE_HOME/bin:$PATH
 export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"

5、在原服务器打包程序
把$ORACLE_HOME下的东西打包压缩:
 cd $ORACLE_BASE/product
 tar cfz oracle10203.tar 10.2

6、传送到新服务器并解压
 sftp .....
 
 cd $ORACLE_BASE/product
 tar -xzfv oracle10203

7、修改解压后的文件属主

[root@yans2 oracle]# chown -R oracle:oinstall /data/
chown: changing ownership of `/data/oracle/product/10.2/rdbms/filemap': No such file or directory

这里出现一个错误,提示文件不存在,经检查这是一个软链接:
[root@yans2 oracle]# ls -l /data/oracle/product/10.2/rdbms/filemap
lrwxrwxrwx  1 root root 22 Jan 10 17:22 /data/oracle/product/10.2/rdbms/filemap -> /opt/ORCLfmap/prot1_64

经检查,当前的系统确实不存在/opt/ORCLfmap目录,实际上/opt/ORCLfmap是有root.sh生成的,先删除这个软链接:
rm -f /data/oracle/product/10.2/rdbms/filemap

重新执行root.sh:
[root@yans2 opt]# /data/oracle/product/10.2/root.sh
 Running Oracle10 root.sh script...
 
 The following environment variables are set as:
     ORACLE_OWNER= oracle
     ORACLE_HOME=  /data/oracle/product/10.2
 
 Enter the full pathname of the local bin directory: [/usr/local/bin]:
    Copying dbhome to /usr/local/bin ...
    Copying oraenv to /usr/local/bin ...
    Copying coraenv to /usr/local/bin ...
 
 
 Creating /etc/oratab file...
 Entries will be added to the /etc/oratab file as needed by
 Database Configuration Assistant when a database is created
 Finished running generic part of root.sh script.
 Now product-specific root actions will be performed.

此时软连接和目录都已经存在:
 [root@yans2 opt]# ls /data/oracle/product/10.2/rdbms/filemap
 bin  etc  log
 [root@yans2 opt]# ls -l /data/oracle/product/10.2/rdbms/filemap
 lrwxrwxrwx  1 root root 22 Jan 10 17:40 /data/oracle/product/10.2/rdbms/filemap -> /opt/ORCLfmap/prot1_64

 


8、创建数据库
   运行dbca,一步一步设置好就可以。

9、清理原网络相关文件、原密码文件等。


过程中遇到的问题:
1、chown: changing ownership of `/data/oracle/product/10.2/rdbms/filemap': No such file or directory
这个问题在上文已有描述,这里不再赘述。

2、Exception in thread "main" java.lang.UnsatisfiedLinkError: /data/oracle/product/10.2/jdk/jre/lib/i386/libawt.so: libXp.so.6: cannot open shared object file: No such file or directory
 
执行dbca时报错:
 [oracle@yans2 ~]$ dbca
 Exception in thread "main"

[oracle@yans2 ~]$
这里报错信息非常少,无法判断是什么原因,再执行netca就可以看得更多的错误信息了:

[oracle@yans2 bin]$ netca
Exception in thread "main" java.lang.UnsatisfiedLinkError: /data/oracle/product/10.2/jdk/jre/lib/i386/libawt.so: libXp.so.6: cannot open shared object file: No such file or directory
        at java.lang.ClassLoader$NativeLibrary.load(Native Method)
        at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1586)
        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1503)
        at java.lang.Runtime.loadLibrary0(Runtime.java:788)
        at java.lang.System.loadLibrary(System.java:834)
        at sun.security.action.LoadLibraryAction.run(LoadLibraryAction.java:50)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.awt.NativeLibLoader.loadLibraries(NativeLibLoader.java:38)
        at sun.awt.DebugHelper.<clinit>(DebugHelper.java:29)
        at java.awt.Component.<clinit>(Component.java:506)  

这个问题主要是缺少一个包xorg-x11-deprecated-libs导致的,把包安装上就可以:
[root@yans2 soft]# rpm -ivh xorg-x11-deprecated-libs-6.8.2-1.EL.13.37.i386.rpm
 warning: xorg-x11-deprecated-libs-6.8.2-1.EL.13.37.i386.rpm: V3 DSA signature: NOKEY, key ID b38a8516
 Preparing...                ########################################### [100%]
    1:xorg-x11-deprecated-lib########################################### [100%]
   
   注意:虽然系统是64位的,但是这里要安装32位的包。

3、ORA-12547: TNS: 丢失连接
在创建数据库前,简单测试一下sqlplus是否正常,发现了这个问题:
 [oracle@yans2 ~]$ sqlplus "/as sysdba"
 
 SQL*Plus: Release 10.2.0.3.0 - Production on 星期四 1月 10 17:51:35 2008
 
 Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.
 
 oraclenewdemo: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
 ERROR:
 ORA-12547: TNS: 丢失连接


请输入用户名: 

引起问题的原因是libaio系统包,把相关包安装即可:

 [root@yans2 soft]# ls
 libaio-0.3.105-2.i386.rpm  libaio-0.3.105-2.x86_64.rpm  libaio-devel-0.3.105-2.x86_64.rpm
 [root@yans2 soft]# rpm -ivh *
 warning: libaio-0.3.105-2.i386.rpm: V3 DSA signature: NOKEY, key ID b38a8516
 Preparing...                ########################################### [100%]
    1:libaio                 ########################################### [ 33%]
    2:libaio                 ########################################### [ 67%]
    3:libaio-devel           ########################################### [100%]
  
 同样,这里也需要安装两个32位的包。 

4、ORA-01031: insufficient privileges
[oracle@yans2 ~]$ sqlplus "/as sysdba"

SQL*Plus: Release 10.2.0.3.0 - Production on 星期五 1月 11 10:48:35 2008

Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.

ERROR:
ORA-01031: insufficient privileges


请输入用户名: 

这个问题是因为用户组不一致造成的。

原库:
[oracle@haoc2008 oraInventory]$ id -a
uid=500(oracle) gid=500(oinstall) groups=500(oinstall),501(dba) context=user_u:system_r:unconfined_t

新库:
[oracle@yans2 oraInventory]$ id -a
uid=500(oracle) gid=500(oinstall) groups=500(oinstall) context=user_u:system_r:unconfined_t

在新库上为oracle用户添加组就可以了:
[root@yans2 ~]# usermod -G dba oracle


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值