当前位置:   article > 正文

centos7安装Oracle及配置_centos 装tns

centos 装tns

 

Centos7安装oracle

Oracle官网下载地址

https://www.oracle.com/technetwork/cn/database/enterprise-edition/downloads/index.html

 

百度经验配置流程:

https://jingyan.baidu.com/article/6fb756ecf328b0641958fb38.html

 

其他配置地址:

https://www.cnblogs.com/jinanxiaolaohu/p/10799101.html

 

CSDN:较详细(重要)

https://blog.csdn.net/Xeon_CC/article/details/100560040

 

1. 下载需要的安装包:

1.1 preinstall   依赖

http://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm

1.2 Oracle 的rpm 安装包

https://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html

 

 

 

 

重要的准备工作:!!!!!

一、创建虚拟内存

 

来源:https://blog.csdn.net/lengyue1084/article/details/51405640

 

(1)使用dd命令创建一个swap交换文件

dd if=/dev/zero of=/home/swap bs=1024 count=1024000

这样就建立一个/home/swap的分区文件,大小为1G。

(2)制作为swap格式文件:

mkswap /home/swap

(3)再用swapon命令把这个文件分区挂载swap分区

/sbin/swapon /home/swap

我们用free -m命令看一下,发现已经有交换分区了

但是重启系统后,swap分区又变成0了。

(4)为防止重启后swap分区变成0,要修改/etc/fstab文件

vi /etc/fstab

在文件末尾(最后一行)加上

/home/swap swap swap default 0 0

保存

这样就算重启系统,swap分区还是有值。

 

 

二、准备oracle用户:

 

[root@localhost ~]# groupadd oinstall

[root@localhost ~]# groupadd dba

[root@localhost ~]# useradd oracle -g oinstall -G dba

 

 

三、准备jdk,并配置环境变量

 

  1. 下载解压

下载地址

https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

 

2、编辑环境变量的配置(文件环境变量):

vi  /etc/profile

在尾部增加如下代码:

#JDK全局环境变量配置
export JAVA_HOME=/usr/local/java/jdk1.8.0_181
export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin

 

  1. 查询java是否安装:

Java -sersion

 

 

开始ORACLE数据库安装工作:

 

第一步 

 

(1)创建目录,方便软件管理

在 /usr/local/ 目录创建一个software目录

进入software目录 cd /usr/local/software

 

 

(2)下载oracle的依赖:

wget https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm

 

 

(3)下载Oracle19c:

 

前往https://www.oracle.com/database/technologies/oracle-database-software-downloads.html

 

下载Oracle19c的RPM包,然后上传到 /usr/local/software 的目录下

 

 

第二步

 

在 /usr/local/software 目录下

 

安装依赖:

yum -y localinstall oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm

 

 

 

安装Oracle19c :

yum -y localinstall oracle-database-ee-19c-1.0-1.x86_64.rpm

 

 

创建数据库(需要较长的时间,请耐心等待):

/etc/init.d/oracledb_ORCLCDB-19c configure

 

直到出现Database configuration completed successfully. The passwords were auto generated, you must change them by connecting to the database using 'sqlplus / as sysdba' as the oracle user.才是安装成功

 

第三步

 

 

配置Oracle环境变量

 

编辑profile文件:

vi /etc/profile

在文件末尾加上

#Oracle environment

export PATH

export ORACLE_BASE=/opt/oracle

export ORACLE_HOME=/opt/oracle/product/19c/dbhome_1

export ORACLE_SID=ORCLCDB

export LANG=en_US.UTF-8

export NLS_LANG=american_america.ZHS16GBK

export NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss"

export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch

export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin

export PATH=${PATH}:$ORACLE_BASE/common/oracle/bin:/home/oracle/run

export ORACLE_TERM=xterm

export LD_LIBRARY_PATH=$ORACLE_HOME/lib

export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib

export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib

export CLASSPATH=$ORACLE_HOME/jdk

export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib

export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib

export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib

export THREADS_FLAG=native

export TEMP=/tmp

export TMPDIR=/tmp

umask 022

export TMOUT=0

alias s="sqlplus / as sysdba"

 

 

 

