专栏首页bisal的个人杂货铺克隆数据库,速度至上

克隆数据库,速度至上

Linux 7安装Oracle 11g打怪经历》完成了数据库软件的初始安装,如果要同步复制到多套相同的环境,选择克隆数据库,是个好的选择。

原始数据库

首先,将数据库软件的$ORACLE_HOME路径进行打包,但是要注意,如果使用root打包,会提示错误,

[root@bisal]$ tar zcvf 11g.tar 11.2.0.4
tar: Exiting with failure status due to previous errors

这是因为$ORACLE_HOME/bin/nmb中存在root属主文件,

-rws--x--- 1 root   dba 33832 Feb 25 00:02 nmb

改为root打包即可,

[root@bisal]$ 11g.tar

目标数据库

创建用户、用户组,并配置环境变量,

groupadd -g 101 dba
groupadd -g 102 oinstall
useradd -m -u 1001 -g oinstall -G dba -d /home/oracle -s /bin/bash -c "Oracle 11g Software Owner" oracle

还需要创建一些文件夹,并授予权限,

mkdir -p /opt/app/oracle
mkdir -p /u01/app/oracle/product/11.2.0.4
ln -s /opt/app/oracle /u01/app/oracle
chown -R oracle:dba /u01
chown -R oracle:dba /opt/app/oracle

需要一些Package,写了个小脚本,可以直接执行,检查当前系统是否存在这些Package,不存在的yum -y自动进行安装,无需交互,方便快捷,

https://github.com/bisal-liu/oracle/blob/master/install_package_for_oracle11g.sh

配置/etc/sysctl.conf系统参数,

echo "fs.aio-max-nr = 1048576"  >> /etc/sysctl.conf
echo "fs.file-max = 6815744"    >> /etc/sysctl.conf
echo "kernel.shmmni = 4096"     >> /etc/sysctl.conf
echo "kernel.sem = 250 32000 100 128"   >> /etc/sysctl.conf
echo "net.ipv4.ip_local_port_range = 9000 65500"        >> /etc/sysctl.conf
echo "net.core.rmem_default = 262144"   >> /etc/sysctl.conf
echo "net.core.rmem_max = 4194304"      >> /etc/sysctl.conf
echo "net.core.wmem_default = 262144"   >> /etc/sysctl.conf
echo "net.core.wmem_max = 1048576"      >> /etc/sysctl.conf
sysctl -p

配置/etc/security/limits.conf系统参数,

echo "oracle    soft    nproc           2047"   >> /etc/security/limits.conf
echo "oracle    hard    nproc           16384"  >> /etc/security/limits.conf
echo "oracle    soft    nofile          65536"  >> /etc/security/limits.conf
echo "oracle    hard    nofile          65536"  >> /etc/security/limits.conf

将原始数据库11g.tar,FTP至目标数据库$ORACLE_HOME上级路径进行解压缩,

[oracle@bisal]$ echo $ORACLE_HOM
/u01/app/oracle/product/11.2.0.4
[oracle@bisal]$ pwd
/u01/app/oracle/product
[oracle@bisal]$ tar xvf 11g.tar

进入$ORACLE_HOME/clone/bin路径,执行clone.pl,开始克隆数据库,注意加上-jreLoc指定Oracle JDK的jre,

[oracle@bisal]$ perl clone.pl ORACLE_BASE=$ORACLE_BASE ORACLE_HOME=$ORACLE_HOME 
ORACLE_HOME_NAME=OraDb11g_home1 -jreLoc /usr/java/jdk1.7.0_79/jre


./runInstaller
 -clone -waitForCompletion  "ORACLE_BASE=/u01/app/oracle" 
"ORACLE_HOME=/u01/app/oracle/product/11.2.0.4" 
"ORACLE_HOME_NAME=OraDb11g_home1" -jreLoc  /usr/java/jdk1.7.0_79/jre  
-silent -noConfig -nowait
Starting Oracle Universal Installer...


Checking swap space: must be greater than 500 MB.   Actual 4095 MB    Passed
Preparing
 to launch Oracle Universal Installer from 
/tmp/OraInstall2020-03-17_12-57-16PM. Please wait ...Oracle Universal 
Installer, Version 11.2.0.4.0 Production
Copyright (C) 1999, 2013, Oracle. All rights reserved.


You can find the log of this install session at:
 /u01/app/oraInventory/logs/cloneActions2020-03-17_12-57-16PM.log
