• 【通过ssh oracle11g安装】centos6静默安装oracle11g


    转载链接:https://blog.csdn.net/u011391839/article/details/76566316

    根据实际情况略作调整~

    博主参考了以上链接成功进行安装,列一下自己遇到的坑~以及稍作总结

    1、系统版本:阿里云centos6.8 64位

    2、jdk安装:博主安装的1.6版本

    3、依赖库安装(第二个比较精确):

    yum install -y binutils* compat-libstdc* elfutils-libelf* gcc* glibc* ksh* libaio* libgcc* libstdc* make* sysstat* libXp*  glibc-kernheaders
    yum -y install binutils compat-libstdc++-33 compat-libstdc++-33.i686elfutils-libelf elfutils-libelf-devel gcc gcc-c++  glibc glibc.i686 glibc-common glibc-devel glibc-devel.i686glibc-headers ksh libaio libaio.i686 libaio-devel libaio-devel.i686  libgcc libgcc.i686 libstdc++ libstdc++.i686libstdc++-devel make sysstat unixODBC unixODBC-devel

    4、oracle官网下载安装包(64位版本):

    linux.x64_11gR2_database_1of2.zip、linux.x64_11gR2_database_2of2.zip

    5解压

    cd /home    

    unzip linux.x64_11gR2_database_1of2.zip    

    unzip linux.x64_11gR2_database_2of2.zip 

    待解压完毕后会生成文件夹/home/database

    6、在/etc/hosts文件中增加主机名

    (通过hostname命令获得)

    vi /etc/hosts在文件尾部添加如下信息:

    172.16.1.26   hostname

    7、关闭防火墙

    service iptables stop   //临时关闭防火墙

    chkconfig iptables off  //永久关闭防火墙

    8、添加oracle用户和用户组

    groupadd oinstall              //创建oinstall组

    groupadd dba                //创建dba组

    useradd -g oinstall -G dba oracle  //将oracle用户加入组 

    passwd oracle                  //修改并设定oracle用户密码  (密码为123456)

    9、修改内核参数配置文件 

    1)        vi /etc/sysctl.conf  配置文件内加入修改以下参数,如果没有可以自己添加,如果默认值比参考值大,则不需要修改。   

    fs.file-max= 6815744

    fs.aio-max-nr=1048576

    net.ipv4.ip_local_port_range= 9000 65500

    net.core.rmem_default= 262144

    net.core.rmem_max= 4194304

    net.core.wmem_default= 262144

    net.core.wmem_max= 1048576

    kernel.sem= 250 32000 100 128

    2)        执行命令sysctl使其自检并生效    sysctl -p

    10、  修改用户的限制文件

    1)       修改进程数和最大会话数

    执行如下命令,修改配置文件/etc/security/limits.conf

    vi /etc/security/limits.conf在文件尾部添加如下信息:

    oracle soft nproc 2047

    oracle hard nproc 16384

    oracle soft nofile 1024

    oracle hard nofile 65536

    2)       设置关联信息

    执行如下命令,修改关联文件/etc/pam.d/login

    vi /etc/pam.d/login

    在文件尾部添加如下信息:

    session  required  /lib64/security/pam_limits.so 

    session required pam_limits.so

    备注:64位系统时,千万别写成/lib/security/pam_limits.so,否则导致无法登录

    3)       修改系统启动环境参数

    执行如下命令,修改系统启动环境参数文件/etc/ profile

    vi /etc/profile在文件尾部添加如下信息:

    if [ $USER = "oracle" ]; then

     if [$SHELL = "/bin/ksh" ]; then

     ulimit -p 16384

     ulimit -n 65536

     else

     ulimit -u 16384 -n 65536

     fi

    fi

    11  创建安装目录和设置文件权限

    1)        创建安装目录      

    mkdir  /usr/local/oracle          //数据库系统安装目录

    mkdir  /usr/local/oradata        //数据库数据安装目录

    mkdir  /usr/local/oradata_back    //数据备份目录

    mkdir  /usr/local/oraInventory     //清单目录  

    2)        赋予组用户及权限 

    chown -R oracle:oinstall  /usr/local/oracle  /usr/local/oraInventory /usr/local/oradata/   

    chmod -R 775 /usr/local/oracle  /usr/local/oraInventory  /usr/local/oradata/

    12、配置oracle用户环境变量

     vi /home/oracle/.bash_profile   文件内加入并修改至以下内容    

    export ORACLE_BASE=/usr/local/oracle

    export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1

    export ORACLE_SID=orcl

    export PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin

    保存退出后执行source命令立即生效:source .bash_profile

    13、编辑静默安装响应文件

    首先进入oracle用户:su - oracle

    1)  复制一份模板 

    cp -R /home/database/response /usr/local/oracle  

    该文件默认存放在解压后的安装包内,也就是本例中/home/database/response下,将oracle静默安装所需应答文件全部拷贝至 /usr/local/oracle文件夹下   

    2)  修改安装所需的所有响应文件的所属组及权限   

    cd  /usr/local/oracle/response

    chown  oracle:oinstall/usr/local/oracle/response/*.rsp    

    chmod 755 /usr/local/oracle/response/*.rsp  

    3)  配置db_install.rsp文件     

    vi /usr/local/oracle/response/db_install.rsp 

    文件内需要修改相应的参数配置如下:    

    oracle.install.option=INSTALL_DB_SWONLY                #安装类型,只装数据库软件   

    ORACLE_HOSTNAME=hostname                        #主机名称(命令hostname查询)    

    UNIX_GROUP_NAME=oinstall                                      # 安装组   

    INVENTORY_LOCATION=/usr/local/oraInventory   #INVENTORY目录(**不填就是默认值,本例此处需修改,因个人创建安装目录而定)   

    SELECTED_LANGUAGES=en,zh_CN                              # 选择语言   

    ORACLE_HOME=/usr/local/oracle/product/11.2.0/db_1    # oracle_home *路径根据目录情况注意修改 本例安装路径/usr/local/oracle  

    ORACLE_BASE=/usr/local/oracle                                    # oracle_base *注意修改  

    oracle.install.db.InstallEdition=EE                 # oracle版本   

    oracle.install.db.isCustomInstall=false                        #自定义安装,否,使用默认组件  

    oracle.install.db.DBA_GROUP=dba                   #dba用户组   

    oracle.install.db.OPER_GROUP=dba    #oper用户组(不明白)   oracle.install.db.config.starterdb.type=GENERAL_PURPOSE   //数据库类型   

    oracle.install.db.config.starterdb.globalDBName=orcl      #globalDBName   

    oracle.install.db.config.starterdb.SID=orcl #SID(**此处注意与环境变量内配置SID一致)  

    oracle.install.db.config.starterdb.memoryLimit=81920      #自动管理内存的内存(M)  

    oracle.install.db.config.starterdb.password.ALL=oracle    #设定所有数据库用户使用同一个密码   

    SECURITY_UPDATES_VIA_MYORACLESUPPORT=false            #(手动写了false)  

    oracle.install.db.config.starterdb.password.SYS=123456

    oracle.install.db.config.starterdb.password.SYSTEM=123456

    DECLINE_SECURITY_UPDATES=true        # **注意此参数 设定一定要为true

     备注:黄色部分可以注释掉

    14、增加Swap分区
    1.创建交换分区的文件:增加1G大小的交换分区,则命令写法如下,其中的 count 等于想要的块大小。

    # dd if=/dev/zero of=/home/swapfile bs=1M count=1024

    2.设置交换分区文件:
     
    # mkswap /home/swapfile  #建立swap的文件系统

     3.立即启用交换分区文件:

    # swapon /home/swapfile   #启用swap文件

    4.使系统开机时自启用,在文件/etc/fstab中添加一行:

    /home/swapfile swap swap defaults 0 0

    15、  根据响应文件安装oracle

    在oracle用户下安装   su  - oracle

     $ cd /home/database/

     $./runInstaller  -silent -responseFile/usr/local/oracle/response/db_install.rsp -ignorePrereq

    参数说明:     

    /home/database是安装包解压后的路径,此处根据安装包解压所在位置做修改,因人而异。  

    runInstaller 是主要安装脚本   

    -silent 静默模式   

    -force 强制安装   

    -ignorePrereq忽略warning直接安装。   

    -responseFile读取安装应答文件。

    安装过程中,如果提示[WARNING]不必理会,此时安装程序仍在进行,如果出现[FATAL],则安装程序已经停止了。打开另一个终端,执行tail -f  提示的log名

    主界面提示以下提示则表示软件主体安装成功。

    根据提示在新创建的root窗口内执行以下提示的脚本:

    #/usr/local /oraInventory/orainstRoot.sh

     #/usr/local/oracle/product/11.2.0/db_1/root.sh

    ======================软件主体安装成功===============================

    3.9  编辑静默建库响应文件

    $cd  /usr/local/oracle/response

    $mv  dbca.rspdbca_orcl.rsp  #改名为dbca_数据库名.rsp

    3.10静默配置监听(网络)

    通过response文件运行netca, 生成sqlnet.ora和listener.ora文件, 位于$ORACLE_HOME/network/admin目录下:

    # su - oracle

    $netca /silent /responsefile /usr/local/oracle/response/netca.rsp

    $ ll $ORACLE_HOME/network/admin/*.ora

    成功运行后,在/user/local/oracle/product/11.2.0/db_1/network/admin目录下生成sqlnet.oralistener.ora两个文件。

    启动监听

    $/user/local/oracle/product/11.2.0/db_1/bin/lsnrctlstart LISTENER

    通过netstat-tlnp命令,看到
     tcp  0  0 :::1521       :::*      LISTEN      5477/tnslsnr
     
    说明监听器已经在1521端口上开始工作了。

    3.11静默安装数据库(同时也建立一个对应的实例)

    1)        修改/usr/local/oracle/response/dbca_orcl.rsp,设置如下:

    RESPONSEFILE_VERSION = "11.2.0"  #不能更改

    OPERATION_TYPE = "createDatabase" #不能更改

    GDBNAME="orcl "#78 行全局数据库的名字=SID+主机域名

    2)        静默建库命令如下

     $dbca -silent -responseFile /usr/local/oracle/response/dbca_orcl.rsp

    SID="orcl" //149行 SID对应的实例名字

    TEMPLATENAME = "General_Purpose.dbc"    #建库用的模板文件

    SYSPASSWORD="123456"    #SYS管理员密码

    SYSTEMPASSWORE="123456"#200行//SYSTEM管理员密码

    DATAFILEDESTINATION= /usr/local/oradata /数据文件存放目录
    RECOVERYAREADESTINATION=/usr/local/oradata_back#恢复数据存放目录

    CHARACTERSET="AL32UTF8"#字符集,重要!!!建库后一般不能更改,所以建库前要确定清楚

    TOTALMEMORY= "5120"    #oracle内存5120MB,建议为物理内存70%~85%

    3)         查看日志文件:

     $ cat /opt/oracle/cfgtoollogs/dbca/hello/hello.log

    4)        建库后实例检查 

     $ps -ef | grep ora_ | grep -v grep| wc –l

      21

     $ps -ef | grep ora_ | grep -v grep

    5)        建库后监听检查

      $lsnrctl status

    如果出现以下错误: 

    lsnrctl: error while loading sharedlibraries: /u01/app/oracle/product/11.2.0/db_1/lib/libclntsh.so.11.1: cannotrestore segment prot after reloc: Permission denied

    解决办法:在root用户下执行以下命令 

    su - root

    setenforce 0

    ===================================至此远程PLSQL已经可以访问了==============================================

    以下的我还没做~先转载过来

    3.12修改数据库为归档模式(归档模式才能热备份,增量备份)

    $export ORACLE_SID=orcl

    $sqlplus / as sysdba

    SQL*Plus: Release 11.2.0.1.0 Production on Thu Apr 20 16:12:49 2017

    Copyright (c) 1982, 2009, Oracle. All rights reserved.

    Connected to:

    Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bitProduction

    With the Partitioning, OLAP, Data Mining and Real ApplicationTesting options

    SQL> shutdownimmediate;

    Database closed.

    Database dismounted.

    ORACLE instance shut down.

    SQL> startup mount

    ORACLE instance started.

    Total System Global Area 1603411968 bytes

    Fixed Size                   2213776 bytes

    Variable Size                    939526256 bytes

    Database Buffers           654311424 bytes

    Redo Buffers                      7360512 bytes

    Database mounted.

    SQL> alter databasearchivelog;

    Database altered.

    SQL> alter databaseflashback on;

    Database altered.

    SQL> alter databaseopen;

    Database altered.

    SQL> executeutl_recomp.recomp_serial();

    PL/SQL procedure successfully completed.

    SQL> alter systemarchive log current;

    System altered.

    SQL> exit

    Disconnected from Oracle Database 11g Enterprise Edition Release11.2.0.1.0 - 64bit Production

    With the Partitioning, OLAP, Data Mining and Real ApplicationTesting options

    3.13修改oracle启动配置文件

     su – oracle

    $vi/etc/oratab 

    orcl:/usr/oracle/product/11.2.0/db_1:Y //把“N”改成“Y” 

    这样就可以通过dbstart启动此实例,监听器。

     $dbshut$ORACLE_HOME

    Processing Database instance"orcl": log file /usr/local/oracle/product/11.2.0/db_1/shutdown.log

     此时所有oracle的进程关闭,监听器也停止。 

     $dbstart$ORACLE_HOME

    Processing Database instance"orcl": log file /usr/local/oracle/product/11.2.0/db_1/startup.log

     此时监听器工作,orcl实例运行,再次查看监听器状态。

    $lsnrctl status

    ================================================

    四、Linux下oracle数据库启动和关闭操作

    4.1  启动oracle的步骤

    Linux下启动Oracle分为以下两步:

    n  启动数据库实例

    n  启动lsnrctl监听

    1)      启动oracle数据库实例

    1)  以system用户身份登陆oracle

    在oracle用户下,输入 sqlplus/nolog

    2)  使用管理员权限 

    connect/as sysdba

    3)  启动/关闭服务 


     

    startup参数 :
    不带参数,启动数据库实例并打开数据库,以便用户使用数据库,在多数情况下,使用这种方式! 
    nomount,只启动数据库实例,但不打开数据库,在你希望创建一个新的数据库时使用,或者在你需要这样的时候使用! 
    mount,在进行数据库更名的时候采用。这个时候数据库就打开并可以使用了! 
     

    2)      启动oracle监听

    数据库实例启动之后,需启动监听器,才能让远程用户建立连接。可使用如下命令启动监听器:

    1)        登陆 

    root登陆之后切换到oracle用户上,输入 su -  oracle

    2)        检查oracle监听器运行状态

    通过lsnrctl status命令查看

    上述反馈的结果即为oracle监听没有启动

    3)        启动监听,通过命令lsnrctl start

    至此,oracle监听器启动成功!

     

    4.2  关闭oracle

    通过shutdown命令关闭oracle实例。


    shutdown的参数 
    Normal 需要等待所有的用户断开连接 
    Immediate 等待用户完成当前的语句 
    Transactional 等待用户完成当前的事务 
    Abort 不做任何等待,直接关闭数据库 
    normal需要在所有连接用户断开后才执行关闭数据库任务,所以有的时候看起来好象命令没有运行一样!在执行这个命令后不允许新的连接 
    immediate在用户执行完正在执行的语句后就断开用户连接,并不允许新用户连接。 
    transactional 在拥护执行完当前事物后断开连接,并不允许新的用户连接数据库。 
    abort 执行强行断开连接并直接关闭数据库。 
     

    4.3  查看oracle服务是否已经启动

    l  ps aux | grep ora_ #若无ora_**_**相关的进程,则oracle数据库实例未启动

    l  netstat -tlnup | grep 1521 #若无任何显示,则监听器未启动

    l  lsnrctl status #查看监听器状态

    l  netstat -tlnup | grep 1158 #若无任何显示,则EM未启动

    l  emctl status dbconsole #查看EM状态

    4.4  启动网页版管理器

    Oracle还提供网页版的管理器,要使用该管理器需启动相关服务,使用如下命令启动:

    emctl start dbconsole

    至此,可在web浏览器中输入:https://{主机IP 或 主机名 或 本地localhost}:1158/em,打开管理器,使用相关帐号登录进行数据库查看和管理。

    五、Linux下建立Oracle服务及其开机自启动

    如果每次重启操作系统都要进行以上操作好麻烦,那么如何让Oracle作为系统服务在开机的时候自动启动呢?

    以root身份建立开机启动oracle服务的脚本:vi/etc/init.d/oracle,添加如下脚本:

    #!/bin/sh

    #chkconfig: 234520 80

    #description: Oracledbstart / dbshut

    #以上两行为chkconfig所需

    ORA_HOME=/usr/local/oracle/product/11.2.0/db_1

    ORA_OWNER=oracle

    LOGFILE=/var/log/oracle.log

    echo"#################################" >> ${LOGFILE}

    date +"### %T%a %D: Run Oracle" >> ${LOGFILE}

    if [ ! -f${ORA_HOME}/bin/dbstart ] || [ ! -f ${ORA_HOME}/bin/dbshut ]; then

        echo "Error: Missing the script file${ORA_HOME}/bin/dbstart or ${ORA_HOME}/bin/dbshut!" >> ${LOGFILE}

        echo"#################################" >> ${LOGFILE}

        exit

    fi

    start(){

        echo "###Startup Database..."

        su - ${ORA_OWNER} -c"${ORA_HOME}/bin/dbstart ${ORA_HOME}"

        echo "###Done."

        echo "###Run database control..."

        su - ${ORA_OWNER} -c"${ORA_HOME}/bin/emctl start dbconsole"

        echo "###Done."

    }

    stop(){

        echo "###Stop databasecontrol..."

        su - ${ORA_OWNER} -c"${ORA_HOME}/bin/emctl stop dbconsole"

        echo "###Done."

        echo "###Shutdown Database..."

        su - ${ORA_OWNER} -c"${ORA_HOME}/bin/dbshut ${ORA_HOME}"

        echo "###Done."

    }

    case"$1" in

        'start')

            start >> ${LOGFILE}

        ;;

        'stop')

            stop >> ${LOGFILE}

        ;;

        'restart')

            stop >> ${LOGFILE}

            start >> ${LOGFILE}

        ;;

    esac

    date +"### %T%a %D: Finished." >> ${LOGFILE}

    echo"#################################" >> ${LOGFILE}

    echo ""

    使用如下命令将/etc/init.d/oracle 置为可执行文件:

    chmod a+x/etc/init.d/oracle

    至此,可使用如下命令对oracle进行启动和关闭

    /etc/init.d/oraclestart #启动oracle(包括数据库实例、监听器、EM)

    /etc/init.d/oraclestop #关闭oracle

    /etc/init.d/oraclerestart #重启oracle

    将 oracle 添加到 chkconfig中:

    chkconfig --addoracle

    可使用如下命令查看和设置oracle服务的开机启动级别:

    chkconfig | greporacle #查看oracle服务的开机启动级别

    chkconfig --level24 oracle off #修改oracle服务的开机启动级别

    chkconfig --level35 oracle on

    至此可使用如下命令对oracle的启动或关闭进行管理

    service oraclestart #启动

    service oraclestop #关闭

    service oraclerestart #重启

    建立连接:

    ln -s/etc/init.d/oracle /etc/rc0.d/K01oracle  #关机执行

    ln -s/etc/init.d/oracle /etc/rc6.d/K01oracle  #重启执行

    六、     建立表空间和用户

    $ export ORACLE_SID=orcl; sqlplus / assysdba

     进入SQL>后

    创建临时表空间

    create temporary tablespace user_temptempfile ‘/usr/local/oradata/orcl/user_temp.dbf' size 50m

    autoextend on

    next 50m maxsize 20480m

    extent management local;

    创建数据表空间

    create tablespace xtjg

    logging

    datafile '/opt/oracle/oradata/ orcl /xtjg.dbf'

    size 50m

    autoextend on;

     创建用户并指定表空间

    create user xtjg_user identified by 123456 

    default tablespace xtjg

    temporary tablespace user_temp;

    给用户授予权限

    grant resource,connect,dba to xtjg_user;

    此时在其他机器上可以远程登录这个用户.

    七、     Oracle数据库导入与导出

    Oracle数据库导出有4种模式:full(全库导出),owner(用户导出),table(表导出),tablespace(表空间导出)。

    1、数据常用导出命令

    ①将数据库TEST完全导出,用户名system密码manager,导出到/tmp/daochu.dmp中

    exp system/manager@TEST  file=/tmp/daochu.dmp  full=y (全库导出)

    exp xtjg_user/123456@ORCL  file=/tmp/XTJG.dmp  默认导出连接数据库的用户数据库对象

    ②将数据库中system用户和sys用户的表导出

    exp system/manager@TEST file=d:daochu.dmp owner=(system,sys)

    ③将数据库中的表table1 、table2导出

     exp system/manager@TEST file=d:daochu.dmp tables=(table1,table2)

    ④将数据库中的表table1中的字段filed1以"00"打头的数据导出

     exp system/manager@TEST file=d:daochu.dmp tables=(table1)query=" where filed1 like '00%'"

    2、导入dmp命令

    在导入dmp文件时候,通常我们需要新建一个用户来导入,新用户需要一个表空间和一个临时表空间。

    表空间是数据库的逻辑划分,一个表空间只能属于一个数据库。所有的数据库对象都存放在指定的表空间中。但主要存放的是表,所以称作表空间。Oracle临时表空间主要用来做查询和存放一些缓冲区数据。临时表空间,可自动释放;而表空间中存储表数据、函数、过程、序列等。是随数据库永久存在的。

    新建临时表空间:

    create temporary tablespace user_temp

    tempfile'/usr/local/oradata/orcl/user_temp.dbf'

    size 50m

    autoextend on

    next 50m maxsize 20480m

    extent management local;

    新建表空间:

    create tablespace xtjg

    logging

    datafile '/usr/local/oradata/orcl/xtjg.dbf'

    size 50m

    autoextend on ;

    新建用户:

    create user xtjg_user identified by123456 

    default tablespace xtjg

    temporary tablespace user_temp;

    授权新用户:

    grant connect,resource to user_name;

    grand dba to user_name;

    导入dmp文件:

    imp user_name/user_password@SIDfile=F:xxx.dmp full=y;

    如:imp xtjg_user/123456@orcl  file=/home/software/XTJG.dmp full=y;

    备注:

    1、关于full=y 参数

    ①oracle exp命令中的full参数

    full=y( 全库导出): 导出除ORDSYS,MDSYS,CTXSYS,ORDPLUGINS,LBACSYS 这些系统用户之外的所有用户的数据.
    full=n或不加full: 默认导出连接数据库的用户数据库对象.
    ②oracle imp命令中的full参数
    Full=y  导入一个完整的数据库
     

    2、删除命令

    删除用户:

    drop user user_name cascade;

    删除表空间和临时表空间:

    drop tablespace tablespace_name includingcontents;

  • 相关阅读:
    navicat设置唯一
    H5图片防盗链处理
    jar包更新
    微信小程序开发工具“当前系统代理不是安全代理”
    Set和Map
    OSS先后上传相同地址的图片
    js遍历删除数组中不符合条件的元素
    SSL配置
    关于socket.io获取客户端真实IP地址
    请在微信客户端打开链接 html
  • 原文地址:https://www.cnblogs.com/the-fool/p/11054109.html
Copyright © 2020-2023  润新知