使环境变量生效:

source /etc/profile

 

第四步

 

 

(1)为oracle用户设置一个密码:

 

[root@localhost]# passwd oracle

 

 

 

(2)进入oracle用户,因为root用户无法登陆oracle

[root@localhost]# su - oracle

 

 

 

(3)敲一个 s 命令,回车,就可以进入到oracle的命令行模式,因为环境变量配置了alias s="sqlplus / as sysdba"

 

sqlplus / as sysdba表示没有用户名和密码验证的意思。这个在创建用户的时候,使用,如果要进行数据库操作,请勿使用此命令。

[oracle@localhost ~]$ s

 

image.png

 

(4)创建oracle数据库的用户:创建用户

 

首先要执行下面两个命令,才可以创建数据库的用户:

 

SQL> conn / as sysdba;

 

SQL> alter session set "_ORACLE_SCRIPT"=true;  创建用户的时候都需要执行一次这个操作

 

创建用户:(用户名和密码都是seacat)

 

SQL> create user seacat identified by seacat;

 create user lky identified by 123456;

再次执行SQL> alter session set "_ORACLE_SCRIPT"=true; 这个需要执行两遍

grant connect, resource,dba to lky;

 

为用户授权:

授权命令语法: grant connect, resource to 用户名;

dba (数据库管理员)

 例子:  grant connect, resource,dba to test;

grant connect, resource to seacat;

show pdbs; 显示数据库

 

 

第五步

 

目的是配置listener.ora监听文件

 

(1) root用户下,进入目录:

cd /opt/oracle/product/19c/dbhome_1/network/admin

 

 

然后编辑listener.ora文件:

vi  listener.ora

把默认的配置文件改成下面的结构,实际上,多加了一个SID_LIST_LISTENER的配置,(LISTENER的配置不要动)

 

要注意:SID_LIST下的配置代码一定要tab建缩进,否则无法识别

这个地方不能动!!!注意!!!!

########################

   LISTENER =

  (DESCRIPTION_LIST =

    (DESCRIPTION =

      (ADDRESS = (PROTOCOL = TCP)(HOST = izuf6ddyiugxoeqrb7r7f0z)(PORT = 1521))

      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))

    )

 

  )

 #隔两行

 

SID_LIST_LISTENER =

(SID_LIST =

        (SID_DESC =

        (SID_NAME = PLSExtProc)

        (ORACLE_HOME = /opt/oracle/product/19c/dbhome_1)

        (PROGRAM = extproc)

        )

 

        (SID_DESC =

        (GLOBAL_DBNAME = ORCLCDB)

        (ORACLE_HOME = /opt/oracle/product/19c/dbhome_1)

        (SID_NAME = ORCLCDB)

        )

)  

####################

#然后保存

 

 

 

(2)重启监听:

 

进入oracle的用户 su - oracle

 

[oracle@localhost ~]$ lsnrctl stop

 

[oracle@localhost ~]$ lsnrctl start

监听打开失败的话多数时防火墙没关,listen.ora文件没有对齐系统不识别。

 

查看监听状态:

 

[oracle@localhost ~]$ lsnrctl status

 显示The command completed successfully 为开启成功。

 

(3) 查看ORACLE_SID的值:

 

[oracle@localhost ~]$ echo $ORACLE_SID

 

 

 

tnsnames.ora配置文件的登录值

39 =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = 39.108.252.218)(PORT = 1521))

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = ORCLCDB)

    )

  )

 

这个ORACLE_SID的值要跟 listener.ora 配置文件里面的GLOBAL_DBNAME和SID_NAME的值要一致,否则连接Oracle会报错,所以,我们用NavicatPremium连接Oracle时,Server Name 不用默认值,而是用ORCLCDB这个值

 

 

第六步:

修改连接错误的问题ORA-28040: No matching authentication protocol

 

19c修改位置:

/opt/oracle/product/19c/dbhome_1/network/admin/sqlnet.ora

远程连接报错:ORA-28040: No matching authentication protocol这个错误

 

解决:在Oracle用户(不是grid用户)下,将/opt/oracle/product/19c/dbhome_1/network/admin