.................................................................................................... 100% Done.




Installation in progress (Tuesday, March 17, 2020 12:57:22 PM CST)
..............................................................................                                                 
 78% Done.
Install successful


Linking in progress (Tuesday, March 17, 2020 12:57:24 PM CST)
Link successful


Setup in progress (Tuesday, March 17, 2020 12:57:46 PM CST)
Setup successful


End of install phases.(Tuesday, March 17, 2020 12:58:07 PM CST)
WARNING:A
 new inventory has been created in this session. However, it has not yet
 been registered as the central inventory of this system.
To register the new inventory please run the script '/u01/app/oraInventory/orainstRoot.sh' with root privileges.
If you do not register the inventory, you may not be able to update or patch the products you installed.
The following configuration scripts need to be executed as the "root" user.
/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/11.2.0.4/root.sh
To execute the configuration scripts:
    1. Open a terminal window
    2. Log in as "root"
    3. Run the scripts
    
The cloning of OraDb11g_home1 was successful.
Please check '/u01/app/oraInventory/logs/cloneActions2020-03-17_12-57-16PM.log' for more details.

P.S. Oracle JDK和OpenJDK的区别和联系,可以参考《OpenJDK和Oracle JDK有什么区别和联系?》)

按照提示,使用root,执行这两个脚本,完成克隆数据库的操作,

/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/11.2.0.4/root.sh

概括一下,克隆数据库,需要如下操作,

1.打包原始数据库$ORACLE_HOME文件夹,生成11g.tar。

2.目标数据库中做好准备工作,包括账号、文件夹、系统参数、环境变量等。

3.11g.tar通过FTP目标数据库$ORACLE_HOME上级路径,解压缩11g.tar。

4.执行$ORACLE_HOME/clone/bin/clone.pl。

5.root执行收尾脚本。

当原始和目标数据库服务器环境几乎相同的场景,非常适合使用克隆数据库的方式安装数据库软件,在目标数据库上,消耗的只是一些系统文件链接的时间,安装速度提升,而且如上的操作,其实都可以通过脚本实现自动化,一键克隆安装,不是不可能。

作为技术人员,实现功能的同时,我们应该多考虑下如何通过技术降低工作的难度,降低人的消耗,才可能让我们的工作,更有价值。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Linux下设置Oracle自启动

    测试机总是断电,导致重启后Oracle不自动重启,需要手工操作,因此可以设置成自启动模式。

    bisal
  • [Oracle]-[安装]-Cent OS安装Oracle Client

    http://www.oracle.com/technology/tech/oci/instantclient/index.html下载:

    bisal
  • 一个低级的ORA-01017错误

    事件缘由: 使用sys账户创建了一个数据清理的存储过程,再创建一个Oracle job定时运行这个存储过程,用于做表数据的清理。第二天看表数据未删除,说明j...

    bisal
  • 你的名字,互联网黑产瞄准的秘密…

    作者介绍:chloe,在鹅厂从事互联网安全工作,投身挖掘互联网黑色产业,探寻网络安全世界的风云变幻。 曾经听安全圈的前辈说过这么一句话:数据泄漏,是每一个互联网...

    腾讯技术工程官方号
  • 数据科学家所需的技能和素质

    对数据科学家的关注,源于大家逐步认识到,Google、Amazon、Facebook等公司成功的背后,存在着这样的一批专业人才。这些互联网 公司对于大量数据不是...

    小莹莹
  • 剖析大数据平台的数据采集

    数据采集的设计,几乎完全取决于数据源的特性,毕竟数据源是整个大数据平台蓄水的上游,数据采集不过是获取水源的管道罢了。 在数据仓库的语境下,ETL基本上就是数据采...

    张逸
  • 创业公司的数据课讲点啥?

    本文由CDA作者库成员王安原创,并授权发布,原文来自公众号数据化决策。 CDA作者库凝聚原创力量,只做更有价值的分享。 创业公司数据培训课程会面向哪些人,有哪些...

    CDA数据分析师
  • “大数据”模式的法律风险

    大数据文摘
  • 如何管理linux开机自启服务?

    自启动服务非常重要,例如 (1)需要手动添加希望自启的服务,如安装svn后没有自动添加,就需要我们手动加入 (2)安装某些程序后,自动加到自启动了,但我们...

    dys
  • (centos7)安装elasticsearch6.4.2

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

    suveng

扫码关注云+社区

领取腾讯云代金券