• CentOS 7安装Oracle 11gR2以及设置自启动(2)


    6、创建表空间和用户授权

    (1)、连接数据库

    $ sqlplus / as sysdba

    (2)、创建数据库表空间

    语法:
    create tablespace 表空间名 
    datafile ‘物理地址(相当于文件路径)’
    size初始大小(单位M)
    autoextend on next每次自增的大小(单位M)
    maxsize unlimited (此关键字用于不限制表空间大小)

    SQL> create tablespace test1_teblespace
    datafile '/usr/oracle/oradata/orcl/test1_teblespace.dbf'
    size 500M
    autoextend on next 100M
    maxsize unlimited;

     (3)、创建用户并指定表空间

    语法:
    create user 用户名 identified by 口令[即密码] default tablespace 表空间名;

     SQL> create user test1 identified by test1 default tablespace test1_teblespace;

     

     (4)、给用户授予权限

    语法:
    grant 权限1, 权限2, 权限3…… to 用户名

     SQL> grant connect,resource,dba to test1;

    (5)、删除表空间

    语法:
    drop tablespace 表空间名 including contents and datafiles cascade constraints;

    SQL> drop tablespace test1_teblespace including contents and datafiles cascade constraints;

    including contents   删除表空间中的内容,如果删除表空间之前表空间中有内容,而未加此参数,表空间无法删除。
    including datafiles  删除表空间中的数据文件
    cascade constraints  同时删除表空间中表的外键参照

    (6)、删除用户

    语法:
    drop user 用户名 cascade; 
    最后这个级联特别有用(删除用户以及所有关联的数据库对象)

    SQL> drop user test1 cascade;  

    四、  设置数据库自启动

     方法一:

     1、安装好Oracle数据库后: 执行 dbstart和dbshut

    $ dbshut

    $ dbstart

    错误原因:dbstart和dbshut脚本文件中ORACLE_HOME_LISTNER的设置有问题

    分别打开两个文件修改如下内容

    ORACLE_HOME_LISTNER=$1
    修改为:
    ORACLE_HOME_LISTNER=$ORACLE_HOME

    $ vim $ORACLE_HOME/bin/dbstart

    $ vi $ORACLE_HOME/bin/dbshut

    修改后保存退出,问题解决

    2、Linux启动时自动启动Oracle监听和实例

    第一步:修改/etc/oratab文件

    找到:   orcl:/usr/oracle/product/11.2.0/db_1:N   
    修改为: orcl:/usr/oracle/product/11.2.0/db_1:Y
    (这个路径跟安装路径有关,$ORACLE_SID:$ORACLE_HOME:<N|Y>)

    $ vi /etc/oratab 

    第二步:把lsnrctl start和dbstart添加到rc.local文件中:

     root权限执行

    # vi /etc/rc.d/rc.local 

    添加:

    su - oracle -lc "/usr/oracle/product/11.2.0/db_1/bin/lsnrctl start"
    su - oracle -lc "/usr/oracle/product/11.2.0/db_1/bin/dbstart"

    说明:

    第一行为开机启动数据库监听服务,第二行为开机启动数据库。(路径跟安装路径相关)。

    注意:CentOs7中/etc/rc.d/rc.local不会开机执行,需添加执行权限。

    查看/etc/rc.d/rc.local的权限

     # ll /etc/rc.d/rc.local 

    添加执行权限

    # chmod +x /etc/rc.d/rc.local 

    3、重启电脑后查看是否自启动成功

    # reboot

    查看监听是否自启动成功

    $ lsnrctl status LISTENER

    查看Oracle服务状态

    $ ps -aux | grep oracle

    4、oracle的启动或关闭管理

    启动

    $ dbstart

    关闭

    $ dbshut 

     方法二:

    1、修改/etc/oratab文件

    找到:   orcl:/usr/oracle/product/11.2.0/db_1:N   
    修改为: orcl:/usr/oracle/product/11.2.0/db_1:Y
    (这个路径跟安装路径有关,$ORACLE_SID:$ORACLE_HOME:<N|Y>)

     2、新建oracle自启动服务脚本

    [root@localhost oracle]# vi /etc/init.d/oracle

     将以下脚本复制到文件中,保存退出(:wq)

    #!/bin/sh
    # chkconfig: 2345 61 61
    # description: Oracle 11g R2 AutoRun Servimces
    # /etc/init.d/oracle
    #
    # Run-level Startup script for the Oracle Instance, Listener, and
    # Web Interface
    export ORACLE_BASE=/usr/oracle                                          #oracle安装位置
    export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1                     #Oracle安装路径
    export ORACLE_SID=orcl
    export PATH=$PATH:$ORACLE_HOME/bin
    ORA_OWNR="oracle"
    # if the executables do not exist -- display error
    if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]
    then
    echo "Oracle startup: cannot start"
    exit 1
    fi
    # depending on parameter -- startup, shutdown, restart
    # of the instance and listener or usage display
    case "$1" in
    start)
    # Oracle listener and instance startup
    su $ORA_OWNR -lc $ORACLE_HOME/bin/dbstart
    echo "Oracle Start Succesful!OK."
    ;;
    stop)
    # Oracle listener and instance shutdown
    su $ORA_OWNR -lc $ORACLE_HOME/bin/dbshut
    echo "Oracle Stop Succesful!OK."
    ;;
    reload|restart)
    $0 stop
    $0 start
    ;;
    *)
    echo $"Usage: `basename $0` {start|stop|reload|reload}"
    exit 1
    esac
    exit 0

    3、检查脚本能否执行

    [root@localhost oracle]# /etc/init.d/oracle start            #启动oracle脚本
    [root@localhost oracle]# /etc/init.d/oracle stop             #关闭oracle脚本
    [root@localhost oracle]# /etc/init.d/oracle restart          #重启oracle脚本

    4、添加执行权限并建立链接

    更改oracle脚本的执行权限

    [root@localhost oracle]# chmod a+x /etc/init.d/oracle

    建立链接

    将启动脚本添加到系统服务并设置自启动

    [root@localhost oracle]# chkconfig --add oracle

    当这个命令被执行的时候,会去脚本文件oracle中寻找# chkconfig: 2345 61 61这行注释,并解析这行注释,根据解析结果分别在

    /etc/rc.d/rc2.d

    /etc/rc.d/rc3.d

    /etc/rc.d/rc4.d

    /etc/rc.d/rc5.d

    中创建符号连接文件S61oracle,此文件在系统启动时根据运行级别执行,此文件是指向/etc/init.d/oracle文件。启动时系统向此文件发送一个start参数,执行oracle文件中的start分支。另外还会在

    /etc/rc.d/rc0.d

    /etc/rc.d/rc1.d

    /etc/rc.d/rc6.d

    中创建符号连接文件K61oracle,此文件在系统关闭时执行,此文件也指向/etc/init.d/oracle文件,关闭时系统向此文件发送一个stop参数,执行oracle文件中的stop分支。

    # chkconfig: 2345 61 61

    # 表明脚本应该在运行级 2, 3, 4, 5 启动,启动优先权为61,停止优先权为 61。

    修改服务运行等级(虽然脚本里写过,但还是重新设置一下),可以自行设置oracle脚本的运行级别

    [root@localhost oracle]# chkconfig --level 2345 oracle on

    说明:设置oracle脚本在运行级别为2、3、4、5时,都是on(开启)状态,off为关闭

    查看oracle自动启动设置

    [root@localhost oracle]# chkconfig –list oracle
    Oracle   0:off 1:off 2:on 3:on 4:on 5:on 6:off
    等级0表示:表示关机
    等级1表示:单用户模式
    等级2表示:无网络连接的多用户命令行模式
    等级3表示:有网络连接的多用户命令行模式
    等级4表示:不可用
    等级5表示:带图形界面的多用户模式
    等级6表示:重新启动
    

    手动创建符号链接文件(执行效果和执行chkconfig --add oracle是一样,作为知识笔记记录,可以不执行)  

    [root@localhost oracle]# ln –s /etc/rc.d/init.d/oracle /etc/rc0.d/K61oracle
    [root@localhost oracle]# ln –s /etc/rc.d/init.d/oracle /etc/rc1.d/K61oracle
    [root@localhost oracle]# ln –s /etc/rc.d/init.d/oracle /etc/rc2.d/S61oracle
    [root@localhost oracle]# ln –s /etc/rc.d/init.d/oracle /etc/rc3.d/S61oracle
    [root@localhost oracle]# ln –s /etc/rc.d/init.d/oracle /etc/rc4.d/S61oracle
    [root@localhost oracle]# ln –s /etc/rc.d/init.d/oracle /etc/rc5.d/S61oracle
    [root@localhost oracle]# ln –s /etc/rc.d/init.d/oracle /etc/rc6.d/K61oracle

    5、oracle的启动或关闭管理

    启动
    [root@localhost oracle]# service oracle start
    停止
    [root@localhost oracle]# service oracle stop
    重启
    [root@localhost oracle]# service oracle restart

     五、数据库字符集修改

    注意事项:修改字符集前先将数据库进行备份

    此处演示将ZHS16GBK字符集修改为AL32UTF8

    1、修改server端字符集

    登录sqlpus查看字符集设置

    [oracle@localhost ~]$ sqlplus /nolog
    SQL*Plus: Release 11.2.0.1.0 Production on Wed Jan 24 13:55:51 2018
    Copyright (c) 1982, 2009, Oracle.  All rights reserved.
    SQL> conn /as sysdba
    Connected to an idle instance.                  #数据库未启动,先启动数据库。最好将数据库设未开机启动
    SQL> startup
    SQL> conn /as sysdba
    Connected.                                      #连接成功
    SQL> select userenv('language') from dual;      #server端字符集查询
    
    USERENV('LANGUAGE')
    ----------------------------------------------------
    AMERICAN_AMERICA.ZHS16GBK

    依次执行如下命令

    SQL>SHUTDOWN IMMEDIATE;
    SQL>STARTUP MOUNT;
    SQL>ALTER SYSTEM ENABLE RESTRICTED SESSION;
    SQL>ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
    SQL>ALTER SYSTEM SET AQ_TM_PROCESSES=0;
    SQL>ALTER DATABASE OPEN;
    SQL>ALTER DATABASE CHARACTER SET INTERNAL_USE AL32UTF8;
    SQL>SHUTDOWN IMMEDIATE;
    SQL>STARTUP;
    
    SQL> select userenv('language') from dual;
    USERENV('LANGUAGE')
    ----------------------------------------------------
    AMERICAN_AMERICA.AL32UTF8
    SQL> 

    2、修改client端字符集

    查看系统环境变量设置的字符集(client端字符集)

    [oracle@localhost ~]$ cat /home/oracle/.bash_profile
    ...
    PATH=$PATH:$HOME/.local/bin:$HOME/bin
    export PATH
    
    export ORACLE_BASE=/usr/oracle
    export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
    export ORACLE_SID=orcl
    export ORACLE_TERM=xterm
    export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH
    export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
    export LANG=C
    export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK                #客户端字符集
    进入编辑界面,将ZHS16GBK改为AL32UTF8,保存退出
    [oracle@localhost ~]$ vim /home/oracle/.bash_profile
    使配置生效
    [oracle@localhost ~]$ source /home/oracle/.bash_profile

    修改完成

    参考博客

    CentOS 7安装Oracle 11gR2以及设置自启动

    https://www.cnblogs.com/VoiceOfDreams/p/8308601.html 

  • 相关阅读:
    加密模块
    Flask_Blueprint(蓝图)
    Python中__get__ ,__getattr__ ,__getattribute__用法与区别?
    为什么要使用数据库连接池?以及用法(DBUtils)
    Flask_配置文件
    CRM知识点汇总(未完💩💩💩💩💩)
    popUp
    Django_调查问卷
    Django_form
    Numpy
  • 原文地址:https://www.cnblogs.com/djlsunshine/p/10201170.html
Copyright © 2020-2023  润新知