/sqlnet.ora文件原来的SQLNET.ALLOWED_LOGON_VERSION=8注释掉(如果没有sqlnet.ora文件,那么就创建一个),修改为如下的行:

SQLNET.ALLOWED_LOGON_VERSION_SERVER=8

SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8

不用重启数据库或者监听,也不用重启应用。

 

 

 

 

 

(4) 我们要在阿里云官网设置防火墙规则,开放1521端口

上阿里云官网,进入控制台,进入你的服务器,选择防火墙,添加规则,允许TCP和UDP协议的1521端口

  

 

(5)我们试着用NavicatPremium连接阿里云的Oracle

,我们发现报错了:

 

解决办法:

 

在oracle用户下敲 s 命令进入oracle命令行模式

SQL> grant create session to seacat;

seacat是数据库用户名

 

 

 

第七步

 

如果要进行数据库操作

 

su - oracle 进入oracle用户

 

然后键入sqlplus命令以后,输入刚刚创建的Oracle用户名和密码就OK了

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Oracle创建用户、角色、授权、建表

2018-10-12 09:45:02 M_Jack 阅读数 740 收藏 更多

分类专栏: 数据库

oracle数据库的权限系统分为系统权限与对象权限。系统权限( database system privilege )可以让用户执行特定的命令集。例如,create table权限允许用户创建表,grant any privilege 权限允许用户授予任何系统权限。对象权限( database object privilege )可以让用户能够对各个对象进行某些操作。例如delete权限允许用户删除表或视图的行,select权限允许用户通过select从表、视图、序列(sequences)或快照(snapshots)中查询信息。

每个oracle用户都有一个名字和口令,并拥有一些由其创建的表、视图和其他资源。oracle角色(role)就是一组权限(privilege)(或者是每个用户根据其状态和条件所需的访问类型)。用户可以给角色授予或赋予指定的权限,然后将角色赋给相应的用户。一个用户也可以直接给其他用户授权。

 

一、创建用户

oracle内部有两个建好的用户:system和sys。用户可直接登录到system用户以创建其他用户,因为system具有创建别 的用户的 权限。 在安装oracle时,用户或系统管理员首先可以为自己建立一个用户。

语法[创建用户]: create user 用户名 identified by 口令[即密码];

例子: create user test identified by test;

语法[更改用户]: alter user 用户名 identified by 口令[改变的口令];

例子: alter user test identified by 123456;

 

二、删除用户

语法:drop user 用户名;

例子:drop user test;

若用户拥有对象,则不能直接删除,否则将返回一个错误值。指定关键字cascade,可删除用户所有的对象,然后再删除用户。

语法: drop user 用户名 cascade;

例子: drop user test cascade;

 

三、授权角色

oracle为兼容以前版本,提供三种标准角色(role):connect/resource和dba.

(1)讲解三种标准角色:

1》. connect role(连接角色)

--临时用户,特指不需要建表的用户,通常只赋予他们connect role. 

--connect是使用oracle简单权限,这种权限只对其他用户的表有访问权限,包括select/insert/update和delete等。

--拥有connect role 的用户还能够创建表、视图、序列(sequence)、簇(cluster)、同义词(synonym)、回话(session)和其他  数据的链(link)

 

2》. resource role(资源角色)

--更可靠和正式的数据库用户可以授予resource role。

--resource提供给用户另外的权限以创建他们自己的表、序列、过程(procedure)、触发器(trigger)、索引(index)和簇(cluster)。

 

3》. dba role(数据库管理员角色)

--dba role拥有所有的系统权限

--包括无限制的空间限额和给其他用户授予各种权限的能力。system由dba用户拥有

 

(2)授权命令

语法: grant connect, resource to 用户名;

 例子: grant connect, resource to test;

   (3)撤销权限

      语法: revoke connect, resource from 用户名;

      列子: revoke connect, resource from test;

 

四、创建/授权/删除角色

除了前面讲到的三种系统角色----connect、resource和dba,用户还可以在oracle创建自己的role。用户创建的role可以由表或系统权限或两者的组合构成。为了创建role,用户必须具有create role系统权限。

