• centos安装oracle 11g 完全图解


    摘要: 说明: Linux服务器操作系统:CentOS 5.8 32位(注意:系统安装时请单独分区/data用来安装oracle数据库) Linux服务器IP地址:192.168.21.150 Oracle数据库版本:linux_11gR2_database Wind...

    说明:

    Linux服务器操作系统:CentOS 5.8 32位(注意:系统安装时请单独分区/data用来安装oracle数据库

    Linux服务器IP地址:192.168.21.150

    Oracle数据库版本:linux_11gR2_database

    Windows客户端系统:Windows Xp

    具体操作:

    一、在Linux服务器操上安装图形界面X Window

    1、在Linux上安装图形界面服务端程序X Window

    yum groupinstall "X Window System" #安装X Window

    2vi /etc/gdm/custom.conf #配置,修改添加以下代码

     

    [security]

    AllowRemoteRoot=true

    [xdmcp]

    Port=177

    Enable=1

    :wq! #保存退出

    3vi /etc/inittab #编辑

    id:5:initdefault: #修改35

    :wq! #保存退出

    4vi /etc/sysconfig/iptables  # 编辑,添加以下代码,开启防火墙UDP 177端口

    -A RH-Firewall-1-INPUT -m state –state NEW -m udp -p udp –dport 177 -j ACCEPT

    :wq! #保存退出

    service iptables restart #重启

    gdm-restart #重启

    shutdown -r now #重启系统

    二、在Windows客户端系统上安装Xmanager

    1、下载安装Xmanager Enterprise 3

    http://www.onlinedown.net/soft/32684.htm #英文原版

    http://www.downxia.com/downinfo/19164.html #汉化包

    2、下载安装软件之后,打开Xmanager Enterprise

    3,再打开Xbrowser,如下图所示:

    在地址栏输入192.168.21.150 点转到,出现下面界面

    输入用户名root,再输入密码,点Ok,会出现下面界面

    登录成功!

    三、在Linux服务器操作系统上准备Oracle数据库安装前的工作

    1、下载Oracle 11g R2 Linux版本

    http://download.oracle.com/otn/linux/oracle11g/R2/linux_11gR2_database_1of2.zip #下载地址

    http://download.oracle.com/otn/linux/oracle11g/R2/linux_11gR2_database_2of2.zip

    注意:Oracle 11g R2 Linux版本有两个压缩文件包,都需要下载(下载时需要先注册登录)

    下载完成之后,通过WinSCP等工具把两个压缩文件包上传到Linux服务器的/usr/local/src目录中,如下图所示:

    2、在Linux服务器上创建oracle数据库安装目录

    mkdir -p /data/oracle #oracle数据库安装目录

    mkdir -p /data/oraInventory #oracle数据库配置文件目录

    mkdir -p /data/database #oracle数据库软件包解压目录

    3、创建运行oracle数据库的系统用户和用户组

    groupadd oinstall #创建用户组oinstall

    groupadd dba #创建用户组dba

    useradd -g oinstall -g dba -m oracle #创建用户oracle,并加入oinstalldba用户组

    passwd oracle #设置用户oracle的登录密码,根据提示输入两次密码

    chown -R oracle:oinstall /data/oracle #设置目录所有者为oinstall用户组的oracle用户

    chown -R oracle:oinstall /data/oraInventory

    chown -R oracle:oinstall /data/database

    4、修改操作系统标识(oracle默认不支持CentOS系统安装)

    vi /etc/redhat-release #编辑

    把:CentOS release 5.8 (Final)

    修改为:redhat-4

    :wq! #保存退出

    5、设置系统内核参数

    vi /etc/sysctl.conf #编辑,在最后添加以下代码

    net.ipv4.icmp_echo_ignore_broadcasts = 1

    net.ipv4.conf.all.rp_filter = 1

    fs.file-max = 6815744 #设置最大打开文件数

    fs.aio-max-nr = 1048576

    kernel.shmall = 2097152 #共享内存的总量,8G内存设置:2097152*4k/1024/1024

    kernel.shmmax = 2147483648 #最大共享内存的段大小

    kernel.shmmni = 4096 #整个系统共享内存端的最大数

    kernel.sem = 250 32000 100 128

    net.ipv4.ip_local_port_range = 9000 65500 #可使用的IPv4端口范围

    net.core.rmem_default = 262144

    net.core.rmem_max= 4194304

    net.core.wmem_default= 262144

    net.core.wmem_max= 1048576

    :wq! #保存退出

    sysctl -p #使配置立即生效

    6、设置oracle用户限制,提高软件运行性能

    vi /etc/security/limits.conf #在末尾添加以下代码

    oracle soft nproc 2047

    oracle hard nproc 16384

    oracle soft nofile 1024

    oracle hard nofile 65536

    :wq! #保存退出

    7、配置用户环境

    vi /home/oracle/.bash_profile #在最后添加以下代码

    export ORACLE_BASE=/data/oracle #oracle数据库安装目录

    export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1 #oracle数据库路径

    export ORACLE_SID=orcl #oracle启动数据库实例名

    export ORACLE_TERM=xterm #xterm窗口模式安装

    export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH #添加系统环境变量

    export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib #添加系统环境变量

    export #防止安装过程出现乱码

    export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK  #设置Oracle客户端字符集,必须与Oracle安装时设置的字符集保持一致,如:ZHS16GBK,否则出现数据导入导出中文乱码问题

    :wq! #保存退出

    source .bash_profile #使设置立刻生效

    8、关闭SELINX

    vi /etc/selinux/config #编辑配置文件

    #SELINUX=enforcing #注释掉

    #SELINUXTYPE=targeted #注释掉

    SELINUX=disabled #增加

    :wq! #保存退出

    9、配置防火墙开启1521端口

    vi /etc/sysconfig/iptables #编辑防火墙配置文件,添加以下内容

    -A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 1521 -j ACCEPT

    /etc/init.d/iptables restart #重启防火墙使配置生效

    10、解压oracle压缩文件到解压目录

    cd /usr/local/src #进入目录

    unzip linux_11gR2_database_1of2.zip -d /data/database #解压

    unzip linux_11gR2_database_2of2.zip -d /data/database #解压

    chown -R oracle:oinstall /data/database/database

    11、安装oracle数据库所需要的软件包

    yum install gcc* gcc-* gcc-c++-* glibc-devel-* glibc-headers-* compat-libstdc* libstdc* elfutils-libelf-devel* libaio-devel* sysstat* unixODBC-* pdksh-*

    四、安装oracle

    1、在Windows客户端运行Xmanager,登录到Linux服务器的 X window界面,如下图所示:

    2、切换到oracle用户

    xhost +

    su – oracle

    export DISPLAY=:0.0  #w命令查看,根据自己系统显示的结果填写

    cd /data/database/database #进入安装包目录

    ./runInstaller #安装,出现下面界面

    耐心等待一会,出现下面的界面

     

    Emial:默认不用填写

    取消:我希望通过My Oracle Support接收安全更新前面的勾,不接收更新,点Next

    提示是否不接收安全更新通知,选择Yes

    Next

    选择第二项,仅安装数据库软件

    Next

    选择第一项,单实例数据库安装

    Next

    语言选项,默认英语即可

    Next

    选择第一项:企业版

    Next

    Oracle配置文件目录:/data/oraInventory

    Oracle软件安装位置:/data/oracle/product/11.2.0/db_1

    Next

    Oracle配置文件目录:/data/oraInventory

    Oracle数据库运行组,默认即可

    进行安装前系统环境监测

    注意:如果有某一项未监测通过,请根据提示做相应修改,知道监测全部通过为止,否则不能进行下一步安装

    全部监测通过之后,点Cancel

    列出oracle安装清单

    选择Cancel,出现下面界面

    直到安装完成,点Close

    五、配置监听程序(创建数据库之前必须要先配置)

    继续在Windows客户端运行Xmanager,登录到Linux服务器的 X window界面

    su – oracle #切换到oracle用户

    netca #配置监听程序命令,出现下面界面

    选择第一项:监听程序配置

    Next

    选择第一项:添加

    Next

    监听程序名,默认即可

    Next

    协议配置,默认TCP即可

    Next

    选择第一项:使用标准端口号1521

    Next

    询问:是否配置另一个监听程序

    选择:否

    Next

    监听程序配置完成,Next

    Finish完成

    六、创建Oracle数据库实例orcl

    继续在Windows客户端运行Xmanager,登录到Linux服务器的 X window界面

    su – oracle #切换到oracle用户

    dbca #启动oracle实例安装界面,如下图所示

    Next

    选择第一项:创建数据库

    Next

    默认选择第一项:一般用途或事务处理

    Next

    系统运维 www.osyunwei.com 温馨提醒:qihang01原创内容 版权所有,转载请注明出处及原文链接

    全局数据库名:orcl

    SIDorcl

    Next

    默认即可,Next

    口令配置,可以为每个账户设置不同的口令,也可以为所有账户设置一个相同的口令

    选择第二项:所有账户使用同一管理口令

    Next

    如果口令设置的太简单,不满足Oracle口令的复杂性要求,会弹出上面的界面,可以选择是,或者选择否,然后返

    口令设置,重新设置一个复杂的口令。

    存储类型:文件系统

    存储位置:使用模版中的数据库文件位置

    Next

    默认选择:指定快速恢复区

    Next

    快速恢复区大小设置,如果系统剩余空间小于设置值会出现上面的提示

    Next

    默认,Next

    切换到调整大小:进程300(可以根据服务器配置设置)

    切换到字符集设置

    选择第三项:从字符集列表中选择

    选择:ZHS16GBK- GBK 16-bit Simplified Chinese

    国家字符集:AL16UTF16-Unicode UTF-16 Universal character set

    默认语言:Simplified Chinese

    默认地区:China

    切换到连接模式,选择:专用服务器模式

    全部设置完成之后,点Finish

    勾选:创建数据库

    勾选:生成数据库创建脚本

    Finish

    Ok

    注意:这里如果出现上面的提示,可以等安装完成之后用root账号登录,执行下面两个命令

    /data/oracle/product/11.2.0/db_1/root.sh

    /data/oraInventory/orainstRoot.sh

    生成/etc/oratab文件

    正在创建数据库

    数据库创建完成,点Exit退出

    七、启动oracle数据库

    su – oracle #切换到oracle用户

    sqlplus /nolog #进入sqlplus

    conn / as sysdba #以超级管理员权限登录

    startup #启动数据库实例

    quit #退出

    lsnrctl start #启动监听

    startup参数说明:

    startup #不带任何参数,启动数据库实例并打开数据库,一般选择这种启动方式

    startup nomount #只启动数据库实例,不打开数据库,一般用于创建新的数据库时使用

    startup mount #启动数据库实例,并加载数据库,但不打开数据库,一般用于修改数据库名称等管理时使用

    八、关闭oracle数据库

    su – oracle #切换到oracle用户

    lsnrctl stop #关闭监听器

    sqlplus /nolog #进入sqlplus

    shutdown immediate #关闭数据库实例

    quit #退出

    shutdown参数说明:

    normal #等待所有的用户断开连接,执行命令后不允许新连接

    immediate #等待用户完成当前的语句后,再断开用户连接,不允许新用户连接

    transactional #等待用户完成当前的事务后断开连接,不允许新用户连接

    abort #强行断开连接并直接关闭数据库

    前面三种方法不会导致数据库出错,最后一种方法非特殊状况不建议使用,

    一般使用shutdown immediate关闭数据库

    备注:如果执行shutdown immediate出现ORA-01012: not logged on错误

    请先执行以下语句

    ps -ef|grep ora_dbw0_$orcl

    kill -9 pid #pid为进程号

    其中orcl 是数据库的SID

    九、设置oracle开机启动

    说明:linux下默认安装完Oracle后不会实现开机自启动

    1su – root #切换到root用户操作

    /data/oracle/product/11.2.0/db_1/root.sh #执行脚本,生成/etc/oratab文件

    /data/oraInventory/orainstRoot.sh

     2vi /etc/oratab  #编辑

    找到:$ORACLE_SID:$ORACLE_HOME:<N|Y>:

    取消前面的#注释,修改为:

    orcl:/data/oracle/product/11.2.0/db_1:Y  #orcloracle数据库实例名称

    :wq! #保存退出

    3vi /data/oracle/product/11.2.0/db_1/bin/dbstart #编辑

    找到:ORACLE_HOME_LISTNER=$1

    修改为:ORACLE_HOME_LISTNER=$ORACLE_HOME

    4vi /data/oracle/product/11.2.0/db_1/bin/dbshut #编辑

    找到:ORACLE_HOME_LISTNER=$1

    修改为:ORACLE_HOME_LISTNER=$ORACLE_HOME

    5、创建oracle启动脚本

    vi /etc/init.d/oracle #编辑,添加以下代码
    ##########################################################
    #!/bin/sh
    # chkconfig: 0356 99 10
    # description: Startup Script for Oracle Databases
    # Script path/etc/init.d/oracle
    # Authorwww.osyunwei.com by qihang01
    #
    ORACLE_BASE=/data/oracle
    ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
    ORACLE_SID=orcl
    PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH
    export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH
    #
    ORA_OWNR="oracle"
    #
    if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]
    then
    echo "Oracle startup: cannot start"
    exit 1
    fi
    #
    case "$1" in
    start)
    su – $ORA_OWNR -lc $ORACLE_HOME/bin/dbstart
    echo "Oracle Start Succesful!"
    ;;
    stop)
    #
    su – $ORA_OWNR -lc $ORACLE_HOME/bin/dbshut
    echo "Oracle Stop Succesful!"
    ;;
    restart)
    $0 stop
    $0 start
    ;;
    *)
    echo $"Usage: `basename $0` {start|stop|restart}"
    exit 1
    esac
    exit 0
    ##########################################################

    :wq! #保存退出

    chown oracle.oinstall /etc/init.d/oracle #更改文件所有者

    chmod 755 /etc/init.d/oracle #添加执行权限

    ln -s /etc/init.d/oracle /etc/rc3.d/S99oracle #添加系统启动级别3软连接

    ln -s /etc/init.d/oracle /etc/rc5.d/S99oracle #添加系统启动级别5软连接

    ln -s /etc/init.d/oracle /etc/rc0.d/K01oracle #添加系统关机软连接

    ln -s /etc/init.d/oracle /etc/rc6.d/K01oracle #添加系统重启软连接

    chkconfig –add oracle #添加系统服务

    chkconfig oracle on #设置开机启动

    备注:# chkconfig: 0356 99 10

    0356:定义运行级别

    99:开机启动优先级(数字越大启动越晚)

    10:关机停止优先级(数字越小关闭越早)

    系统运维 www.osyunwei.com 温馨提醒:qihang01原创内容 版权所有,转载请注明出处及原文链接

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

    lsnrctl start

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

    emctl start dbconsole

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

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

    Oracle$ORACLE_HOME/bin下提供许多对数据库进行操作的脚本,其中dbstartdbshut可分别用来启动和关闭数据库。注意,这两个脚本已包含监听器的启动或关闭,但并未对EM进行相关的操作。使用如下命令:

    /opt/oracle/11g/bin/dbstart /opt/oracle/11g #启动数据库实例(包含监听器)

    /opt/oracle/11g/bin/dbshut /opt/oracle/11g #关闭数据库实例(包括监听器)

    以上命令要成功启动数据库实例还得打开Oracle设置的一个关卡:vi /etc/oratab,修改行:

    orcl:/opt/oracle/11g:Y #默认为orcl:/opt/oracle/11g:N

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

    #!/bin/sh

    #chkconfig: 2345 20 80

    #description: Oracle dbstart / dbshut

    #以上两行为chkconfig所需

    ORA_HOME=/opt/oracle/11g

    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 database control..."

        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/oracle start #启动oracle(包括数据库实例、监听器、EM)

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

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

    oracle 添加到 chkconfig中:

    chkconfig --add oracle

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

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

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

    chkconfig --level 35 oracle on

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

    service oracle start #启动

    service oracle stop #关闭

    service oracle restart #重启

     建立连接:

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

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

     ********************************************************************************************************************************************************

     

    linux系统下oracle数据库备份、还原。

    操作步骤

    数据备份:
    步骤备份用户数据。

    1.使用linux系统下的数据库管理员账号连接linux终端。

    2. 执行以下语句,创建“bak_dir”文件夹。
     mkdir bak_dir
    3. 执行以下语句,为“bak_dir”文件夹赋予读、写和执行权限。
     chmod 777 bak_dir
    4. 执行以下语句,以sysdba用户登录oracle数据库服务器。
     sqlplus 数据库管理员账号/密码@数据库实例名 as sysdba
    5. 执行以下语句,将“bak_dir”指定为“/opt/oracle/bak_dir”
     create or replace directory bak_dir as '/opt/oracle/bak_dir'
     commit
    6. 执行以下语句,将“bak_dir”的读、写和执行权限赋给xx(数据用户名)用户。
     grant all on directory bak_dir to xx

     commit
    7. 执行以下语句,退出oracle数据库服务器。
     quit

    执行以下语句,将sysdb用户的表备份到“bak_dir”目录下。
    8.expdp xx(要导出表所在的数据库用户名)/xx(密码)@数据库实例名 directory=bak_dir dumpfile=expdb_xx.dmp logfile=expdb_xxlog tables=表名

     

    数据还原:

    1.在命令行输入:sqlplus "/as sysdba"

    2. 执行以下语句登录xx数据库,用户名:xx,密码:xx(请输入当地实际密码)
     conn xx/xx;

    3.如果恢复的表中有涉及到触发器的请停止触发器,例:A

    alter table A disable all triggers; 

    commit;

    4. 执行以下语句退出当前用户
     quit;
    5. 执行以下语句,恢复用户数据。
     impdp xx/xx@数据库实例名 directory=bak_dir table_exists_action=truncate dumpfile=expdb_xx.dmp logfile=impdb_xx.log

    5.在命令行输入:sqlplus "/as sysdba"

    6. 执行以下语句登录xx数据库,用户名:xx,密码:xx(请输入当地实际密码)
     conn xx/xx;

    7. 执行以下语句打开被禁止的触发器

    alter table A enable all triggers;

    commit;

    6、恢复操作系统标识

    vi /etc/redhat-release #编辑

    把:redhat-4

    修改为:CentOS release 5.8 (Final)

    :wq! #保存退出

    7、更改系统默认启动级别为3

    vi /etc/inittab #编辑

    id:3:initdefault: #修改53

    :wq! #保存退出

    8、测试

    shutdown -r now #重启系统

    service oracle start #启动oracle

    service oracle stop #关闭oracle

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

    su – oracle #切换到oracle用户

    dbstart #启动oracle

    dbshut #关闭oracle

    ps -efw | grep ora #查看oracle进程

    ps -efw | grep LISTEN | grep -v gre #查看oracle端口监听

    lsnrctl status #查看oracle运行状态

    至此,CentOS下安装Oracle 11g R2教程完成。

    扩展阅读:

    使用vnc远程连接来安装Oracle,如果出现错误,不能启动安装界面,请做以下操作!

    root ssh登录

    vncserver #启动vnc

    New 'www:1 (root)' desktop is www:1   #记住www:1,后面会用到!

    export DISPLAY=www:1 #输入

    service vncserver start #启动vnc

    使用vnc客户端 root 登录

    xhost +

    su – oracle  #切换到oracle用户

    ./runInstaller #执行安装

    转载自:http://www.osyunwei.com/archives/5445.html

    分类: Linux(centos), 数据库oracle

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

     

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

     

     

    说明:以下操作环境在CentOS 6.4 + Oracle 11gR2Oracle安装在ORACLE_BASE=/opt/oracle中,其ORACLE_HOME=/opt/oracle/11g

    OUI安装并配置Oracle数据库后,Oracle就开启了(包括:数据库实例、监听器、EM)。在重启操作系统之后,Oracle默认是没有启动的。使用如下命令查看Oracle相关服务是否已启动:

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

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

    lsnrctl status #查看监听器状态

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

    emctl status dbconsole #查看EM状态

    手工启动Oracle实例,可用sqlplus建立一个idle instance,然后再用startup启动,如下:

     

     

  • 相关阅读:
    偶的机机升级了
    质疑 Sina.com 的金牌榜[图文]
    一道JAVA作业题
    北京出差总结
    我拿什么奉献给你
    CSDN无限极树PHP+MySQL版
    极大强连通分量的Tarjan算法
    NOI2001 炮兵阵地详解
    单调队列及其应用
    some english website
  • 原文地址:https://www.cnblogs.com/jacksonxiao/p/11263429.html
Copyright © 2020-2023  润新知