1》创建角色

语法: create role 角色名;

例子: create role testRole;

2》授权角色

语法: grant select on class to 角色名;

列子: grant select on class to testRole;

注:现在,拥有testRole角色的所有用户都具有对class表的select查询权限

3》删除角色

语法: drop role 角色名;

例子: drop role testRole;

注:与testRole角色相关的权限将从数据库全部删除

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Linux:开启或关闭oracle

    (1) 以oracle身份登录数据库,命令:su - oracle(注意空格)

    (2) 进入Sqlplus控制台,命令:sqlplus /nolog

    (3) 以系统管理员登录,命令:connect / as sysdba

    (4) 启动数据库,命令:startup

    (5) 如果是关闭数据库,命令:shutdown immediate

    (6) 退出sqlplus控制台,命令:exit

    (7) 进入监听器控制台,命令:lsnrctl(Listener Control的缩写)

    (8) 启动监听器,命令:start

    (9) 退出监听器控制台,命令:exit

 

 

Centos7备份oracle:

第一步,我們要做的就是进入Oracle,对我们想要操作Oracle首先要进入Oracle服务

在我们的Linux黑窗口上输入su – oracle命令就会进入如下窗口

uploading.4e448015.gif正在上传…重新上传取消

2、 第二步,我们要输入命令了,注意如果你的数据库正在运行的话不要使用exp命令,请

使用expdp命令

命令:expdp 用户名/密码@数据库名 dumpfile=导出文件的名字(自己命名).dmp tables=想要导出的表名(如果是想多个表请使用tables=(表1,表2,表3))

然后回车即可

 

 

 

 

重启oracle

方法3:

(1) 以oracle身份登录数据库,命令:su -oracle

(2) 进入Sqlplus控制台,命令:sqlplus /nolog

(3) 以系统管理员登录,命令:connect / as sysdba

(4) 启动数据库,命令:startup

(5) 如果是关闭数据库,命令:shutdown immediate

(6) 退出sqlplus控制台,命令:exit

(7) 进入监听器控制台,命令:lsnrctl

(8) 启动监听器,命令:start

(9) 退出监听器控制台,命令:exit

二、重启实例:

(1) 切换需要启动的数据库实例:export ORACLE_SID=C1

(2) 进入Sqlplus控制台,命令:sqlplus /nolog

(3) 以系统管理员登录,命令:connect / as sysdba

(4) 如果是关闭数据库,命令:shutdown abort

(5) 启动数据库,命令:startup

(6) 退出sqlplus控制台,命令:exit

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ORACLE建立数据库链接:

建立过程:

1、建立方的服务端配置远程数据库的tnsname配置。
2、tnsping 远程数据库tnsnames配置名称,可以通。
3、sqlplus登录后执行:

SQL> create database link dblinktest connect to user identified by passwd using 'ceshi';

其中:
dblinktest是database link的名称。

user是远程数据库的用户名。
passwd是远程数据库的密码。
ceshi是数据库服务端配置的tnsnames中名称。

4、执行:

SQL> select owner,object_name from dba_objects where object_type='DATABASE LINK';
OWNER           OBJECT_NAME
--------------- -------------------------
OPEN               DBLINKTEST

可以看到已经建立了这个database link。

5、执行:

SQL> select * from t@dblinktest;
        ID
----------
         0
         2
         3
         4
         5

当然也可以执行insert语句:

SQL> insert into t@dblinktest values(1);
1 row created.

创建完用户后登陆出现以下错误:

user lacks CREATE SESSION privilege; logon denied 解决方法  

解决命令:

grant create session,resource to <user> 

 

 

 

 

一键安装lnmp命令:https://lnmp.org/auto.html

 

wget http://soft.vpser.net/lnmp/lnmp1.5.tar.gz -cO lnmp1.5.tar.gz && tar zxf lnmp1.5.tar.gz && cd lnmp1.5&&LNMP_Auto="y" DBSelect="1" DB_Root_Password="lky@123" InstallInnodb="y" PHPSelect="2"SelectMalloc="1"

 ./install.sh lnmp

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/572498
推荐阅读
相关标签
  

闽ICP备14008679号